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  useOptionalVariables_ = true;
99  useExactLpReason_ = true;
100  mipMaxBound_ = 10000000D;
101  mipVarScaling_ = 1D;
102  mipWantedPrecision_ = 1e-06D;
103  mipMaxActivityExponent_ = 53;
104  mipCheckPrecision_ = 0.0001D;
105  catchSigintSignal_ = true;
106  }
107 
108  @java.lang.Override
109  @SuppressWarnings({"unused"})
110  protected java.lang.Object newInstance(
111  UnusedPrivateParameter unused) {
112  return new SatParameters();
113  }
114 
115  @java.lang.Override
116  public final com.google.protobuf.UnknownFieldSet
118  return this.unknownFields;
119  }
120  private SatParameters(
121  com.google.protobuf.CodedInputStream input,
122  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
123  throws com.google.protobuf.InvalidProtocolBufferException {
124  this();
125  if (extensionRegistry == null) {
126  throw new java.lang.NullPointerException();
127  }
128  int mutable_bitField0_ = 0;
129  int mutable_bitField1_ = 0;
130  int mutable_bitField2_ = 0;
131  int mutable_bitField3_ = 0;
132  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
133  com.google.protobuf.UnknownFieldSet.newBuilder();
134  try {
135  boolean done = false;
136  while (!done) {
137  int tag = input.readTag();
138  switch (tag) {
139  case 0:
140  done = true;
141  break;
142  case 8: {
143  int rawValue = input.readEnum();
144  @SuppressWarnings("deprecation")
145  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
146  if (value == null) {
147  unknownFields.mergeVarintField(1, rawValue);
148  } else {
149  bitField0_ |= 0x00000001;
150  preferredVariableOrder_ = rawValue;
151  }
152  break;
153  }
154  case 16: {
155  int rawValue = input.readEnum();
156  @SuppressWarnings("deprecation")
157  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
158  if (value == null) {
159  unknownFields.mergeVarintField(2, rawValue);
160  } else {
161  bitField0_ |= 0x00000002;
162  initialPolarity_ = rawValue;
163  }
164  break;
165  }
166  case 32: {
167  int rawValue = input.readEnum();
168  @SuppressWarnings("deprecation")
169  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
170  if (value == null) {
171  unknownFields.mergeVarintField(4, rawValue);
172  } else {
173  bitField0_ |= 0x00000100;
174  minimizationAlgorithm_ = rawValue;
175  }
176  break;
177  }
178  case 88: {
179  bitField0_ |= 0x00000800;
180  clauseCleanupPeriod_ = input.readInt32();
181  break;
182  }
183  case 104: {
184  bitField0_ |= 0x00001000;
185  clauseCleanupTarget_ = input.readInt32();
186  break;
187  }
188  case 121: {
189  bitField0_ |= 0x00100000;
190  variableActivityDecay_ = input.readDouble();
191  break;
192  }
193  case 129: {
194  bitField0_ |= 0x00200000;
195  maxVariableActivityValue_ = input.readDouble();
196  break;
197  }
198  case 137: {
199  bitField0_ |= 0x02000000;
200  clauseActivityDecay_ = input.readDouble();
201  break;
202  }
203  case 145: {
204  bitField0_ |= 0x04000000;
205  maxClauseActivityValue_ = input.readDouble();
206  break;
207  }
208  case 177: {
209  bitField0_ |= 0x00400000;
210  glucoseMaxDecay_ = input.readDouble();
211  break;
212  }
213  case 185: {
214  bitField0_ |= 0x00800000;
215  glucoseDecayIncrement_ = input.readDouble();
216  break;
217  }
218  case 192: {
219  bitField0_ |= 0x01000000;
220  glucoseDecayIncrementPeriod_ = input.readInt32();
221  break;
222  }
223  case 240: {
224  bitField0_ |= 0x10000000;
225  restartPeriod_ = input.readInt32();
226  break;
227  }
228  case 248: {
229  bitField1_ |= 0x00000400;
230  randomSeed_ = input.readInt32();
231  break;
232  }
233  case 257: {
234  bitField0_ |= 0x00000010;
235  randomBranchesRatio_ = input.readDouble();
236  break;
237  }
238  case 264: {
239  bitField1_ |= 0x00000200;
240  treatBinaryClausesSeparately_ = input.readBool();
241  break;
242  }
243  case 272: {
244  int rawValue = input.readEnum();
245  @SuppressWarnings("deprecation")
246  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
247  if (value == null) {
248  unknownFields.mergeVarintField(34, rawValue);
249  } else {
250  bitField0_ |= 0x00000200;
251  binaryMinimizationAlgorithm_ = rawValue;
252  }
253  break;
254  }
255  case 280: {
256  bitField1_ |= 0x00200000;
257  useOptimizationHints_ = input.readBool();
258  break;
259  }
260  case 289: {
261  bitField1_ |= 0x00000020;
262  maxTimeInSeconds_ = input.readDouble();
263  break;
264  }
265  case 296: {
266  bitField1_ |= 0x00000080;
267  maxNumberOfConflicts_ = input.readInt64();
268  break;
269  }
270  case 320: {
271  bitField1_ |= 0x00000100;
272  maxMemoryInMb_ = input.readInt64();
273  break;
274  }
275  case 328: {
276  bitField1_ |= 0x00000800;
277  logSearchProgress_ = input.readBool();
278  break;
279  }
280  case 344: {
281  bitField1_ |= 0x00001000;
282  usePbResolution_ = input.readBool();
283  break;
284  }
285  case 352: {
286  bitField0_ |= 0x00000004;
287  usePhaseSaving_ = input.readBool();
288  break;
289  }
290  case 361: {
291  bitField0_ |= 0x00000008;
292  randomPolarityRatio_ = input.readDouble();
293  break;
294  }
295  case 368: {
296  bitField0_ |= 0x00010000;
297  pbCleanupIncrement_ = input.readInt32();
298  break;
299  }
300  case 377: {
301  bitField0_ |= 0x00020000;
302  pbCleanupRatio_ = input.readDouble();
303  break;
304  }
305  case 384: {
306  bitField1_ |= 0x00002000;
307  minimizeReductionDuringPbResolution_ = input.readBool();
308  break;
309  }
310  case 392: {
311  bitField1_ |= 0x00004000;
312  countAssumptionLevelsInLbd_ = input.readBool();
313  break;
314  }
315  case 400: {
316  bitField1_ |= 0x00400000;
317  minimizeCore_ = input.readBool();
318  break;
319  }
320  case 408: {
321  int rawValue = input.readEnum();
322  @SuppressWarnings("deprecation")
323  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
324  if (value == null) {
325  unknownFields.mergeVarintField(51, rawValue);
326  } else {
327  bitField1_ |= 0x02000000;
328  maxSatAssumptionOrder_ = rawValue;
329  }
330  break;
331  }
332  case 416: {
333  bitField1_ |= 0x04000000;
334  maxSatReverseAssumptionOrder_ = input.readBool();
335  break;
336  }
337  case 424: {
338  int rawValue = input.readEnum();
339  @SuppressWarnings("deprecation")
340  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
341  if (value == null) {
342  unknownFields.mergeVarintField(53, rawValue);
343  } else {
344  bitField1_ |= 0x08000000;
345  maxSatStratification_ = rawValue;
346  }
347  break;
348  }
349  case 432: {
350  bitField1_ |= 0x00008000;
351  presolveBveThreshold_ = input.readInt32();
352  break;
353  }
354  case 440: {
355  bitField1_ |= 0x00010000;
356  presolveBveClauseWeight_ = input.readInt32();
357  break;
358  }
359  case 448: {
360  bitField0_ |= 0x00000400;
361  subsumptionDuringConflictAnalysis_ = input.readBool();
362  break;
363  }
364  case 457: {
365  bitField1_ |= 0x00020000;
366  presolveProbingDeterministicTimeLimit_ = input.readDouble();
367  break;
368  }
369  case 464: {
370  int rawValue = input.readEnum();
371  @SuppressWarnings("deprecation")
372  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
373  if (value == null) {
374  unknownFields.mergeVarintField(58, rawValue);
375  } else {
376  bitField0_ |= 0x00002000;
377  clauseCleanupProtection_ = rawValue;
378  }
379  break;
380  }
381  case 472: {
382  bitField0_ |= 0x00004000;
383  clauseCleanupLbdBound_ = input.readInt32();
384  break;
385  }
386  case 480: {
387  int rawValue = input.readEnum();
388  @SuppressWarnings("deprecation")
389  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
390  if (value == null) {
391  unknownFields.mergeVarintField(60, rawValue);
392  } else {
393  bitField0_ |= 0x00008000;
394  clauseCleanupOrdering_ = rawValue;
395  }
396  break;
397  }
398  case 488: {
399  int rawValue = input.readEnum();
400  @SuppressWarnings("deprecation")
401  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
402  if (value == null) {
403  unknownFields.mergeVarintField(61, rawValue);
404  } else {
405  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
406  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
407  mutable_bitField0_ |= 0x08000000;
408  }
409  restartAlgorithms_.add(rawValue);
410  }
411  break;
412  }
413  case 490: {
414  int length = input.readRawVarint32();
415  int oldLimit = input.pushLimit(length);
416  while(input.getBytesUntilLimit() > 0) {
417  int rawValue = input.readEnum();
418  @SuppressWarnings("deprecation")
419  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
420  if (value == null) {
421  unknownFields.mergeVarintField(61, rawValue);
422  } else {
423  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
424  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
425  mutable_bitField0_ |= 0x08000000;
426  }
427  restartAlgorithms_.add(rawValue);
428  }
429  }
430  input.popLimit(oldLimit);
431  break;
432  }
433  case 496: {
434  bitField0_ |= 0x20000000;
435  restartRunningWindowSize_ = input.readInt32();
436  break;
437  }
438  case 505: {
439  bitField0_ |= 0x40000000;
440  restartDlAverageRatio_ = input.readDouble();
441  break;
442  }
443  case 512: {
444  bitField1_ |= 0x00000001;
445  useBlockingRestart_ = input.readBool();
446  break;
447  }
448  case 520: {
449  bitField1_ |= 0x00000002;
450  blockingRestartWindowSize_ = input.readInt32();
451  break;
452  }
453  case 529: {
454  bitField1_ |= 0x00000004;
455  blockingRestartMultiplier_ = input.readDouble();
456  break;
457  }
458  case 537: {
459  bitField1_ |= 0x00000040;
460  maxDeterministicTime_ = input.readDouble();
461  break;
462  }
463  case 544: {
464  bitField1_ |= 0x00000008;
465  numConflictsBeforeStrategyChanges_ = input.readInt32();
466  break;
467  }
468  case 553: {
469  bitField1_ |= 0x00000010;
470  strategyChangeIncreaseRatio_ = input.readDouble();
471  break;
472  }
473  case 562: {
474  com.google.protobuf.ByteString bs = input.readBytes();
475  bitField0_ |= 0x08000000;
476  defaultRestartAlgorithms_ = bs;
477  break;
478  }
479  case 569: {
480  bitField0_ |= 0x80000000;
481  restartLbdAverageRatio_ = input.readDouble();
482  break;
483  }
484  case 576: {
485  bitField1_ |= 0x00080000;
486  presolveUseBva_ = input.readBool();
487  break;
488  }
489  case 584: {
490  bitField1_ |= 0x00100000;
491  presolveBvaThreshold_ = input.readInt32();
492  break;
493  }
494  case 592: {
495  bitField1_ |= 0x10000000;
496  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
497  break;
498  }
499  case 600: {
500  bitField0_ |= 0x00000020;
501  useErwaHeuristic_ = input.readBool();
502  break;
503  }
504  case 609: {
505  bitField0_ |= 0x00000040;
506  initialVariablesActivity_ = input.readDouble();
507  break;
508  }
509  case 616: {
510  bitField0_ |= 0x00000080;
511  alsoBumpVariablesInConflictReasons_ = input.readBool();
512  break;
513  }
514  case 624: {
515  bitField1_ |= 0x20000000;
516  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
517  break;
518  }
519  case 632: {
520  bitField1_ |= 0x40000000;
521  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
522  break;
523  }
524  case 640: {
525  bitField1_ |= 0x80000000;
526  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
527  break;
528  }
529  case 656: {
530  int rawValue = input.readEnum();
531  @SuppressWarnings("deprecation")
532  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
533  if (value == null) {
534  unknownFields.mergeVarintField(82, rawValue);
535  } else {
536  bitField2_ |= 0x00002000;
537  searchBranching_ = rawValue;
538  }
539  break;
540  }
541  case 664: {
542  bitField2_ |= 0x00080000;
543  optimizeWithCore_ = input.readBool();
544  break;
545  }
546  case 672: {
547  bitField1_ |= 0x00800000;
548  findMultipleCores_ = input.readBool();
549  break;
550  }
551  case 680: {
552  bitField2_ |= 0x00200000;
553  optimizeWithMaxHs_ = input.readBool();
554  break;
555  }
556  case 688: {
557  bitField2_ |= 0x00400000;
558  cpModelPresolve_ = input.readBool();
559  break;
560  }
561  case 696: {
562  bitField2_ |= 0x02000000;
563  enumerateAllSolutions_ = input.readBool();
564  break;
565  }
566  case 704: {
567  bitField1_ |= 0x00040000;
568  presolveBlockedClause_ = input.readBool();
569  break;
570  }
571  case 712: {
572  bitField1_ |= 0x01000000;
573  coverOptimization_ = input.readBool();
574  break;
575  }
576  case 720: {
577  bitField2_ |= 0x00000001;
578  linearizationLevel_ = input.readInt32();
579  break;
580  }
581  case 728: {
582  bitField2_ |= 0x00000004;
583  maxNumCuts_ = input.readInt32();
584  break;
585  }
586  case 736: {
587  bitField2_ |= 0x00000008;
588  onlyAddCutsAtLevelZero_ = input.readBool();
589  break;
590  }
591  case 744: {
592  bitField2_ |= 0x01000000;
593  cpModelUseSatPresolve_ = input.readBool();
594  break;
595  }
596  case 752: {
597  bitField2_ |= 0x00004000;
598  exploitIntegerLpSolution_ = input.readBool();
599  break;
600  }
601  case 760: {
602  bitField2_ |= 0x10000000;
603  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
604  break;
605  }
606  case 768: {
607  bitField0_ |= 0x00040000;
608  minimizeWithPropagationRestartPeriod_ = input.readInt32();
609  break;
610  }
611  case 776: {
612  bitField0_ |= 0x00080000;
613  minimizeWithPropagationNumDecisions_ = input.readInt32();
614  break;
615  }
616  case 784: {
617  bitField2_ |= 0x20000000;
618  stopAfterFirstSolution_ = input.readBool();
619  break;
620  }
621  case 792: {
622  bitField2_ |= 0x00100000;
623  binarySearchNumConflicts_ = input.readInt32();
624  break;
625  }
626  case 800: {
627  bitField2_ |= 0x40000000;
628  numSearchWorkers_ = input.readInt32();
629  break;
630  }
631  case 808: {
632  bitField3_ |= 0x00000004;
633  useLnsOnly_ = input.readBool();
634  break;
635  }
636  case 824: {
637  bitField3_ |= 0x00000020;
638  randomizeSearch_ = input.readBool();
639  break;
640  }
641  case 832: {
642  bitField3_ |= 0x00000040;
643  searchRandomizationTolerance_ = input.readInt64();
644  break;
645  }
646  case 840: {
647  bitField3_ |= 0x00000008;
648  lnsFocusOnDecisionVariables_ = input.readBool();
649  break;
650  }
651  case 848: {
652  bitField2_ |= 0x08000000;
653  instantiateAllVariables_ = input.readBool();
654  break;
655  }
656  case 856: {
657  bitField2_ |= 0x00000002;
658  booleanEncodingLevel_ = input.readInt32();
659  break;
660  }
661  case 864: {
662  bitField3_ |= 0x00000080;
663  useOptionalVariables_ = input.readBool();
664  break;
665  }
666  case 872: {
667  bitField3_ |= 0x00000100;
668  useExactLpReason_ = input.readBool();
669  break;
670  }
671  case 880: {
672  bitField2_ |= 0x00800000;
673  cpModelProbingLevel_ = input.readInt32();
674  break;
675  }
676  case 888: {
677  bitField2_ |= 0x00000010;
678  addKnapsackCuts_ = input.readBool();
679  break;
680  }
681  case 896: {
682  bitField2_ |= 0x00000200;
683  addLpConstraintsLazily_ = input.readBool();
684  break;
685  }
686  case 904: {
687  bitField3_ |= 0x00000001;
688  shareObjectiveBounds_ = input.readBool();
689  break;
690  }
691  case 912: {
692  bitField3_ |= 0x00000002;
693  shareLevelZeroBounds_ = input.readBool();
694  break;
695  }
696  case 921: {
697  bitField2_ |= 0x00000400;
698  minOrthogonalityForLpConstraints_ = input.readDouble();
699  break;
700  }
701  case 928: {
702  bitField2_ |= 0x00008000;
703  exploitAllLpSolution_ = input.readBool();
704  break;
705  }
706  case 936: {
707  bitField2_ |= 0x00000020;
708  addCgCuts_ = input.readBool();
709  break;
710  }
711  case 944: {
712  bitField2_ |= 0x00000080;
713  useMirRounding_ = input.readBool();
714  break;
715  }
716  case 952: {
717  bitField2_ |= 0x00000100;
718  maxIntegerRoundingScaling_ = input.readInt32();
719  break;
720  }
721  case 960: {
722  bitField2_ |= 0x00000040;
723  addMirCuts_ = input.readBool();
724  break;
725  }
726  case 968: {
727  bitField2_ |= 0x00000800;
728  maxInactiveCount_ = input.readInt64();
729  break;
730  }
731  case 976: {
732  bitField2_ |= 0x00001000;
733  constraintRemovalBatchSize_ = input.readInt64();
734  break;
735  }
736  case 984: {
737  bitField2_ |= 0x00040000;
738  pseudoCostReliabilityThreshold_ = input.readInt64();
739  break;
740  }
741  case 993: {
742  bitField3_ |= 0x00000400;
743  mipMaxBound_ = input.readDouble();
744  break;
745  }
746  case 1001: {
747  bitField3_ |= 0x00000800;
748  mipVarScaling_ = input.readDouble();
749  break;
750  }
751  case 1009: {
752  bitField3_ |= 0x00001000;
753  mipWantedPrecision_ = input.readDouble();
754  break;
755  }
756  case 1016: {
757  bitField3_ |= 0x00002000;
758  mipMaxActivityExponent_ = input.readInt32();
759  break;
760  }
761  case 1025: {
762  bitField3_ |= 0x00004000;
763  mipCheckPrecision_ = input.readDouble();
764  break;
765  }
766  case 1032: {
767  bitField3_ |= 0x00000010;
768  useRinsLns_ = input.readBool();
769  break;
770  }
771  case 1040: {
772  bitField2_ |= 0x00010000;
773  exploitBestSolution_ = input.readBool();
774  break;
775  }
776  case 1048: {
777  bitField2_ |= 0x00020000;
778  exploitObjective_ = input.readBool();
779  break;
780  }
781  case 1056: {
782  bitField2_ |= 0x04000000;
783  fillTightenedDomainsInResponse_ = input.readBool();
784  break;
785  }
786  case 1064: {
787  bitField3_ |= 0x00000200;
788  useCombinedNoOverlap_ = input.readBool();
789  break;
790  }
791  case 1072: {
792  bitField2_ |= 0x80000000;
793  deterministicParallelSearch_ = input.readBool();
794  break;
795  }
796  case 1080: {
797  bitField3_ |= 0x00008000;
798  catchSigintSignal_ = input.readBool();
799  break;
800  }
801  default: {
802  if (!parseUnknownField(
803  input, unknownFields, extensionRegistry, tag)) {
804  done = true;
805  }
806  break;
807  }
808  }
809  }
810  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
811  throw e.setUnfinishedMessage(this);
812  } catch (java.io.IOException e) {
813  throw new com.google.protobuf.InvalidProtocolBufferException(
814  e).setUnfinishedMessage(this);
815  } finally {
816  if (((mutable_bitField0_ & 0x08000000) != 0)) {
817  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
818  }
819  this.unknownFields = unknownFields.build();
820  makeExtensionsImmutable();
821  }
822  }
823  public static final com.google.protobuf.Descriptors.Descriptor
825  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
826  }
827 
828  @java.lang.Override
829  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
831  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
832  .ensureFieldAccessorsInitialized(
834  }
835 
844  public enum VariableOrder
845  implements com.google.protobuf.ProtocolMessageEnum {
862  ;
863 
871  public static final int IN_ORDER_VALUE = 0;
875  public static final int IN_REVERSE_ORDER_VALUE = 1;
879  public static final int IN_RANDOM_ORDER_VALUE = 2;
880 
881 
882  public final int getNumber() {
883  return value;
884  }
885 
889  @java.lang.Deprecated
890  public static VariableOrder valueOf(int value) {
891  return forNumber(value);
892  }
893 
894  public static VariableOrder forNumber(int value) {
895  switch (value) {
896  case 0: return IN_ORDER;
897  case 1: return IN_REVERSE_ORDER;
898  case 2: return IN_RANDOM_ORDER;
899  default: return null;
900  }
901  }
902 
903  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
905  return internalValueMap;
906  }
907  private static final com.google.protobuf.Internal.EnumLiteMap<
908  VariableOrder> internalValueMap =
909  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
910  public VariableOrder findValueByNumber(int number) {
911  return VariableOrder.forNumber(number);
912  }
913  };
914 
915  public final com.google.protobuf.Descriptors.EnumValueDescriptor
917  return getDescriptor().getValues().get(ordinal());
918  }
919  public final com.google.protobuf.Descriptors.EnumDescriptor
921  return getDescriptor();
922  }
923  public static final com.google.protobuf.Descriptors.EnumDescriptor
925  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
926  }
927 
928  private static final VariableOrder[] VALUES = values();
929 
930  public static VariableOrder valueOf(
931  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
932  if (desc.getType() != getDescriptor()) {
933  throw new java.lang.IllegalArgumentException(
934  "EnumValueDescriptor is not for this type.");
935  }
936  return VALUES[desc.getIndex()];
937  }
938 
939  private final int value;
940 
941  private VariableOrder(int value) {
942  this.value = value;
943  }
944 
945  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
946  }
947 
959  public enum Polarity
960  implements com.google.protobuf.ProtocolMessageEnum {
992  ;
993 
997  public static final int POLARITY_TRUE_VALUE = 0;
1001  public static final int POLARITY_FALSE_VALUE = 1;
1005  public static final int POLARITY_RANDOM_VALUE = 2;
1016  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1024  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1025 
1026 
1027  public final int getNumber() {
1028  return value;
1029  }
1030 
1034  @java.lang.Deprecated
1035  public static Polarity valueOf(int value) {
1036  return forNumber(value);
1037  }
1038 
1039  public static Polarity forNumber(int value) {
1040  switch (value) {
1041  case 0: return POLARITY_TRUE;
1042  case 1: return POLARITY_FALSE;
1043  case 2: return POLARITY_RANDOM;
1044  case 3: return POLARITY_WEIGHTED_SIGN;
1045  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1046  default: return null;
1047  }
1048  }
1049 
1050  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1052  return internalValueMap;
1053  }
1054  private static final com.google.protobuf.Internal.EnumLiteMap<
1055  Polarity> internalValueMap =
1056  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1057  public Polarity findValueByNumber(int number) {
1058  return Polarity.forNumber(number);
1059  }
1060  };
1061 
1062  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1064  return getDescriptor().getValues().get(ordinal());
1065  }
1066  public final com.google.protobuf.Descriptors.EnumDescriptor
1068  return getDescriptor();
1069  }
1070  public static final com.google.protobuf.Descriptors.EnumDescriptor
1072  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1073  }
1074 
1075  private static final Polarity[] VALUES = values();
1076 
1077  public static Polarity valueOf(
1078  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1079  if (desc.getType() != getDescriptor()) {
1080  throw new java.lang.IllegalArgumentException(
1081  "EnumValueDescriptor is not for this type.");
1082  }
1083  return VALUES[desc.getIndex()];
1084  }
1085 
1086  private final int value;
1087 
1088  private Polarity(int value) {
1089  this.value = value;
1090  }
1091 
1092  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1093  }
1094 
1103  implements com.google.protobuf.ProtocolMessageEnum {
1107  NONE(0),
1120  ;
1121 
1125  public static final int NONE_VALUE = 0;
1129  public static final int SIMPLE_VALUE = 1;
1133  public static final int RECURSIVE_VALUE = 2;
1137  public static final int EXPERIMENTAL_VALUE = 3;
1138 
1139 
1140  public final int getNumber() {
1141  return value;
1142  }
1143 
1147  @java.lang.Deprecated
1148  public static ConflictMinimizationAlgorithm valueOf(int value) {
1149  return forNumber(value);
1150  }
1151 
1152  public static ConflictMinimizationAlgorithm forNumber(int value) {
1153  switch (value) {
1154  case 0: return NONE;
1155  case 1: return SIMPLE;
1156  case 2: return RECURSIVE;
1157  case 3: return EXPERIMENTAL;
1158  default: return null;
1159  }
1160  }
1161 
1162  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1164  return internalValueMap;
1165  }
1166  private static final com.google.protobuf.Internal.EnumLiteMap<
1167  ConflictMinimizationAlgorithm> internalValueMap =
1168  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1169  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1171  }
1172  };
1173 
1174  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1176  return getDescriptor().getValues().get(ordinal());
1177  }
1178  public final com.google.protobuf.Descriptors.EnumDescriptor
1180  return getDescriptor();
1181  }
1182  public static final com.google.protobuf.Descriptors.EnumDescriptor
1184  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1185  }
1186 
1187  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1188 
1190  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1191  if (desc.getType() != getDescriptor()) {
1192  throw new java.lang.IllegalArgumentException(
1193  "EnumValueDescriptor is not for this type.");
1194  }
1195  return VALUES[desc.getIndex()];
1196  }
1197 
1198  private final int value;
1199 
1200  private ConflictMinimizationAlgorithm(int value) {
1201  this.value = value;
1202  }
1203 
1204  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1205  }
1206 
1216  implements com.google.protobuf.ProtocolMessageEnum {
1237  ;
1238 
1242  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1246  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1250  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1254  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1258  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1259 
1260 
1261  public final int getNumber() {
1262  return value;
1263  }
1264 
1268  @java.lang.Deprecated
1269  public static BinaryMinizationAlgorithm valueOf(int value) {
1270  return forNumber(value);
1271  }
1272 
1273  public static BinaryMinizationAlgorithm forNumber(int value) {
1274  switch (value) {
1275  case 0: return NO_BINARY_MINIMIZATION;
1276  case 1: return BINARY_MINIMIZATION_FIRST;
1277  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1278  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1279  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1280  default: return null;
1281  }
1282  }
1283 
1284  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1286  return internalValueMap;
1287  }
1288  private static final com.google.protobuf.Internal.EnumLiteMap<
1289  BinaryMinizationAlgorithm> internalValueMap =
1290  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1291  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1292  return BinaryMinizationAlgorithm.forNumber(number);
1293  }
1294  };
1295 
1296  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1298  return getDescriptor().getValues().get(ordinal());
1299  }
1300  public final com.google.protobuf.Descriptors.EnumDescriptor
1302  return getDescriptor();
1303  }
1304  public static final com.google.protobuf.Descriptors.EnumDescriptor
1306  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1307  }
1308 
1309  private static final BinaryMinizationAlgorithm[] VALUES = values();
1310 
1312  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1313  if (desc.getType() != getDescriptor()) {
1314  throw new java.lang.IllegalArgumentException(
1315  "EnumValueDescriptor is not for this type.");
1316  }
1317  return VALUES[desc.getIndex()];
1318  }
1319 
1320  private final int value;
1321 
1322  private BinaryMinizationAlgorithm(int value) {
1323  this.value = value;
1324  }
1325 
1326  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1327  }
1328 
1338  public enum ClauseProtection
1339  implements com.google.protobuf.ProtocolMessageEnum {
1364  ;
1365 
1373  public static final int PROTECTION_NONE_VALUE = 0;
1381  public static final int PROTECTION_ALWAYS_VALUE = 1;
1389  public static final int PROTECTION_LBD_VALUE = 2;
1390 
1391 
1392  public final int getNumber() {
1393  return value;
1394  }
1395 
1399  @java.lang.Deprecated
1400  public static ClauseProtection valueOf(int value) {
1401  return forNumber(value);
1402  }
1403 
1404  public static ClauseProtection forNumber(int value) {
1405  switch (value) {
1406  case 0: return PROTECTION_NONE;
1407  case 1: return PROTECTION_ALWAYS;
1408  case 2: return PROTECTION_LBD;
1409  default: return null;
1410  }
1411  }
1412 
1413  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1415  return internalValueMap;
1416  }
1417  private static final com.google.protobuf.Internal.EnumLiteMap<
1418  ClauseProtection> internalValueMap =
1419  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1420  public ClauseProtection findValueByNumber(int number) {
1421  return ClauseProtection.forNumber(number);
1422  }
1423  };
1424 
1425  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1427  return getDescriptor().getValues().get(ordinal());
1428  }
1429  public final com.google.protobuf.Descriptors.EnumDescriptor
1431  return getDescriptor();
1432  }
1433  public static final com.google.protobuf.Descriptors.EnumDescriptor
1435  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1436  }
1437 
1438  private static final ClauseProtection[] VALUES = values();
1439 
1440  public static ClauseProtection valueOf(
1441  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1442  if (desc.getType() != getDescriptor()) {
1443  throw new java.lang.IllegalArgumentException(
1444  "EnumValueDescriptor is not for this type.");
1445  }
1446  return VALUES[desc.getIndex()];
1447  }
1448 
1449  private final int value;
1450 
1451  private ClauseProtection(int value) {
1452  this.value = value;
1453  }
1454 
1455  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1456  }
1457 
1466  public enum ClauseOrdering
1467  implements com.google.protobuf.ProtocolMessageEnum {
1484  ;
1485 
1493  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1501  public static final int CLAUSE_LBD_VALUE = 1;
1502 
1503 
1504  public final int getNumber() {
1505  return value;
1506  }
1507 
1511  @java.lang.Deprecated
1512  public static ClauseOrdering valueOf(int value) {
1513  return forNumber(value);
1514  }
1515 
1516  public static ClauseOrdering forNumber(int value) {
1517  switch (value) {
1518  case 0: return CLAUSE_ACTIVITY;
1519  case 1: return CLAUSE_LBD;
1520  default: return null;
1521  }
1522  }
1523 
1524  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1526  return internalValueMap;
1527  }
1528  private static final com.google.protobuf.Internal.EnumLiteMap<
1529  ClauseOrdering> internalValueMap =
1530  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1531  public ClauseOrdering findValueByNumber(int number) {
1532  return ClauseOrdering.forNumber(number);
1533  }
1534  };
1535 
1536  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1538  return getDescriptor().getValues().get(ordinal());
1539  }
1540  public final com.google.protobuf.Descriptors.EnumDescriptor
1542  return getDescriptor();
1543  }
1544  public static final com.google.protobuf.Descriptors.EnumDescriptor
1546  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1547  }
1548 
1549  private static final ClauseOrdering[] VALUES = values();
1550 
1551  public static ClauseOrdering valueOf(
1552  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1553  if (desc.getType() != getDescriptor()) {
1554  throw new java.lang.IllegalArgumentException(
1555  "EnumValueDescriptor is not for this type.");
1556  }
1557  return VALUES[desc.getIndex()];
1558  }
1559 
1560  private final int value;
1561 
1562  private ClauseOrdering(int value) {
1563  this.value = value;
1564  }
1565 
1566  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1567  }
1568 
1580  public enum RestartAlgorithm
1581  implements com.google.protobuf.ProtocolMessageEnum {
1618  ;
1619 
1623  public static final int NO_RESTART_VALUE = 0;
1631  public static final int LUBY_RESTART_VALUE = 1;
1639  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1647  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1655  public static final int FIXED_RESTART_VALUE = 4;
1656 
1657 
1658  public final int getNumber() {
1659  return value;
1660  }
1661 
1665  @java.lang.Deprecated
1666  public static RestartAlgorithm valueOf(int value) {
1667  return forNumber(value);
1668  }
1669 
1670  public static RestartAlgorithm forNumber(int value) {
1671  switch (value) {
1672  case 0: return NO_RESTART;
1673  case 1: return LUBY_RESTART;
1674  case 2: return DL_MOVING_AVERAGE_RESTART;
1675  case 3: return LBD_MOVING_AVERAGE_RESTART;
1676  case 4: return FIXED_RESTART;
1677  default: return null;
1678  }
1679  }
1680 
1681  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1683  return internalValueMap;
1684  }
1685  private static final com.google.protobuf.Internal.EnumLiteMap<
1686  RestartAlgorithm> internalValueMap =
1687  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1688  public RestartAlgorithm findValueByNumber(int number) {
1689  return RestartAlgorithm.forNumber(number);
1690  }
1691  };
1692 
1693  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1695  return getDescriptor().getValues().get(ordinal());
1696  }
1697  public final com.google.protobuf.Descriptors.EnumDescriptor
1699  return getDescriptor();
1700  }
1701  public static final com.google.protobuf.Descriptors.EnumDescriptor
1703  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1704  }
1705 
1706  private static final RestartAlgorithm[] VALUES = values();
1707 
1708  public static RestartAlgorithm valueOf(
1709  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1710  if (desc.getType() != getDescriptor()) {
1711  throw new java.lang.IllegalArgumentException(
1712  "EnumValueDescriptor is not for this type.");
1713  }
1714  return VALUES[desc.getIndex()];
1715  }
1716 
1717  private final int value;
1718 
1719  private RestartAlgorithm(int value) {
1720  this.value = value;
1721  }
1722 
1723  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1724  }
1725 
1734  implements com.google.protobuf.ProtocolMessageEnum {
1747  ;
1748 
1752  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1756  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1760  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1761 
1762 
1763  public final int getNumber() {
1764  return value;
1765  }
1766 
1770  @java.lang.Deprecated
1771  public static MaxSatAssumptionOrder valueOf(int value) {
1772  return forNumber(value);
1773  }
1774 
1775  public static MaxSatAssumptionOrder forNumber(int value) {
1776  switch (value) {
1777  case 0: return DEFAULT_ASSUMPTION_ORDER;
1778  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1779  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1780  default: return null;
1781  }
1782  }
1783 
1784  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1786  return internalValueMap;
1787  }
1788  private static final com.google.protobuf.Internal.EnumLiteMap<
1789  MaxSatAssumptionOrder> internalValueMap =
1790  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1791  public MaxSatAssumptionOrder findValueByNumber(int number) {
1792  return MaxSatAssumptionOrder.forNumber(number);
1793  }
1794  };
1795 
1796  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1798  return getDescriptor().getValues().get(ordinal());
1799  }
1800  public final com.google.protobuf.Descriptors.EnumDescriptor
1802  return getDescriptor();
1803  }
1804  public static final com.google.protobuf.Descriptors.EnumDescriptor
1806  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1807  }
1808 
1809  private static final MaxSatAssumptionOrder[] VALUES = values();
1810 
1812  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1813  if (desc.getType() != getDescriptor()) {
1814  throw new java.lang.IllegalArgumentException(
1815  "EnumValueDescriptor is not for this type.");
1816  }
1817  return VALUES[desc.getIndex()];
1818  }
1819 
1820  private final int value;
1821 
1822  private MaxSatAssumptionOrder(int value) {
1823  this.value = value;
1824  }
1825 
1826  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1827  }
1828 
1837  implements com.google.protobuf.ProtocolMessageEnum {
1866  ;
1867 
1875  public static final int STRATIFICATION_NONE_VALUE = 0;
1884  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1895  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1896 
1897 
1898  public final int getNumber() {
1899  return value;
1900  }
1901 
1905  @java.lang.Deprecated
1906  public static MaxSatStratificationAlgorithm valueOf(int value) {
1907  return forNumber(value);
1908  }
1909 
1910  public static MaxSatStratificationAlgorithm forNumber(int value) {
1911  switch (value) {
1912  case 0: return STRATIFICATION_NONE;
1913  case 1: return STRATIFICATION_DESCENT;
1914  case 2: return STRATIFICATION_ASCENT;
1915  default: return null;
1916  }
1917  }
1918 
1919  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1921  return internalValueMap;
1922  }
1923  private static final com.google.protobuf.Internal.EnumLiteMap<
1924  MaxSatStratificationAlgorithm> internalValueMap =
1925  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1926  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1928  }
1929  };
1930 
1931  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1933  return getDescriptor().getValues().get(ordinal());
1934  }
1935  public final com.google.protobuf.Descriptors.EnumDescriptor
1937  return getDescriptor();
1938  }
1939  public static final com.google.protobuf.Descriptors.EnumDescriptor
1941  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1942  }
1943 
1944  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1945 
1947  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1948  if (desc.getType() != getDescriptor()) {
1949  throw new java.lang.IllegalArgumentException(
1950  "EnumValueDescriptor is not for this type.");
1951  }
1952  return VALUES[desc.getIndex()];
1953  }
1954 
1955  private final int value;
1956 
1957  private MaxSatStratificationAlgorithm(int value) {
1958  this.value = value;
1959  }
1960 
1961  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1962  }
1963 
1971  public enum SearchBranching
1972  implements com.google.protobuf.ProtocolMessageEnum {
2040  ;
2041 
2050  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2060  public static final int FIXED_SEARCH_VALUE = 1;
2068  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2078  public static final int LP_SEARCH_VALUE = 3;
2088  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2098  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2108  public static final int HINT_SEARCH_VALUE = 6;
2109 
2110 
2111  public final int getNumber() {
2112  return value;
2113  }
2114 
2118  @java.lang.Deprecated
2119  public static SearchBranching valueOf(int value) {
2120  return forNumber(value);
2121  }
2122 
2123  public static SearchBranching forNumber(int value) {
2124  switch (value) {
2125  case 0: return AUTOMATIC_SEARCH;
2126  case 1: return FIXED_SEARCH;
2127  case 2: return PORTFOLIO_SEARCH;
2128  case 3: return LP_SEARCH;
2129  case 4: return PSEUDO_COST_SEARCH;
2130  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2131  case 6: return HINT_SEARCH;
2132  default: return null;
2133  }
2134  }
2135 
2136  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2138  return internalValueMap;
2139  }
2140  private static final com.google.protobuf.Internal.EnumLiteMap<
2141  SearchBranching> internalValueMap =
2142  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2143  public SearchBranching findValueByNumber(int number) {
2144  return SearchBranching.forNumber(number);
2145  }
2146  };
2147 
2148  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2150  return getDescriptor().getValues().get(ordinal());
2151  }
2152  public final com.google.protobuf.Descriptors.EnumDescriptor
2154  return getDescriptor();
2155  }
2156  public static final com.google.protobuf.Descriptors.EnumDescriptor
2158  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2159  }
2160 
2161  private static final SearchBranching[] VALUES = values();
2162 
2163  public static SearchBranching valueOf(
2164  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2165  if (desc.getType() != getDescriptor()) {
2166  throw new java.lang.IllegalArgumentException(
2167  "EnumValueDescriptor is not for this type.");
2168  }
2169  return VALUES[desc.getIndex()];
2170  }
2171 
2172  private final int value;
2173 
2174  private SearchBranching(int value) {
2175  this.value = value;
2176  }
2177 
2178  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2179  }
2180 
2181  private int bitField0_;
2182  private int bitField1_;
2183  private int bitField2_;
2184  private int bitField3_;
2185  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2186  private int preferredVariableOrder_;
2190  public boolean hasPreferredVariableOrder() {
2191  return ((bitField0_ & 0x00000001) != 0);
2192  }
2197  @SuppressWarnings("deprecation")
2199  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2200  }
2201 
2202  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2203  private int initialPolarity_;
2207  public boolean hasInitialPolarity() {
2208  return ((bitField0_ & 0x00000002) != 0);
2209  }
2214  @SuppressWarnings("deprecation")
2216  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2217  }
2218 
2219  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2220  private boolean usePhaseSaving_;
2234  public boolean hasUsePhaseSaving() {
2235  return ((bitField0_ & 0x00000004) != 0);
2236  }
2250  public boolean getUsePhaseSaving() {
2251  return usePhaseSaving_;
2252  }
2253 
2254  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2255  private double randomPolarityRatio_;
2267  public boolean hasRandomPolarityRatio() {
2268  return ((bitField0_ & 0x00000008) != 0);
2269  }
2281  public double getRandomPolarityRatio() {
2282  return randomPolarityRatio_;
2283  }
2284 
2285  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2286  private double randomBranchesRatio_;
2296  public boolean hasRandomBranchesRatio() {
2297  return ((bitField0_ & 0x00000010) != 0);
2298  }
2308  public double getRandomBranchesRatio() {
2309  return randomBranchesRatio_;
2310  }
2311 
2312  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2313  private boolean useErwaHeuristic_;
2323  public boolean hasUseErwaHeuristic() {
2324  return ((bitField0_ & 0x00000020) != 0);
2325  }
2335  public boolean getUseErwaHeuristic() {
2336  return useErwaHeuristic_;
2337  }
2338 
2339  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2340  private double initialVariablesActivity_;
2353  public boolean hasInitialVariablesActivity() {
2354  return ((bitField0_ & 0x00000040) != 0);
2355  }
2369  return initialVariablesActivity_;
2370  }
2371 
2373  private boolean alsoBumpVariablesInConflictReasons_;
2385  return ((bitField0_ & 0x00000080) != 0);
2386  }
2398  return alsoBumpVariablesInConflictReasons_;
2399  }
2400 
2401  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2402  private int minimizationAlgorithm_;
2406  public boolean hasMinimizationAlgorithm() {
2407  return ((bitField0_ & 0x00000100) != 0);
2408  }
2413  @SuppressWarnings("deprecation")
2415  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2416  }
2417 
2418  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2419  private int binaryMinimizationAlgorithm_;
2424  return ((bitField0_ & 0x00000200) != 0);
2425  }
2430  @SuppressWarnings("deprecation")
2433  }
2434 
2436  private boolean subsumptionDuringConflictAnalysis_;
2448  return ((bitField0_ & 0x00000400) != 0);
2449  }
2461  return subsumptionDuringConflictAnalysis_;
2462  }
2463 
2464  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2465  private int clauseCleanupPeriod_;
2473  public boolean hasClauseCleanupPeriod() {
2474  return ((bitField0_ & 0x00000800) != 0);
2475  }
2483  public int getClauseCleanupPeriod() {
2484  return clauseCleanupPeriod_;
2485  }
2486 
2487  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2488  private int clauseCleanupTarget_;
2497  public boolean hasClauseCleanupTarget() {
2498  return ((bitField0_ & 0x00001000) != 0);
2499  }
2508  public int getClauseCleanupTarget() {
2509  return clauseCleanupTarget_;
2510  }
2511 
2512  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2513  private int clauseCleanupProtection_;
2517  public boolean hasClauseCleanupProtection() {
2518  return ((bitField0_ & 0x00002000) != 0);
2519  }
2524  @SuppressWarnings("deprecation")
2526  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2527  }
2528 
2529  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2530  private int clauseCleanupLbdBound_;
2539  public boolean hasClauseCleanupLbdBound() {
2540  return ((bitField0_ & 0x00004000) != 0);
2541  }
2551  return clauseCleanupLbdBound_;
2552  }
2553 
2554  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2555  private int clauseCleanupOrdering_;
2559  public boolean hasClauseCleanupOrdering() {
2560  return ((bitField0_ & 0x00008000) != 0);
2561  }
2566  @SuppressWarnings("deprecation")
2568  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2569  }
2570 
2571  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2572  private int pbCleanupIncrement_;
2580  public boolean hasPbCleanupIncrement() {
2581  return ((bitField0_ & 0x00010000) != 0);
2582  }
2590  public int getPbCleanupIncrement() {
2591  return pbCleanupIncrement_;
2592  }
2593 
2594  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2595  private double pbCleanupRatio_;
2599  public boolean hasPbCleanupRatio() {
2600  return ((bitField0_ & 0x00020000) != 0);
2601  }
2605  public double getPbCleanupRatio() {
2606  return pbCleanupRatio_;
2607  }
2608 
2610  private int minimizeWithPropagationRestartPeriod_;
2629  return ((bitField0_ & 0x00040000) != 0);
2630  }
2649  return minimizeWithPropagationRestartPeriod_;
2650  }
2651 
2653  private int minimizeWithPropagationNumDecisions_;
2658  return ((bitField0_ & 0x00080000) != 0);
2659  }
2664  return minimizeWithPropagationNumDecisions_;
2665  }
2666 
2667  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2668  private double variableActivityDecay_;
2682  public boolean hasVariableActivityDecay() {
2683  return ((bitField0_ & 0x00100000) != 0);
2684  }
2698  public double getVariableActivityDecay() {
2699  return variableActivityDecay_;
2700  }
2701 
2702  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2703  private double maxVariableActivityValue_;
2707  public boolean hasMaxVariableActivityValue() {
2708  return ((bitField0_ & 0x00200000) != 0);
2709  }
2714  return maxVariableActivityValue_;
2715  }
2716 
2717  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2718  private double glucoseMaxDecay_;
2729  public boolean hasGlucoseMaxDecay() {
2730  return ((bitField0_ & 0x00400000) != 0);
2731  }
2742  public double getGlucoseMaxDecay() {
2743  return glucoseMaxDecay_;
2744  }
2745 
2746  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2747  private double glucoseDecayIncrement_;
2751  public boolean hasGlucoseDecayIncrement() {
2752  return ((bitField0_ & 0x00800000) != 0);
2753  }
2757  public double getGlucoseDecayIncrement() {
2758  return glucoseDecayIncrement_;
2759  }
2760 
2761  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2762  private int glucoseDecayIncrementPeriod_;
2767  return ((bitField0_ & 0x01000000) != 0);
2768  }
2773  return glucoseDecayIncrementPeriod_;
2774  }
2775 
2776  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2777  private double clauseActivityDecay_;
2785  public boolean hasClauseActivityDecay() {
2786  return ((bitField0_ & 0x02000000) != 0);
2787  }
2795  public double getClauseActivityDecay() {
2796  return clauseActivityDecay_;
2797  }
2798 
2799  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2800  private double maxClauseActivityValue_;
2804  public boolean hasMaxClauseActivityValue() {
2805  return ((bitField0_ & 0x04000000) != 0);
2806  }
2810  public double getMaxClauseActivityValue() {
2811  return maxClauseActivityValue_;
2812  }
2813 
2814  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2815  private java.util.List<java.lang.Integer> restartAlgorithms_;
2816  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2817  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2818  new com.google.protobuf.Internal.ListAdapter.Converter<
2819  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2820  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2821  @SuppressWarnings("deprecation")
2823  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2824  }
2825  };
2841  return new com.google.protobuf.Internal.ListAdapter<
2842  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2843  }
2859  return restartAlgorithms_.size();
2860  }
2876  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2877  }
2878 
2879  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2880  private volatile java.lang.Object defaultRestartAlgorithms_;
2884  public boolean hasDefaultRestartAlgorithms() {
2885  return ((bitField0_ & 0x08000000) != 0);
2886  }
2890  public java.lang.String getDefaultRestartAlgorithms() {
2891  java.lang.Object ref = defaultRestartAlgorithms_;
2892  if (ref instanceof java.lang.String) {
2893  return (java.lang.String) ref;
2894  } else {
2895  com.google.protobuf.ByteString bs =
2896  (com.google.protobuf.ByteString) ref;
2897  java.lang.String s = bs.toStringUtf8();
2898  if (bs.isValidUtf8()) {
2899  defaultRestartAlgorithms_ = s;
2900  }
2901  return s;
2902  }
2903  }
2907  public com.google.protobuf.ByteString
2909  java.lang.Object ref = defaultRestartAlgorithms_;
2910  if (ref instanceof java.lang.String) {
2911  com.google.protobuf.ByteString b =
2912  com.google.protobuf.ByteString.copyFromUtf8(
2913  (java.lang.String) ref);
2914  defaultRestartAlgorithms_ = b;
2915  return b;
2916  } else {
2917  return (com.google.protobuf.ByteString) ref;
2918  }
2919  }
2920 
2921  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2922  private int restartPeriod_;
2931  public boolean hasRestartPeriod() {
2932  return ((bitField0_ & 0x10000000) != 0);
2933  }
2942  public int getRestartPeriod() {
2943  return restartPeriod_;
2944  }
2945 
2946  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2947  private int restartRunningWindowSize_;
2955  public boolean hasRestartRunningWindowSize() {
2956  return ((bitField0_ & 0x20000000) != 0);
2957  }
2966  return restartRunningWindowSize_;
2967  }
2968 
2969  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
2970  private double restartDlAverageRatio_;
2979  public boolean hasRestartDlAverageRatio() {
2980  return ((bitField0_ & 0x40000000) != 0);
2981  }
2990  public double getRestartDlAverageRatio() {
2991  return restartDlAverageRatio_;
2992  }
2993 
2994  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
2995  private double restartLbdAverageRatio_;
2999  public boolean hasRestartLbdAverageRatio() {
3000  return ((bitField0_ & 0x80000000) != 0);
3001  }
3005  public double getRestartLbdAverageRatio() {
3006  return restartLbdAverageRatio_;
3007  }
3008 
3009  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3010  private boolean useBlockingRestart_;
3020  public boolean hasUseBlockingRestart() {
3021  return ((bitField1_ & 0x00000001) != 0);
3022  }
3032  public boolean getUseBlockingRestart() {
3033  return useBlockingRestart_;
3034  }
3035 
3036  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3037  private int blockingRestartWindowSize_;
3041  public boolean hasBlockingRestartWindowSize() {
3042  return ((bitField1_ & 0x00000002) != 0);
3043  }
3048  return blockingRestartWindowSize_;
3049  }
3050 
3051  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3052  private double blockingRestartMultiplier_;
3056  public boolean hasBlockingRestartMultiplier() {
3057  return ((bitField1_ & 0x00000004) != 0);
3058  }
3063  return blockingRestartMultiplier_;
3064  }
3065 
3067  private int numConflictsBeforeStrategyChanges_;
3078  return ((bitField1_ & 0x00000008) != 0);
3079  }
3090  return numConflictsBeforeStrategyChanges_;
3091  }
3092 
3093  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3094  private double strategyChangeIncreaseRatio_;
3104  return ((bitField1_ & 0x00000010) != 0);
3105  }
3115  return strategyChangeIncreaseRatio_;
3116  }
3117 
3118  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3119  private double maxTimeInSeconds_;
3129  public boolean hasMaxTimeInSeconds() {
3130  return ((bitField1_ & 0x00000020) != 0);
3131  }
3141  public double getMaxTimeInSeconds() {
3142  return maxTimeInSeconds_;
3143  }
3144 
3145  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3146  private double maxDeterministicTime_;
3158  public boolean hasMaxDeterministicTime() {
3159  return ((bitField1_ & 0x00000040) != 0);
3160  }
3172  public double getMaxDeterministicTime() {
3173  return maxDeterministicTime_;
3174  }
3175 
3176  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3177  private long maxNumberOfConflicts_;
3190  public boolean hasMaxNumberOfConflicts() {
3191  return ((bitField1_ & 0x00000080) != 0);
3192  }
3205  public long getMaxNumberOfConflicts() {
3206  return maxNumberOfConflicts_;
3207  }
3208 
3209  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3210  private long maxMemoryInMb_;
3221  public boolean hasMaxMemoryInMb() {
3222  return ((bitField1_ & 0x00000100) != 0);
3223  }
3234  public long getMaxMemoryInMb() {
3235  return maxMemoryInMb_;
3236  }
3237 
3238  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3239  private boolean treatBinaryClausesSeparately_;
3250  return ((bitField1_ & 0x00000200) != 0);
3251  }
3262  return treatBinaryClausesSeparately_;
3263  }
3264 
3265  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3266  private int randomSeed_;
3279  public boolean hasRandomSeed() {
3280  return ((bitField1_ & 0x00000400) != 0);
3281  }
3294  public int getRandomSeed() {
3295  return randomSeed_;
3296  }
3297 
3298  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3299  private boolean logSearchProgress_;
3307  public boolean hasLogSearchProgress() {
3308  return ((bitField1_ & 0x00000800) != 0);
3309  }
3317  public boolean getLogSearchProgress() {
3318  return logSearchProgress_;
3319  }
3320 
3321  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3322  private boolean usePbResolution_;
3333  public boolean hasUsePbResolution() {
3334  return ((bitField1_ & 0x00001000) != 0);
3335  }
3346  public boolean getUsePbResolution() {
3347  return usePbResolution_;
3348  }
3349 
3351  private boolean minimizeReductionDuringPbResolution_;
3363  return ((bitField1_ & 0x00002000) != 0);
3364  }
3376  return minimizeReductionDuringPbResolution_;
3377  }
3378 
3379  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3380  private boolean countAssumptionLevelsInLbd_;
3396  return ((bitField1_ & 0x00004000) != 0);
3397  }
3413  return countAssumptionLevelsInLbd_;
3414  }
3415 
3416  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3417  private int presolveBveThreshold_;
3427  public boolean hasPresolveBveThreshold() {
3428  return ((bitField1_ & 0x00008000) != 0);
3429  }
3440  return presolveBveThreshold_;
3441  }
3442 
3443  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3444  private int presolveBveClauseWeight_;
3453  public boolean hasPresolveBveClauseWeight() {
3454  return ((bitField1_ & 0x00010000) != 0);
3455  }
3465  return presolveBveClauseWeight_;
3466  }
3467 
3469  private double presolveProbingDeterministicTimeLimit_;
3479  return ((bitField1_ & 0x00020000) != 0);
3480  }
3490  return presolveProbingDeterministicTimeLimit_;
3491  }
3492 
3493  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3494  private boolean presolveBlockedClause_;
3503  public boolean hasPresolveBlockedClause() {
3504  return ((bitField1_ & 0x00040000) != 0);
3505  }
3514  public boolean getPresolveBlockedClause() {
3515  return presolveBlockedClause_;
3516  }
3517 
3518  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3519  private boolean presolveUseBva_;
3527  public boolean hasPresolveUseBva() {
3528  return ((bitField1_ & 0x00080000) != 0);
3529  }
3537  public boolean getPresolveUseBva() {
3538  return presolveUseBva_;
3539  }
3540 
3541  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3542  private int presolveBvaThreshold_;
3553  public boolean hasPresolveBvaThreshold() {
3554  return ((bitField1_ & 0x00100000) != 0);
3555  }
3567  return presolveBvaThreshold_;
3568  }
3569 
3570  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3571  private boolean useOptimizationHints_;
3582  public boolean hasUseOptimizationHints() {
3583  return ((bitField1_ & 0x00200000) != 0);
3584  }
3595  public boolean getUseOptimizationHints() {
3596  return useOptimizationHints_;
3597  }
3598 
3599  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3600  private boolean minimizeCore_;
3608  public boolean hasMinimizeCore() {
3609  return ((bitField1_ & 0x00400000) != 0);
3610  }
3618  public boolean getMinimizeCore() {
3619  return minimizeCore_;
3620  }
3621 
3622  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3623  private boolean findMultipleCores_;
3632  public boolean hasFindMultipleCores() {
3633  return ((bitField1_ & 0x00800000) != 0);
3634  }
3643  public boolean getFindMultipleCores() {
3644  return findMultipleCores_;
3645  }
3646 
3647  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3648  private boolean coverOptimization_;
3657  public boolean hasCoverOptimization() {
3658  return ((bitField1_ & 0x01000000) != 0);
3659  }
3668  public boolean getCoverOptimization() {
3669  return coverOptimization_;
3670  }
3671 
3672  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3673  private int maxSatAssumptionOrder_;
3677  public boolean hasMaxSatAssumptionOrder() {
3678  return ((bitField1_ & 0x02000000) != 0);
3679  }
3684  @SuppressWarnings("deprecation")
3687  }
3688 
3690  private boolean maxSatReverseAssumptionOrder_;
3700  return ((bitField1_ & 0x04000000) != 0);
3701  }
3711  return maxSatReverseAssumptionOrder_;
3712  }
3713 
3714  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3715  private int maxSatStratification_;
3719  public boolean hasMaxSatStratification() {
3720  return ((bitField1_ & 0x08000000) != 0);
3721  }
3726  @SuppressWarnings("deprecation")
3729  }
3730 
3732  private boolean usePrecedencesInDisjunctiveConstraint_;
3748  return ((bitField1_ & 0x10000000) != 0);
3749  }
3765  return usePrecedencesInDisjunctiveConstraint_;
3766  }
3767 
3769  private boolean useOverloadCheckerInCumulativeConstraint_;
3783  return ((bitField1_ & 0x20000000) != 0);
3784  }
3798  return useOverloadCheckerInCumulativeConstraint_;
3799  }
3800 
3802  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3816  return ((bitField1_ & 0x40000000) != 0);
3817  }
3831  return useTimetableEdgeFindingInCumulativeConstraint_;
3832  }
3833 
3835  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
3851  return ((bitField1_ & 0x80000000) != 0);
3852  }
3868  return useDisjunctiveConstraintInCumulativeConstraint_;
3869  }
3870 
3871  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
3872  private int linearizationLevel_;
3883  public boolean hasLinearizationLevel() {
3884  return ((bitField2_ & 0x00000001) != 0);
3885  }
3896  public int getLinearizationLevel() {
3897  return linearizationLevel_;
3898  }
3899 
3900  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
3901  private int booleanEncodingLevel_;
3910  public boolean hasBooleanEncodingLevel() {
3911  return ((bitField2_ & 0x00000002) != 0);
3912  }
3922  return booleanEncodingLevel_;
3923  }
3924 
3925  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
3926  private int maxNumCuts_;
3935  public boolean hasMaxNumCuts() {
3936  return ((bitField2_ & 0x00000004) != 0);
3937  }
3946  public int getMaxNumCuts() {
3947  return maxNumCuts_;
3948  }
3949 
3950  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
3951  private boolean onlyAddCutsAtLevelZero_;
3960  public boolean hasOnlyAddCutsAtLevelZero() {
3961  return ((bitField2_ & 0x00000008) != 0);
3962  }
3971  public boolean getOnlyAddCutsAtLevelZero() {
3972  return onlyAddCutsAtLevelZero_;
3973  }
3974 
3975  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
3976  private boolean addKnapsackCuts_;
3986  public boolean hasAddKnapsackCuts() {
3987  return ((bitField2_ & 0x00000010) != 0);
3988  }
3998  public boolean getAddKnapsackCuts() {
3999  return addKnapsackCuts_;
4000  }
4001 
4002  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4003  private boolean addCgCuts_;
4012  public boolean hasAddCgCuts() {
4013  return ((bitField2_ & 0x00000020) != 0);
4014  }
4023  public boolean getAddCgCuts() {
4024  return addCgCuts_;
4025  }
4026 
4027  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4028  private boolean addMirCuts_;
4037  public boolean hasAddMirCuts() {
4038  return ((bitField2_ & 0x00000040) != 0);
4039  }
4048  public boolean getAddMirCuts() {
4049  return addMirCuts_;
4050  }
4051 
4052  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4053  private boolean useMirRounding_;
4063  public boolean hasUseMirRounding() {
4064  return ((bitField2_ & 0x00000080) != 0);
4065  }
4075  public boolean getUseMirRounding() {
4076  return useMirRounding_;
4077  }
4078 
4079  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4080  private int maxIntegerRoundingScaling_;
4092  public boolean hasMaxIntegerRoundingScaling() {
4093  return ((bitField2_ & 0x00000100) != 0);
4094  }
4107  return maxIntegerRoundingScaling_;
4108  }
4109 
4110  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4111  private boolean addLpConstraintsLazily_;
4122  public boolean hasAddLpConstraintsLazily() {
4123  return ((bitField2_ & 0x00000200) != 0);
4124  }
4135  public boolean getAddLpConstraintsLazily() {
4136  return addLpConstraintsLazily_;
4137  }
4138 
4140  private double minOrthogonalityForLpConstraints_;
4153  return ((bitField2_ & 0x00000400) != 0);
4154  }
4167  return minOrthogonalityForLpConstraints_;
4168  }
4169 
4170  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4171  private long maxInactiveCount_;
4180  public boolean hasMaxInactiveCount() {
4181  return ((bitField2_ & 0x00000800) != 0);
4182  }
4191  public long getMaxInactiveCount() {
4192  return maxInactiveCount_;
4193  }
4194 
4195  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4196  private long constraintRemovalBatchSize_;
4206  return ((bitField2_ & 0x00001000) != 0);
4207  }
4217  return constraintRemovalBatchSize_;
4218  }
4219 
4220  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4221  private int searchBranching_;
4225  public boolean hasSearchBranching() {
4226  return ((bitField2_ & 0x00002000) != 0);
4227  }
4232  @SuppressWarnings("deprecation")
4234  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4235  }
4236 
4237  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4238  private boolean exploitIntegerLpSolution_;
4249  public boolean hasExploitIntegerLpSolution() {
4250  return ((bitField2_ & 0x00004000) != 0);
4251  }
4262  public boolean getExploitIntegerLpSolution() {
4263  return exploitIntegerLpSolution_;
4264  }
4265 
4266  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4267  private boolean exploitAllLpSolution_;
4277  public boolean hasExploitAllLpSolution() {
4278  return ((bitField2_ & 0x00008000) != 0);
4279  }
4289  public boolean getExploitAllLpSolution() {
4290  return exploitAllLpSolution_;
4291  }
4292 
4293  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4294  private boolean exploitBestSolution_;
4302  public boolean hasExploitBestSolution() {
4303  return ((bitField2_ & 0x00010000) != 0);
4304  }
4312  public boolean getExploitBestSolution() {
4313  return exploitBestSolution_;
4314  }
4315 
4316  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4317  private boolean exploitObjective_;
4326  public boolean hasExploitObjective() {
4327  return ((bitField2_ & 0x00020000) != 0);
4328  }
4337  public boolean getExploitObjective() {
4338  return exploitObjective_;
4339  }
4340 
4341  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4342  private long pseudoCostReliabilityThreshold_;
4352  return ((bitField2_ & 0x00040000) != 0);
4353  }
4363  return pseudoCostReliabilityThreshold_;
4364  }
4365 
4366  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4367  private boolean optimizeWithCore_;
4378  public boolean hasOptimizeWithCore() {
4379  return ((bitField2_ & 0x00080000) != 0);
4380  }
4391  public boolean getOptimizeWithCore() {
4392  return optimizeWithCore_;
4393  }
4394 
4395  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4396  private int binarySearchNumConflicts_;
4407  public boolean hasBinarySearchNumConflicts() {
4408  return ((bitField2_ & 0x00100000) != 0);
4409  }
4421  return binarySearchNumConflicts_;
4422  }
4423 
4424  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4425  private boolean optimizeWithMaxHs_;
4438  public boolean hasOptimizeWithMaxHs() {
4439  return ((bitField2_ & 0x00200000) != 0);
4440  }
4453  public boolean getOptimizeWithMaxHs() {
4454  return optimizeWithMaxHs_;
4455  }
4456 
4457  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
4458  private boolean cpModelPresolve_;
4466  public boolean hasCpModelPresolve() {
4467  return ((bitField2_ & 0x00400000) != 0);
4468  }
4476  public boolean getCpModelPresolve() {
4477  return cpModelPresolve_;
4478  }
4479 
4480  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
4481  private int cpModelProbingLevel_;
4489  public boolean hasCpModelProbingLevel() {
4490  return ((bitField2_ & 0x00800000) != 0);
4491  }
4499  public int getCpModelProbingLevel() {
4500  return cpModelProbingLevel_;
4501  }
4502 
4503  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
4504  private boolean cpModelUseSatPresolve_;
4512  public boolean hasCpModelUseSatPresolve() {
4513  return ((bitField2_ & 0x01000000) != 0);
4514  }
4522  public boolean getCpModelUseSatPresolve() {
4523  return cpModelUseSatPresolve_;
4524  }
4525 
4526  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4527  private boolean enumerateAllSolutions_;
4540  public boolean hasEnumerateAllSolutions() {
4541  return ((bitField2_ & 0x02000000) != 0);
4542  }
4555  public boolean getEnumerateAllSolutions() {
4556  return enumerateAllSolutions_;
4557  }
4558 
4560  private boolean fillTightenedDomainsInResponse_;
4573  return ((bitField2_ & 0x04000000) != 0);
4574  }
4587  return fillTightenedDomainsInResponse_;
4588  }
4589 
4590  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4591  private boolean instantiateAllVariables_;
4600  public boolean hasInstantiateAllVariables() {
4601  return ((bitField2_ & 0x08000000) != 0);
4602  }
4611  public boolean getInstantiateAllVariables() {
4612  return instantiateAllVariables_;
4613  }
4614 
4616  private boolean autoDetectGreaterThanAtLeastOneOf_;
4628  return ((bitField2_ & 0x10000000) != 0);
4629  }
4641  return autoDetectGreaterThanAtLeastOneOf_;
4642  }
4643 
4644  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4645  private boolean stopAfterFirstSolution_;
4653  public boolean hasStopAfterFirstSolution() {
4654  return ((bitField2_ & 0x20000000) != 0);
4655  }
4663  public boolean getStopAfterFirstSolution() {
4664  return stopAfterFirstSolution_;
4665  }
4666 
4667  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4668  private int numSearchWorkers_;
4677  public boolean hasNumSearchWorkers() {
4678  return ((bitField2_ & 0x40000000) != 0);
4679  }
4688  public int getNumSearchWorkers() {
4689  return numSearchWorkers_;
4690  }
4691 
4692  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
4693  private boolean deterministicParallelSearch_;
4704  return ((bitField2_ & 0x80000000) != 0);
4705  }
4716  return deterministicParallelSearch_;
4717  }
4718 
4719  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4720  private boolean shareObjectiveBounds_;
4728  public boolean hasShareObjectiveBounds() {
4729  return ((bitField3_ & 0x00000001) != 0);
4730  }
4738  public boolean getShareObjectiveBounds() {
4739  return shareObjectiveBounds_;
4740  }
4741 
4742  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4743  private boolean shareLevelZeroBounds_;
4751  public boolean hasShareLevelZeroBounds() {
4752  return ((bitField3_ & 0x00000002) != 0);
4753  }
4761  public boolean getShareLevelZeroBounds() {
4762  return shareLevelZeroBounds_;
4763  }
4764 
4765  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
4766  private boolean useLnsOnly_;
4774  public boolean hasUseLnsOnly() {
4775  return ((bitField3_ & 0x00000004) != 0);
4776  }
4784  public boolean getUseLnsOnly() {
4785  return useLnsOnly_;
4786  }
4787 
4788  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4789  private boolean lnsFocusOnDecisionVariables_;
4794  return ((bitField3_ & 0x00000008) != 0);
4795  }
4800  return lnsFocusOnDecisionVariables_;
4801  }
4802 
4803  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4804  private boolean useRinsLns_;
4812  public boolean hasUseRinsLns() {
4813  return ((bitField3_ & 0x00000010) != 0);
4814  }
4822  public boolean getUseRinsLns() {
4823  return useRinsLns_;
4824  }
4825 
4826  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4827  private boolean randomizeSearch_;
4835  public boolean hasRandomizeSearch() {
4836  return ((bitField3_ & 0x00000020) != 0);
4837  }
4845  public boolean getRandomizeSearch() {
4846  return randomizeSearch_;
4847  }
4848 
4849  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4850  private long searchRandomizationTolerance_;
4865  return ((bitField3_ & 0x00000040) != 0);
4866  }
4881  return searchRandomizationTolerance_;
4882  }
4883 
4884  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
4885  private boolean useOptionalVariables_;
4895  public boolean hasUseOptionalVariables() {
4896  return ((bitField3_ & 0x00000080) != 0);
4897  }
4907  public boolean getUseOptionalVariables() {
4908  return useOptionalVariables_;
4909  }
4910 
4911  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
4912  private boolean useExactLpReason_;
4923  public boolean hasUseExactLpReason() {
4924  return ((bitField3_ & 0x00000100) != 0);
4925  }
4936  public boolean getUseExactLpReason() {
4937  return useExactLpReason_;
4938  }
4939 
4940  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
4941  private boolean useCombinedNoOverlap_;
4951  public boolean hasUseCombinedNoOverlap() {
4952  return ((bitField3_ & 0x00000200) != 0);
4953  }
4963  public boolean getUseCombinedNoOverlap() {
4964  return useCombinedNoOverlap_;
4965  }
4966 
4967  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
4968  private double mipMaxBound_;
4978  public boolean hasMipMaxBound() {
4979  return ((bitField3_ & 0x00000400) != 0);
4980  }
4990  public double getMipMaxBound() {
4991  return mipMaxBound_;
4992  }
4993 
4994  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
4995  private double mipVarScaling_;
5005  public boolean hasMipVarScaling() {
5006  return ((bitField3_ & 0x00000800) != 0);
5007  }
5017  public double getMipVarScaling() {
5018  return mipVarScaling_;
5019  }
5020 
5021  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5022  private double mipWantedPrecision_;
5038  public boolean hasMipWantedPrecision() {
5039  return ((bitField3_ & 0x00001000) != 0);
5040  }
5056  public double getMipWantedPrecision() {
5057  return mipWantedPrecision_;
5058  }
5059 
5060  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5061  private int mipMaxActivityExponent_;
5075  public boolean hasMipMaxActivityExponent() {
5076  return ((bitField3_ & 0x00002000) != 0);
5077  }
5092  return mipMaxActivityExponent_;
5093  }
5094 
5095  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5096  private double mipCheckPrecision_;
5107  public boolean hasMipCheckPrecision() {
5108  return ((bitField3_ & 0x00004000) != 0);
5109  }
5120  public double getMipCheckPrecision() {
5121  return mipCheckPrecision_;
5122  }
5123 
5124  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5125  private boolean catchSigintSignal_;
5135  public boolean hasCatchSigintSignal() {
5136  return ((bitField3_ & 0x00008000) != 0);
5137  }
5147  public boolean getCatchSigintSignal() {
5148  return catchSigintSignal_;
5149  }
5150 
5151  private byte memoizedIsInitialized = -1;
5152  @java.lang.Override
5153  public final boolean isInitialized() {
5154  byte isInitialized = memoizedIsInitialized;
5155  if (isInitialized == 1) return true;
5156  if (isInitialized == 0) return false;
5157 
5158  memoizedIsInitialized = 1;
5159  return true;
5160  }
5161 
5162  @java.lang.Override
5163  public void writeTo(com.google.protobuf.CodedOutputStream output)
5164  throws java.io.IOException {
5165  if (((bitField0_ & 0x00000001) != 0)) {
5166  output.writeEnum(1, preferredVariableOrder_);
5167  }
5168  if (((bitField0_ & 0x00000002) != 0)) {
5169  output.writeEnum(2, initialPolarity_);
5170  }
5171  if (((bitField0_ & 0x00000100) != 0)) {
5172  output.writeEnum(4, minimizationAlgorithm_);
5173  }
5174  if (((bitField0_ & 0x00000800) != 0)) {
5175  output.writeInt32(11, clauseCleanupPeriod_);
5176  }
5177  if (((bitField0_ & 0x00001000) != 0)) {
5178  output.writeInt32(13, clauseCleanupTarget_);
5179  }
5180  if (((bitField0_ & 0x00100000) != 0)) {
5181  output.writeDouble(15, variableActivityDecay_);
5182  }
5183  if (((bitField0_ & 0x00200000) != 0)) {
5184  output.writeDouble(16, maxVariableActivityValue_);
5185  }
5186  if (((bitField0_ & 0x02000000) != 0)) {
5187  output.writeDouble(17, clauseActivityDecay_);
5188  }
5189  if (((bitField0_ & 0x04000000) != 0)) {
5190  output.writeDouble(18, maxClauseActivityValue_);
5191  }
5192  if (((bitField0_ & 0x00400000) != 0)) {
5193  output.writeDouble(22, glucoseMaxDecay_);
5194  }
5195  if (((bitField0_ & 0x00800000) != 0)) {
5196  output.writeDouble(23, glucoseDecayIncrement_);
5197  }
5198  if (((bitField0_ & 0x01000000) != 0)) {
5199  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5200  }
5201  if (((bitField0_ & 0x10000000) != 0)) {
5202  output.writeInt32(30, restartPeriod_);
5203  }
5204  if (((bitField1_ & 0x00000400) != 0)) {
5205  output.writeInt32(31, randomSeed_);
5206  }
5207  if (((bitField0_ & 0x00000010) != 0)) {
5208  output.writeDouble(32, randomBranchesRatio_);
5209  }
5210  if (((bitField1_ & 0x00000200) != 0)) {
5211  output.writeBool(33, treatBinaryClausesSeparately_);
5212  }
5213  if (((bitField0_ & 0x00000200) != 0)) {
5214  output.writeEnum(34, binaryMinimizationAlgorithm_);
5215  }
5216  if (((bitField1_ & 0x00200000) != 0)) {
5217  output.writeBool(35, useOptimizationHints_);
5218  }
5219  if (((bitField1_ & 0x00000020) != 0)) {
5220  output.writeDouble(36, maxTimeInSeconds_);
5221  }
5222  if (((bitField1_ & 0x00000080) != 0)) {
5223  output.writeInt64(37, maxNumberOfConflicts_);
5224  }
5225  if (((bitField1_ & 0x00000100) != 0)) {
5226  output.writeInt64(40, maxMemoryInMb_);
5227  }
5228  if (((bitField1_ & 0x00000800) != 0)) {
5229  output.writeBool(41, logSearchProgress_);
5230  }
5231  if (((bitField1_ & 0x00001000) != 0)) {
5232  output.writeBool(43, usePbResolution_);
5233  }
5234  if (((bitField0_ & 0x00000004) != 0)) {
5235  output.writeBool(44, usePhaseSaving_);
5236  }
5237  if (((bitField0_ & 0x00000008) != 0)) {
5238  output.writeDouble(45, randomPolarityRatio_);
5239  }
5240  if (((bitField0_ & 0x00010000) != 0)) {
5241  output.writeInt32(46, pbCleanupIncrement_);
5242  }
5243  if (((bitField0_ & 0x00020000) != 0)) {
5244  output.writeDouble(47, pbCleanupRatio_);
5245  }
5246  if (((bitField1_ & 0x00002000) != 0)) {
5247  output.writeBool(48, minimizeReductionDuringPbResolution_);
5248  }
5249  if (((bitField1_ & 0x00004000) != 0)) {
5250  output.writeBool(49, countAssumptionLevelsInLbd_);
5251  }
5252  if (((bitField1_ & 0x00400000) != 0)) {
5253  output.writeBool(50, minimizeCore_);
5254  }
5255  if (((bitField1_ & 0x02000000) != 0)) {
5256  output.writeEnum(51, maxSatAssumptionOrder_);
5257  }
5258  if (((bitField1_ & 0x04000000) != 0)) {
5259  output.writeBool(52, maxSatReverseAssumptionOrder_);
5260  }
5261  if (((bitField1_ & 0x08000000) != 0)) {
5262  output.writeEnum(53, maxSatStratification_);
5263  }
5264  if (((bitField1_ & 0x00008000) != 0)) {
5265  output.writeInt32(54, presolveBveThreshold_);
5266  }
5267  if (((bitField1_ & 0x00010000) != 0)) {
5268  output.writeInt32(55, presolveBveClauseWeight_);
5269  }
5270  if (((bitField0_ & 0x00000400) != 0)) {
5271  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5272  }
5273  if (((bitField1_ & 0x00020000) != 0)) {
5274  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5275  }
5276  if (((bitField0_ & 0x00002000) != 0)) {
5277  output.writeEnum(58, clauseCleanupProtection_);
5278  }
5279  if (((bitField0_ & 0x00004000) != 0)) {
5280  output.writeInt32(59, clauseCleanupLbdBound_);
5281  }
5282  if (((bitField0_ & 0x00008000) != 0)) {
5283  output.writeEnum(60, clauseCleanupOrdering_);
5284  }
5285  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5286  output.writeEnum(61, restartAlgorithms_.get(i));
5287  }
5288  if (((bitField0_ & 0x20000000) != 0)) {
5289  output.writeInt32(62, restartRunningWindowSize_);
5290  }
5291  if (((bitField0_ & 0x40000000) != 0)) {
5292  output.writeDouble(63, restartDlAverageRatio_);
5293  }
5294  if (((bitField1_ & 0x00000001) != 0)) {
5295  output.writeBool(64, useBlockingRestart_);
5296  }
5297  if (((bitField1_ & 0x00000002) != 0)) {
5298  output.writeInt32(65, blockingRestartWindowSize_);
5299  }
5300  if (((bitField1_ & 0x00000004) != 0)) {
5301  output.writeDouble(66, blockingRestartMultiplier_);
5302  }
5303  if (((bitField1_ & 0x00000040) != 0)) {
5304  output.writeDouble(67, maxDeterministicTime_);
5305  }
5306  if (((bitField1_ & 0x00000008) != 0)) {
5307  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5308  }
5309  if (((bitField1_ & 0x00000010) != 0)) {
5310  output.writeDouble(69, strategyChangeIncreaseRatio_);
5311  }
5312  if (((bitField0_ & 0x08000000) != 0)) {
5313  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5314  }
5315  if (((bitField0_ & 0x80000000) != 0)) {
5316  output.writeDouble(71, restartLbdAverageRatio_);
5317  }
5318  if (((bitField1_ & 0x00080000) != 0)) {
5319  output.writeBool(72, presolveUseBva_);
5320  }
5321  if (((bitField1_ & 0x00100000) != 0)) {
5322  output.writeInt32(73, presolveBvaThreshold_);
5323  }
5324  if (((bitField1_ & 0x10000000) != 0)) {
5325  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5326  }
5327  if (((bitField0_ & 0x00000020) != 0)) {
5328  output.writeBool(75, useErwaHeuristic_);
5329  }
5330  if (((bitField0_ & 0x00000040) != 0)) {
5331  output.writeDouble(76, initialVariablesActivity_);
5332  }
5333  if (((bitField0_ & 0x00000080) != 0)) {
5334  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5335  }
5336  if (((bitField1_ & 0x20000000) != 0)) {
5337  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5338  }
5339  if (((bitField1_ & 0x40000000) != 0)) {
5340  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5341  }
5342  if (((bitField1_ & 0x80000000) != 0)) {
5343  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5344  }
5345  if (((bitField2_ & 0x00002000) != 0)) {
5346  output.writeEnum(82, searchBranching_);
5347  }
5348  if (((bitField2_ & 0x00080000) != 0)) {
5349  output.writeBool(83, optimizeWithCore_);
5350  }
5351  if (((bitField1_ & 0x00800000) != 0)) {
5352  output.writeBool(84, findMultipleCores_);
5353  }
5354  if (((bitField2_ & 0x00200000) != 0)) {
5355  output.writeBool(85, optimizeWithMaxHs_);
5356  }
5357  if (((bitField2_ & 0x00400000) != 0)) {
5358  output.writeBool(86, cpModelPresolve_);
5359  }
5360  if (((bitField2_ & 0x02000000) != 0)) {
5361  output.writeBool(87, enumerateAllSolutions_);
5362  }
5363  if (((bitField1_ & 0x00040000) != 0)) {
5364  output.writeBool(88, presolveBlockedClause_);
5365  }
5366  if (((bitField1_ & 0x01000000) != 0)) {
5367  output.writeBool(89, coverOptimization_);
5368  }
5369  if (((bitField2_ & 0x00000001) != 0)) {
5370  output.writeInt32(90, linearizationLevel_);
5371  }
5372  if (((bitField2_ & 0x00000004) != 0)) {
5373  output.writeInt32(91, maxNumCuts_);
5374  }
5375  if (((bitField2_ & 0x00000008) != 0)) {
5376  output.writeBool(92, onlyAddCutsAtLevelZero_);
5377  }
5378  if (((bitField2_ & 0x01000000) != 0)) {
5379  output.writeBool(93, cpModelUseSatPresolve_);
5380  }
5381  if (((bitField2_ & 0x00004000) != 0)) {
5382  output.writeBool(94, exploitIntegerLpSolution_);
5383  }
5384  if (((bitField2_ & 0x10000000) != 0)) {
5385  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5386  }
5387  if (((bitField0_ & 0x00040000) != 0)) {
5388  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5389  }
5390  if (((bitField0_ & 0x00080000) != 0)) {
5391  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5392  }
5393  if (((bitField2_ & 0x20000000) != 0)) {
5394  output.writeBool(98, stopAfterFirstSolution_);
5395  }
5396  if (((bitField2_ & 0x00100000) != 0)) {
5397  output.writeInt32(99, binarySearchNumConflicts_);
5398  }
5399  if (((bitField2_ & 0x40000000) != 0)) {
5400  output.writeInt32(100, numSearchWorkers_);
5401  }
5402  if (((bitField3_ & 0x00000004) != 0)) {
5403  output.writeBool(101, useLnsOnly_);
5404  }
5405  if (((bitField3_ & 0x00000020) != 0)) {
5406  output.writeBool(103, randomizeSearch_);
5407  }
5408  if (((bitField3_ & 0x00000040) != 0)) {
5409  output.writeInt64(104, searchRandomizationTolerance_);
5410  }
5411  if (((bitField3_ & 0x00000008) != 0)) {
5412  output.writeBool(105, lnsFocusOnDecisionVariables_);
5413  }
5414  if (((bitField2_ & 0x08000000) != 0)) {
5415  output.writeBool(106, instantiateAllVariables_);
5416  }
5417  if (((bitField2_ & 0x00000002) != 0)) {
5418  output.writeInt32(107, booleanEncodingLevel_);
5419  }
5420  if (((bitField3_ & 0x00000080) != 0)) {
5421  output.writeBool(108, useOptionalVariables_);
5422  }
5423  if (((bitField3_ & 0x00000100) != 0)) {
5424  output.writeBool(109, useExactLpReason_);
5425  }
5426  if (((bitField2_ & 0x00800000) != 0)) {
5427  output.writeInt32(110, cpModelProbingLevel_);
5428  }
5429  if (((bitField2_ & 0x00000010) != 0)) {
5430  output.writeBool(111, addKnapsackCuts_);
5431  }
5432  if (((bitField2_ & 0x00000200) != 0)) {
5433  output.writeBool(112, addLpConstraintsLazily_);
5434  }
5435  if (((bitField3_ & 0x00000001) != 0)) {
5436  output.writeBool(113, shareObjectiveBounds_);
5437  }
5438  if (((bitField3_ & 0x00000002) != 0)) {
5439  output.writeBool(114, shareLevelZeroBounds_);
5440  }
5441  if (((bitField2_ & 0x00000400) != 0)) {
5442  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5443  }
5444  if (((bitField2_ & 0x00008000) != 0)) {
5445  output.writeBool(116, exploitAllLpSolution_);
5446  }
5447  if (((bitField2_ & 0x00000020) != 0)) {
5448  output.writeBool(117, addCgCuts_);
5449  }
5450  if (((bitField2_ & 0x00000080) != 0)) {
5451  output.writeBool(118, useMirRounding_);
5452  }
5453  if (((bitField2_ & 0x00000100) != 0)) {
5454  output.writeInt32(119, maxIntegerRoundingScaling_);
5455  }
5456  if (((bitField2_ & 0x00000040) != 0)) {
5457  output.writeBool(120, addMirCuts_);
5458  }
5459  if (((bitField2_ & 0x00000800) != 0)) {
5460  output.writeInt64(121, maxInactiveCount_);
5461  }
5462  if (((bitField2_ & 0x00001000) != 0)) {
5463  output.writeInt64(122, constraintRemovalBatchSize_);
5464  }
5465  if (((bitField2_ & 0x00040000) != 0)) {
5466  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5467  }
5468  if (((bitField3_ & 0x00000400) != 0)) {
5469  output.writeDouble(124, mipMaxBound_);
5470  }
5471  if (((bitField3_ & 0x00000800) != 0)) {
5472  output.writeDouble(125, mipVarScaling_);
5473  }
5474  if (((bitField3_ & 0x00001000) != 0)) {
5475  output.writeDouble(126, mipWantedPrecision_);
5476  }
5477  if (((bitField3_ & 0x00002000) != 0)) {
5478  output.writeInt32(127, mipMaxActivityExponent_);
5479  }
5480  if (((bitField3_ & 0x00004000) != 0)) {
5481  output.writeDouble(128, mipCheckPrecision_);
5482  }
5483  if (((bitField3_ & 0x00000010) != 0)) {
5484  output.writeBool(129, useRinsLns_);
5485  }
5486  if (((bitField2_ & 0x00010000) != 0)) {
5487  output.writeBool(130, exploitBestSolution_);
5488  }
5489  if (((bitField2_ & 0x00020000) != 0)) {
5490  output.writeBool(131, exploitObjective_);
5491  }
5492  if (((bitField2_ & 0x04000000) != 0)) {
5493  output.writeBool(132, fillTightenedDomainsInResponse_);
5494  }
5495  if (((bitField3_ & 0x00000200) != 0)) {
5496  output.writeBool(133, useCombinedNoOverlap_);
5497  }
5498  if (((bitField2_ & 0x80000000) != 0)) {
5499  output.writeBool(134, deterministicParallelSearch_);
5500  }
5501  if (((bitField3_ & 0x00008000) != 0)) {
5502  output.writeBool(135, catchSigintSignal_);
5503  }
5504  unknownFields.writeTo(output);
5505  }
5506 
5507  @java.lang.Override
5508  public int getSerializedSize() {
5509  int size = memoizedSize;
5510  if (size != -1) return size;
5511 
5512  size = 0;
5513  if (((bitField0_ & 0x00000001) != 0)) {
5514  size += com.google.protobuf.CodedOutputStream
5515  .computeEnumSize(1, preferredVariableOrder_);
5516  }
5517  if (((bitField0_ & 0x00000002) != 0)) {
5518  size += com.google.protobuf.CodedOutputStream
5519  .computeEnumSize(2, initialPolarity_);
5520  }
5521  if (((bitField0_ & 0x00000100) != 0)) {
5522  size += com.google.protobuf.CodedOutputStream
5523  .computeEnumSize(4, minimizationAlgorithm_);
5524  }
5525  if (((bitField0_ & 0x00000800) != 0)) {
5526  size += com.google.protobuf.CodedOutputStream
5527  .computeInt32Size(11, clauseCleanupPeriod_);
5528  }
5529  if (((bitField0_ & 0x00001000) != 0)) {
5530  size += com.google.protobuf.CodedOutputStream
5531  .computeInt32Size(13, clauseCleanupTarget_);
5532  }
5533  if (((bitField0_ & 0x00100000) != 0)) {
5534  size += com.google.protobuf.CodedOutputStream
5535  .computeDoubleSize(15, variableActivityDecay_);
5536  }
5537  if (((bitField0_ & 0x00200000) != 0)) {
5538  size += com.google.protobuf.CodedOutputStream
5539  .computeDoubleSize(16, maxVariableActivityValue_);
5540  }
5541  if (((bitField0_ & 0x02000000) != 0)) {
5542  size += com.google.protobuf.CodedOutputStream
5543  .computeDoubleSize(17, clauseActivityDecay_);
5544  }
5545  if (((bitField0_ & 0x04000000) != 0)) {
5546  size += com.google.protobuf.CodedOutputStream
5547  .computeDoubleSize(18, maxClauseActivityValue_);
5548  }
5549  if (((bitField0_ & 0x00400000) != 0)) {
5550  size += com.google.protobuf.CodedOutputStream
5551  .computeDoubleSize(22, glucoseMaxDecay_);
5552  }
5553  if (((bitField0_ & 0x00800000) != 0)) {
5554  size += com.google.protobuf.CodedOutputStream
5555  .computeDoubleSize(23, glucoseDecayIncrement_);
5556  }
5557  if (((bitField0_ & 0x01000000) != 0)) {
5558  size += com.google.protobuf.CodedOutputStream
5559  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5560  }
5561  if (((bitField0_ & 0x10000000) != 0)) {
5562  size += com.google.protobuf.CodedOutputStream
5563  .computeInt32Size(30, restartPeriod_);
5564  }
5565  if (((bitField1_ & 0x00000400) != 0)) {
5566  size += com.google.protobuf.CodedOutputStream
5567  .computeInt32Size(31, randomSeed_);
5568  }
5569  if (((bitField0_ & 0x00000010) != 0)) {
5570  size += com.google.protobuf.CodedOutputStream
5571  .computeDoubleSize(32, randomBranchesRatio_);
5572  }
5573  if (((bitField1_ & 0x00000200) != 0)) {
5574  size += com.google.protobuf.CodedOutputStream
5575  .computeBoolSize(33, treatBinaryClausesSeparately_);
5576  }
5577  if (((bitField0_ & 0x00000200) != 0)) {
5578  size += com.google.protobuf.CodedOutputStream
5579  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5580  }
5581  if (((bitField1_ & 0x00200000) != 0)) {
5582  size += com.google.protobuf.CodedOutputStream
5583  .computeBoolSize(35, useOptimizationHints_);
5584  }
5585  if (((bitField1_ & 0x00000020) != 0)) {
5586  size += com.google.protobuf.CodedOutputStream
5587  .computeDoubleSize(36, maxTimeInSeconds_);
5588  }
5589  if (((bitField1_ & 0x00000080) != 0)) {
5590  size += com.google.protobuf.CodedOutputStream
5591  .computeInt64Size(37, maxNumberOfConflicts_);
5592  }
5593  if (((bitField1_ & 0x00000100) != 0)) {
5594  size += com.google.protobuf.CodedOutputStream
5595  .computeInt64Size(40, maxMemoryInMb_);
5596  }
5597  if (((bitField1_ & 0x00000800) != 0)) {
5598  size += com.google.protobuf.CodedOutputStream
5599  .computeBoolSize(41, logSearchProgress_);
5600  }
5601  if (((bitField1_ & 0x00001000) != 0)) {
5602  size += com.google.protobuf.CodedOutputStream
5603  .computeBoolSize(43, usePbResolution_);
5604  }
5605  if (((bitField0_ & 0x00000004) != 0)) {
5606  size += com.google.protobuf.CodedOutputStream
5607  .computeBoolSize(44, usePhaseSaving_);
5608  }
5609  if (((bitField0_ & 0x00000008) != 0)) {
5610  size += com.google.protobuf.CodedOutputStream
5611  .computeDoubleSize(45, randomPolarityRatio_);
5612  }
5613  if (((bitField0_ & 0x00010000) != 0)) {
5614  size += com.google.protobuf.CodedOutputStream
5615  .computeInt32Size(46, pbCleanupIncrement_);
5616  }
5617  if (((bitField0_ & 0x00020000) != 0)) {
5618  size += com.google.protobuf.CodedOutputStream
5619  .computeDoubleSize(47, pbCleanupRatio_);
5620  }
5621  if (((bitField1_ & 0x00002000) != 0)) {
5622  size += com.google.protobuf.CodedOutputStream
5623  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5624  }
5625  if (((bitField1_ & 0x00004000) != 0)) {
5626  size += com.google.protobuf.CodedOutputStream
5627  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5628  }
5629  if (((bitField1_ & 0x00400000) != 0)) {
5630  size += com.google.protobuf.CodedOutputStream
5631  .computeBoolSize(50, minimizeCore_);
5632  }
5633  if (((bitField1_ & 0x02000000) != 0)) {
5634  size += com.google.protobuf.CodedOutputStream
5635  .computeEnumSize(51, maxSatAssumptionOrder_);
5636  }
5637  if (((bitField1_ & 0x04000000) != 0)) {
5638  size += com.google.protobuf.CodedOutputStream
5639  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5640  }
5641  if (((bitField1_ & 0x08000000) != 0)) {
5642  size += com.google.protobuf.CodedOutputStream
5643  .computeEnumSize(53, maxSatStratification_);
5644  }
5645  if (((bitField1_ & 0x00008000) != 0)) {
5646  size += com.google.protobuf.CodedOutputStream
5647  .computeInt32Size(54, presolveBveThreshold_);
5648  }
5649  if (((bitField1_ & 0x00010000) != 0)) {
5650  size += com.google.protobuf.CodedOutputStream
5651  .computeInt32Size(55, presolveBveClauseWeight_);
5652  }
5653  if (((bitField0_ & 0x00000400) != 0)) {
5654  size += com.google.protobuf.CodedOutputStream
5655  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5656  }
5657  if (((bitField1_ & 0x00020000) != 0)) {
5658  size += com.google.protobuf.CodedOutputStream
5659  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5660  }
5661  if (((bitField0_ & 0x00002000) != 0)) {
5662  size += com.google.protobuf.CodedOutputStream
5663  .computeEnumSize(58, clauseCleanupProtection_);
5664  }
5665  if (((bitField0_ & 0x00004000) != 0)) {
5666  size += com.google.protobuf.CodedOutputStream
5667  .computeInt32Size(59, clauseCleanupLbdBound_);
5668  }
5669  if (((bitField0_ & 0x00008000) != 0)) {
5670  size += com.google.protobuf.CodedOutputStream
5671  .computeEnumSize(60, clauseCleanupOrdering_);
5672  }
5673  {
5674  int dataSize = 0;
5675  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5676  dataSize += com.google.protobuf.CodedOutputStream
5677  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5678  }
5679  size += dataSize;
5680  size += 2 * restartAlgorithms_.size();
5681  }
5682  if (((bitField0_ & 0x20000000) != 0)) {
5683  size += com.google.protobuf.CodedOutputStream
5684  .computeInt32Size(62, restartRunningWindowSize_);
5685  }
5686  if (((bitField0_ & 0x40000000) != 0)) {
5687  size += com.google.protobuf.CodedOutputStream
5688  .computeDoubleSize(63, restartDlAverageRatio_);
5689  }
5690  if (((bitField1_ & 0x00000001) != 0)) {
5691  size += com.google.protobuf.CodedOutputStream
5692  .computeBoolSize(64, useBlockingRestart_);
5693  }
5694  if (((bitField1_ & 0x00000002) != 0)) {
5695  size += com.google.protobuf.CodedOutputStream
5696  .computeInt32Size(65, blockingRestartWindowSize_);
5697  }
5698  if (((bitField1_ & 0x00000004) != 0)) {
5699  size += com.google.protobuf.CodedOutputStream
5700  .computeDoubleSize(66, blockingRestartMultiplier_);
5701  }
5702  if (((bitField1_ & 0x00000040) != 0)) {
5703  size += com.google.protobuf.CodedOutputStream
5704  .computeDoubleSize(67, maxDeterministicTime_);
5705  }
5706  if (((bitField1_ & 0x00000008) != 0)) {
5707  size += com.google.protobuf.CodedOutputStream
5708  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5709  }
5710  if (((bitField1_ & 0x00000010) != 0)) {
5711  size += com.google.protobuf.CodedOutputStream
5712  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5713  }
5714  if (((bitField0_ & 0x08000000) != 0)) {
5715  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5716  }
5717  if (((bitField0_ & 0x80000000) != 0)) {
5718  size += com.google.protobuf.CodedOutputStream
5719  .computeDoubleSize(71, restartLbdAverageRatio_);
5720  }
5721  if (((bitField1_ & 0x00080000) != 0)) {
5722  size += com.google.protobuf.CodedOutputStream
5723  .computeBoolSize(72, presolveUseBva_);
5724  }
5725  if (((bitField1_ & 0x00100000) != 0)) {
5726  size += com.google.protobuf.CodedOutputStream
5727  .computeInt32Size(73, presolveBvaThreshold_);
5728  }
5729  if (((bitField1_ & 0x10000000) != 0)) {
5730  size += com.google.protobuf.CodedOutputStream
5731  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5732  }
5733  if (((bitField0_ & 0x00000020) != 0)) {
5734  size += com.google.protobuf.CodedOutputStream
5735  .computeBoolSize(75, useErwaHeuristic_);
5736  }
5737  if (((bitField0_ & 0x00000040) != 0)) {
5738  size += com.google.protobuf.CodedOutputStream
5739  .computeDoubleSize(76, initialVariablesActivity_);
5740  }
5741  if (((bitField0_ & 0x00000080) != 0)) {
5742  size += com.google.protobuf.CodedOutputStream
5743  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5744  }
5745  if (((bitField1_ & 0x20000000) != 0)) {
5746  size += com.google.protobuf.CodedOutputStream
5747  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5748  }
5749  if (((bitField1_ & 0x40000000) != 0)) {
5750  size += com.google.protobuf.CodedOutputStream
5751  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5752  }
5753  if (((bitField1_ & 0x80000000) != 0)) {
5754  size += com.google.protobuf.CodedOutputStream
5755  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5756  }
5757  if (((bitField2_ & 0x00002000) != 0)) {
5758  size += com.google.protobuf.CodedOutputStream
5759  .computeEnumSize(82, searchBranching_);
5760  }
5761  if (((bitField2_ & 0x00080000) != 0)) {
5762  size += com.google.protobuf.CodedOutputStream
5763  .computeBoolSize(83, optimizeWithCore_);
5764  }
5765  if (((bitField1_ & 0x00800000) != 0)) {
5766  size += com.google.protobuf.CodedOutputStream
5767  .computeBoolSize(84, findMultipleCores_);
5768  }
5769  if (((bitField2_ & 0x00200000) != 0)) {
5770  size += com.google.protobuf.CodedOutputStream
5771  .computeBoolSize(85, optimizeWithMaxHs_);
5772  }
5773  if (((bitField2_ & 0x00400000) != 0)) {
5774  size += com.google.protobuf.CodedOutputStream
5775  .computeBoolSize(86, cpModelPresolve_);
5776  }
5777  if (((bitField2_ & 0x02000000) != 0)) {
5778  size += com.google.protobuf.CodedOutputStream
5779  .computeBoolSize(87, enumerateAllSolutions_);
5780  }
5781  if (((bitField1_ & 0x00040000) != 0)) {
5782  size += com.google.protobuf.CodedOutputStream
5783  .computeBoolSize(88, presolveBlockedClause_);
5784  }
5785  if (((bitField1_ & 0x01000000) != 0)) {
5786  size += com.google.protobuf.CodedOutputStream
5787  .computeBoolSize(89, coverOptimization_);
5788  }
5789  if (((bitField2_ & 0x00000001) != 0)) {
5790  size += com.google.protobuf.CodedOutputStream
5791  .computeInt32Size(90, linearizationLevel_);
5792  }
5793  if (((bitField2_ & 0x00000004) != 0)) {
5794  size += com.google.protobuf.CodedOutputStream
5795  .computeInt32Size(91, maxNumCuts_);
5796  }
5797  if (((bitField2_ & 0x00000008) != 0)) {
5798  size += com.google.protobuf.CodedOutputStream
5799  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5800  }
5801  if (((bitField2_ & 0x01000000) != 0)) {
5802  size += com.google.protobuf.CodedOutputStream
5803  .computeBoolSize(93, cpModelUseSatPresolve_);
5804  }
5805  if (((bitField2_ & 0x00004000) != 0)) {
5806  size += com.google.protobuf.CodedOutputStream
5807  .computeBoolSize(94, exploitIntegerLpSolution_);
5808  }
5809  if (((bitField2_ & 0x10000000) != 0)) {
5810  size += com.google.protobuf.CodedOutputStream
5811  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5812  }
5813  if (((bitField0_ & 0x00040000) != 0)) {
5814  size += com.google.protobuf.CodedOutputStream
5815  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5816  }
5817  if (((bitField0_ & 0x00080000) != 0)) {
5818  size += com.google.protobuf.CodedOutputStream
5819  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5820  }
5821  if (((bitField2_ & 0x20000000) != 0)) {
5822  size += com.google.protobuf.CodedOutputStream
5823  .computeBoolSize(98, stopAfterFirstSolution_);
5824  }
5825  if (((bitField2_ & 0x00100000) != 0)) {
5826  size += com.google.protobuf.CodedOutputStream
5827  .computeInt32Size(99, binarySearchNumConflicts_);
5828  }
5829  if (((bitField2_ & 0x40000000) != 0)) {
5830  size += com.google.protobuf.CodedOutputStream
5831  .computeInt32Size(100, numSearchWorkers_);
5832  }
5833  if (((bitField3_ & 0x00000004) != 0)) {
5834  size += com.google.protobuf.CodedOutputStream
5835  .computeBoolSize(101, useLnsOnly_);
5836  }
5837  if (((bitField3_ & 0x00000020) != 0)) {
5838  size += com.google.protobuf.CodedOutputStream
5839  .computeBoolSize(103, randomizeSearch_);
5840  }
5841  if (((bitField3_ & 0x00000040) != 0)) {
5842  size += com.google.protobuf.CodedOutputStream
5843  .computeInt64Size(104, searchRandomizationTolerance_);
5844  }
5845  if (((bitField3_ & 0x00000008) != 0)) {
5846  size += com.google.protobuf.CodedOutputStream
5847  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
5848  }
5849  if (((bitField2_ & 0x08000000) != 0)) {
5850  size += com.google.protobuf.CodedOutputStream
5851  .computeBoolSize(106, instantiateAllVariables_);
5852  }
5853  if (((bitField2_ & 0x00000002) != 0)) {
5854  size += com.google.protobuf.CodedOutputStream
5855  .computeInt32Size(107, booleanEncodingLevel_);
5856  }
5857  if (((bitField3_ & 0x00000080) != 0)) {
5858  size += com.google.protobuf.CodedOutputStream
5859  .computeBoolSize(108, useOptionalVariables_);
5860  }
5861  if (((bitField3_ & 0x00000100) != 0)) {
5862  size += com.google.protobuf.CodedOutputStream
5863  .computeBoolSize(109, useExactLpReason_);
5864  }
5865  if (((bitField2_ & 0x00800000) != 0)) {
5866  size += com.google.protobuf.CodedOutputStream
5867  .computeInt32Size(110, cpModelProbingLevel_);
5868  }
5869  if (((bitField2_ & 0x00000010) != 0)) {
5870  size += com.google.protobuf.CodedOutputStream
5871  .computeBoolSize(111, addKnapsackCuts_);
5872  }
5873  if (((bitField2_ & 0x00000200) != 0)) {
5874  size += com.google.protobuf.CodedOutputStream
5875  .computeBoolSize(112, addLpConstraintsLazily_);
5876  }
5877  if (((bitField3_ & 0x00000001) != 0)) {
5878  size += com.google.protobuf.CodedOutputStream
5879  .computeBoolSize(113, shareObjectiveBounds_);
5880  }
5881  if (((bitField3_ & 0x00000002) != 0)) {
5882  size += com.google.protobuf.CodedOutputStream
5883  .computeBoolSize(114, shareLevelZeroBounds_);
5884  }
5885  if (((bitField2_ & 0x00000400) != 0)) {
5886  size += com.google.protobuf.CodedOutputStream
5887  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
5888  }
5889  if (((bitField2_ & 0x00008000) != 0)) {
5890  size += com.google.protobuf.CodedOutputStream
5891  .computeBoolSize(116, exploitAllLpSolution_);
5892  }
5893  if (((bitField2_ & 0x00000020) != 0)) {
5894  size += com.google.protobuf.CodedOutputStream
5895  .computeBoolSize(117, addCgCuts_);
5896  }
5897  if (((bitField2_ & 0x00000080) != 0)) {
5898  size += com.google.protobuf.CodedOutputStream
5899  .computeBoolSize(118, useMirRounding_);
5900  }
5901  if (((bitField2_ & 0x00000100) != 0)) {
5902  size += com.google.protobuf.CodedOutputStream
5903  .computeInt32Size(119, maxIntegerRoundingScaling_);
5904  }
5905  if (((bitField2_ & 0x00000040) != 0)) {
5906  size += com.google.protobuf.CodedOutputStream
5907  .computeBoolSize(120, addMirCuts_);
5908  }
5909  if (((bitField2_ & 0x00000800) != 0)) {
5910  size += com.google.protobuf.CodedOutputStream
5911  .computeInt64Size(121, maxInactiveCount_);
5912  }
5913  if (((bitField2_ & 0x00001000) != 0)) {
5914  size += com.google.protobuf.CodedOutputStream
5915  .computeInt64Size(122, constraintRemovalBatchSize_);
5916  }
5917  if (((bitField2_ & 0x00040000) != 0)) {
5918  size += com.google.protobuf.CodedOutputStream
5919  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
5920  }
5921  if (((bitField3_ & 0x00000400) != 0)) {
5922  size += com.google.protobuf.CodedOutputStream
5923  .computeDoubleSize(124, mipMaxBound_);
5924  }
5925  if (((bitField3_ & 0x00000800) != 0)) {
5926  size += com.google.protobuf.CodedOutputStream
5927  .computeDoubleSize(125, mipVarScaling_);
5928  }
5929  if (((bitField3_ & 0x00001000) != 0)) {
5930  size += com.google.protobuf.CodedOutputStream
5931  .computeDoubleSize(126, mipWantedPrecision_);
5932  }
5933  if (((bitField3_ & 0x00002000) != 0)) {
5934  size += com.google.protobuf.CodedOutputStream
5935  .computeInt32Size(127, mipMaxActivityExponent_);
5936  }
5937  if (((bitField3_ & 0x00004000) != 0)) {
5938  size += com.google.protobuf.CodedOutputStream
5939  .computeDoubleSize(128, mipCheckPrecision_);
5940  }
5941  if (((bitField3_ & 0x00000010) != 0)) {
5942  size += com.google.protobuf.CodedOutputStream
5943  .computeBoolSize(129, useRinsLns_);
5944  }
5945  if (((bitField2_ & 0x00010000) != 0)) {
5946  size += com.google.protobuf.CodedOutputStream
5947  .computeBoolSize(130, exploitBestSolution_);
5948  }
5949  if (((bitField2_ & 0x00020000) != 0)) {
5950  size += com.google.protobuf.CodedOutputStream
5951  .computeBoolSize(131, exploitObjective_);
5952  }
5953  if (((bitField2_ & 0x04000000) != 0)) {
5954  size += com.google.protobuf.CodedOutputStream
5955  .computeBoolSize(132, fillTightenedDomainsInResponse_);
5956  }
5957  if (((bitField3_ & 0x00000200) != 0)) {
5958  size += com.google.protobuf.CodedOutputStream
5959  .computeBoolSize(133, useCombinedNoOverlap_);
5960  }
5961  if (((bitField2_ & 0x80000000) != 0)) {
5962  size += com.google.protobuf.CodedOutputStream
5963  .computeBoolSize(134, deterministicParallelSearch_);
5964  }
5965  if (((bitField3_ & 0x00008000) != 0)) {
5966  size += com.google.protobuf.CodedOutputStream
5967  .computeBoolSize(135, catchSigintSignal_);
5968  }
5969  size += unknownFields.getSerializedSize();
5970  memoizedSize = size;
5971  return size;
5972  }
5973 
5974  @java.lang.Override
5975  public boolean equals(final java.lang.Object obj) {
5976  if (obj == this) {
5977  return true;
5978  }
5979  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
5980  return super.equals(obj);
5981  }
5983 
5984  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
5985  if (hasPreferredVariableOrder()) {
5986  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
5987  }
5988  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
5989  if (hasInitialPolarity()) {
5990  if (initialPolarity_ != other.initialPolarity_) return false;
5991  }
5992  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
5993  if (hasUsePhaseSaving()) {
5994  if (getUsePhaseSaving()
5995  != other.getUsePhaseSaving()) return false;
5996  }
5997  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
5998  if (hasRandomPolarityRatio()) {
5999  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6000  != java.lang.Double.doubleToLongBits(
6001  other.getRandomPolarityRatio())) return false;
6002  }
6003  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6004  if (hasRandomBranchesRatio()) {
6005  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6006  != java.lang.Double.doubleToLongBits(
6007  other.getRandomBranchesRatio())) return false;
6008  }
6009  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6010  if (hasUseErwaHeuristic()) {
6011  if (getUseErwaHeuristic()
6012  != other.getUseErwaHeuristic()) return false;
6013  }
6014  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6016  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6017  != java.lang.Double.doubleToLongBits(
6018  other.getInitialVariablesActivity())) return false;
6019  }
6020  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6023  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6024  }
6025  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6026  if (hasMinimizationAlgorithm()) {
6027  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6028  }
6029  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6031  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6032  }
6033  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6036  != other.getSubsumptionDuringConflictAnalysis()) return false;
6037  }
6038  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6039  if (hasClauseCleanupPeriod()) {
6041  != other.getClauseCleanupPeriod()) return false;
6042  }
6043  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6044  if (hasClauseCleanupTarget()) {
6046  != other.getClauseCleanupTarget()) return false;
6047  }
6048  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6050  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6051  }
6052  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6053  if (hasClauseCleanupLbdBound()) {
6055  != other.getClauseCleanupLbdBound()) return false;
6056  }
6057  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6058  if (hasClauseCleanupOrdering()) {
6059  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6060  }
6061  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6062  if (hasPbCleanupIncrement()) {
6063  if (getPbCleanupIncrement()
6064  != other.getPbCleanupIncrement()) return false;
6065  }
6066  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6067  if (hasPbCleanupRatio()) {
6068  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6069  != java.lang.Double.doubleToLongBits(
6070  other.getPbCleanupRatio())) return false;
6071  }
6072  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6075  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6076  }
6077  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6080  != other.getMinimizeWithPropagationNumDecisions()) return false;
6081  }
6082  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6083  if (hasVariableActivityDecay()) {
6084  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6085  != java.lang.Double.doubleToLongBits(
6086  other.getVariableActivityDecay())) return false;
6087  }
6088  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6090  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6091  != java.lang.Double.doubleToLongBits(
6092  other.getMaxVariableActivityValue())) return false;
6093  }
6094  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6095  if (hasGlucoseMaxDecay()) {
6096  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6097  != java.lang.Double.doubleToLongBits(
6098  other.getGlucoseMaxDecay())) return false;
6099  }
6100  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6101  if (hasGlucoseDecayIncrement()) {
6102  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6103  != java.lang.Double.doubleToLongBits(
6104  other.getGlucoseDecayIncrement())) return false;
6105  }
6106  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6109  != other.getGlucoseDecayIncrementPeriod()) return false;
6110  }
6111  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6112  if (hasClauseActivityDecay()) {
6113  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6114  != java.lang.Double.doubleToLongBits(
6115  other.getClauseActivityDecay())) return false;
6116  }
6117  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6118  if (hasMaxClauseActivityValue()) {
6119  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6120  != java.lang.Double.doubleToLongBits(
6121  other.getMaxClauseActivityValue())) return false;
6122  }
6123  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6124  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6127  .equals(other.getDefaultRestartAlgorithms())) return false;
6128  }
6129  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6130  if (hasRestartPeriod()) {
6131  if (getRestartPeriod()
6132  != other.getRestartPeriod()) return false;
6133  }
6134  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6137  != other.getRestartRunningWindowSize()) return false;
6138  }
6139  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6140  if (hasRestartDlAverageRatio()) {
6141  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6142  != java.lang.Double.doubleToLongBits(
6143  other.getRestartDlAverageRatio())) return false;
6144  }
6145  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6146  if (hasRestartLbdAverageRatio()) {
6147  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6148  != java.lang.Double.doubleToLongBits(
6149  other.getRestartLbdAverageRatio())) return false;
6150  }
6151  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6152  if (hasUseBlockingRestart()) {
6153  if (getUseBlockingRestart()
6154  != other.getUseBlockingRestart()) return false;
6155  }
6156  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6159  != other.getBlockingRestartWindowSize()) return false;
6160  }
6161  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6163  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6164  != java.lang.Double.doubleToLongBits(
6165  other.getBlockingRestartMultiplier())) return false;
6166  }
6167  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6170  != other.getNumConflictsBeforeStrategyChanges()) return false;
6171  }
6172  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6174  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6175  != java.lang.Double.doubleToLongBits(
6176  other.getStrategyChangeIncreaseRatio())) return false;
6177  }
6178  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6179  if (hasMaxTimeInSeconds()) {
6180  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6181  != java.lang.Double.doubleToLongBits(
6182  other.getMaxTimeInSeconds())) return false;
6183  }
6184  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6185  if (hasMaxDeterministicTime()) {
6186  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6187  != java.lang.Double.doubleToLongBits(
6188  other.getMaxDeterministicTime())) return false;
6189  }
6190  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6191  if (hasMaxNumberOfConflicts()) {
6193  != other.getMaxNumberOfConflicts()) return false;
6194  }
6195  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6196  if (hasMaxMemoryInMb()) {
6197  if (getMaxMemoryInMb()
6198  != other.getMaxMemoryInMb()) return false;
6199  }
6200  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6203  != other.getTreatBinaryClausesSeparately()) return false;
6204  }
6205  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6206  if (hasRandomSeed()) {
6207  if (getRandomSeed()
6208  != other.getRandomSeed()) return false;
6209  }
6210  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6211  if (hasLogSearchProgress()) {
6212  if (getLogSearchProgress()
6213  != other.getLogSearchProgress()) return false;
6214  }
6215  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6216  if (hasUsePbResolution()) {
6217  if (getUsePbResolution()
6218  != other.getUsePbResolution()) return false;
6219  }
6220  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6223  != other.getMinimizeReductionDuringPbResolution()) return false;
6224  }
6225  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6228  != other.getCountAssumptionLevelsInLbd()) return false;
6229  }
6230  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6231  if (hasPresolveBveThreshold()) {
6233  != other.getPresolveBveThreshold()) return false;
6234  }
6235  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6238  != other.getPresolveBveClauseWeight()) return false;
6239  }
6240  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6242  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6243  != java.lang.Double.doubleToLongBits(
6244  other.getPresolveProbingDeterministicTimeLimit())) return false;
6245  }
6246  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6247  if (hasPresolveBlockedClause()) {
6249  != other.getPresolveBlockedClause()) return false;
6250  }
6251  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6252  if (hasPresolveUseBva()) {
6253  if (getPresolveUseBva()
6254  != other.getPresolveUseBva()) return false;
6255  }
6256  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6257  if (hasPresolveBvaThreshold()) {
6259  != other.getPresolveBvaThreshold()) return false;
6260  }
6261  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6262  if (hasUseOptimizationHints()) {
6264  != other.getUseOptimizationHints()) return false;
6265  }
6266  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6267  if (hasMinimizeCore()) {
6268  if (getMinimizeCore()
6269  != other.getMinimizeCore()) return false;
6270  }
6271  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6272  if (hasFindMultipleCores()) {
6273  if (getFindMultipleCores()
6274  != other.getFindMultipleCores()) return false;
6275  }
6276  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6277  if (hasCoverOptimization()) {
6278  if (getCoverOptimization()
6279  != other.getCoverOptimization()) return false;
6280  }
6281  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6282  if (hasMaxSatAssumptionOrder()) {
6283  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6284  }
6285  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6288  != other.getMaxSatReverseAssumptionOrder()) return false;
6289  }
6290  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6291  if (hasMaxSatStratification()) {
6292  if (maxSatStratification_ != other.maxSatStratification_) return false;
6293  }
6294  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6297  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6298  }
6299  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6302  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6303  }
6304  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6307  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6308  }
6309  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6312  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6313  }
6314  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6315  if (hasLinearizationLevel()) {
6316  if (getLinearizationLevel()
6317  != other.getLinearizationLevel()) return false;
6318  }
6319  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6320  if (hasBooleanEncodingLevel()) {
6322  != other.getBooleanEncodingLevel()) return false;
6323  }
6324  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6325  if (hasMaxNumCuts()) {
6326  if (getMaxNumCuts()
6327  != other.getMaxNumCuts()) return false;
6328  }
6329  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6330  if (hasOnlyAddCutsAtLevelZero()) {
6332  != other.getOnlyAddCutsAtLevelZero()) return false;
6333  }
6334  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6335  if (hasAddKnapsackCuts()) {
6336  if (getAddKnapsackCuts()
6337  != other.getAddKnapsackCuts()) return false;
6338  }
6339  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6340  if (hasAddCgCuts()) {
6341  if (getAddCgCuts()
6342  != other.getAddCgCuts()) return false;
6343  }
6344  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6345  if (hasAddMirCuts()) {
6346  if (getAddMirCuts()
6347  != other.getAddMirCuts()) return false;
6348  }
6349  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6350  if (hasUseMirRounding()) {
6351  if (getUseMirRounding()
6352  != other.getUseMirRounding()) return false;
6353  }
6354  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6357  != other.getMaxIntegerRoundingScaling()) return false;
6358  }
6359  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6360  if (hasAddLpConstraintsLazily()) {
6362  != other.getAddLpConstraintsLazily()) return false;
6363  }
6364  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6366  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6367  != java.lang.Double.doubleToLongBits(
6368  other.getMinOrthogonalityForLpConstraints())) return false;
6369  }
6370  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6371  if (hasMaxInactiveCount()) {
6372  if (getMaxInactiveCount()
6373  != other.getMaxInactiveCount()) return false;
6374  }
6375  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6378  != other.getConstraintRemovalBatchSize()) return false;
6379  }
6380  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6381  if (hasSearchBranching()) {
6382  if (searchBranching_ != other.searchBranching_) return false;
6383  }
6384  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6387  != other.getExploitIntegerLpSolution()) return false;
6388  }
6389  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6390  if (hasExploitAllLpSolution()) {
6392  != other.getExploitAllLpSolution()) return false;
6393  }
6394  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6395  if (hasExploitBestSolution()) {
6397  != other.getExploitBestSolution()) return false;
6398  }
6399  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6400  if (hasExploitObjective()) {
6401  if (getExploitObjective()
6402  != other.getExploitObjective()) return false;
6403  }
6404  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6407  != other.getPseudoCostReliabilityThreshold()) return false;
6408  }
6409  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6410  if (hasOptimizeWithCore()) {
6411  if (getOptimizeWithCore()
6412  != other.getOptimizeWithCore()) return false;
6413  }
6414  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6417  != other.getBinarySearchNumConflicts()) return false;
6418  }
6419  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6420  if (hasOptimizeWithMaxHs()) {
6421  if (getOptimizeWithMaxHs()
6422  != other.getOptimizeWithMaxHs()) return false;
6423  }
6424  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6425  if (hasCpModelPresolve()) {
6426  if (getCpModelPresolve()
6427  != other.getCpModelPresolve()) return false;
6428  }
6429  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6430  if (hasCpModelProbingLevel()) {
6432  != other.getCpModelProbingLevel()) return false;
6433  }
6434  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6435  if (hasCpModelUseSatPresolve()) {
6437  != other.getCpModelUseSatPresolve()) return false;
6438  }
6439  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6440  if (hasEnumerateAllSolutions()) {
6442  != other.getEnumerateAllSolutions()) return false;
6443  }
6444  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6447  != other.getFillTightenedDomainsInResponse()) return false;
6448  }
6449  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6452  != other.getInstantiateAllVariables()) return false;
6453  }
6454  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6457  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6458  }
6459  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6460  if (hasStopAfterFirstSolution()) {
6462  != other.getStopAfterFirstSolution()) return false;
6463  }
6464  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6465  if (hasNumSearchWorkers()) {
6466  if (getNumSearchWorkers()
6467  != other.getNumSearchWorkers()) return false;
6468  }
6469  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
6472  != other.getDeterministicParallelSearch()) return false;
6473  }
6474  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6475  if (hasShareObjectiveBounds()) {
6477  != other.getShareObjectiveBounds()) return false;
6478  }
6479  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6480  if (hasShareLevelZeroBounds()) {
6482  != other.getShareLevelZeroBounds()) return false;
6483  }
6484  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
6485  if (hasUseLnsOnly()) {
6486  if (getUseLnsOnly()
6487  != other.getUseLnsOnly()) return false;
6488  }
6489  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6492  != other.getLnsFocusOnDecisionVariables()) return false;
6493  }
6494  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6495  if (hasUseRinsLns()) {
6496  if (getUseRinsLns()
6497  != other.getUseRinsLns()) return false;
6498  }
6499  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6500  if (hasRandomizeSearch()) {
6501  if (getRandomizeSearch()
6502  != other.getRandomizeSearch()) return false;
6503  }
6504  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6507  != other.getSearchRandomizationTolerance()) return false;
6508  }
6509  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6510  if (hasUseOptionalVariables()) {
6512  != other.getUseOptionalVariables()) return false;
6513  }
6514  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6515  if (hasUseExactLpReason()) {
6516  if (getUseExactLpReason()
6517  != other.getUseExactLpReason()) return false;
6518  }
6519  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6520  if (hasUseCombinedNoOverlap()) {
6522  != other.getUseCombinedNoOverlap()) return false;
6523  }
6524  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6525  if (hasMipMaxBound()) {
6526  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6527  != java.lang.Double.doubleToLongBits(
6528  other.getMipMaxBound())) return false;
6529  }
6530  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6531  if (hasMipVarScaling()) {
6532  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6533  != java.lang.Double.doubleToLongBits(
6534  other.getMipVarScaling())) return false;
6535  }
6536  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6537  if (hasMipWantedPrecision()) {
6538  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6539  != java.lang.Double.doubleToLongBits(
6540  other.getMipWantedPrecision())) return false;
6541  }
6542  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6543  if (hasMipMaxActivityExponent()) {
6545  != other.getMipMaxActivityExponent()) return false;
6546  }
6547  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6548  if (hasMipCheckPrecision()) {
6549  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6550  != java.lang.Double.doubleToLongBits(
6551  other.getMipCheckPrecision())) return false;
6552  }
6553  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6554  if (hasCatchSigintSignal()) {
6555  if (getCatchSigintSignal()
6556  != other.getCatchSigintSignal()) return false;
6557  }
6558  if (!unknownFields.equals(other.unknownFields)) return false;
6559  return true;
6560  }
6561 
6562  @java.lang.Override
6563  public int hashCode() {
6564  if (memoizedHashCode != 0) {
6565  return memoizedHashCode;
6566  }
6567  int hash = 41;
6568  hash = (19 * hash) + getDescriptor().hashCode();
6569  if (hasPreferredVariableOrder()) {
6570  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6571  hash = (53 * hash) + preferredVariableOrder_;
6572  }
6573  if (hasInitialPolarity()) {
6574  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6575  hash = (53 * hash) + initialPolarity_;
6576  }
6577  if (hasUsePhaseSaving()) {
6578  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6579  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6580  getUsePhaseSaving());
6581  }
6582  if (hasRandomPolarityRatio()) {
6583  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6584  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6585  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6586  }
6587  if (hasRandomBranchesRatio()) {
6588  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6589  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6590  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6591  }
6592  if (hasUseErwaHeuristic()) {
6593  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6594  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6596  }
6598  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6599  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6600  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6601  }
6604  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6606  }
6607  if (hasMinimizationAlgorithm()) {
6608  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6609  hash = (53 * hash) + minimizationAlgorithm_;
6610  }
6612  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6613  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6614  }
6617  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6619  }
6620  if (hasClauseCleanupPeriod()) {
6621  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6622  hash = (53 * hash) + getClauseCleanupPeriod();
6623  }
6624  if (hasClauseCleanupTarget()) {
6625  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6626  hash = (53 * hash) + getClauseCleanupTarget();
6627  }
6629  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6630  hash = (53 * hash) + clauseCleanupProtection_;
6631  }
6632  if (hasClauseCleanupLbdBound()) {
6633  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6634  hash = (53 * hash) + getClauseCleanupLbdBound();
6635  }
6636  if (hasClauseCleanupOrdering()) {
6637  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6638  hash = (53 * hash) + clauseCleanupOrdering_;
6639  }
6640  if (hasPbCleanupIncrement()) {
6641  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6642  hash = (53 * hash) + getPbCleanupIncrement();
6643  }
6644  if (hasPbCleanupRatio()) {
6645  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6646  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6647  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6648  }
6651  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6652  }
6655  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6656  }
6657  if (hasVariableActivityDecay()) {
6658  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6659  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6660  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6661  }
6663  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6664  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6665  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6666  }
6667  if (hasGlucoseMaxDecay()) {
6668  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6669  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6670  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6671  }
6672  if (hasGlucoseDecayIncrement()) {
6673  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6674  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6675  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6676  }
6678  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6679  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6680  }
6681  if (hasClauseActivityDecay()) {
6682  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6683  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6684  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6685  }
6686  if (hasMaxClauseActivityValue()) {
6687  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6688  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6689  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6690  }
6691  if (getRestartAlgorithmsCount() > 0) {
6692  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6693  hash = (53 * hash) + restartAlgorithms_.hashCode();
6694  }
6696  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6697  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6698  }
6699  if (hasRestartPeriod()) {
6700  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6701  hash = (53 * hash) + getRestartPeriod();
6702  }
6704  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6705  hash = (53 * hash) + getRestartRunningWindowSize();
6706  }
6707  if (hasRestartDlAverageRatio()) {
6708  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6709  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6710  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6711  }
6712  if (hasRestartLbdAverageRatio()) {
6713  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6714  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6715  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6716  }
6717  if (hasUseBlockingRestart()) {
6718  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6719  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6721  }
6723  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6724  hash = (53 * hash) + getBlockingRestartWindowSize();
6725  }
6727  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6728  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6729  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6730  }
6733  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6734  }
6736  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6737  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6738  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6739  }
6740  if (hasMaxTimeInSeconds()) {
6741  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6742  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6743  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6744  }
6745  if (hasMaxDeterministicTime()) {
6746  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6747  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6748  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6749  }
6750  if (hasMaxNumberOfConflicts()) {
6751  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6752  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6754  }
6755  if (hasMaxMemoryInMb()) {
6756  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6757  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6758  getMaxMemoryInMb());
6759  }
6761  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6762  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6764  }
6765  if (hasRandomSeed()) {
6766  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6767  hash = (53 * hash) + getRandomSeed();
6768  }
6769  if (hasLogSearchProgress()) {
6770  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6771  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6773  }
6774  if (hasUsePbResolution()) {
6775  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
6776  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6777  getUsePbResolution());
6778  }
6781  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6783  }
6785  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
6786  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6788  }
6789  if (hasPresolveBveThreshold()) {
6790  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
6791  hash = (53 * hash) + getPresolveBveThreshold();
6792  }
6794  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
6795  hash = (53 * hash) + getPresolveBveClauseWeight();
6796  }
6799  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6800  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
6801  }
6802  if (hasPresolveBlockedClause()) {
6803  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
6804  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6806  }
6807  if (hasPresolveUseBva()) {
6808  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
6809  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6810  getPresolveUseBva());
6811  }
6812  if (hasPresolveBvaThreshold()) {
6813  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
6814  hash = (53 * hash) + getPresolveBvaThreshold();
6815  }
6816  if (hasUseOptimizationHints()) {
6817  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
6818  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6820  }
6821  if (hasMinimizeCore()) {
6822  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
6823  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6824  getMinimizeCore());
6825  }
6826  if (hasFindMultipleCores()) {
6827  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
6828  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6830  }
6831  if (hasCoverOptimization()) {
6832  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
6833  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6835  }
6836  if (hasMaxSatAssumptionOrder()) {
6837  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
6838  hash = (53 * hash) + maxSatAssumptionOrder_;
6839  }
6841  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
6842  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6844  }
6845  if (hasMaxSatStratification()) {
6846  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
6847  hash = (53 * hash) + maxSatStratification_;
6848  }
6851  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6853  }
6856  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6858  }
6861  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6863  }
6866  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6868  }
6869  if (hasLinearizationLevel()) {
6870  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
6871  hash = (53 * hash) + getLinearizationLevel();
6872  }
6873  if (hasBooleanEncodingLevel()) {
6874  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
6875  hash = (53 * hash) + getBooleanEncodingLevel();
6876  }
6877  if (hasMaxNumCuts()) {
6878  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
6879  hash = (53 * hash) + getMaxNumCuts();
6880  }
6881  if (hasOnlyAddCutsAtLevelZero()) {
6882  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
6883  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6885  }
6886  if (hasAddKnapsackCuts()) {
6887  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
6888  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6889  getAddKnapsackCuts());
6890  }
6891  if (hasAddCgCuts()) {
6892  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
6893  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6894  getAddCgCuts());
6895  }
6896  if (hasAddMirCuts()) {
6897  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
6898  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6899  getAddMirCuts());
6900  }
6901  if (hasUseMirRounding()) {
6902  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
6903  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6904  getUseMirRounding());
6905  }
6907  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
6908  hash = (53 * hash) + getMaxIntegerRoundingScaling();
6909  }
6910  if (hasAddLpConstraintsLazily()) {
6911  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
6912  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6914  }
6917  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6918  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
6919  }
6920  if (hasMaxInactiveCount()) {
6921  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
6922  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6924  }
6926  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
6927  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6929  }
6930  if (hasSearchBranching()) {
6931  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
6932  hash = (53 * hash) + searchBranching_;
6933  }
6935  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
6936  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6938  }
6939  if (hasExploitAllLpSolution()) {
6940  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
6941  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6943  }
6944  if (hasExploitBestSolution()) {
6945  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
6946  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6948  }
6949  if (hasExploitObjective()) {
6950  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
6951  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6953  }
6956  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6958  }
6959  if (hasOptimizeWithCore()) {
6960  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
6961  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6963  }
6965  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
6966  hash = (53 * hash) + getBinarySearchNumConflicts();
6967  }
6968  if (hasOptimizeWithMaxHs()) {
6969  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
6970  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6972  }
6973  if (hasCpModelPresolve()) {
6974  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
6975  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6976  getCpModelPresolve());
6977  }
6978  if (hasCpModelProbingLevel()) {
6979  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
6980  hash = (53 * hash) + getCpModelProbingLevel();
6981  }
6982  if (hasCpModelUseSatPresolve()) {
6983  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
6984  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6986  }
6987  if (hasEnumerateAllSolutions()) {
6988  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
6989  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6991  }
6994  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6996  }
6998  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
6999  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7001  }
7004  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7006  }
7007  if (hasStopAfterFirstSolution()) {
7008  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7009  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7011  }
7012  if (hasNumSearchWorkers()) {
7013  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7014  hash = (53 * hash) + getNumSearchWorkers();
7015  }
7017  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
7018  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7020  }
7021  if (hasShareObjectiveBounds()) {
7022  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7023  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7025  }
7026  if (hasShareLevelZeroBounds()) {
7027  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7028  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7030  }
7031  if (hasUseLnsOnly()) {
7032  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
7033  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7034  getUseLnsOnly());
7035  }
7037  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7038  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7040  }
7041  if (hasUseRinsLns()) {
7042  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7043  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7044  getUseRinsLns());
7045  }
7046  if (hasRandomizeSearch()) {
7047  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7048  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7049  getRandomizeSearch());
7050  }
7052  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7053  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7055  }
7056  if (hasUseOptionalVariables()) {
7057  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7058  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7060  }
7061  if (hasUseExactLpReason()) {
7062  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7063  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7065  }
7066  if (hasUseCombinedNoOverlap()) {
7067  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7068  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7070  }
7071  if (hasMipMaxBound()) {
7072  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7073  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7074  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7075  }
7076  if (hasMipVarScaling()) {
7077  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7078  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7079  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7080  }
7081  if (hasMipWantedPrecision()) {
7082  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7083  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7084  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7085  }
7086  if (hasMipMaxActivityExponent()) {
7087  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7088  hash = (53 * hash) + getMipMaxActivityExponent();
7089  }
7090  if (hasMipCheckPrecision()) {
7091  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7092  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7093  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7094  }
7095  if (hasCatchSigintSignal()) {
7096  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7097  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7099  }
7100  hash = (29 * hash) + unknownFields.hashCode();
7101  memoizedHashCode = hash;
7102  return hash;
7103  }
7104 
7106  java.nio.ByteBuffer data)
7107  throws com.google.protobuf.InvalidProtocolBufferException {
7108  return PARSER.parseFrom(data);
7109  }
7111  java.nio.ByteBuffer data,
7112  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7113  throws com.google.protobuf.InvalidProtocolBufferException {
7114  return PARSER.parseFrom(data, extensionRegistry);
7115  }
7117  com.google.protobuf.ByteString data)
7118  throws com.google.protobuf.InvalidProtocolBufferException {
7119  return PARSER.parseFrom(data);
7120  }
7122  com.google.protobuf.ByteString data,
7123  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7124  throws com.google.protobuf.InvalidProtocolBufferException {
7125  return PARSER.parseFrom(data, extensionRegistry);
7126  }
7127  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7128  throws com.google.protobuf.InvalidProtocolBufferException {
7129  return PARSER.parseFrom(data);
7130  }
7132  byte[] data,
7133  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7134  throws com.google.protobuf.InvalidProtocolBufferException {
7135  return PARSER.parseFrom(data, extensionRegistry);
7136  }
7137  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7138  throws java.io.IOException {
7139  return com.google.protobuf.GeneratedMessageV3
7140  .parseWithIOException(PARSER, input);
7141  }
7143  java.io.InputStream input,
7144  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7145  throws java.io.IOException {
7146  return com.google.protobuf.GeneratedMessageV3
7147  .parseWithIOException(PARSER, input, extensionRegistry);
7148  }
7149  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7150  throws java.io.IOException {
7151  return com.google.protobuf.GeneratedMessageV3
7152  .parseDelimitedWithIOException(PARSER, input);
7153  }
7155  java.io.InputStream input,
7156  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7157  throws java.io.IOException {
7158  return com.google.protobuf.GeneratedMessageV3
7159  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7160  }
7162  com.google.protobuf.CodedInputStream input)
7163  throws java.io.IOException {
7164  return com.google.protobuf.GeneratedMessageV3
7165  .parseWithIOException(PARSER, input);
7166  }
7168  com.google.protobuf.CodedInputStream input,
7169  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7170  throws java.io.IOException {
7171  return com.google.protobuf.GeneratedMessageV3
7172  .parseWithIOException(PARSER, input, extensionRegistry);
7173  }
7174 
7175  @java.lang.Override
7176  public Builder newBuilderForType() { return newBuilder(); }
7177  public static Builder newBuilder() {
7178  return DEFAULT_INSTANCE.toBuilder();
7179  }
7180  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7181  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7182  }
7183  @java.lang.Override
7184  public Builder toBuilder() {
7185  return this == DEFAULT_INSTANCE
7186  ? new Builder() : new Builder().mergeFrom(this);
7187  }
7188 
7189  @java.lang.Override
7191  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7192  Builder builder = new Builder(parent);
7193  return builder;
7194  }
7204  public static final class Builder extends
7205  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7206  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7207  com.google.ortools.sat.SatParametersOrBuilder {
7208  public static final com.google.protobuf.Descriptors.Descriptor
7210  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7211  }
7212 
7213  @java.lang.Override
7214  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7216  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7217  .ensureFieldAccessorsInitialized(
7219  }
7220 
7221  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7222  private Builder() {
7223  maybeForceBuilderInitialization();
7224  }
7225 
7226  private Builder(
7227  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7228  super(parent);
7229  maybeForceBuilderInitialization();
7230  }
7231  private void maybeForceBuilderInitialization() {
7232  if (com.google.protobuf.GeneratedMessageV3
7233  .alwaysUseFieldBuilders) {
7234  }
7235  }
7236  @java.lang.Override
7237  public Builder clear() {
7238  super.clear();
7239  preferredVariableOrder_ = 0;
7240  bitField0_ = (bitField0_ & ~0x00000001);
7241  initialPolarity_ = 1;
7242  bitField0_ = (bitField0_ & ~0x00000002);
7243  usePhaseSaving_ = true;
7244  bitField0_ = (bitField0_ & ~0x00000004);
7245  randomPolarityRatio_ = 0D;
7246  bitField0_ = (bitField0_ & ~0x00000008);
7247  randomBranchesRatio_ = 0D;
7248  bitField0_ = (bitField0_ & ~0x00000010);
7249  useErwaHeuristic_ = false;
7250  bitField0_ = (bitField0_ & ~0x00000020);
7251  initialVariablesActivity_ = 0D;
7252  bitField0_ = (bitField0_ & ~0x00000040);
7253  alsoBumpVariablesInConflictReasons_ = false;
7254  bitField0_ = (bitField0_ & ~0x00000080);
7255  minimizationAlgorithm_ = 2;
7256  bitField0_ = (bitField0_ & ~0x00000100);
7257  binaryMinimizationAlgorithm_ = 1;
7258  bitField0_ = (bitField0_ & ~0x00000200);
7259  subsumptionDuringConflictAnalysis_ = true;
7260  bitField0_ = (bitField0_ & ~0x00000400);
7261  clauseCleanupPeriod_ = 10000;
7262  bitField0_ = (bitField0_ & ~0x00000800);
7263  clauseCleanupTarget_ = 10000;
7264  bitField0_ = (bitField0_ & ~0x00001000);
7265  clauseCleanupProtection_ = 0;
7266  bitField0_ = (bitField0_ & ~0x00002000);
7267  clauseCleanupLbdBound_ = 5;
7268  bitField0_ = (bitField0_ & ~0x00004000);
7269  clauseCleanupOrdering_ = 0;
7270  bitField0_ = (bitField0_ & ~0x00008000);
7271  pbCleanupIncrement_ = 200;
7272  bitField0_ = (bitField0_ & ~0x00010000);
7273  pbCleanupRatio_ = 0.5D;
7274  bitField0_ = (bitField0_ & ~0x00020000);
7275  minimizeWithPropagationRestartPeriod_ = 10;
7276  bitField0_ = (bitField0_ & ~0x00040000);
7277  minimizeWithPropagationNumDecisions_ = 1000;
7278  bitField0_ = (bitField0_ & ~0x00080000);
7279  variableActivityDecay_ = 0.8D;
7280  bitField0_ = (bitField0_ & ~0x00100000);
7281  maxVariableActivityValue_ = 1e+100D;
7282  bitField0_ = (bitField0_ & ~0x00200000);
7283  glucoseMaxDecay_ = 0.95D;
7284  bitField0_ = (bitField0_ & ~0x00400000);
7285  glucoseDecayIncrement_ = 0.01D;
7286  bitField0_ = (bitField0_ & ~0x00800000);
7287  glucoseDecayIncrementPeriod_ = 5000;
7288  bitField0_ = (bitField0_ & ~0x01000000);
7289  clauseActivityDecay_ = 0.999D;
7290  bitField0_ = (bitField0_ & ~0x02000000);
7291  maxClauseActivityValue_ = 1e+20D;
7292  bitField0_ = (bitField0_ & ~0x04000000);
7293  restartAlgorithms_ = java.util.Collections.emptyList();
7294  bitField0_ = (bitField0_ & ~0x08000000);
7295  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7296  bitField0_ = (bitField0_ & ~0x10000000);
7297  restartPeriod_ = 50;
7298  bitField0_ = (bitField0_ & ~0x20000000);
7299  restartRunningWindowSize_ = 50;
7300  bitField0_ = (bitField0_ & ~0x40000000);
7301  restartDlAverageRatio_ = 1D;
7302  bitField0_ = (bitField0_ & ~0x80000000);
7303  restartLbdAverageRatio_ = 1D;
7304  bitField1_ = (bitField1_ & ~0x00000001);
7305  useBlockingRestart_ = false;
7306  bitField1_ = (bitField1_ & ~0x00000002);
7307  blockingRestartWindowSize_ = 5000;
7308  bitField1_ = (bitField1_ & ~0x00000004);
7309  blockingRestartMultiplier_ = 1.4D;
7310  bitField1_ = (bitField1_ & ~0x00000008);
7311  numConflictsBeforeStrategyChanges_ = 0;
7312  bitField1_ = (bitField1_ & ~0x00000010);
7313  strategyChangeIncreaseRatio_ = 0D;
7314  bitField1_ = (bitField1_ & ~0x00000020);
7315  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7316  bitField1_ = (bitField1_ & ~0x00000040);
7317  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7318  bitField1_ = (bitField1_ & ~0x00000080);
7319  maxNumberOfConflicts_ = 9223372036854775807L;
7320  bitField1_ = (bitField1_ & ~0x00000100);
7321  maxMemoryInMb_ = 10000L;
7322  bitField1_ = (bitField1_ & ~0x00000200);
7323  treatBinaryClausesSeparately_ = true;
7324  bitField1_ = (bitField1_ & ~0x00000400);
7325  randomSeed_ = 1;
7326  bitField1_ = (bitField1_ & ~0x00000800);
7327  logSearchProgress_ = false;
7328  bitField1_ = (bitField1_ & ~0x00001000);
7329  usePbResolution_ = false;
7330  bitField1_ = (bitField1_ & ~0x00002000);
7331  minimizeReductionDuringPbResolution_ = false;
7332  bitField1_ = (bitField1_ & ~0x00004000);
7333  countAssumptionLevelsInLbd_ = true;
7334  bitField1_ = (bitField1_ & ~0x00008000);
7335  presolveBveThreshold_ = 500;
7336  bitField1_ = (bitField1_ & ~0x00010000);
7337  presolveBveClauseWeight_ = 3;
7338  bitField1_ = (bitField1_ & ~0x00020000);
7339  presolveProbingDeterministicTimeLimit_ = 30D;
7340  bitField1_ = (bitField1_ & ~0x00040000);
7341  presolveBlockedClause_ = true;
7342  bitField1_ = (bitField1_ & ~0x00080000);
7343  presolveUseBva_ = true;
7344  bitField1_ = (bitField1_ & ~0x00100000);
7345  presolveBvaThreshold_ = 1;
7346  bitField1_ = (bitField1_ & ~0x00200000);
7347  useOptimizationHints_ = true;
7348  bitField1_ = (bitField1_ & ~0x00400000);
7349  minimizeCore_ = true;
7350  bitField1_ = (bitField1_ & ~0x00800000);
7351  findMultipleCores_ = true;
7352  bitField1_ = (bitField1_ & ~0x01000000);
7353  coverOptimization_ = true;
7354  bitField1_ = (bitField1_ & ~0x02000000);
7355  maxSatAssumptionOrder_ = 0;
7356  bitField1_ = (bitField1_ & ~0x04000000);
7357  maxSatReverseAssumptionOrder_ = false;
7358  bitField1_ = (bitField1_ & ~0x08000000);
7359  maxSatStratification_ = 1;
7360  bitField1_ = (bitField1_ & ~0x10000000);
7361  usePrecedencesInDisjunctiveConstraint_ = true;
7362  bitField1_ = (bitField1_ & ~0x20000000);
7363  useOverloadCheckerInCumulativeConstraint_ = false;
7364  bitField1_ = (bitField1_ & ~0x40000000);
7365  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7366  bitField1_ = (bitField1_ & ~0x80000000);
7367  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7368  bitField2_ = (bitField2_ & ~0x00000001);
7369  linearizationLevel_ = 1;
7370  bitField2_ = (bitField2_ & ~0x00000002);
7371  booleanEncodingLevel_ = 1;
7372  bitField2_ = (bitField2_ & ~0x00000004);
7373  maxNumCuts_ = 1000;
7374  bitField2_ = (bitField2_ & ~0x00000008);
7375  onlyAddCutsAtLevelZero_ = false;
7376  bitField2_ = (bitField2_ & ~0x00000010);
7377  addKnapsackCuts_ = false;
7378  bitField2_ = (bitField2_ & ~0x00000020);
7379  addCgCuts_ = false;
7380  bitField2_ = (bitField2_ & ~0x00000040);
7381  addMirCuts_ = true;
7382  bitField2_ = (bitField2_ & ~0x00000080);
7383  useMirRounding_ = true;
7384  bitField2_ = (bitField2_ & ~0x00000100);
7385  maxIntegerRoundingScaling_ = 600;
7386  bitField2_ = (bitField2_ & ~0x00000200);
7387  addLpConstraintsLazily_ = true;
7388  bitField2_ = (bitField2_ & ~0x00000400);
7389  minOrthogonalityForLpConstraints_ = 0D;
7390  bitField2_ = (bitField2_ & ~0x00000800);
7391  maxInactiveCount_ = 1000L;
7392  bitField2_ = (bitField2_ & ~0x00001000);
7393  constraintRemovalBatchSize_ = 100L;
7394  bitField2_ = (bitField2_ & ~0x00002000);
7395  searchBranching_ = 0;
7396  bitField2_ = (bitField2_ & ~0x00004000);
7397  exploitIntegerLpSolution_ = true;
7398  bitField2_ = (bitField2_ & ~0x00008000);
7399  exploitAllLpSolution_ = true;
7400  bitField2_ = (bitField2_ & ~0x00010000);
7401  exploitBestSolution_ = false;
7402  bitField2_ = (bitField2_ & ~0x00020000);
7403  exploitObjective_ = true;
7404  bitField2_ = (bitField2_ & ~0x00040000);
7405  pseudoCostReliabilityThreshold_ = 100L;
7406  bitField2_ = (bitField2_ & ~0x00080000);
7407  optimizeWithCore_ = false;
7408  bitField2_ = (bitField2_ & ~0x00100000);
7409  binarySearchNumConflicts_ = -1;
7410  bitField2_ = (bitField2_ & ~0x00200000);
7411  optimizeWithMaxHs_ = false;
7412  bitField2_ = (bitField2_ & ~0x00400000);
7413  cpModelPresolve_ = true;
7414  bitField2_ = (bitField2_ & ~0x00800000);
7415  cpModelProbingLevel_ = 2;
7416  bitField2_ = (bitField2_ & ~0x01000000);
7417  cpModelUseSatPresolve_ = true;
7418  bitField2_ = (bitField2_ & ~0x02000000);
7419  enumerateAllSolutions_ = false;
7420  bitField2_ = (bitField2_ & ~0x04000000);
7421  fillTightenedDomainsInResponse_ = false;
7422  bitField2_ = (bitField2_ & ~0x08000000);
7423  instantiateAllVariables_ = true;
7424  bitField2_ = (bitField2_ & ~0x10000000);
7425  autoDetectGreaterThanAtLeastOneOf_ = true;
7426  bitField2_ = (bitField2_ & ~0x20000000);
7427  stopAfterFirstSolution_ = false;
7428  bitField2_ = (bitField2_ & ~0x40000000);
7429  numSearchWorkers_ = 0;
7430  bitField2_ = (bitField2_ & ~0x80000000);
7431  deterministicParallelSearch_ = false;
7432  bitField3_ = (bitField3_ & ~0x00000001);
7433  shareObjectiveBounds_ = true;
7434  bitField3_ = (bitField3_ & ~0x00000002);
7435  shareLevelZeroBounds_ = true;
7436  bitField3_ = (bitField3_ & ~0x00000004);
7437  useLnsOnly_ = false;
7438  bitField3_ = (bitField3_ & ~0x00000008);
7439  lnsFocusOnDecisionVariables_ = false;
7440  bitField3_ = (bitField3_ & ~0x00000010);
7441  useRinsLns_ = false;
7442  bitField3_ = (bitField3_ & ~0x00000020);
7443  randomizeSearch_ = false;
7444  bitField3_ = (bitField3_ & ~0x00000040);
7445  searchRandomizationTolerance_ = 0L;
7446  bitField3_ = (bitField3_ & ~0x00000080);
7447  useOptionalVariables_ = true;
7448  bitField3_ = (bitField3_ & ~0x00000100);
7449  useExactLpReason_ = true;
7450  bitField3_ = (bitField3_ & ~0x00000200);
7451  useCombinedNoOverlap_ = false;
7452  bitField3_ = (bitField3_ & ~0x00000400);
7453  mipMaxBound_ = 10000000D;
7454  bitField3_ = (bitField3_ & ~0x00000800);
7455  mipVarScaling_ = 1D;
7456  bitField3_ = (bitField3_ & ~0x00001000);
7457  mipWantedPrecision_ = 1e-06D;
7458  bitField3_ = (bitField3_ & ~0x00002000);
7459  mipMaxActivityExponent_ = 53;
7460  bitField3_ = (bitField3_ & ~0x00004000);
7461  mipCheckPrecision_ = 0.0001D;
7462  bitField3_ = (bitField3_ & ~0x00008000);
7463  catchSigintSignal_ = true;
7464  bitField3_ = (bitField3_ & ~0x00010000);
7465  return this;
7466  }
7467 
7468  @java.lang.Override
7469  public com.google.protobuf.Descriptors.Descriptor
7471  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7472  }
7473 
7474  @java.lang.Override
7477  }
7478 
7479  @java.lang.Override
7482  if (!result.isInitialized()) {
7483  throw newUninitializedMessageException(result);
7484  }
7485  return result;
7486  }
7487 
7488  @java.lang.Override
7491  int from_bitField0_ = bitField0_;
7492  int from_bitField1_ = bitField1_;
7493  int from_bitField2_ = bitField2_;
7494  int from_bitField3_ = bitField3_;
7495  int to_bitField0_ = 0;
7496  int to_bitField1_ = 0;
7497  int to_bitField2_ = 0;
7498  int to_bitField3_ = 0;
7499  if (((from_bitField0_ & 0x00000001) != 0)) {
7500  to_bitField0_ |= 0x00000001;
7501  }
7502  result.preferredVariableOrder_ = preferredVariableOrder_;
7503  if (((from_bitField0_ & 0x00000002) != 0)) {
7504  to_bitField0_ |= 0x00000002;
7505  }
7506  result.initialPolarity_ = initialPolarity_;
7507  if (((from_bitField0_ & 0x00000004) != 0)) {
7508  to_bitField0_ |= 0x00000004;
7509  }
7510  result.usePhaseSaving_ = usePhaseSaving_;
7511  if (((from_bitField0_ & 0x00000008) != 0)) {
7512  result.randomPolarityRatio_ = randomPolarityRatio_;
7513  to_bitField0_ |= 0x00000008;
7514  }
7515  if (((from_bitField0_ & 0x00000010) != 0)) {
7516  result.randomBranchesRatio_ = randomBranchesRatio_;
7517  to_bitField0_ |= 0x00000010;
7518  }
7519  if (((from_bitField0_ & 0x00000020) != 0)) {
7520  result.useErwaHeuristic_ = useErwaHeuristic_;
7521  to_bitField0_ |= 0x00000020;
7522  }
7523  if (((from_bitField0_ & 0x00000040) != 0)) {
7524  result.initialVariablesActivity_ = initialVariablesActivity_;
7525  to_bitField0_ |= 0x00000040;
7526  }
7527  if (((from_bitField0_ & 0x00000080) != 0)) {
7528  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7529  to_bitField0_ |= 0x00000080;
7530  }
7531  if (((from_bitField0_ & 0x00000100) != 0)) {
7532  to_bitField0_ |= 0x00000100;
7533  }
7534  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7535  if (((from_bitField0_ & 0x00000200) != 0)) {
7536  to_bitField0_ |= 0x00000200;
7537  }
7538  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7539  if (((from_bitField0_ & 0x00000400) != 0)) {
7540  to_bitField0_ |= 0x00000400;
7541  }
7542  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7543  if (((from_bitField0_ & 0x00000800) != 0)) {
7544  to_bitField0_ |= 0x00000800;
7545  }
7546  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7547  if (((from_bitField0_ & 0x00001000) != 0)) {
7548  to_bitField0_ |= 0x00001000;
7549  }
7550  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7551  if (((from_bitField0_ & 0x00002000) != 0)) {
7552  to_bitField0_ |= 0x00002000;
7553  }
7554  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7555  if (((from_bitField0_ & 0x00004000) != 0)) {
7556  to_bitField0_ |= 0x00004000;
7557  }
7558  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7559  if (((from_bitField0_ & 0x00008000) != 0)) {
7560  to_bitField0_ |= 0x00008000;
7561  }
7562  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7563  if (((from_bitField0_ & 0x00010000) != 0)) {
7564  to_bitField0_ |= 0x00010000;
7565  }
7566  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7567  if (((from_bitField0_ & 0x00020000) != 0)) {
7568  to_bitField0_ |= 0x00020000;
7569  }
7570  result.pbCleanupRatio_ = pbCleanupRatio_;
7571  if (((from_bitField0_ & 0x00040000) != 0)) {
7572  to_bitField0_ |= 0x00040000;
7573  }
7574  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7575  if (((from_bitField0_ & 0x00080000) != 0)) {
7576  to_bitField0_ |= 0x00080000;
7577  }
7578  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7579  if (((from_bitField0_ & 0x00100000) != 0)) {
7580  to_bitField0_ |= 0x00100000;
7581  }
7582  result.variableActivityDecay_ = variableActivityDecay_;
7583  if (((from_bitField0_ & 0x00200000) != 0)) {
7584  to_bitField0_ |= 0x00200000;
7585  }
7586  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7587  if (((from_bitField0_ & 0x00400000) != 0)) {
7588  to_bitField0_ |= 0x00400000;
7589  }
7590  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7591  if (((from_bitField0_ & 0x00800000) != 0)) {
7592  to_bitField0_ |= 0x00800000;
7593  }
7594  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7595  if (((from_bitField0_ & 0x01000000) != 0)) {
7596  to_bitField0_ |= 0x01000000;
7597  }
7598  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7599  if (((from_bitField0_ & 0x02000000) != 0)) {
7600  to_bitField0_ |= 0x02000000;
7601  }
7602  result.clauseActivityDecay_ = clauseActivityDecay_;
7603  if (((from_bitField0_ & 0x04000000) != 0)) {
7604  to_bitField0_ |= 0x04000000;
7605  }
7606  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7607  if (((bitField0_ & 0x08000000) != 0)) {
7608  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7609  bitField0_ = (bitField0_ & ~0x08000000);
7610  }
7611  result.restartAlgorithms_ = restartAlgorithms_;
7612  if (((from_bitField0_ & 0x10000000) != 0)) {
7613  to_bitField0_ |= 0x08000000;
7614  }
7615  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7616  if (((from_bitField0_ & 0x20000000) != 0)) {
7617  to_bitField0_ |= 0x10000000;
7618  }
7619  result.restartPeriod_ = restartPeriod_;
7620  if (((from_bitField0_ & 0x40000000) != 0)) {
7621  to_bitField0_ |= 0x20000000;
7622  }
7623  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7624  if (((from_bitField0_ & 0x80000000) != 0)) {
7625  to_bitField0_ |= 0x40000000;
7626  }
7627  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7628  if (((from_bitField1_ & 0x00000001) != 0)) {
7629  to_bitField0_ |= 0x80000000;
7630  }
7631  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7632  if (((from_bitField1_ & 0x00000002) != 0)) {
7633  result.useBlockingRestart_ = useBlockingRestart_;
7634  to_bitField1_ |= 0x00000001;
7635  }
7636  if (((from_bitField1_ & 0x00000004) != 0)) {
7637  to_bitField1_ |= 0x00000002;
7638  }
7639  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7640  if (((from_bitField1_ & 0x00000008) != 0)) {
7641  to_bitField1_ |= 0x00000004;
7642  }
7643  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7644  if (((from_bitField1_ & 0x00000010) != 0)) {
7645  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7646  to_bitField1_ |= 0x00000008;
7647  }
7648  if (((from_bitField1_ & 0x00000020) != 0)) {
7649  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7650  to_bitField1_ |= 0x00000010;
7651  }
7652  if (((from_bitField1_ & 0x00000040) != 0)) {
7653  to_bitField1_ |= 0x00000020;
7654  }
7655  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7656  if (((from_bitField1_ & 0x00000080) != 0)) {
7657  to_bitField1_ |= 0x00000040;
7658  }
7659  result.maxDeterministicTime_ = maxDeterministicTime_;
7660  if (((from_bitField1_ & 0x00000100) != 0)) {
7661  to_bitField1_ |= 0x00000080;
7662  }
7663  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7664  if (((from_bitField1_ & 0x00000200) != 0)) {
7665  to_bitField1_ |= 0x00000100;
7666  }
7667  result.maxMemoryInMb_ = maxMemoryInMb_;
7668  if (((from_bitField1_ & 0x00000400) != 0)) {
7669  to_bitField1_ |= 0x00000200;
7670  }
7671  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7672  if (((from_bitField1_ & 0x00000800) != 0)) {
7673  to_bitField1_ |= 0x00000400;
7674  }
7675  result.randomSeed_ = randomSeed_;
7676  if (((from_bitField1_ & 0x00001000) != 0)) {
7677  result.logSearchProgress_ = logSearchProgress_;
7678  to_bitField1_ |= 0x00000800;
7679  }
7680  if (((from_bitField1_ & 0x00002000) != 0)) {
7681  result.usePbResolution_ = usePbResolution_;
7682  to_bitField1_ |= 0x00001000;
7683  }
7684  if (((from_bitField1_ & 0x00004000) != 0)) {
7685  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7686  to_bitField1_ |= 0x00002000;
7687  }
7688  if (((from_bitField1_ & 0x00008000) != 0)) {
7689  to_bitField1_ |= 0x00004000;
7690  }
7691  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7692  if (((from_bitField1_ & 0x00010000) != 0)) {
7693  to_bitField1_ |= 0x00008000;
7694  }
7695  result.presolveBveThreshold_ = presolveBveThreshold_;
7696  if (((from_bitField1_ & 0x00020000) != 0)) {
7697  to_bitField1_ |= 0x00010000;
7698  }
7699  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7700  if (((from_bitField1_ & 0x00040000) != 0)) {
7701  to_bitField1_ |= 0x00020000;
7702  }
7703  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7704  if (((from_bitField1_ & 0x00080000) != 0)) {
7705  to_bitField1_ |= 0x00040000;
7706  }
7707  result.presolveBlockedClause_ = presolveBlockedClause_;
7708  if (((from_bitField1_ & 0x00100000) != 0)) {
7709  to_bitField1_ |= 0x00080000;
7710  }
7711  result.presolveUseBva_ = presolveUseBva_;
7712  if (((from_bitField1_ & 0x00200000) != 0)) {
7713  to_bitField1_ |= 0x00100000;
7714  }
7715  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7716  if (((from_bitField1_ & 0x00400000) != 0)) {
7717  to_bitField1_ |= 0x00200000;
7718  }
7719  result.useOptimizationHints_ = useOptimizationHints_;
7720  if (((from_bitField1_ & 0x00800000) != 0)) {
7721  to_bitField1_ |= 0x00400000;
7722  }
7723  result.minimizeCore_ = minimizeCore_;
7724  if (((from_bitField1_ & 0x01000000) != 0)) {
7725  to_bitField1_ |= 0x00800000;
7726  }
7727  result.findMultipleCores_ = findMultipleCores_;
7728  if (((from_bitField1_ & 0x02000000) != 0)) {
7729  to_bitField1_ |= 0x01000000;
7730  }
7731  result.coverOptimization_ = coverOptimization_;
7732  if (((from_bitField1_ & 0x04000000) != 0)) {
7733  to_bitField1_ |= 0x02000000;
7734  }
7735  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
7736  if (((from_bitField1_ & 0x08000000) != 0)) {
7737  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
7738  to_bitField1_ |= 0x04000000;
7739  }
7740  if (((from_bitField1_ & 0x10000000) != 0)) {
7741  to_bitField1_ |= 0x08000000;
7742  }
7743  result.maxSatStratification_ = maxSatStratification_;
7744  if (((from_bitField1_ & 0x20000000) != 0)) {
7745  to_bitField1_ |= 0x10000000;
7746  }
7747  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
7748  if (((from_bitField1_ & 0x40000000) != 0)) {
7749  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
7750  to_bitField1_ |= 0x20000000;
7751  }
7752  if (((from_bitField1_ & 0x80000000) != 0)) {
7753  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
7754  to_bitField1_ |= 0x40000000;
7755  }
7756  if (((from_bitField2_ & 0x00000001) != 0)) {
7757  to_bitField1_ |= 0x80000000;
7758  }
7759  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
7760  if (((from_bitField2_ & 0x00000002) != 0)) {
7761  to_bitField2_ |= 0x00000001;
7762  }
7763  result.linearizationLevel_ = linearizationLevel_;
7764  if (((from_bitField2_ & 0x00000004) != 0)) {
7765  to_bitField2_ |= 0x00000002;
7766  }
7767  result.booleanEncodingLevel_ = booleanEncodingLevel_;
7768  if (((from_bitField2_ & 0x00000008) != 0)) {
7769  to_bitField2_ |= 0x00000004;
7770  }
7771  result.maxNumCuts_ = maxNumCuts_;
7772  if (((from_bitField2_ & 0x00000010) != 0)) {
7773  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
7774  to_bitField2_ |= 0x00000008;
7775  }
7776  if (((from_bitField2_ & 0x00000020) != 0)) {
7777  result.addKnapsackCuts_ = addKnapsackCuts_;
7778  to_bitField2_ |= 0x00000010;
7779  }
7780  if (((from_bitField2_ & 0x00000040) != 0)) {
7781  result.addCgCuts_ = addCgCuts_;
7782  to_bitField2_ |= 0x00000020;
7783  }
7784  if (((from_bitField2_ & 0x00000080) != 0)) {
7785  to_bitField2_ |= 0x00000040;
7786  }
7787  result.addMirCuts_ = addMirCuts_;
7788  if (((from_bitField2_ & 0x00000100) != 0)) {
7789  to_bitField2_ |= 0x00000080;
7790  }
7791  result.useMirRounding_ = useMirRounding_;
7792  if (((from_bitField2_ & 0x00000200) != 0)) {
7793  to_bitField2_ |= 0x00000100;
7794  }
7795  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
7796  if (((from_bitField2_ & 0x00000400) != 0)) {
7797  to_bitField2_ |= 0x00000200;
7798  }
7799  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
7800  if (((from_bitField2_ & 0x00000800) != 0)) {
7801  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
7802  to_bitField2_ |= 0x00000400;
7803  }
7804  if (((from_bitField2_ & 0x00001000) != 0)) {
7805  to_bitField2_ |= 0x00000800;
7806  }
7807  result.maxInactiveCount_ = maxInactiveCount_;
7808  if (((from_bitField2_ & 0x00002000) != 0)) {
7809  to_bitField2_ |= 0x00001000;
7810  }
7811  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
7812  if (((from_bitField2_ & 0x00004000) != 0)) {
7813  to_bitField2_ |= 0x00002000;
7814  }
7815  result.searchBranching_ = searchBranching_;
7816  if (((from_bitField2_ & 0x00008000) != 0)) {
7817  to_bitField2_ |= 0x00004000;
7818  }
7819  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
7820  if (((from_bitField2_ & 0x00010000) != 0)) {
7821  to_bitField2_ |= 0x00008000;
7822  }
7823  result.exploitAllLpSolution_ = exploitAllLpSolution_;
7824  if (((from_bitField2_ & 0x00020000) != 0)) {
7825  result.exploitBestSolution_ = exploitBestSolution_;
7826  to_bitField2_ |= 0x00010000;
7827  }
7828  if (((from_bitField2_ & 0x00040000) != 0)) {
7829  to_bitField2_ |= 0x00020000;
7830  }
7831  result.exploitObjective_ = exploitObjective_;
7832  if (((from_bitField2_ & 0x00080000) != 0)) {
7833  to_bitField2_ |= 0x00040000;
7834  }
7835  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
7836  if (((from_bitField2_ & 0x00100000) != 0)) {
7837  result.optimizeWithCore_ = optimizeWithCore_;
7838  to_bitField2_ |= 0x00080000;
7839  }
7840  if (((from_bitField2_ & 0x00200000) != 0)) {
7841  to_bitField2_ |= 0x00100000;
7842  }
7843  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
7844  if (((from_bitField2_ & 0x00400000) != 0)) {
7845  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
7846  to_bitField2_ |= 0x00200000;
7847  }
7848  if (((from_bitField2_ & 0x00800000) != 0)) {
7849  to_bitField2_ |= 0x00400000;
7850  }
7851  result.cpModelPresolve_ = cpModelPresolve_;
7852  if (((from_bitField2_ & 0x01000000) != 0)) {
7853  to_bitField2_ |= 0x00800000;
7854  }
7855  result.cpModelProbingLevel_ = cpModelProbingLevel_;
7856  if (((from_bitField2_ & 0x02000000) != 0)) {
7857  to_bitField2_ |= 0x01000000;
7858  }
7859  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
7860  if (((from_bitField2_ & 0x04000000) != 0)) {
7861  result.enumerateAllSolutions_ = enumerateAllSolutions_;
7862  to_bitField2_ |= 0x02000000;
7863  }
7864  if (((from_bitField2_ & 0x08000000) != 0)) {
7865  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
7866  to_bitField2_ |= 0x04000000;
7867  }
7868  if (((from_bitField2_ & 0x10000000) != 0)) {
7869  to_bitField2_ |= 0x08000000;
7870  }
7871  result.instantiateAllVariables_ = instantiateAllVariables_;
7872  if (((from_bitField2_ & 0x20000000) != 0)) {
7873  to_bitField2_ |= 0x10000000;
7874  }
7875  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
7876  if (((from_bitField2_ & 0x40000000) != 0)) {
7877  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
7878  to_bitField2_ |= 0x20000000;
7879  }
7880  if (((from_bitField2_ & 0x80000000) != 0)) {
7881  result.numSearchWorkers_ = numSearchWorkers_;
7882  to_bitField2_ |= 0x40000000;
7883  }
7884  if (((from_bitField3_ & 0x00000001) != 0)) {
7885  result.deterministicParallelSearch_ = deterministicParallelSearch_;
7886  to_bitField2_ |= 0x80000000;
7887  }
7888  if (((from_bitField3_ & 0x00000002) != 0)) {
7889  to_bitField3_ |= 0x00000001;
7890  }
7891  result.shareObjectiveBounds_ = shareObjectiveBounds_;
7892  if (((from_bitField3_ & 0x00000004) != 0)) {
7893  to_bitField3_ |= 0x00000002;
7894  }
7895  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
7896  if (((from_bitField3_ & 0x00000008) != 0)) {
7897  result.useLnsOnly_ = useLnsOnly_;
7898  to_bitField3_ |= 0x00000004;
7899  }
7900  if (((from_bitField3_ & 0x00000010) != 0)) {
7901  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
7902  to_bitField3_ |= 0x00000008;
7903  }
7904  if (((from_bitField3_ & 0x00000020) != 0)) {
7905  result.useRinsLns_ = useRinsLns_;
7906  to_bitField3_ |= 0x00000010;
7907  }
7908  if (((from_bitField3_ & 0x00000040) != 0)) {
7909  result.randomizeSearch_ = randomizeSearch_;
7910  to_bitField3_ |= 0x00000020;
7911  }
7912  if (((from_bitField3_ & 0x00000080) != 0)) {
7913  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
7914  to_bitField3_ |= 0x00000040;
7915  }
7916  if (((from_bitField3_ & 0x00000100) != 0)) {
7917  to_bitField3_ |= 0x00000080;
7918  }
7919  result.useOptionalVariables_ = useOptionalVariables_;
7920  if (((from_bitField3_ & 0x00000200) != 0)) {
7921  to_bitField3_ |= 0x00000100;
7922  }
7923  result.useExactLpReason_ = useExactLpReason_;
7924  if (((from_bitField3_ & 0x00000400) != 0)) {
7925  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
7926  to_bitField3_ |= 0x00000200;
7927  }
7928  if (((from_bitField3_ & 0x00000800) != 0)) {
7929  to_bitField3_ |= 0x00000400;
7930  }
7931  result.mipMaxBound_ = mipMaxBound_;
7932  if (((from_bitField3_ & 0x00001000) != 0)) {
7933  to_bitField3_ |= 0x00000800;
7934  }
7935  result.mipVarScaling_ = mipVarScaling_;
7936  if (((from_bitField3_ & 0x00002000) != 0)) {
7937  to_bitField3_ |= 0x00001000;
7938  }
7939  result.mipWantedPrecision_ = mipWantedPrecision_;
7940  if (((from_bitField3_ & 0x00004000) != 0)) {
7941  to_bitField3_ |= 0x00002000;
7942  }
7943  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
7944  if (((from_bitField3_ & 0x00008000) != 0)) {
7945  to_bitField3_ |= 0x00004000;
7946  }
7947  result.mipCheckPrecision_ = mipCheckPrecision_;
7948  if (((from_bitField3_ & 0x00010000) != 0)) {
7949  to_bitField3_ |= 0x00008000;
7950  }
7951  result.catchSigintSignal_ = catchSigintSignal_;
7952  result.bitField0_ = to_bitField0_;
7953  result.bitField1_ = to_bitField1_;
7954  result.bitField2_ = to_bitField2_;
7955  result.bitField3_ = to_bitField3_;
7956  onBuilt();
7957  return result;
7958  }
7959 
7960  @java.lang.Override
7961  public Builder clone() {
7962  return super.clone();
7963  }
7964  @java.lang.Override
7966  com.google.protobuf.Descriptors.FieldDescriptor field,
7967  java.lang.Object value) {
7968  return super.setField(field, value);
7969  }
7970  @java.lang.Override
7972  com.google.protobuf.Descriptors.FieldDescriptor field) {
7973  return super.clearField(field);
7974  }
7975  @java.lang.Override
7977  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
7978  return super.clearOneof(oneof);
7979  }
7980  @java.lang.Override
7982  com.google.protobuf.Descriptors.FieldDescriptor field,
7983  int index, java.lang.Object value) {
7984  return super.setRepeatedField(field, index, value);
7985  }
7986  @java.lang.Override
7988  com.google.protobuf.Descriptors.FieldDescriptor field,
7989  java.lang.Object value) {
7990  return super.addRepeatedField(field, value);
7991  }
7992  @java.lang.Override
7993  public Builder mergeFrom(com.google.protobuf.Message other) {
7994  if (other instanceof com.google.ortools.sat.SatParameters) {
7995  return mergeFrom((com.google.ortools.sat.SatParameters)other);
7996  } else {
7997  super.mergeFrom(other);
7998  return this;
7999  }
8000  }
8001 
8003  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8004  if (other.hasPreferredVariableOrder()) {
8005  setPreferredVariableOrder(other.getPreferredVariableOrder());
8006  }
8007  if (other.hasInitialPolarity()) {
8008  setInitialPolarity(other.getInitialPolarity());
8009  }
8010  if (other.hasUsePhaseSaving()) {
8011  setUsePhaseSaving(other.getUsePhaseSaving());
8012  }
8013  if (other.hasRandomPolarityRatio()) {
8014  setRandomPolarityRatio(other.getRandomPolarityRatio());
8015  }
8016  if (other.hasRandomBranchesRatio()) {
8017  setRandomBranchesRatio(other.getRandomBranchesRatio());
8018  }
8019  if (other.hasUseErwaHeuristic()) {
8020  setUseErwaHeuristic(other.getUseErwaHeuristic());
8021  }
8022  if (other.hasInitialVariablesActivity()) {
8023  setInitialVariablesActivity(other.getInitialVariablesActivity());
8024  }
8025  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8026  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8027  }
8028  if (other.hasMinimizationAlgorithm()) {
8029  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8030  }
8031  if (other.hasBinaryMinimizationAlgorithm()) {
8032  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8033  }
8034  if (other.hasSubsumptionDuringConflictAnalysis()) {
8035  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8036  }
8037  if (other.hasClauseCleanupPeriod()) {
8038  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8039  }
8040  if (other.hasClauseCleanupTarget()) {
8041  setClauseCleanupTarget(other.getClauseCleanupTarget());
8042  }
8043  if (other.hasClauseCleanupProtection()) {
8044  setClauseCleanupProtection(other.getClauseCleanupProtection());
8045  }
8046  if (other.hasClauseCleanupLbdBound()) {
8047  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8048  }
8049  if (other.hasClauseCleanupOrdering()) {
8050  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8051  }
8052  if (other.hasPbCleanupIncrement()) {
8053  setPbCleanupIncrement(other.getPbCleanupIncrement());
8054  }
8055  if (other.hasPbCleanupRatio()) {
8056  setPbCleanupRatio(other.getPbCleanupRatio());
8057  }
8058  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8059  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8060  }
8061  if (other.hasMinimizeWithPropagationNumDecisions()) {
8062  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8063  }
8064  if (other.hasVariableActivityDecay()) {
8065  setVariableActivityDecay(other.getVariableActivityDecay());
8066  }
8067  if (other.hasMaxVariableActivityValue()) {
8068  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8069  }
8070  if (other.hasGlucoseMaxDecay()) {
8071  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8072  }
8073  if (other.hasGlucoseDecayIncrement()) {
8074  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8075  }
8076  if (other.hasGlucoseDecayIncrementPeriod()) {
8077  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8078  }
8079  if (other.hasClauseActivityDecay()) {
8080  setClauseActivityDecay(other.getClauseActivityDecay());
8081  }
8082  if (other.hasMaxClauseActivityValue()) {
8083  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8084  }
8085  if (!other.restartAlgorithms_.isEmpty()) {
8086  if (restartAlgorithms_.isEmpty()) {
8087  restartAlgorithms_ = other.restartAlgorithms_;
8088  bitField0_ = (bitField0_ & ~0x08000000);
8089  } else {
8090  ensureRestartAlgorithmsIsMutable();
8091  restartAlgorithms_.addAll(other.restartAlgorithms_);
8092  }
8093  onChanged();
8094  }
8095  if (other.hasDefaultRestartAlgorithms()) {
8096  bitField0_ |= 0x10000000;
8097  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8098  onChanged();
8099  }
8100  if (other.hasRestartPeriod()) {
8101  setRestartPeriod(other.getRestartPeriod());
8102  }
8103  if (other.hasRestartRunningWindowSize()) {
8104  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8105  }
8106  if (other.hasRestartDlAverageRatio()) {
8107  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8108  }
8109  if (other.hasRestartLbdAverageRatio()) {
8110  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8111  }
8112  if (other.hasUseBlockingRestart()) {
8113  setUseBlockingRestart(other.getUseBlockingRestart());
8114  }
8115  if (other.hasBlockingRestartWindowSize()) {
8116  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8117  }
8118  if (other.hasBlockingRestartMultiplier()) {
8119  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8120  }
8121  if (other.hasNumConflictsBeforeStrategyChanges()) {
8122  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8123  }
8124  if (other.hasStrategyChangeIncreaseRatio()) {
8125  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8126  }
8127  if (other.hasMaxTimeInSeconds()) {
8128  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8129  }
8130  if (other.hasMaxDeterministicTime()) {
8131  setMaxDeterministicTime(other.getMaxDeterministicTime());
8132  }
8133  if (other.hasMaxNumberOfConflicts()) {
8134  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8135  }
8136  if (other.hasMaxMemoryInMb()) {
8137  setMaxMemoryInMb(other.getMaxMemoryInMb());
8138  }
8139  if (other.hasTreatBinaryClausesSeparately()) {
8140  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8141  }
8142  if (other.hasRandomSeed()) {
8143  setRandomSeed(other.getRandomSeed());
8144  }
8145  if (other.hasLogSearchProgress()) {
8146  setLogSearchProgress(other.getLogSearchProgress());
8147  }
8148  if (other.hasUsePbResolution()) {
8149  setUsePbResolution(other.getUsePbResolution());
8150  }
8151  if (other.hasMinimizeReductionDuringPbResolution()) {
8152  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8153  }
8154  if (other.hasCountAssumptionLevelsInLbd()) {
8155  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8156  }
8157  if (other.hasPresolveBveThreshold()) {
8158  setPresolveBveThreshold(other.getPresolveBveThreshold());
8159  }
8160  if (other.hasPresolveBveClauseWeight()) {
8161  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8162  }
8163  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8164  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8165  }
8166  if (other.hasPresolveBlockedClause()) {
8167  setPresolveBlockedClause(other.getPresolveBlockedClause());
8168  }
8169  if (other.hasPresolveUseBva()) {
8170  setPresolveUseBva(other.getPresolveUseBva());
8171  }
8172  if (other.hasPresolveBvaThreshold()) {
8173  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8174  }
8175  if (other.hasUseOptimizationHints()) {
8176  setUseOptimizationHints(other.getUseOptimizationHints());
8177  }
8178  if (other.hasMinimizeCore()) {
8179  setMinimizeCore(other.getMinimizeCore());
8180  }
8181  if (other.hasFindMultipleCores()) {
8182  setFindMultipleCores(other.getFindMultipleCores());
8183  }
8184  if (other.hasCoverOptimization()) {
8185  setCoverOptimization(other.getCoverOptimization());
8186  }
8187  if (other.hasMaxSatAssumptionOrder()) {
8188  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8189  }
8190  if (other.hasMaxSatReverseAssumptionOrder()) {
8191  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8192  }
8193  if (other.hasMaxSatStratification()) {
8194  setMaxSatStratification(other.getMaxSatStratification());
8195  }
8196  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8197  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8198  }
8199  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8200  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8201  }
8202  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8203  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8204  }
8205  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8206  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8207  }
8208  if (other.hasLinearizationLevel()) {
8209  setLinearizationLevel(other.getLinearizationLevel());
8210  }
8211  if (other.hasBooleanEncodingLevel()) {
8212  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8213  }
8214  if (other.hasMaxNumCuts()) {
8215  setMaxNumCuts(other.getMaxNumCuts());
8216  }
8217  if (other.hasOnlyAddCutsAtLevelZero()) {
8218  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8219  }
8220  if (other.hasAddKnapsackCuts()) {
8221  setAddKnapsackCuts(other.getAddKnapsackCuts());
8222  }
8223  if (other.hasAddCgCuts()) {
8224  setAddCgCuts(other.getAddCgCuts());
8225  }
8226  if (other.hasAddMirCuts()) {
8227  setAddMirCuts(other.getAddMirCuts());
8228  }
8229  if (other.hasUseMirRounding()) {
8230  setUseMirRounding(other.getUseMirRounding());
8231  }
8232  if (other.hasMaxIntegerRoundingScaling()) {
8233  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8234  }
8235  if (other.hasAddLpConstraintsLazily()) {
8236  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8237  }
8238  if (other.hasMinOrthogonalityForLpConstraints()) {
8239  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8240  }
8241  if (other.hasMaxInactiveCount()) {
8242  setMaxInactiveCount(other.getMaxInactiveCount());
8243  }
8244  if (other.hasConstraintRemovalBatchSize()) {
8245  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8246  }
8247  if (other.hasSearchBranching()) {
8248  setSearchBranching(other.getSearchBranching());
8249  }
8250  if (other.hasExploitIntegerLpSolution()) {
8251  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8252  }
8253  if (other.hasExploitAllLpSolution()) {
8254  setExploitAllLpSolution(other.getExploitAllLpSolution());
8255  }
8256  if (other.hasExploitBestSolution()) {
8257  setExploitBestSolution(other.getExploitBestSolution());
8258  }
8259  if (other.hasExploitObjective()) {
8260  setExploitObjective(other.getExploitObjective());
8261  }
8262  if (other.hasPseudoCostReliabilityThreshold()) {
8263  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8264  }
8265  if (other.hasOptimizeWithCore()) {
8266  setOptimizeWithCore(other.getOptimizeWithCore());
8267  }
8268  if (other.hasBinarySearchNumConflicts()) {
8269  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8270  }
8271  if (other.hasOptimizeWithMaxHs()) {
8272  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8273  }
8274  if (other.hasCpModelPresolve()) {
8275  setCpModelPresolve(other.getCpModelPresolve());
8276  }
8277  if (other.hasCpModelProbingLevel()) {
8278  setCpModelProbingLevel(other.getCpModelProbingLevel());
8279  }
8280  if (other.hasCpModelUseSatPresolve()) {
8281  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8282  }
8283  if (other.hasEnumerateAllSolutions()) {
8284  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8285  }
8286  if (other.hasFillTightenedDomainsInResponse()) {
8287  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8288  }
8289  if (other.hasInstantiateAllVariables()) {
8290  setInstantiateAllVariables(other.getInstantiateAllVariables());
8291  }
8292  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8293  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8294  }
8295  if (other.hasStopAfterFirstSolution()) {
8296  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8297  }
8298  if (other.hasNumSearchWorkers()) {
8299  setNumSearchWorkers(other.getNumSearchWorkers());
8300  }
8301  if (other.hasDeterministicParallelSearch()) {
8302  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
8303  }
8304  if (other.hasShareObjectiveBounds()) {
8305  setShareObjectiveBounds(other.getShareObjectiveBounds());
8306  }
8307  if (other.hasShareLevelZeroBounds()) {
8308  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8309  }
8310  if (other.hasUseLnsOnly()) {
8311  setUseLnsOnly(other.getUseLnsOnly());
8312  }
8313  if (other.hasLnsFocusOnDecisionVariables()) {
8314  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8315  }
8316  if (other.hasUseRinsLns()) {
8317  setUseRinsLns(other.getUseRinsLns());
8318  }
8319  if (other.hasRandomizeSearch()) {
8320  setRandomizeSearch(other.getRandomizeSearch());
8321  }
8322  if (other.hasSearchRandomizationTolerance()) {
8323  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8324  }
8325  if (other.hasUseOptionalVariables()) {
8326  setUseOptionalVariables(other.getUseOptionalVariables());
8327  }
8328  if (other.hasUseExactLpReason()) {
8329  setUseExactLpReason(other.getUseExactLpReason());
8330  }
8331  if (other.hasUseCombinedNoOverlap()) {
8332  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8333  }
8334  if (other.hasMipMaxBound()) {
8335  setMipMaxBound(other.getMipMaxBound());
8336  }
8337  if (other.hasMipVarScaling()) {
8338  setMipVarScaling(other.getMipVarScaling());
8339  }
8340  if (other.hasMipWantedPrecision()) {
8341  setMipWantedPrecision(other.getMipWantedPrecision());
8342  }
8343  if (other.hasMipMaxActivityExponent()) {
8344  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8345  }
8346  if (other.hasMipCheckPrecision()) {
8347  setMipCheckPrecision(other.getMipCheckPrecision());
8348  }
8349  if (other.hasCatchSigintSignal()) {
8350  setCatchSigintSignal(other.getCatchSigintSignal());
8351  }
8352  this.mergeUnknownFields(other.unknownFields);
8353  onChanged();
8354  return this;
8355  }
8356 
8357  @java.lang.Override
8358  public final boolean isInitialized() {
8359  return true;
8360  }
8361 
8362  @java.lang.Override
8364  com.google.protobuf.CodedInputStream input,
8365  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8366  throws java.io.IOException {
8367  com.google.ortools.sat.SatParameters parsedMessage = null;
8368  try {
8369  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8370  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8371  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8372  throw e.unwrapIOException();
8373  } finally {
8374  if (parsedMessage != null) {
8375  mergeFrom(parsedMessage);
8376  }
8377  }
8378  return this;
8379  }
8380  private int bitField0_;
8381  private int bitField1_;
8382  private int bitField2_;
8383  private int bitField3_;
8384 
8385  private int preferredVariableOrder_ = 0;
8389  public boolean hasPreferredVariableOrder() {
8390  return ((bitField0_ & 0x00000001) != 0);
8391  }
8396  @SuppressWarnings("deprecation")
8398  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8399  }
8404  if (value == null) {
8405  throw new NullPointerException();
8406  }
8407  bitField0_ |= 0x00000001;
8408  preferredVariableOrder_ = value.getNumber();
8409  onChanged();
8410  return this;
8411  }
8416  bitField0_ = (bitField0_ & ~0x00000001);
8417  preferredVariableOrder_ = 0;
8418  onChanged();
8419  return this;
8420  }
8421 
8422  private int initialPolarity_ = 1;
8426  public boolean hasInitialPolarity() {
8427  return ((bitField0_ & 0x00000002) != 0);
8428  }
8433  @SuppressWarnings("deprecation")
8435  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8436  }
8441  if (value == null) {
8442  throw new NullPointerException();
8443  }
8444  bitField0_ |= 0x00000002;
8445  initialPolarity_ = value.getNumber();
8446  onChanged();
8447  return this;
8448  }
8453  bitField0_ = (bitField0_ & ~0x00000002);
8454  initialPolarity_ = 1;
8455  onChanged();
8456  return this;
8457  }
8458 
8459  private boolean usePhaseSaving_ = true;
8473  public boolean hasUsePhaseSaving() {
8474  return ((bitField0_ & 0x00000004) != 0);
8475  }
8489  public boolean getUsePhaseSaving() {
8490  return usePhaseSaving_;
8491  }
8505  public Builder setUsePhaseSaving(boolean value) {
8506  bitField0_ |= 0x00000004;
8507  usePhaseSaving_ = value;
8508  onChanged();
8509  return this;
8510  }
8525  bitField0_ = (bitField0_ & ~0x00000004);
8526  usePhaseSaving_ = true;
8527  onChanged();
8528  return this;
8529  }
8530 
8531  private double randomPolarityRatio_ ;
8543  public boolean hasRandomPolarityRatio() {
8544  return ((bitField0_ & 0x00000008) != 0);
8545  }
8557  public double getRandomPolarityRatio() {
8558  return randomPolarityRatio_;
8559  }
8571  public Builder setRandomPolarityRatio(double value) {
8572  bitField0_ |= 0x00000008;
8573  randomPolarityRatio_ = value;
8574  onChanged();
8575  return this;
8576  }
8589  bitField0_ = (bitField0_ & ~0x00000008);
8590  randomPolarityRatio_ = 0D;
8591  onChanged();
8592  return this;
8593  }
8594 
8595  private double randomBranchesRatio_ ;
8605  public boolean hasRandomBranchesRatio() {
8606  return ((bitField0_ & 0x00000010) != 0);
8607  }
8617  public double getRandomBranchesRatio() {
8618  return randomBranchesRatio_;
8619  }
8629  public Builder setRandomBranchesRatio(double value) {
8630  bitField0_ |= 0x00000010;
8631  randomBranchesRatio_ = value;
8632  onChanged();
8633  return this;
8634  }
8645  bitField0_ = (bitField0_ & ~0x00000010);
8646  randomBranchesRatio_ = 0D;
8647  onChanged();
8648  return this;
8649  }
8650 
8651  private boolean useErwaHeuristic_ ;
8661  public boolean hasUseErwaHeuristic() {
8662  return ((bitField0_ & 0x00000020) != 0);
8663  }
8673  public boolean getUseErwaHeuristic() {
8674  return useErwaHeuristic_;
8675  }
8685  public Builder setUseErwaHeuristic(boolean value) {
8686  bitField0_ |= 0x00000020;
8687  useErwaHeuristic_ = value;
8688  onChanged();
8689  return this;
8690  }
8701  bitField0_ = (bitField0_ & ~0x00000020);
8702  useErwaHeuristic_ = false;
8703  onChanged();
8704  return this;
8705  }
8706 
8707  private double initialVariablesActivity_ ;
8720  public boolean hasInitialVariablesActivity() {
8721  return ((bitField0_ & 0x00000040) != 0);
8722  }
8736  return initialVariablesActivity_;
8737  }
8750  public Builder setInitialVariablesActivity(double value) {
8751  bitField0_ |= 0x00000040;
8752  initialVariablesActivity_ = value;
8753  onChanged();
8754  return this;
8755  }
8769  bitField0_ = (bitField0_ & ~0x00000040);
8770  initialVariablesActivity_ = 0D;
8771  onChanged();
8772  return this;
8773  }
8774 
8775  private boolean alsoBumpVariablesInConflictReasons_ ;
8787  return ((bitField0_ & 0x00000080) != 0);
8788  }
8800  return alsoBumpVariablesInConflictReasons_;
8801  }
8813  bitField0_ |= 0x00000080;
8814  alsoBumpVariablesInConflictReasons_ = value;
8815  onChanged();
8816  return this;
8817  }
8829  bitField0_ = (bitField0_ & ~0x00000080);
8830  alsoBumpVariablesInConflictReasons_ = false;
8831  onChanged();
8832  return this;
8833  }
8834 
8835  private int minimizationAlgorithm_ = 2;
8839  public boolean hasMinimizationAlgorithm() {
8840  return ((bitField0_ & 0x00000100) != 0);
8841  }
8846  @SuppressWarnings("deprecation")
8848  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
8849  }
8854  if (value == null) {
8855  throw new NullPointerException();
8856  }
8857  bitField0_ |= 0x00000100;
8858  minimizationAlgorithm_ = value.getNumber();
8859  onChanged();
8860  return this;
8861  }
8866  bitField0_ = (bitField0_ & ~0x00000100);
8867  minimizationAlgorithm_ = 2;
8868  onChanged();
8869  return this;
8870  }
8871 
8872  private int binaryMinimizationAlgorithm_ = 1;
8877  return ((bitField0_ & 0x00000200) != 0);
8878  }
8883  @SuppressWarnings("deprecation")
8886  }
8891  if (value == null) {
8892  throw new NullPointerException();
8893  }
8894  bitField0_ |= 0x00000200;
8895  binaryMinimizationAlgorithm_ = value.getNumber();
8896  onChanged();
8897  return this;
8898  }
8903  bitField0_ = (bitField0_ & ~0x00000200);
8904  binaryMinimizationAlgorithm_ = 1;
8905  onChanged();
8906  return this;
8907  }
8908 
8909  private boolean subsumptionDuringConflictAnalysis_ = true;
8921  return ((bitField0_ & 0x00000400) != 0);
8922  }
8934  return subsumptionDuringConflictAnalysis_;
8935  }
8947  bitField0_ |= 0x00000400;
8948  subsumptionDuringConflictAnalysis_ = value;
8949  onChanged();
8950  return this;
8951  }
8963  bitField0_ = (bitField0_ & ~0x00000400);
8964  subsumptionDuringConflictAnalysis_ = true;
8965  onChanged();
8966  return this;
8967  }
8968 
8969  private int clauseCleanupPeriod_ = 10000;
8977  public boolean hasClauseCleanupPeriod() {
8978  return ((bitField0_ & 0x00000800) != 0);
8979  }
8987  public int getClauseCleanupPeriod() {
8988  return clauseCleanupPeriod_;
8989  }
8997  public Builder setClauseCleanupPeriod(int value) {
8998  bitField0_ |= 0x00000800;
8999  clauseCleanupPeriod_ = value;
9000  onChanged();
9001  return this;
9002  }
9011  bitField0_ = (bitField0_ & ~0x00000800);
9012  clauseCleanupPeriod_ = 10000;
9013  onChanged();
9014  return this;
9015  }
9016 
9017  private int clauseCleanupTarget_ = 10000;
9026  public boolean hasClauseCleanupTarget() {
9027  return ((bitField0_ & 0x00001000) != 0);
9028  }
9037  public int getClauseCleanupTarget() {
9038  return clauseCleanupTarget_;
9039  }
9048  public Builder setClauseCleanupTarget(int value) {
9049  bitField0_ |= 0x00001000;
9050  clauseCleanupTarget_ = value;
9051  onChanged();
9052  return this;
9053  }
9063  bitField0_ = (bitField0_ & ~0x00001000);
9064  clauseCleanupTarget_ = 10000;
9065  onChanged();
9066  return this;
9067  }
9068 
9069  private int clauseCleanupProtection_ = 0;
9073  public boolean hasClauseCleanupProtection() {
9074  return ((bitField0_ & 0x00002000) != 0);
9075  }
9080  @SuppressWarnings("deprecation")
9082  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9083  }
9088  if (value == null) {
9089  throw new NullPointerException();
9090  }
9091  bitField0_ |= 0x00002000;
9092  clauseCleanupProtection_ = value.getNumber();
9093  onChanged();
9094  return this;
9095  }
9100  bitField0_ = (bitField0_ & ~0x00002000);
9101  clauseCleanupProtection_ = 0;
9102  onChanged();
9103  return this;
9104  }
9105 
9106  private int clauseCleanupLbdBound_ = 5;
9115  public boolean hasClauseCleanupLbdBound() {
9116  return ((bitField0_ & 0x00004000) != 0);
9117  }
9127  return clauseCleanupLbdBound_;
9128  }
9137  public Builder setClauseCleanupLbdBound(int value) {
9138  bitField0_ |= 0x00004000;
9139  clauseCleanupLbdBound_ = value;
9140  onChanged();
9141  return this;
9142  }
9152  bitField0_ = (bitField0_ & ~0x00004000);
9153  clauseCleanupLbdBound_ = 5;
9154  onChanged();
9155  return this;
9156  }
9157 
9158  private int clauseCleanupOrdering_ = 0;
9162  public boolean hasClauseCleanupOrdering() {
9163  return ((bitField0_ & 0x00008000) != 0);
9164  }
9169  @SuppressWarnings("deprecation")
9171  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9172  }
9177  if (value == null) {
9178  throw new NullPointerException();
9179  }
9180  bitField0_ |= 0x00008000;
9181  clauseCleanupOrdering_ = value.getNumber();
9182  onChanged();
9183  return this;
9184  }
9189  bitField0_ = (bitField0_ & ~0x00008000);
9190  clauseCleanupOrdering_ = 0;
9191  onChanged();
9192  return this;
9193  }
9194 
9195  private int pbCleanupIncrement_ = 200;
9203  public boolean hasPbCleanupIncrement() {
9204  return ((bitField0_ & 0x00010000) != 0);
9205  }
9213  public int getPbCleanupIncrement() {
9214  return pbCleanupIncrement_;
9215  }
9223  public Builder setPbCleanupIncrement(int value) {
9224  bitField0_ |= 0x00010000;
9225  pbCleanupIncrement_ = value;
9226  onChanged();
9227  return this;
9228  }
9237  bitField0_ = (bitField0_ & ~0x00010000);
9238  pbCleanupIncrement_ = 200;
9239  onChanged();
9240  return this;
9241  }
9242 
9243  private double pbCleanupRatio_ = 0.5D;
9247  public boolean hasPbCleanupRatio() {
9248  return ((bitField0_ & 0x00020000) != 0);
9249  }
9253  public double getPbCleanupRatio() {
9254  return pbCleanupRatio_;
9255  }
9259  public Builder setPbCleanupRatio(double value) {
9260  bitField0_ |= 0x00020000;
9261  pbCleanupRatio_ = value;
9262  onChanged();
9263  return this;
9264  }
9269  bitField0_ = (bitField0_ & ~0x00020000);
9270  pbCleanupRatio_ = 0.5D;
9271  onChanged();
9272  return this;
9273  }
9274 
9275  private int minimizeWithPropagationRestartPeriod_ = 10;
9294  return ((bitField0_ & 0x00040000) != 0);
9295  }
9314  return minimizeWithPropagationRestartPeriod_;
9315  }
9334  bitField0_ |= 0x00040000;
9335  minimizeWithPropagationRestartPeriod_ = value;
9336  onChanged();
9337  return this;
9338  }
9357  bitField0_ = (bitField0_ & ~0x00040000);
9358  minimizeWithPropagationRestartPeriod_ = 10;
9359  onChanged();
9360  return this;
9361  }
9362 
9363  private int minimizeWithPropagationNumDecisions_ = 1000;
9368  return ((bitField0_ & 0x00080000) != 0);
9369  }
9374  return minimizeWithPropagationNumDecisions_;
9375  }
9380  bitField0_ |= 0x00080000;
9381  minimizeWithPropagationNumDecisions_ = value;
9382  onChanged();
9383  return this;
9384  }
9389  bitField0_ = (bitField0_ & ~0x00080000);
9390  minimizeWithPropagationNumDecisions_ = 1000;
9391  onChanged();
9392  return this;
9393  }
9394 
9395  private double variableActivityDecay_ = 0.8D;
9409  public boolean hasVariableActivityDecay() {
9410  return ((bitField0_ & 0x00100000) != 0);
9411  }
9425  public double getVariableActivityDecay() {
9426  return variableActivityDecay_;
9427  }
9441  public Builder setVariableActivityDecay(double value) {
9442  bitField0_ |= 0x00100000;
9443  variableActivityDecay_ = value;
9444  onChanged();
9445  return this;
9446  }
9461  bitField0_ = (bitField0_ & ~0x00100000);
9462  variableActivityDecay_ = 0.8D;
9463  onChanged();
9464  return this;
9465  }
9466 
9467  private double maxVariableActivityValue_ = 1e+100D;
9471  public boolean hasMaxVariableActivityValue() {
9472  return ((bitField0_ & 0x00200000) != 0);
9473  }
9478  return maxVariableActivityValue_;
9479  }
9483  public Builder setMaxVariableActivityValue(double value) {
9484  bitField0_ |= 0x00200000;
9485  maxVariableActivityValue_ = value;
9486  onChanged();
9487  return this;
9488  }
9493  bitField0_ = (bitField0_ & ~0x00200000);
9494  maxVariableActivityValue_ = 1e+100D;
9495  onChanged();
9496  return this;
9497  }
9498 
9499  private double glucoseMaxDecay_ = 0.95D;
9510  public boolean hasGlucoseMaxDecay() {
9511  return ((bitField0_ & 0x00400000) != 0);
9512  }
9523  public double getGlucoseMaxDecay() {
9524  return glucoseMaxDecay_;
9525  }
9536  public Builder setGlucoseMaxDecay(double value) {
9537  bitField0_ |= 0x00400000;
9538  glucoseMaxDecay_ = value;
9539  onChanged();
9540  return this;
9541  }
9553  bitField0_ = (bitField0_ & ~0x00400000);
9554  glucoseMaxDecay_ = 0.95D;
9555  onChanged();
9556  return this;
9557  }
9558 
9559  private double glucoseDecayIncrement_ = 0.01D;
9563  public boolean hasGlucoseDecayIncrement() {
9564  return ((bitField0_ & 0x00800000) != 0);
9565  }
9569  public double getGlucoseDecayIncrement() {
9570  return glucoseDecayIncrement_;
9571  }
9575  public Builder setGlucoseDecayIncrement(double value) {
9576  bitField0_ |= 0x00800000;
9577  glucoseDecayIncrement_ = value;
9578  onChanged();
9579  return this;
9580  }
9585  bitField0_ = (bitField0_ & ~0x00800000);
9586  glucoseDecayIncrement_ = 0.01D;
9587  onChanged();
9588  return this;
9589  }
9590 
9591  private int glucoseDecayIncrementPeriod_ = 5000;
9596  return ((bitField0_ & 0x01000000) != 0);
9597  }
9602  return glucoseDecayIncrementPeriod_;
9603  }
9608  bitField0_ |= 0x01000000;
9609  glucoseDecayIncrementPeriod_ = value;
9610  onChanged();
9611  return this;
9612  }
9617  bitField0_ = (bitField0_ & ~0x01000000);
9618  glucoseDecayIncrementPeriod_ = 5000;
9619  onChanged();
9620  return this;
9621  }
9622 
9623  private double clauseActivityDecay_ = 0.999D;
9631  public boolean hasClauseActivityDecay() {
9632  return ((bitField0_ & 0x02000000) != 0);
9633  }
9641  public double getClauseActivityDecay() {
9642  return clauseActivityDecay_;
9643  }
9651  public Builder setClauseActivityDecay(double value) {
9652  bitField0_ |= 0x02000000;
9653  clauseActivityDecay_ = value;
9654  onChanged();
9655  return this;
9656  }
9665  bitField0_ = (bitField0_ & ~0x02000000);
9666  clauseActivityDecay_ = 0.999D;
9667  onChanged();
9668  return this;
9669  }
9670 
9671  private double maxClauseActivityValue_ = 1e+20D;
9675  public boolean hasMaxClauseActivityValue() {
9676  return ((bitField0_ & 0x04000000) != 0);
9677  }
9681  public double getMaxClauseActivityValue() {
9682  return maxClauseActivityValue_;
9683  }
9687  public Builder setMaxClauseActivityValue(double value) {
9688  bitField0_ |= 0x04000000;
9689  maxClauseActivityValue_ = value;
9690  onChanged();
9691  return this;
9692  }
9697  bitField0_ = (bitField0_ & ~0x04000000);
9698  maxClauseActivityValue_ = 1e+20D;
9699  onChanged();
9700  return this;
9701  }
9702 
9703  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9704  java.util.Collections.emptyList();
9705  private void ensureRestartAlgorithmsIsMutable() {
9706  if (!((bitField0_ & 0x08000000) != 0)) {
9707  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
9708  bitField0_ |= 0x08000000;
9709  }
9710  }
9726  return new com.google.protobuf.Internal.ListAdapter<
9727  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
9728  }
9744  return restartAlgorithms_.size();
9745  }
9761  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
9762  }
9778  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
9779  if (value == null) {
9780  throw new NullPointerException();
9781  }
9782  ensureRestartAlgorithmsIsMutable();
9783  restartAlgorithms_.set(index, value.getNumber());
9784  onChanged();
9785  return this;
9786  }
9802  if (value == null) {
9803  throw new NullPointerException();
9804  }
9805  ensureRestartAlgorithmsIsMutable();
9806  restartAlgorithms_.add(value.getNumber());
9807  onChanged();
9808  return this;
9809  }
9825  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
9826  ensureRestartAlgorithmsIsMutable();
9827  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
9828  restartAlgorithms_.add(value.getNumber());
9829  }
9830  onChanged();
9831  return this;
9832  }
9848  restartAlgorithms_ = java.util.Collections.emptyList();
9849  bitField0_ = (bitField0_ & ~0x08000000);
9850  onChanged();
9851  return this;
9852  }
9853 
9854  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
9858  public boolean hasDefaultRestartAlgorithms() {
9859  return ((bitField0_ & 0x10000000) != 0);
9860  }
9864  public java.lang.String getDefaultRestartAlgorithms() {
9865  java.lang.Object ref = defaultRestartAlgorithms_;
9866  if (!(ref instanceof java.lang.String)) {
9867  com.google.protobuf.ByteString bs =
9868  (com.google.protobuf.ByteString) ref;
9869  java.lang.String s = bs.toStringUtf8();
9870  if (bs.isValidUtf8()) {
9871  defaultRestartAlgorithms_ = s;
9872  }
9873  return s;
9874  } else {
9875  return (java.lang.String) ref;
9876  }
9877  }
9881  public com.google.protobuf.ByteString
9883  java.lang.Object ref = defaultRestartAlgorithms_;
9884  if (ref instanceof String) {
9885  com.google.protobuf.ByteString b =
9886  com.google.protobuf.ByteString.copyFromUtf8(
9887  (java.lang.String) ref);
9888  defaultRestartAlgorithms_ = b;
9889  return b;
9890  } else {
9891  return (com.google.protobuf.ByteString) ref;
9892  }
9893  }
9898  java.lang.String value) {
9899  if (value == null) {
9900  throw new NullPointerException();
9901  }
9902  bitField0_ |= 0x10000000;
9903  defaultRestartAlgorithms_ = value;
9904  onChanged();
9905  return this;
9906  }
9911  bitField0_ = (bitField0_ & ~0x10000000);
9912  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
9913  onChanged();
9914  return this;
9915  }
9920  com.google.protobuf.ByteString value) {
9921  if (value == null) {
9922  throw new NullPointerException();
9923  }
9924  bitField0_ |= 0x10000000;
9925  defaultRestartAlgorithms_ = value;
9926  onChanged();
9927  return this;
9928  }
9929 
9930  private int restartPeriod_ = 50;
9939  public boolean hasRestartPeriod() {
9940  return ((bitField0_ & 0x20000000) != 0);
9941  }
9950  public int getRestartPeriod() {
9951  return restartPeriod_;
9952  }
9961  public Builder setRestartPeriod(int value) {
9962  bitField0_ |= 0x20000000;
9963  restartPeriod_ = value;
9964  onChanged();
9965  return this;
9966  }
9976  bitField0_ = (bitField0_ & ~0x20000000);
9977  restartPeriod_ = 50;
9978  onChanged();
9979  return this;
9980  }
9981 
9982  private int restartRunningWindowSize_ = 50;
9990  public boolean hasRestartRunningWindowSize() {
9991  return ((bitField0_ & 0x40000000) != 0);
9992  }
10001  return restartRunningWindowSize_;
10002  }
10011  bitField0_ |= 0x40000000;
10012  restartRunningWindowSize_ = value;
10013  onChanged();
10014  return this;
10015  }
10024  bitField0_ = (bitField0_ & ~0x40000000);
10025  restartRunningWindowSize_ = 50;
10026  onChanged();
10027  return this;
10028  }
10029 
10030  private double restartDlAverageRatio_ = 1D;
10039  public boolean hasRestartDlAverageRatio() {
10040  return ((bitField0_ & 0x80000000) != 0);
10041  }
10050  public double getRestartDlAverageRatio() {
10051  return restartDlAverageRatio_;
10052  }
10061  public Builder setRestartDlAverageRatio(double value) {
10062  bitField0_ |= 0x80000000;
10063  restartDlAverageRatio_ = value;
10064  onChanged();
10065  return this;
10066  }
10076  bitField0_ = (bitField0_ & ~0x80000000);
10077  restartDlAverageRatio_ = 1D;
10078  onChanged();
10079  return this;
10080  }
10081 
10082  private double restartLbdAverageRatio_ = 1D;
10086  public boolean hasRestartLbdAverageRatio() {
10087  return ((bitField1_ & 0x00000001) != 0);
10088  }
10092  public double getRestartLbdAverageRatio() {
10093  return restartLbdAverageRatio_;
10094  }
10098  public Builder setRestartLbdAverageRatio(double value) {
10099  bitField1_ |= 0x00000001;
10100  restartLbdAverageRatio_ = value;
10101  onChanged();
10102  return this;
10103  }
10108  bitField1_ = (bitField1_ & ~0x00000001);
10109  restartLbdAverageRatio_ = 1D;
10110  onChanged();
10111  return this;
10112  }
10113 
10114  private boolean useBlockingRestart_ ;
10124  public boolean hasUseBlockingRestart() {
10125  return ((bitField1_ & 0x00000002) != 0);
10126  }
10136  public boolean getUseBlockingRestart() {
10137  return useBlockingRestart_;
10138  }
10148  public Builder setUseBlockingRestart(boolean value) {
10149  bitField1_ |= 0x00000002;
10150  useBlockingRestart_ = value;
10151  onChanged();
10152  return this;
10153  }
10164  bitField1_ = (bitField1_ & ~0x00000002);
10165  useBlockingRestart_ = false;
10166  onChanged();
10167  return this;
10168  }
10169 
10170  private int blockingRestartWindowSize_ = 5000;
10174  public boolean hasBlockingRestartWindowSize() {
10175  return ((bitField1_ & 0x00000004) != 0);
10176  }
10181  return blockingRestartWindowSize_;
10182  }
10187  bitField1_ |= 0x00000004;
10188  blockingRestartWindowSize_ = value;
10189  onChanged();
10190  return this;
10191  }
10196  bitField1_ = (bitField1_ & ~0x00000004);
10197  blockingRestartWindowSize_ = 5000;
10198  onChanged();
10199  return this;
10200  }
10201 
10202  private double blockingRestartMultiplier_ = 1.4D;
10206  public boolean hasBlockingRestartMultiplier() {
10207  return ((bitField1_ & 0x00000008) != 0);
10208  }
10213  return blockingRestartMultiplier_;
10214  }
10218  public Builder setBlockingRestartMultiplier(double value) {
10219  bitField1_ |= 0x00000008;
10220  blockingRestartMultiplier_ = value;
10221  onChanged();
10222  return this;
10223  }
10228  bitField1_ = (bitField1_ & ~0x00000008);
10229  blockingRestartMultiplier_ = 1.4D;
10230  onChanged();
10231  return this;
10232  }
10233 
10234  private int numConflictsBeforeStrategyChanges_ ;
10245  return ((bitField1_ & 0x00000010) != 0);
10246  }
10257  return numConflictsBeforeStrategyChanges_;
10258  }
10269  bitField1_ |= 0x00000010;
10270  numConflictsBeforeStrategyChanges_ = value;
10271  onChanged();
10272  return this;
10273  }
10284  bitField1_ = (bitField1_ & ~0x00000010);
10285  numConflictsBeforeStrategyChanges_ = 0;
10286  onChanged();
10287  return this;
10288  }
10289 
10290  private double strategyChangeIncreaseRatio_ ;
10300  return ((bitField1_ & 0x00000020) != 0);
10301  }
10311  return strategyChangeIncreaseRatio_;
10312  }
10322  bitField1_ |= 0x00000020;
10323  strategyChangeIncreaseRatio_ = value;
10324  onChanged();
10325  return this;
10326  }
10336  bitField1_ = (bitField1_ & ~0x00000020);
10337  strategyChangeIncreaseRatio_ = 0D;
10338  onChanged();
10339  return this;
10340  }
10341 
10342  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10352  public boolean hasMaxTimeInSeconds() {
10353  return ((bitField1_ & 0x00000040) != 0);
10354  }
10364  public double getMaxTimeInSeconds() {
10365  return maxTimeInSeconds_;
10366  }
10376  public Builder setMaxTimeInSeconds(double value) {
10377  bitField1_ |= 0x00000040;
10378  maxTimeInSeconds_ = value;
10379  onChanged();
10380  return this;
10381  }
10392  bitField1_ = (bitField1_ & ~0x00000040);
10393  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10394  onChanged();
10395  return this;
10396  }
10397 
10398  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10410  public boolean hasMaxDeterministicTime() {
10411  return ((bitField1_ & 0x00000080) != 0);
10412  }
10424  public double getMaxDeterministicTime() {
10425  return maxDeterministicTime_;
10426  }
10438  public Builder setMaxDeterministicTime(double value) {
10439  bitField1_ |= 0x00000080;
10440  maxDeterministicTime_ = value;
10441  onChanged();
10442  return this;
10443  }
10456  bitField1_ = (bitField1_ & ~0x00000080);
10457  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10458  onChanged();
10459  return this;
10460  }
10461 
10462  private long maxNumberOfConflicts_ = 9223372036854775807L;
10475  public boolean hasMaxNumberOfConflicts() {
10476  return ((bitField1_ & 0x00000100) != 0);
10477  }
10490  public long getMaxNumberOfConflicts() {
10491  return maxNumberOfConflicts_;
10492  }
10505  public Builder setMaxNumberOfConflicts(long value) {
10506  bitField1_ |= 0x00000100;
10507  maxNumberOfConflicts_ = value;
10508  onChanged();
10509  return this;
10510  }
10524  bitField1_ = (bitField1_ & ~0x00000100);
10525  maxNumberOfConflicts_ = 9223372036854775807L;
10526  onChanged();
10527  return this;
10528  }
10529 
10530  private long maxMemoryInMb_ = 10000L;
10541  public boolean hasMaxMemoryInMb() {
10542  return ((bitField1_ & 0x00000200) != 0);
10543  }
10554  public long getMaxMemoryInMb() {
10555  return maxMemoryInMb_;
10556  }
10567  public Builder setMaxMemoryInMb(long value) {
10568  bitField1_ |= 0x00000200;
10569  maxMemoryInMb_ = value;
10570  onChanged();
10571  return this;
10572  }
10584  bitField1_ = (bitField1_ & ~0x00000200);
10585  maxMemoryInMb_ = 10000L;
10586  onChanged();
10587  return this;
10588  }
10589 
10590  private boolean treatBinaryClausesSeparately_ = true;
10601  return ((bitField1_ & 0x00000400) != 0);
10602  }
10613  return treatBinaryClausesSeparately_;
10614  }
10625  bitField1_ |= 0x00000400;
10626  treatBinaryClausesSeparately_ = value;
10627  onChanged();
10628  return this;
10629  }
10640  bitField1_ = (bitField1_ & ~0x00000400);
10641  treatBinaryClausesSeparately_ = true;
10642  onChanged();
10643  return this;
10644  }
10645 
10646  private int randomSeed_ = 1;
10659  public boolean hasRandomSeed() {
10660  return ((bitField1_ & 0x00000800) != 0);
10661  }
10674  public int getRandomSeed() {
10675  return randomSeed_;
10676  }
10689  public Builder setRandomSeed(int value) {
10690  bitField1_ |= 0x00000800;
10691  randomSeed_ = value;
10692  onChanged();
10693  return this;
10694  }
10708  bitField1_ = (bitField1_ & ~0x00000800);
10709  randomSeed_ = 1;
10710  onChanged();
10711  return this;
10712  }
10713 
10714  private boolean logSearchProgress_ ;
10722  public boolean hasLogSearchProgress() {
10723  return ((bitField1_ & 0x00001000) != 0);
10724  }
10732  public boolean getLogSearchProgress() {
10733  return logSearchProgress_;
10734  }
10742  public Builder setLogSearchProgress(boolean value) {
10743  bitField1_ |= 0x00001000;
10744  logSearchProgress_ = value;
10745  onChanged();
10746  return this;
10747  }
10756  bitField1_ = (bitField1_ & ~0x00001000);
10757  logSearchProgress_ = false;
10758  onChanged();
10759  return this;
10760  }
10761 
10762  private boolean usePbResolution_ ;
10773  public boolean hasUsePbResolution() {
10774  return ((bitField1_ & 0x00002000) != 0);
10775  }
10786  public boolean getUsePbResolution() {
10787  return usePbResolution_;
10788  }
10799  public Builder setUsePbResolution(boolean value) {
10800  bitField1_ |= 0x00002000;
10801  usePbResolution_ = value;
10802  onChanged();
10803  return this;
10804  }
10816  bitField1_ = (bitField1_ & ~0x00002000);
10817  usePbResolution_ = false;
10818  onChanged();
10819  return this;
10820  }
10821 
10822  private boolean minimizeReductionDuringPbResolution_ ;
10834  return ((bitField1_ & 0x00004000) != 0);
10835  }
10847  return minimizeReductionDuringPbResolution_;
10848  }
10860  bitField1_ |= 0x00004000;
10861  minimizeReductionDuringPbResolution_ = value;
10862  onChanged();
10863  return this;
10864  }
10876  bitField1_ = (bitField1_ & ~0x00004000);
10877  minimizeReductionDuringPbResolution_ = false;
10878  onChanged();
10879  return this;
10880  }
10881 
10882  private boolean countAssumptionLevelsInLbd_ = true;
10898  return ((bitField1_ & 0x00008000) != 0);
10899  }
10915  return countAssumptionLevelsInLbd_;
10916  }
10931  public Builder setCountAssumptionLevelsInLbd(boolean value) {
10932  bitField1_ |= 0x00008000;
10933  countAssumptionLevelsInLbd_ = value;
10934  onChanged();
10935  return this;
10936  }
10952  bitField1_ = (bitField1_ & ~0x00008000);
10953  countAssumptionLevelsInLbd_ = true;
10954  onChanged();
10955  return this;
10956  }
10957 
10958  private int presolveBveThreshold_ = 500;
10968  public boolean hasPresolveBveThreshold() {
10969  return ((bitField1_ & 0x00010000) != 0);
10970  }
10981  return presolveBveThreshold_;
10982  }
10992  public Builder setPresolveBveThreshold(int value) {
10993  bitField1_ |= 0x00010000;
10994  presolveBveThreshold_ = value;
10995  onChanged();
10996  return this;
10997  }
11008  bitField1_ = (bitField1_ & ~0x00010000);
11009  presolveBveThreshold_ = 500;
11010  onChanged();
11011  return this;
11012  }
11013 
11014  private int presolveBveClauseWeight_ = 3;
11023  public boolean hasPresolveBveClauseWeight() {
11024  return ((bitField1_ & 0x00020000) != 0);
11025  }
11035  return presolveBveClauseWeight_;
11036  }
11046  bitField1_ |= 0x00020000;
11047  presolveBveClauseWeight_ = value;
11048  onChanged();
11049  return this;
11050  }
11060  bitField1_ = (bitField1_ & ~0x00020000);
11061  presolveBveClauseWeight_ = 3;
11062  onChanged();
11063  return this;
11064  }
11065 
11066  private double presolveProbingDeterministicTimeLimit_ = 30D;
11076  return ((bitField1_ & 0x00040000) != 0);
11077  }
11087  return presolveProbingDeterministicTimeLimit_;
11088  }
11098  bitField1_ |= 0x00040000;
11099  presolveProbingDeterministicTimeLimit_ = value;
11100  onChanged();
11101  return this;
11102  }
11112  bitField1_ = (bitField1_ & ~0x00040000);
11113  presolveProbingDeterministicTimeLimit_ = 30D;
11114  onChanged();
11115  return this;
11116  }
11117 
11118  private boolean presolveBlockedClause_ = true;
11127  public boolean hasPresolveBlockedClause() {
11128  return ((bitField1_ & 0x00080000) != 0);
11129  }
11138  public boolean getPresolveBlockedClause() {
11139  return presolveBlockedClause_;
11140  }
11149  public Builder setPresolveBlockedClause(boolean value) {
11150  bitField1_ |= 0x00080000;
11151  presolveBlockedClause_ = value;
11152  onChanged();
11153  return this;
11154  }
11164  bitField1_ = (bitField1_ & ~0x00080000);
11165  presolveBlockedClause_ = true;
11166  onChanged();
11167  return this;
11168  }
11169 
11170  private boolean presolveUseBva_ = true;
11178  public boolean hasPresolveUseBva() {
11179  return ((bitField1_ & 0x00100000) != 0);
11180  }
11188  public boolean getPresolveUseBva() {
11189  return presolveUseBva_;
11190  }
11198  public Builder setPresolveUseBva(boolean value) {
11199  bitField1_ |= 0x00100000;
11200  presolveUseBva_ = value;
11201  onChanged();
11202  return this;
11203  }
11212  bitField1_ = (bitField1_ & ~0x00100000);
11213  presolveUseBva_ = true;
11214  onChanged();
11215  return this;
11216  }
11217 
11218  private int presolveBvaThreshold_ = 1;
11229  public boolean hasPresolveBvaThreshold() {
11230  return ((bitField1_ & 0x00200000) != 0);
11231  }
11243  return presolveBvaThreshold_;
11244  }
11255  public Builder setPresolveBvaThreshold(int value) {
11256  bitField1_ |= 0x00200000;
11257  presolveBvaThreshold_ = value;
11258  onChanged();
11259  return this;
11260  }
11272  bitField1_ = (bitField1_ & ~0x00200000);
11273  presolveBvaThreshold_ = 1;
11274  onChanged();
11275  return this;
11276  }
11277 
11278  private boolean useOptimizationHints_ = true;
11289  public boolean hasUseOptimizationHints() {
11290  return ((bitField1_ & 0x00400000) != 0);
11291  }
11302  public boolean getUseOptimizationHints() {
11303  return useOptimizationHints_;
11304  }
11315  public Builder setUseOptimizationHints(boolean value) {
11316  bitField1_ |= 0x00400000;
11317  useOptimizationHints_ = value;
11318  onChanged();
11319  return this;
11320  }
11332  bitField1_ = (bitField1_ & ~0x00400000);
11333  useOptimizationHints_ = true;
11334  onChanged();
11335  return this;
11336  }
11337 
11338  private boolean minimizeCore_ = true;
11346  public boolean hasMinimizeCore() {
11347  return ((bitField1_ & 0x00800000) != 0);
11348  }
11356  public boolean getMinimizeCore() {
11357  return minimizeCore_;
11358  }
11366  public Builder setMinimizeCore(boolean value) {
11367  bitField1_ |= 0x00800000;
11368  minimizeCore_ = value;
11369  onChanged();
11370  return this;
11371  }
11380  bitField1_ = (bitField1_ & ~0x00800000);
11381  minimizeCore_ = true;
11382  onChanged();
11383  return this;
11384  }
11385 
11386  private boolean findMultipleCores_ = true;
11395  public boolean hasFindMultipleCores() {
11396  return ((bitField1_ & 0x01000000) != 0);
11397  }
11406  public boolean getFindMultipleCores() {
11407  return findMultipleCores_;
11408  }
11417  public Builder setFindMultipleCores(boolean value) {
11418  bitField1_ |= 0x01000000;
11419  findMultipleCores_ = value;
11420  onChanged();
11421  return this;
11422  }
11432  bitField1_ = (bitField1_ & ~0x01000000);
11433  findMultipleCores_ = true;
11434  onChanged();
11435  return this;
11436  }
11437 
11438  private boolean coverOptimization_ = true;
11447  public boolean hasCoverOptimization() {
11448  return ((bitField1_ & 0x02000000) != 0);
11449  }
11458  public boolean getCoverOptimization() {
11459  return coverOptimization_;
11460  }
11469  public Builder setCoverOptimization(boolean value) {
11470  bitField1_ |= 0x02000000;
11471  coverOptimization_ = value;
11472  onChanged();
11473  return this;
11474  }
11484  bitField1_ = (bitField1_ & ~0x02000000);
11485  coverOptimization_ = true;
11486  onChanged();
11487  return this;
11488  }
11489 
11490  private int maxSatAssumptionOrder_ = 0;
11494  public boolean hasMaxSatAssumptionOrder() {
11495  return ((bitField1_ & 0x04000000) != 0);
11496  }
11501  @SuppressWarnings("deprecation")
11504  }
11509  if (value == null) {
11510  throw new NullPointerException();
11511  }
11512  bitField1_ |= 0x04000000;
11513  maxSatAssumptionOrder_ = value.getNumber();
11514  onChanged();
11515  return this;
11516  }
11521  bitField1_ = (bitField1_ & ~0x04000000);
11522  maxSatAssumptionOrder_ = 0;
11523  onChanged();
11524  return this;
11525  }
11526 
11527  private boolean maxSatReverseAssumptionOrder_ ;
11537  return ((bitField1_ & 0x08000000) != 0);
11538  }
11548  return maxSatReverseAssumptionOrder_;
11549  }
11559  bitField1_ |= 0x08000000;
11560  maxSatReverseAssumptionOrder_ = value;
11561  onChanged();
11562  return this;
11563  }
11573  bitField1_ = (bitField1_ & ~0x08000000);
11574  maxSatReverseAssumptionOrder_ = false;
11575  onChanged();
11576  return this;
11577  }
11578 
11579  private int maxSatStratification_ = 1;
11583  public boolean hasMaxSatStratification() {
11584  return ((bitField1_ & 0x10000000) != 0);
11585  }
11590  @SuppressWarnings("deprecation")
11593  }
11598  if (value == null) {
11599  throw new NullPointerException();
11600  }
11601  bitField1_ |= 0x10000000;
11602  maxSatStratification_ = value.getNumber();
11603  onChanged();
11604  return this;
11605  }
11610  bitField1_ = (bitField1_ & ~0x10000000);
11611  maxSatStratification_ = 1;
11612  onChanged();
11613  return this;
11614  }
11615 
11616  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
11632  return ((bitField1_ & 0x20000000) != 0);
11633  }
11649  return usePrecedencesInDisjunctiveConstraint_;
11650  }
11666  bitField1_ |= 0x20000000;
11667  usePrecedencesInDisjunctiveConstraint_ = value;
11668  onChanged();
11669  return this;
11670  }
11686  bitField1_ = (bitField1_ & ~0x20000000);
11687  usePrecedencesInDisjunctiveConstraint_ = true;
11688  onChanged();
11689  return this;
11690  }
11691 
11692  private boolean useOverloadCheckerInCumulativeConstraint_ ;
11706  return ((bitField1_ & 0x40000000) != 0);
11707  }
11721  return useOverloadCheckerInCumulativeConstraint_;
11722  }
11736  bitField1_ |= 0x40000000;
11737  useOverloadCheckerInCumulativeConstraint_ = value;
11738  onChanged();
11739  return this;
11740  }
11754  bitField1_ = (bitField1_ & ~0x40000000);
11755  useOverloadCheckerInCumulativeConstraint_ = false;
11756  onChanged();
11757  return this;
11758  }
11759 
11760  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
11774  return ((bitField1_ & 0x80000000) != 0);
11775  }
11789  return useTimetableEdgeFindingInCumulativeConstraint_;
11790  }
11804  bitField1_ |= 0x80000000;
11805  useTimetableEdgeFindingInCumulativeConstraint_ = value;
11806  onChanged();
11807  return this;
11808  }
11822  bitField1_ = (bitField1_ & ~0x80000000);
11823  useTimetableEdgeFindingInCumulativeConstraint_ = false;
11824  onChanged();
11825  return this;
11826  }
11827 
11828  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
11844  return ((bitField2_ & 0x00000001) != 0);
11845  }
11861  return useDisjunctiveConstraintInCumulativeConstraint_;
11862  }
11878  bitField2_ |= 0x00000001;
11879  useDisjunctiveConstraintInCumulativeConstraint_ = value;
11880  onChanged();
11881  return this;
11882  }
11898  bitField2_ = (bitField2_ & ~0x00000001);
11899  useDisjunctiveConstraintInCumulativeConstraint_ = true;
11900  onChanged();
11901  return this;
11902  }
11903 
11904  private int linearizationLevel_ = 1;
11915  public boolean hasLinearizationLevel() {
11916  return ((bitField2_ & 0x00000002) != 0);
11917  }
11928  public int getLinearizationLevel() {
11929  return linearizationLevel_;
11930  }
11941  public Builder setLinearizationLevel(int value) {
11942  bitField2_ |= 0x00000002;
11943  linearizationLevel_ = value;
11944  onChanged();
11945  return this;
11946  }
11958  bitField2_ = (bitField2_ & ~0x00000002);
11959  linearizationLevel_ = 1;
11960  onChanged();
11961  return this;
11962  }
11963 
11964  private int booleanEncodingLevel_ = 1;
11973  public boolean hasBooleanEncodingLevel() {
11974  return ((bitField2_ & 0x00000004) != 0);
11975  }
11985  return booleanEncodingLevel_;
11986  }
11995  public Builder setBooleanEncodingLevel(int value) {
11996  bitField2_ |= 0x00000004;
11997  booleanEncodingLevel_ = value;
11998  onChanged();
11999  return this;
12000  }
12010  bitField2_ = (bitField2_ & ~0x00000004);
12011  booleanEncodingLevel_ = 1;
12012  onChanged();
12013  return this;
12014  }
12015 
12016  private int maxNumCuts_ = 1000;
12025  public boolean hasMaxNumCuts() {
12026  return ((bitField2_ & 0x00000008) != 0);
12027  }
12036  public int getMaxNumCuts() {
12037  return maxNumCuts_;
12038  }
12047  public Builder setMaxNumCuts(int value) {
12048  bitField2_ |= 0x00000008;
12049  maxNumCuts_ = value;
12050  onChanged();
12051  return this;
12052  }
12062  bitField2_ = (bitField2_ & ~0x00000008);
12063  maxNumCuts_ = 1000;
12064  onChanged();
12065  return this;
12066  }
12067 
12068  private boolean onlyAddCutsAtLevelZero_ ;
12077  public boolean hasOnlyAddCutsAtLevelZero() {
12078  return ((bitField2_ & 0x00000010) != 0);
12079  }
12088  public boolean getOnlyAddCutsAtLevelZero() {
12089  return onlyAddCutsAtLevelZero_;
12090  }
12099  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12100  bitField2_ |= 0x00000010;
12101  onlyAddCutsAtLevelZero_ = value;
12102  onChanged();
12103  return this;
12104  }
12114  bitField2_ = (bitField2_ & ~0x00000010);
12115  onlyAddCutsAtLevelZero_ = false;
12116  onChanged();
12117  return this;
12118  }
12119 
12120  private boolean addKnapsackCuts_ ;
12130  public boolean hasAddKnapsackCuts() {
12131  return ((bitField2_ & 0x00000020) != 0);
12132  }
12142  public boolean getAddKnapsackCuts() {
12143  return addKnapsackCuts_;
12144  }
12154  public Builder setAddKnapsackCuts(boolean value) {
12155  bitField2_ |= 0x00000020;
12156  addKnapsackCuts_ = value;
12157  onChanged();
12158  return this;
12159  }
12170  bitField2_ = (bitField2_ & ~0x00000020);
12171  addKnapsackCuts_ = false;
12172  onChanged();
12173  return this;
12174  }
12175 
12176  private boolean addCgCuts_ ;
12185  public boolean hasAddCgCuts() {
12186  return ((bitField2_ & 0x00000040) != 0);
12187  }
12196  public boolean getAddCgCuts() {
12197  return addCgCuts_;
12198  }
12207  public Builder setAddCgCuts(boolean value) {
12208  bitField2_ |= 0x00000040;
12209  addCgCuts_ = value;
12210  onChanged();
12211  return this;
12212  }
12222  bitField2_ = (bitField2_ & ~0x00000040);
12223  addCgCuts_ = false;
12224  onChanged();
12225  return this;
12226  }
12227 
12228  private boolean addMirCuts_ = true;
12237  public boolean hasAddMirCuts() {
12238  return ((bitField2_ & 0x00000080) != 0);
12239  }
12248  public boolean getAddMirCuts() {
12249  return addMirCuts_;
12250  }
12259  public Builder setAddMirCuts(boolean value) {
12260  bitField2_ |= 0x00000080;
12261  addMirCuts_ = value;
12262  onChanged();
12263  return this;
12264  }
12274  bitField2_ = (bitField2_ & ~0x00000080);
12275  addMirCuts_ = true;
12276  onChanged();
12277  return this;
12278  }
12279 
12280  private boolean useMirRounding_ = true;
12290  public boolean hasUseMirRounding() {
12291  return ((bitField2_ & 0x00000100) != 0);
12292  }
12302  public boolean getUseMirRounding() {
12303  return useMirRounding_;
12304  }
12314  public Builder setUseMirRounding(boolean value) {
12315  bitField2_ |= 0x00000100;
12316  useMirRounding_ = value;
12317  onChanged();
12318  return this;
12319  }
12330  bitField2_ = (bitField2_ & ~0x00000100);
12331  useMirRounding_ = true;
12332  onChanged();
12333  return this;
12334  }
12335 
12336  private int maxIntegerRoundingScaling_ = 600;
12348  public boolean hasMaxIntegerRoundingScaling() {
12349  return ((bitField2_ & 0x00000200) != 0);
12350  }
12363  return maxIntegerRoundingScaling_;
12364  }
12377  bitField2_ |= 0x00000200;
12378  maxIntegerRoundingScaling_ = value;
12379  onChanged();
12380  return this;
12381  }
12394  bitField2_ = (bitField2_ & ~0x00000200);
12395  maxIntegerRoundingScaling_ = 600;
12396  onChanged();
12397  return this;
12398  }
12399 
12400  private boolean addLpConstraintsLazily_ = true;
12411  public boolean hasAddLpConstraintsLazily() {
12412  return ((bitField2_ & 0x00000400) != 0);
12413  }
12424  public boolean getAddLpConstraintsLazily() {
12425  return addLpConstraintsLazily_;
12426  }
12437  public Builder setAddLpConstraintsLazily(boolean value) {
12438  bitField2_ |= 0x00000400;
12439  addLpConstraintsLazily_ = value;
12440  onChanged();
12441  return this;
12442  }
12454  bitField2_ = (bitField2_ & ~0x00000400);
12455  addLpConstraintsLazily_ = true;
12456  onChanged();
12457  return this;
12458  }
12459 
12460  private double minOrthogonalityForLpConstraints_ ;
12473  return ((bitField2_ & 0x00000800) != 0);
12474  }
12487  return minOrthogonalityForLpConstraints_;
12488  }
12501  bitField2_ |= 0x00000800;
12502  minOrthogonalityForLpConstraints_ = value;
12503  onChanged();
12504  return this;
12505  }
12518  bitField2_ = (bitField2_ & ~0x00000800);
12519  minOrthogonalityForLpConstraints_ = 0D;
12520  onChanged();
12521  return this;
12522  }
12523 
12524  private long maxInactiveCount_ = 1000L;
12533  public boolean hasMaxInactiveCount() {
12534  return ((bitField2_ & 0x00001000) != 0);
12535  }
12544  public long getMaxInactiveCount() {
12545  return maxInactiveCount_;
12546  }
12555  public Builder setMaxInactiveCount(long value) {
12556  bitField2_ |= 0x00001000;
12557  maxInactiveCount_ = value;
12558  onChanged();
12559  return this;
12560  }
12570  bitField2_ = (bitField2_ & ~0x00001000);
12571  maxInactiveCount_ = 1000L;
12572  onChanged();
12573  return this;
12574  }
12575 
12576  private long constraintRemovalBatchSize_ = 100L;
12586  return ((bitField2_ & 0x00002000) != 0);
12587  }
12597  return constraintRemovalBatchSize_;
12598  }
12608  bitField2_ |= 0x00002000;
12609  constraintRemovalBatchSize_ = value;
12610  onChanged();
12611  return this;
12612  }
12622  bitField2_ = (bitField2_ & ~0x00002000);
12623  constraintRemovalBatchSize_ = 100L;
12624  onChanged();
12625  return this;
12626  }
12627 
12628  private int searchBranching_ = 0;
12632  public boolean hasSearchBranching() {
12633  return ((bitField2_ & 0x00004000) != 0);
12634  }
12639  @SuppressWarnings("deprecation")
12641  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
12642  }
12647  if (value == null) {
12648  throw new NullPointerException();
12649  }
12650  bitField2_ |= 0x00004000;
12651  searchBranching_ = value.getNumber();
12652  onChanged();
12653  return this;
12654  }
12659  bitField2_ = (bitField2_ & ~0x00004000);
12660  searchBranching_ = 0;
12661  onChanged();
12662  return this;
12663  }
12664 
12665  private boolean exploitIntegerLpSolution_ = true;
12676  public boolean hasExploitIntegerLpSolution() {
12677  return ((bitField2_ & 0x00008000) != 0);
12678  }
12689  public boolean getExploitIntegerLpSolution() {
12690  return exploitIntegerLpSolution_;
12691  }
12702  public Builder setExploitIntegerLpSolution(boolean value) {
12703  bitField2_ |= 0x00008000;
12704  exploitIntegerLpSolution_ = value;
12705  onChanged();
12706  return this;
12707  }
12719  bitField2_ = (bitField2_ & ~0x00008000);
12720  exploitIntegerLpSolution_ = true;
12721  onChanged();
12722  return this;
12723  }
12724 
12725  private boolean exploitAllLpSolution_ = true;
12735  public boolean hasExploitAllLpSolution() {
12736  return ((bitField2_ & 0x00010000) != 0);
12737  }
12747  public boolean getExploitAllLpSolution() {
12748  return exploitAllLpSolution_;
12749  }
12759  public Builder setExploitAllLpSolution(boolean value) {
12760  bitField2_ |= 0x00010000;
12761  exploitAllLpSolution_ = value;
12762  onChanged();
12763  return this;
12764  }
12775  bitField2_ = (bitField2_ & ~0x00010000);
12776  exploitAllLpSolution_ = true;
12777  onChanged();
12778  return this;
12779  }
12780 
12781  private boolean exploitBestSolution_ ;
12789  public boolean hasExploitBestSolution() {
12790  return ((bitField2_ & 0x00020000) != 0);
12791  }
12799  public boolean getExploitBestSolution() {
12800  return exploitBestSolution_;
12801  }
12809  public Builder setExploitBestSolution(boolean value) {
12810  bitField2_ |= 0x00020000;
12811  exploitBestSolution_ = value;
12812  onChanged();
12813  return this;
12814  }
12823  bitField2_ = (bitField2_ & ~0x00020000);
12824  exploitBestSolution_ = false;
12825  onChanged();
12826  return this;
12827  }
12828 
12829  private boolean exploitObjective_ = true;
12838  public boolean hasExploitObjective() {
12839  return ((bitField2_ & 0x00040000) != 0);
12840  }
12849  public boolean getExploitObjective() {
12850  return exploitObjective_;
12851  }
12860  public Builder setExploitObjective(boolean value) {
12861  bitField2_ |= 0x00040000;
12862  exploitObjective_ = value;
12863  onChanged();
12864  return this;
12865  }
12875  bitField2_ = (bitField2_ & ~0x00040000);
12876  exploitObjective_ = true;
12877  onChanged();
12878  return this;
12879  }
12880 
12881  private long pseudoCostReliabilityThreshold_ = 100L;
12891  return ((bitField2_ & 0x00080000) != 0);
12892  }
12902  return pseudoCostReliabilityThreshold_;
12903  }
12913  bitField2_ |= 0x00080000;
12914  pseudoCostReliabilityThreshold_ = value;
12915  onChanged();
12916  return this;
12917  }
12927  bitField2_ = (bitField2_ & ~0x00080000);
12928  pseudoCostReliabilityThreshold_ = 100L;
12929  onChanged();
12930  return this;
12931  }
12932 
12933  private boolean optimizeWithCore_ ;
12944  public boolean hasOptimizeWithCore() {
12945  return ((bitField2_ & 0x00100000) != 0);
12946  }
12957  public boolean getOptimizeWithCore() {
12958  return optimizeWithCore_;
12959  }
12970  public Builder setOptimizeWithCore(boolean value) {
12971  bitField2_ |= 0x00100000;
12972  optimizeWithCore_ = value;
12973  onChanged();
12974  return this;
12975  }
12987  bitField2_ = (bitField2_ & ~0x00100000);
12988  optimizeWithCore_ = false;
12989  onChanged();
12990  return this;
12991  }
12992 
12993  private int binarySearchNumConflicts_ = -1;
13004  public boolean hasBinarySearchNumConflicts() {
13005  return ((bitField2_ & 0x00200000) != 0);
13006  }
13018  return binarySearchNumConflicts_;
13019  }
13031  bitField2_ |= 0x00200000;
13032  binarySearchNumConflicts_ = value;
13033  onChanged();
13034  return this;
13035  }
13047  bitField2_ = (bitField2_ & ~0x00200000);
13048  binarySearchNumConflicts_ = -1;
13049  onChanged();
13050  return this;
13051  }
13052 
13053  private boolean optimizeWithMaxHs_ ;
13066  public boolean hasOptimizeWithMaxHs() {
13067  return ((bitField2_ & 0x00400000) != 0);
13068  }
13081  public boolean getOptimizeWithMaxHs() {
13082  return optimizeWithMaxHs_;
13083  }
13096  public Builder setOptimizeWithMaxHs(boolean value) {
13097  bitField2_ |= 0x00400000;
13098  optimizeWithMaxHs_ = value;
13099  onChanged();
13100  return this;
13101  }
13115  bitField2_ = (bitField2_ & ~0x00400000);
13116  optimizeWithMaxHs_ = false;
13117  onChanged();
13118  return this;
13119  }
13120 
13121  private boolean cpModelPresolve_ = true;
13129  public boolean hasCpModelPresolve() {
13130  return ((bitField2_ & 0x00800000) != 0);
13131  }
13139  public boolean getCpModelPresolve() {
13140  return cpModelPresolve_;
13141  }
13149  public Builder setCpModelPresolve(boolean value) {
13150  bitField2_ |= 0x00800000;
13151  cpModelPresolve_ = value;
13152  onChanged();
13153  return this;
13154  }
13163  bitField2_ = (bitField2_ & ~0x00800000);
13164  cpModelPresolve_ = true;
13165  onChanged();
13166  return this;
13167  }
13168 
13169  private int cpModelProbingLevel_ = 2;
13177  public boolean hasCpModelProbingLevel() {
13178  return ((bitField2_ & 0x01000000) != 0);
13179  }
13187  public int getCpModelProbingLevel() {
13188  return cpModelProbingLevel_;
13189  }
13197  public Builder setCpModelProbingLevel(int value) {
13198  bitField2_ |= 0x01000000;
13199  cpModelProbingLevel_ = value;
13200  onChanged();
13201  return this;
13202  }
13211  bitField2_ = (bitField2_ & ~0x01000000);
13212  cpModelProbingLevel_ = 2;
13213  onChanged();
13214  return this;
13215  }
13216 
13217  private boolean cpModelUseSatPresolve_ = true;
13225  public boolean hasCpModelUseSatPresolve() {
13226  return ((bitField2_ & 0x02000000) != 0);
13227  }
13235  public boolean getCpModelUseSatPresolve() {
13236  return cpModelUseSatPresolve_;
13237  }
13245  public Builder setCpModelUseSatPresolve(boolean value) {
13246  bitField2_ |= 0x02000000;
13247  cpModelUseSatPresolve_ = value;
13248  onChanged();
13249  return this;
13250  }
13259  bitField2_ = (bitField2_ & ~0x02000000);
13260  cpModelUseSatPresolve_ = true;
13261  onChanged();
13262  return this;
13263  }
13264 
13265  private boolean enumerateAllSolutions_ ;
13278  public boolean hasEnumerateAllSolutions() {
13279  return ((bitField2_ & 0x04000000) != 0);
13280  }
13293  public boolean getEnumerateAllSolutions() {
13294  return enumerateAllSolutions_;
13295  }
13308  public Builder setEnumerateAllSolutions(boolean value) {
13309  bitField2_ |= 0x04000000;
13310  enumerateAllSolutions_ = value;
13311  onChanged();
13312  return this;
13313  }
13327  bitField2_ = (bitField2_ & ~0x04000000);
13328  enumerateAllSolutions_ = false;
13329  onChanged();
13330  return this;
13331  }
13332 
13333  private boolean fillTightenedDomainsInResponse_ ;
13346  return ((bitField2_ & 0x08000000) != 0);
13347  }
13360  return fillTightenedDomainsInResponse_;
13361  }
13374  bitField2_ |= 0x08000000;
13375  fillTightenedDomainsInResponse_ = value;
13376  onChanged();
13377  return this;
13378  }
13391  bitField2_ = (bitField2_ & ~0x08000000);
13392  fillTightenedDomainsInResponse_ = false;
13393  onChanged();
13394  return this;
13395  }
13396 
13397  private boolean instantiateAllVariables_ = true;
13406  public boolean hasInstantiateAllVariables() {
13407  return ((bitField2_ & 0x10000000) != 0);
13408  }
13417  public boolean getInstantiateAllVariables() {
13418  return instantiateAllVariables_;
13419  }
13428  public Builder setInstantiateAllVariables(boolean value) {
13429  bitField2_ |= 0x10000000;
13430  instantiateAllVariables_ = value;
13431  onChanged();
13432  return this;
13433  }
13443  bitField2_ = (bitField2_ & ~0x10000000);
13444  instantiateAllVariables_ = true;
13445  onChanged();
13446  return this;
13447  }
13448 
13449  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13461  return ((bitField2_ & 0x20000000) != 0);
13462  }
13474  return autoDetectGreaterThanAtLeastOneOf_;
13475  }
13487  bitField2_ |= 0x20000000;
13488  autoDetectGreaterThanAtLeastOneOf_ = value;
13489  onChanged();
13490  return this;
13491  }
13503  bitField2_ = (bitField2_ & ~0x20000000);
13504  autoDetectGreaterThanAtLeastOneOf_ = true;
13505  onChanged();
13506  return this;
13507  }
13508 
13509  private boolean stopAfterFirstSolution_ ;
13517  public boolean hasStopAfterFirstSolution() {
13518  return ((bitField2_ & 0x40000000) != 0);
13519  }
13527  public boolean getStopAfterFirstSolution() {
13528  return stopAfterFirstSolution_;
13529  }
13537  public Builder setStopAfterFirstSolution(boolean value) {
13538  bitField2_ |= 0x40000000;
13539  stopAfterFirstSolution_ = value;
13540  onChanged();
13541  return this;
13542  }
13551  bitField2_ = (bitField2_ & ~0x40000000);
13552  stopAfterFirstSolution_ = false;
13553  onChanged();
13554  return this;
13555  }
13556 
13557  private int numSearchWorkers_ ;
13566  public boolean hasNumSearchWorkers() {
13567  return ((bitField2_ & 0x80000000) != 0);
13568  }
13577  public int getNumSearchWorkers() {
13578  return numSearchWorkers_;
13579  }
13588  public Builder setNumSearchWorkers(int value) {
13589  bitField2_ |= 0x80000000;
13590  numSearchWorkers_ = value;
13591  onChanged();
13592  return this;
13593  }
13603  bitField2_ = (bitField2_ & ~0x80000000);
13604  numSearchWorkers_ = 0;
13605  onChanged();
13606  return this;
13607  }
13608 
13609  private boolean deterministicParallelSearch_ ;
13620  return ((bitField3_ & 0x00000001) != 0);
13621  }
13632  return deterministicParallelSearch_;
13633  }
13643  public Builder setDeterministicParallelSearch(boolean value) {
13644  bitField3_ |= 0x00000001;
13645  deterministicParallelSearch_ = value;
13646  onChanged();
13647  return this;
13648  }
13659  bitField3_ = (bitField3_ & ~0x00000001);
13660  deterministicParallelSearch_ = false;
13661  onChanged();
13662  return this;
13663  }
13664 
13665  private boolean shareObjectiveBounds_ = true;
13673  public boolean hasShareObjectiveBounds() {
13674  return ((bitField3_ & 0x00000002) != 0);
13675  }
13683  public boolean getShareObjectiveBounds() {
13684  return shareObjectiveBounds_;
13685  }
13693  public Builder setShareObjectiveBounds(boolean value) {
13694  bitField3_ |= 0x00000002;
13695  shareObjectiveBounds_ = value;
13696  onChanged();
13697  return this;
13698  }
13707  bitField3_ = (bitField3_ & ~0x00000002);
13708  shareObjectiveBounds_ = true;
13709  onChanged();
13710  return this;
13711  }
13712 
13713  private boolean shareLevelZeroBounds_ = true;
13721  public boolean hasShareLevelZeroBounds() {
13722  return ((bitField3_ & 0x00000004) != 0);
13723  }
13731  public boolean getShareLevelZeroBounds() {
13732  return shareLevelZeroBounds_;
13733  }
13741  public Builder setShareLevelZeroBounds(boolean value) {
13742  bitField3_ |= 0x00000004;
13743  shareLevelZeroBounds_ = value;
13744  onChanged();
13745  return this;
13746  }
13755  bitField3_ = (bitField3_ & ~0x00000004);
13756  shareLevelZeroBounds_ = true;
13757  onChanged();
13758  return this;
13759  }
13760 
13761  private boolean useLnsOnly_ ;
13769  public boolean hasUseLnsOnly() {
13770  return ((bitField3_ & 0x00000008) != 0);
13771  }
13779  public boolean getUseLnsOnly() {
13780  return useLnsOnly_;
13781  }
13789  public Builder setUseLnsOnly(boolean value) {
13790  bitField3_ |= 0x00000008;
13791  useLnsOnly_ = value;
13792  onChanged();
13793  return this;
13794  }
13803  bitField3_ = (bitField3_ & ~0x00000008);
13804  useLnsOnly_ = false;
13805  onChanged();
13806  return this;
13807  }
13808 
13809  private boolean lnsFocusOnDecisionVariables_ ;
13814  return ((bitField3_ & 0x00000010) != 0);
13815  }
13820  return lnsFocusOnDecisionVariables_;
13821  }
13825  public Builder setLnsFocusOnDecisionVariables(boolean value) {
13826  bitField3_ |= 0x00000010;
13827  lnsFocusOnDecisionVariables_ = value;
13828  onChanged();
13829  return this;
13830  }
13835  bitField3_ = (bitField3_ & ~0x00000010);
13836  lnsFocusOnDecisionVariables_ = false;
13837  onChanged();
13838  return this;
13839  }
13840 
13841  private boolean useRinsLns_ ;
13849  public boolean hasUseRinsLns() {
13850  return ((bitField3_ & 0x00000020) != 0);
13851  }
13859  public boolean getUseRinsLns() {
13860  return useRinsLns_;
13861  }
13869  public Builder setUseRinsLns(boolean value) {
13870  bitField3_ |= 0x00000020;
13871  useRinsLns_ = value;
13872  onChanged();
13873  return this;
13874  }
13883  bitField3_ = (bitField3_ & ~0x00000020);
13884  useRinsLns_ = false;
13885  onChanged();
13886  return this;
13887  }
13888 
13889  private boolean randomizeSearch_ ;
13897  public boolean hasRandomizeSearch() {
13898  return ((bitField3_ & 0x00000040) != 0);
13899  }
13907  public boolean getRandomizeSearch() {
13908  return randomizeSearch_;
13909  }
13917  public Builder setRandomizeSearch(boolean value) {
13918  bitField3_ |= 0x00000040;
13919  randomizeSearch_ = value;
13920  onChanged();
13921  return this;
13922  }
13931  bitField3_ = (bitField3_ & ~0x00000040);
13932  randomizeSearch_ = false;
13933  onChanged();
13934  return this;
13935  }
13936 
13937  private long searchRandomizationTolerance_ ;
13952  return ((bitField3_ & 0x00000080) != 0);
13953  }
13968  return searchRandomizationTolerance_;
13969  }
13984  bitField3_ |= 0x00000080;
13985  searchRandomizationTolerance_ = value;
13986  onChanged();
13987  return this;
13988  }
14003  bitField3_ = (bitField3_ & ~0x00000080);
14004  searchRandomizationTolerance_ = 0L;
14005  onChanged();
14006  return this;
14007  }
14008 
14009  private boolean useOptionalVariables_ = true;
14019  public boolean hasUseOptionalVariables() {
14020  return ((bitField3_ & 0x00000100) != 0);
14021  }
14031  public boolean getUseOptionalVariables() {
14032  return useOptionalVariables_;
14033  }
14043  public Builder setUseOptionalVariables(boolean value) {
14044  bitField3_ |= 0x00000100;
14045  useOptionalVariables_ = value;
14046  onChanged();
14047  return this;
14048  }
14059  bitField3_ = (bitField3_ & ~0x00000100);
14060  useOptionalVariables_ = true;
14061  onChanged();
14062  return this;
14063  }
14064 
14065  private boolean useExactLpReason_ = true;
14076  public boolean hasUseExactLpReason() {
14077  return ((bitField3_ & 0x00000200) != 0);
14078  }
14089  public boolean getUseExactLpReason() {
14090  return useExactLpReason_;
14091  }
14102  public Builder setUseExactLpReason(boolean value) {
14103  bitField3_ |= 0x00000200;
14104  useExactLpReason_ = value;
14105  onChanged();
14106  return this;
14107  }
14119  bitField3_ = (bitField3_ & ~0x00000200);
14120  useExactLpReason_ = true;
14121  onChanged();
14122  return this;
14123  }
14124 
14125  private boolean useCombinedNoOverlap_ ;
14135  public boolean hasUseCombinedNoOverlap() {
14136  return ((bitField3_ & 0x00000400) != 0);
14137  }
14147  public boolean getUseCombinedNoOverlap() {
14148  return useCombinedNoOverlap_;
14149  }
14159  public Builder setUseCombinedNoOverlap(boolean value) {
14160  bitField3_ |= 0x00000400;
14161  useCombinedNoOverlap_ = value;
14162  onChanged();
14163  return this;
14164  }
14175  bitField3_ = (bitField3_ & ~0x00000400);
14176  useCombinedNoOverlap_ = false;
14177  onChanged();
14178  return this;
14179  }
14180 
14181  private double mipMaxBound_ = 10000000D;
14191  public boolean hasMipMaxBound() {
14192  return ((bitField3_ & 0x00000800) != 0);
14193  }
14203  public double getMipMaxBound() {
14204  return mipMaxBound_;
14205  }
14215  public Builder setMipMaxBound(double value) {
14216  bitField3_ |= 0x00000800;
14217  mipMaxBound_ = value;
14218  onChanged();
14219  return this;
14220  }
14231  bitField3_ = (bitField3_ & ~0x00000800);
14232  mipMaxBound_ = 10000000D;
14233  onChanged();
14234  return this;
14235  }
14236 
14237  private double mipVarScaling_ = 1D;
14247  public boolean hasMipVarScaling() {
14248  return ((bitField3_ & 0x00001000) != 0);
14249  }
14259  public double getMipVarScaling() {
14260  return mipVarScaling_;
14261  }
14271  public Builder setMipVarScaling(double value) {
14272  bitField3_ |= 0x00001000;
14273  mipVarScaling_ = value;
14274  onChanged();
14275  return this;
14276  }
14287  bitField3_ = (bitField3_ & ~0x00001000);
14288  mipVarScaling_ = 1D;
14289  onChanged();
14290  return this;
14291  }
14292 
14293  private double mipWantedPrecision_ = 1e-06D;
14309  public boolean hasMipWantedPrecision() {
14310  return ((bitField3_ & 0x00002000) != 0);
14311  }
14327  public double getMipWantedPrecision() {
14328  return mipWantedPrecision_;
14329  }
14345  public Builder setMipWantedPrecision(double value) {
14346  bitField3_ |= 0x00002000;
14347  mipWantedPrecision_ = value;
14348  onChanged();
14349  return this;
14350  }
14367  bitField3_ = (bitField3_ & ~0x00002000);
14368  mipWantedPrecision_ = 1e-06D;
14369  onChanged();
14370  return this;
14371  }
14372 
14373  private int mipMaxActivityExponent_ = 53;
14387  public boolean hasMipMaxActivityExponent() {
14388  return ((bitField3_ & 0x00004000) != 0);
14389  }
14404  return mipMaxActivityExponent_;
14405  }
14420  bitField3_ |= 0x00004000;
14421  mipMaxActivityExponent_ = value;
14422  onChanged();
14423  return this;
14424  }
14439  bitField3_ = (bitField3_ & ~0x00004000);
14440  mipMaxActivityExponent_ = 53;
14441  onChanged();
14442  return this;
14443  }
14444 
14445  private double mipCheckPrecision_ = 0.0001D;
14456  public boolean hasMipCheckPrecision() {
14457  return ((bitField3_ & 0x00008000) != 0);
14458  }
14469  public double getMipCheckPrecision() {
14470  return mipCheckPrecision_;
14471  }
14482  public Builder setMipCheckPrecision(double value) {
14483  bitField3_ |= 0x00008000;
14484  mipCheckPrecision_ = value;
14485  onChanged();
14486  return this;
14487  }
14499  bitField3_ = (bitField3_ & ~0x00008000);
14500  mipCheckPrecision_ = 0.0001D;
14501  onChanged();
14502  return this;
14503  }
14504 
14505  private boolean catchSigintSignal_ = true;
14515  public boolean hasCatchSigintSignal() {
14516  return ((bitField3_ & 0x00010000) != 0);
14517  }
14527  public boolean getCatchSigintSignal() {
14528  return catchSigintSignal_;
14529  }
14539  public Builder setCatchSigintSignal(boolean value) {
14540  bitField3_ |= 0x00010000;
14541  catchSigintSignal_ = value;
14542  onChanged();
14543  return this;
14544  }
14555  bitField3_ = (bitField3_ & ~0x00010000);
14556  catchSigintSignal_ = true;
14557  onChanged();
14558  return this;
14559  }
14560  @java.lang.Override
14562  final com.google.protobuf.UnknownFieldSet unknownFields) {
14563  return super.setUnknownFields(unknownFields);
14564  }
14565 
14566  @java.lang.Override
14568  final com.google.protobuf.UnknownFieldSet unknownFields) {
14569  return super.mergeUnknownFields(unknownFields);
14570  }
14571 
14572 
14573  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
14574  }
14575 
14576  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
14577  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
14578  static {
14579  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
14580  }
14581 
14583  return DEFAULT_INSTANCE;
14584  }
14585 
14586  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
14587  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
14588  @java.lang.Override
14589  public SatParameters parsePartialFrom(
14590  com.google.protobuf.CodedInputStream input,
14591  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14592  throws com.google.protobuf.InvalidProtocolBufferException {
14593  return new SatParameters(input, extensionRegistry);
14594  }
14595  };
14596 
14597  public static com.google.protobuf.Parser<SatParameters> parser() {
14598  return PARSER;
14599  }
14600 
14601  @java.lang.Override
14602  public com.google.protobuf.Parser<SatParameters> getParserForType() {
14603  return PARSER;
14604  }
14605 
14606  @java.lang.Override
14608  return DEFAULT_INSTANCE;
14609  }
14610 
14611 }
14612 
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setSubsumptionDuringConflictAnalysis(boolean value)
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
.lang.Override Builder toBuilder()
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
static ConflictMinimizationAlgorithm forNumber(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override com.google.ortools.sat.SatParameters build()
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Deprecated static RestartAlgorithm valueOf(int value)
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Override boolean equals(final java.lang.Object obj)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
static com.google.protobuf.Parser< SatParameters > parser()
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder setMinimizeReductionDuringPbResolution(boolean value)
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static SearchBranching valueOf(int value)
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static ClauseProtection valueOf(int value)
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
.lang.Deprecated static VariableOrder valueOf(int value)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static MaxSatStratificationAlgorithm forNumber(int value)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
.lang.Override final boolean isInitialized()
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static BinaryMinizationAlgorithm forNumber(int value)
static MaxSatAssumptionOrder forNumber(int value)
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static Polarity valueOf(int value)
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setFillTightenedDomainsInResponse(boolean value)
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
static com.google.ortools.sat.SatParameters getDefaultInstance()
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override final boolean isInitialized()
Builder setPresolveProbingDeterministicTimeLimit(double value)
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Deprecated static ClauseOrdering valueOf(int value)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
.lang.Override Builder newBuilderForType()
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];