Java Reference

Java Reference

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  maxPresolveIterations_ = 3;
69  cpModelPresolve_ = true;
70  cpModelProbingLevel_ = 2;
71  cpModelUseSatPresolve_ = true;
72  expandElementConstraints_ = true;
73  useOptimizationHints_ = true;
74  minimizeCore_ = true;
75  findMultipleCores_ = true;
76  coverOptimization_ = true;
77  maxSatAssumptionOrder_ = 0;
78  maxSatStratification_ = 1;
79  usePrecedencesInDisjunctiveConstraint_ = true;
80  useDisjunctiveConstraintInCumulativeConstraint_ = true;
81  linearizationLevel_ = 1;
82  booleanEncodingLevel_ = 1;
83  maxNumCuts_ = 5000;
84  addMirCuts_ = true;
85  useMirRounding_ = true;
86  maxIntegerRoundingScaling_ = 600;
87  addLpConstraintsLazily_ = true;
88  maxInactiveCount_ = 1000L;
89  constraintRemovalBatchSize_ = 100L;
90  searchBranching_ = 0;
91  exploitIntegerLpSolution_ = true;
92  exploitAllLpSolution_ = true;
93  exploitObjective_ = true;
94  pseudoCostReliabilityThreshold_ = 100L;
95  binarySearchNumConflicts_ = -1;
96  instantiateAllVariables_ = true;
97  autoDetectGreaterThanAtLeastOneOf_ = true;
98  numSearchWorkers_ = 1;
99  reduceMemoryUsageInInterleaveMode_ = true;
100  shareObjectiveBounds_ = true;
101  shareLevelZeroBounds_ = true;
102  useRinsLns_ = true;
103  useOptionalVariables_ = true;
104  useExactLpReason_ = true;
105  catchSigintSignal_ = true;
106  mipMaxBound_ = 10000000D;
107  mipVarScaling_ = 1D;
108  mipWantedPrecision_ = 1e-06D;
109  mipMaxActivityExponent_ = 53;
110  mipCheckPrecision_ = 0.0001D;
111  }
112 
113  @java.lang.Override
114  @SuppressWarnings({"unused"})
115  protected java.lang.Object newInstance(
116  UnusedPrivateParameter unused) {
117  return new SatParameters();
118  }
119 
120  @java.lang.Override
121  public final com.google.protobuf.UnknownFieldSet
123  return this.unknownFields;
124  }
125  private SatParameters(
126  com.google.protobuf.CodedInputStream input,
127  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
128  throws com.google.protobuf.InvalidProtocolBufferException {
129  this();
130  if (extensionRegistry == null) {
131  throw new java.lang.NullPointerException();
132  }
133  int mutable_bitField0_ = 0;
134  int mutable_bitField1_ = 0;
135  int mutable_bitField2_ = 0;
136  int mutable_bitField3_ = 0;
137  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
138  com.google.protobuf.UnknownFieldSet.newBuilder();
139  try {
140  boolean done = false;
141  while (!done) {
142  int tag = input.readTag();
143  switch (tag) {
144  case 0:
145  done = true;
146  break;
147  case 8: {
148  int rawValue = input.readEnum();
149  @SuppressWarnings("deprecation")
150  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
151  if (value == null) {
152  unknownFields.mergeVarintField(1, rawValue);
153  } else {
154  bitField0_ |= 0x00000001;
155  preferredVariableOrder_ = rawValue;
156  }
157  break;
158  }
159  case 16: {
160  int rawValue = input.readEnum();
161  @SuppressWarnings("deprecation")
162  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
163  if (value == null) {
164  unknownFields.mergeVarintField(2, rawValue);
165  } else {
166  bitField0_ |= 0x00000002;
167  initialPolarity_ = rawValue;
168  }
169  break;
170  }
171  case 32: {
172  int rawValue = input.readEnum();
173  @SuppressWarnings("deprecation")
174  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
175  if (value == null) {
176  unknownFields.mergeVarintField(4, rawValue);
177  } else {
178  bitField0_ |= 0x00000100;
179  minimizationAlgorithm_ = rawValue;
180  }
181  break;
182  }
183  case 88: {
184  bitField0_ |= 0x00000800;
185  clauseCleanupPeriod_ = input.readInt32();
186  break;
187  }
188  case 104: {
189  bitField0_ |= 0x00001000;
190  clauseCleanupTarget_ = input.readInt32();
191  break;
192  }
193  case 121: {
194  bitField0_ |= 0x00100000;
195  variableActivityDecay_ = input.readDouble();
196  break;
197  }
198  case 129: {
199  bitField0_ |= 0x00200000;
200  maxVariableActivityValue_ = input.readDouble();
201  break;
202  }
203  case 137: {
204  bitField0_ |= 0x02000000;
205  clauseActivityDecay_ = input.readDouble();
206  break;
207  }
208  case 145: {
209  bitField0_ |= 0x04000000;
210  maxClauseActivityValue_ = input.readDouble();
211  break;
212  }
213  case 177: {
214  bitField0_ |= 0x00400000;
215  glucoseMaxDecay_ = input.readDouble();
216  break;
217  }
218  case 185: {
219  bitField0_ |= 0x00800000;
220  glucoseDecayIncrement_ = input.readDouble();
221  break;
222  }
223  case 192: {
224  bitField0_ |= 0x01000000;
225  glucoseDecayIncrementPeriod_ = input.readInt32();
226  break;
227  }
228  case 240: {
229  bitField0_ |= 0x10000000;
230  restartPeriod_ = input.readInt32();
231  break;
232  }
233  case 248: {
234  bitField1_ |= 0x00000400;
235  randomSeed_ = input.readInt32();
236  break;
237  }
238  case 257: {
239  bitField0_ |= 0x00000010;
240  randomBranchesRatio_ = input.readDouble();
241  break;
242  }
243  case 264: {
244  bitField1_ |= 0x00000200;
245  treatBinaryClausesSeparately_ = input.readBool();
246  break;
247  }
248  case 272: {
249  int rawValue = input.readEnum();
250  @SuppressWarnings("deprecation")
251  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
252  if (value == null) {
253  unknownFields.mergeVarintField(34, rawValue);
254  } else {
255  bitField0_ |= 0x00000200;
256  binaryMinimizationAlgorithm_ = rawValue;
257  }
258  break;
259  }
260  case 280: {
261  bitField1_ |= 0x04000000;
262  useOptimizationHints_ = input.readBool();
263  break;
264  }
265  case 289: {
266  bitField1_ |= 0x00000020;
267  maxTimeInSeconds_ = input.readDouble();
268  break;
269  }
270  case 296: {
271  bitField1_ |= 0x00000080;
272  maxNumberOfConflicts_ = input.readInt64();
273  break;
274  }
275  case 320: {
276  bitField1_ |= 0x00000100;
277  maxMemoryInMb_ = input.readInt64();
278  break;
279  }
280  case 328: {
281  bitField1_ |= 0x00000800;
282  logSearchProgress_ = input.readBool();
283  break;
284  }
285  case 344: {
286  bitField1_ |= 0x00001000;
287  usePbResolution_ = input.readBool();
288  break;
289  }
290  case 352: {
291  bitField0_ |= 0x00000004;
292  usePhaseSaving_ = input.readBool();
293  break;
294  }
295  case 361: {
296  bitField0_ |= 0x00000008;
297  randomPolarityRatio_ = input.readDouble();
298  break;
299  }
300  case 368: {
301  bitField0_ |= 0x00010000;
302  pbCleanupIncrement_ = input.readInt32();
303  break;
304  }
305  case 377: {
306  bitField0_ |= 0x00020000;
307  pbCleanupRatio_ = input.readDouble();
308  break;
309  }
310  case 384: {
311  bitField1_ |= 0x00002000;
312  minimizeReductionDuringPbResolution_ = input.readBool();
313  break;
314  }
315  case 392: {
316  bitField1_ |= 0x00004000;
317  countAssumptionLevelsInLbd_ = input.readBool();
318  break;
319  }
320  case 400: {
321  bitField1_ |= 0x08000000;
322  minimizeCore_ = input.readBool();
323  break;
324  }
325  case 408: {
326  int rawValue = input.readEnum();
327  @SuppressWarnings("deprecation")
328  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
329  if (value == null) {
330  unknownFields.mergeVarintField(51, rawValue);
331  } else {
332  bitField1_ |= 0x40000000;
333  maxSatAssumptionOrder_ = rawValue;
334  }
335  break;
336  }
337  case 416: {
338  bitField1_ |= 0x80000000;
339  maxSatReverseAssumptionOrder_ = input.readBool();
340  break;
341  }
342  case 424: {
343  int rawValue = input.readEnum();
344  @SuppressWarnings("deprecation")
345  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
346  if (value == null) {
347  unknownFields.mergeVarintField(53, rawValue);
348  } else {
349  bitField2_ |= 0x00000001;
350  maxSatStratification_ = rawValue;
351  }
352  break;
353  }
354  case 432: {
355  bitField1_ |= 0x00008000;
356  presolveBveThreshold_ = input.readInt32();
357  break;
358  }
359  case 440: {
360  bitField1_ |= 0x00010000;
361  presolveBveClauseWeight_ = input.readInt32();
362  break;
363  }
364  case 448: {
365  bitField0_ |= 0x00000400;
366  subsumptionDuringConflictAnalysis_ = input.readBool();
367  break;
368  }
369  case 457: {
370  bitField1_ |= 0x00020000;
371  presolveProbingDeterministicTimeLimit_ = input.readDouble();
372  break;
373  }
374  case 464: {
375  int rawValue = input.readEnum();
376  @SuppressWarnings("deprecation")
377  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
378  if (value == null) {
379  unknownFields.mergeVarintField(58, rawValue);
380  } else {
381  bitField0_ |= 0x00002000;
382  clauseCleanupProtection_ = rawValue;
383  }
384  break;
385  }
386  case 472: {
387  bitField0_ |= 0x00004000;
388  clauseCleanupLbdBound_ = input.readInt32();
389  break;
390  }
391  case 480: {
392  int rawValue = input.readEnum();
393  @SuppressWarnings("deprecation")
394  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
395  if (value == null) {
396  unknownFields.mergeVarintField(60, rawValue);
397  } else {
398  bitField0_ |= 0x00008000;
399  clauseCleanupOrdering_ = rawValue;
400  }
401  break;
402  }
403  case 488: {
404  int rawValue = input.readEnum();
405  @SuppressWarnings("deprecation")
406  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
407  if (value == null) {
408  unknownFields.mergeVarintField(61, rawValue);
409  } else {
410  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
411  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
412  mutable_bitField0_ |= 0x08000000;
413  }
414  restartAlgorithms_.add(rawValue);
415  }
416  break;
417  }
418  case 490: {
419  int length = input.readRawVarint32();
420  int oldLimit = input.pushLimit(length);
421  while(input.getBytesUntilLimit() > 0) {
422  int rawValue = input.readEnum();
423  @SuppressWarnings("deprecation")
424  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
425  if (value == null) {
426  unknownFields.mergeVarintField(61, rawValue);
427  } else {
428  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
429  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
430  mutable_bitField0_ |= 0x08000000;
431  }
432  restartAlgorithms_.add(rawValue);
433  }
434  }
435  input.popLimit(oldLimit);
436  break;
437  }
438  case 496: {
439  bitField0_ |= 0x20000000;
440  restartRunningWindowSize_ = input.readInt32();
441  break;
442  }
443  case 505: {
444  bitField0_ |= 0x40000000;
445  restartDlAverageRatio_ = input.readDouble();
446  break;
447  }
448  case 512: {
449  bitField1_ |= 0x00000001;
450  useBlockingRestart_ = input.readBool();
451  break;
452  }
453  case 520: {
454  bitField1_ |= 0x00000002;
455  blockingRestartWindowSize_ = input.readInt32();
456  break;
457  }
458  case 529: {
459  bitField1_ |= 0x00000004;
460  blockingRestartMultiplier_ = input.readDouble();
461  break;
462  }
463  case 537: {
464  bitField1_ |= 0x00000040;
465  maxDeterministicTime_ = input.readDouble();
466  break;
467  }
468  case 544: {
469  bitField1_ |= 0x00000008;
470  numConflictsBeforeStrategyChanges_ = input.readInt32();
471  break;
472  }
473  case 553: {
474  bitField1_ |= 0x00000010;
475  strategyChangeIncreaseRatio_ = input.readDouble();
476  break;
477  }
478  case 562: {
479  com.google.protobuf.ByteString bs = input.readBytes();
480  bitField0_ |= 0x08000000;
481  defaultRestartAlgorithms_ = bs;
482  break;
483  }
484  case 569: {
485  bitField0_ |= 0x80000000;
486  restartLbdAverageRatio_ = input.readDouble();
487  break;
488  }
489  case 576: {
490  bitField1_ |= 0x00080000;
491  presolveUseBva_ = input.readBool();
492  break;
493  }
494  case 584: {
495  bitField1_ |= 0x00100000;
496  presolveBvaThreshold_ = input.readInt32();
497  break;
498  }
499  case 592: {
500  bitField2_ |= 0x00000002;
501  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
502  break;
503  }
504  case 600: {
505  bitField0_ |= 0x00000020;
506  useErwaHeuristic_ = input.readBool();
507  break;
508  }
509  case 609: {
510  bitField0_ |= 0x00000040;
511  initialVariablesActivity_ = input.readDouble();
512  break;
513  }
514  case 616: {
515  bitField0_ |= 0x00000080;
516  alsoBumpVariablesInConflictReasons_ = input.readBool();
517  break;
518  }
519  case 624: {
520  bitField2_ |= 0x00000004;
521  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
522  break;
523  }
524  case 632: {
525  bitField2_ |= 0x00000008;
526  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
527  break;
528  }
529  case 640: {
530  bitField2_ |= 0x00000010;
531  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
532  break;
533  }
534  case 656: {
535  int rawValue = input.readEnum();
536  @SuppressWarnings("deprecation")
537  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
538  if (value == null) {
539  unknownFields.mergeVarintField(82, rawValue);
540  } else {
541  bitField2_ |= 0x00040000;
542  searchBranching_ = rawValue;
543  }
544  break;
545  }
546  case 664: {
547  bitField2_ |= 0x01000000;
548  optimizeWithCore_ = input.readBool();
549  break;
550  }
551  case 672: {
552  bitField1_ |= 0x10000000;
553  findMultipleCores_ = input.readBool();
554  break;
555  }
556  case 680: {
557  bitField2_ |= 0x04000000;
558  optimizeWithMaxHs_ = input.readBool();
559  break;
560  }
561  case 688: {
562  bitField1_ |= 0x00400000;
563  cpModelPresolve_ = input.readBool();
564  break;
565  }
566  case 696: {
567  bitField2_ |= 0x08000000;
568  enumerateAllSolutions_ = input.readBool();
569  break;
570  }
571  case 704: {
572  bitField1_ |= 0x00040000;
573  presolveBlockedClause_ = input.readBool();
574  break;
575  }
576  case 712: {
577  bitField1_ |= 0x20000000;
578  coverOptimization_ = input.readBool();
579  break;
580  }
581  case 720: {
582  bitField2_ |= 0x00000020;
583  linearizationLevel_ = input.readInt32();
584  break;
585  }
586  case 728: {
587  bitField2_ |= 0x00000080;
588  maxNumCuts_ = input.readInt32();
589  break;
590  }
591  case 736: {
592  bitField2_ |= 0x00000100;
593  onlyAddCutsAtLevelZero_ = input.readBool();
594  break;
595  }
596  case 744: {
597  bitField1_ |= 0x01000000;
598  cpModelUseSatPresolve_ = input.readBool();
599  break;
600  }
601  case 752: {
602  bitField2_ |= 0x00080000;
603  exploitIntegerLpSolution_ = input.readBool();
604  break;
605  }
606  case 760: {
607  bitField2_ |= 0x40000000;
608  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
609  break;
610  }
611  case 768: {
612  bitField0_ |= 0x00040000;
613  minimizeWithPropagationRestartPeriod_ = input.readInt32();
614  break;
615  }
616  case 776: {
617  bitField0_ |= 0x00080000;
618  minimizeWithPropagationNumDecisions_ = input.readInt32();
619  break;
620  }
621  case 784: {
622  bitField2_ |= 0x80000000;
623  stopAfterFirstSolution_ = input.readBool();
624  break;
625  }
626  case 792: {
627  bitField2_ |= 0x02000000;
628  binarySearchNumConflicts_ = input.readInt32();
629  break;
630  }
631  case 800: {
632  bitField3_ |= 0x00000001;
633  numSearchWorkers_ = input.readInt32();
634  break;
635  }
636  case 808: {
637  bitField3_ |= 0x00000040;
638  useLnsOnly_ = input.readBool();
639  break;
640  }
641  case 824: {
642  bitField3_ |= 0x00000400;
643  randomizeSearch_ = input.readBool();
644  break;
645  }
646  case 832: {
647  bitField3_ |= 0x00000800;
648  searchRandomizationTolerance_ = input.readInt64();
649  break;
650  }
651  case 840: {
652  bitField3_ |= 0x00000080;
653  lnsFocusOnDecisionVariables_ = input.readBool();
654  break;
655  }
656  case 848: {
657  bitField2_ |= 0x20000000;
658  instantiateAllVariables_ = input.readBool();
659  break;
660  }
661  case 856: {
662  bitField2_ |= 0x00000040;
663  booleanEncodingLevel_ = input.readInt32();
664  break;
665  }
666  case 864: {
667  bitField3_ |= 0x00001000;
668  useOptionalVariables_ = input.readBool();
669  break;
670  }
671  case 872: {
672  bitField3_ |= 0x00002000;
673  useExactLpReason_ = input.readBool();
674  break;
675  }
676  case 880: {
677  bitField1_ |= 0x00800000;
678  cpModelProbingLevel_ = input.readInt32();
679  break;
680  }
681  case 888: {
682  bitField2_ |= 0x00000200;
683  addKnapsackCuts_ = input.readBool();
684  break;
685  }
686  case 896: {
687  bitField2_ |= 0x00004000;
688  addLpConstraintsLazily_ = input.readBool();
689  break;
690  }
691  case 904: {
692  bitField3_ |= 0x00000010;
693  shareObjectiveBounds_ = input.readBool();
694  break;
695  }
696  case 912: {
697  bitField3_ |= 0x00000020;
698  shareLevelZeroBounds_ = input.readBool();
699  break;
700  }
701  case 921: {
702  bitField2_ |= 0x00008000;
703  minOrthogonalityForLpConstraints_ = input.readDouble();
704  break;
705  }
706  case 928: {
707  bitField2_ |= 0x00100000;
708  exploitAllLpSolution_ = input.readBool();
709  break;
710  }
711  case 936: {
712  bitField2_ |= 0x00000400;
713  addCgCuts_ = input.readBool();
714  break;
715  }
716  case 944: {
717  bitField2_ |= 0x00001000;
718  useMirRounding_ = input.readBool();
719  break;
720  }
721  case 952: {
722  bitField2_ |= 0x00002000;
723  maxIntegerRoundingScaling_ = input.readInt32();
724  break;
725  }
726  case 960: {
727  bitField2_ |= 0x00000800;
728  addMirCuts_ = input.readBool();
729  break;
730  }
731  case 968: {
732  bitField2_ |= 0x00010000;
733  maxInactiveCount_ = input.readInt64();
734  break;
735  }
736  case 976: {
737  bitField2_ |= 0x00020000;
738  constraintRemovalBatchSize_ = input.readInt64();
739  break;
740  }
741  case 984: {
742  bitField2_ |= 0x00800000;
743  pseudoCostReliabilityThreshold_ = input.readInt64();
744  break;
745  }
746  case 993: {
747  bitField3_ |= 0x00020000;
748  mipMaxBound_ = input.readDouble();
749  break;
750  }
751  case 1001: {
752  bitField3_ |= 0x00040000;
753  mipVarScaling_ = input.readDouble();
754  break;
755  }
756  case 1009: {
757  bitField3_ |= 0x00080000;
758  mipWantedPrecision_ = input.readDouble();
759  break;
760  }
761  case 1016: {
762  bitField3_ |= 0x00100000;
763  mipMaxActivityExponent_ = input.readInt32();
764  break;
765  }
766  case 1025: {
767  bitField3_ |= 0x00200000;
768  mipCheckPrecision_ = input.readDouble();
769  break;
770  }
771  case 1032: {
772  bitField3_ |= 0x00000100;
773  useRinsLns_ = input.readBool();
774  break;
775  }
776  case 1040: {
777  bitField2_ |= 0x00200000;
778  exploitBestSolution_ = input.readBool();
779  break;
780  }
781  case 1048: {
782  bitField2_ |= 0x00400000;
783  exploitObjective_ = input.readBool();
784  break;
785  }
786  case 1056: {
787  bitField2_ |= 0x10000000;
788  fillTightenedDomainsInResponse_ = input.readBool();
789  break;
790  }
791  case 1064: {
792  bitField3_ |= 0x00008000;
793  useCombinedNoOverlap_ = input.readBool();
794  break;
795  }
796  case 1072: {
797  bitField3_ |= 0x00000008;
798  deterministicParallelSearch_ = input.readBool();
799  break;
800  }
801  case 1080: {
802  bitField3_ |= 0x00010000;
803  catchSigintSignal_ = input.readBool();
804  break;
805  }
806  case 1088: {
807  bitField3_ |= 0x00000002;
808  interleaveSearch_ = input.readBool();
809  break;
810  }
811  case 1096: {
812  bitField3_ |= 0x00000200;
813  diversifyLnsParams_ = input.readBool();
814  break;
815  }
816  case 1104: {
817  bitField1_ |= 0x00200000;
818  maxPresolveIterations_ = input.readInt32();
819  break;
820  }
821  case 1112: {
822  bitField3_ |= 0x00004000;
823  useBranchingInLp_ = input.readBool();
824  break;
825  }
826  case 1120: {
827  bitField1_ |= 0x02000000;
828  expandElementConstraints_ = input.readBool();
829  break;
830  }
831  case 1128: {
832  bitField3_ |= 0x00000004;
833  reduceMemoryUsageInInterleaveMode_ = input.readBool();
834  break;
835  }
836  default: {
837  if (!parseUnknownField(
838  input, unknownFields, extensionRegistry, tag)) {
839  done = true;
840  }
841  break;
842  }
843  }
844  }
845  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
846  throw e.setUnfinishedMessage(this);
847  } catch (java.io.IOException e) {
848  throw new com.google.protobuf.InvalidProtocolBufferException(
849  e).setUnfinishedMessage(this);
850  } finally {
851  if (((mutable_bitField0_ & 0x08000000) != 0)) {
852  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
853  }
854  this.unknownFields = unknownFields.build();
855  makeExtensionsImmutable();
856  }
857  }
858  public static final com.google.protobuf.Descriptors.Descriptor
860  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
861  }
862 
863  @java.lang.Override
864  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
866  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
867  .ensureFieldAccessorsInitialized(
869  }
870 
879  public enum VariableOrder
880  implements com.google.protobuf.ProtocolMessageEnum {
897  ;
898 
906  public static final int IN_ORDER_VALUE = 0;
910  public static final int IN_REVERSE_ORDER_VALUE = 1;
914  public static final int IN_RANDOM_ORDER_VALUE = 2;
915 
916 
917  public final int getNumber() {
918  return value;
919  }
920 
924  @java.lang.Deprecated
925  public static VariableOrder valueOf(int value) {
926  return forNumber(value);
927  }
928 
929  public static VariableOrder forNumber(int value) {
930  switch (value) {
931  case 0: return IN_ORDER;
932  case 1: return IN_REVERSE_ORDER;
933  case 2: return IN_RANDOM_ORDER;
934  default: return null;
935  }
936  }
937 
938  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
940  return internalValueMap;
941  }
942  private static final com.google.protobuf.Internal.EnumLiteMap<
943  VariableOrder> internalValueMap =
944  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
945  public VariableOrder findValueByNumber(int number) {
946  return VariableOrder.forNumber(number);
947  }
948  };
949 
950  public final com.google.protobuf.Descriptors.EnumValueDescriptor
952  return getDescriptor().getValues().get(ordinal());
953  }
954  public final com.google.protobuf.Descriptors.EnumDescriptor
956  return getDescriptor();
957  }
958  public static final com.google.protobuf.Descriptors.EnumDescriptor
960  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
961  }
962 
963  private static final VariableOrder[] VALUES = values();
964 
965  public static VariableOrder valueOf(
966  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
967  if (desc.getType() != getDescriptor()) {
968  throw new java.lang.IllegalArgumentException(
969  "EnumValueDescriptor is not for this type.");
970  }
971  return VALUES[desc.getIndex()];
972  }
973 
974  private final int value;
975 
976  private VariableOrder(int value) {
977  this.value = value;
978  }
979 
980  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
981  }
982 
994  public enum Polarity
995  implements com.google.protobuf.ProtocolMessageEnum {
1027  ;
1028 
1032  public static final int POLARITY_TRUE_VALUE = 0;
1036  public static final int POLARITY_FALSE_VALUE = 1;
1040  public static final int POLARITY_RANDOM_VALUE = 2;
1051  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1059  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1060 
1061 
1062  public final int getNumber() {
1063  return value;
1064  }
1065 
1069  @java.lang.Deprecated
1070  public static Polarity valueOf(int value) {
1071  return forNumber(value);
1072  }
1073 
1074  public static Polarity forNumber(int value) {
1075  switch (value) {
1076  case 0: return POLARITY_TRUE;
1077  case 1: return POLARITY_FALSE;
1078  case 2: return POLARITY_RANDOM;
1079  case 3: return POLARITY_WEIGHTED_SIGN;
1080  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1081  default: return null;
1082  }
1083  }
1084 
1085  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1087  return internalValueMap;
1088  }
1089  private static final com.google.protobuf.Internal.EnumLiteMap<
1090  Polarity> internalValueMap =
1091  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1092  public Polarity findValueByNumber(int number) {
1093  return Polarity.forNumber(number);
1094  }
1095  };
1096 
1097  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1099  return getDescriptor().getValues().get(ordinal());
1100  }
1101  public final com.google.protobuf.Descriptors.EnumDescriptor
1103  return getDescriptor();
1104  }
1105  public static final com.google.protobuf.Descriptors.EnumDescriptor
1107  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1108  }
1109 
1110  private static final Polarity[] VALUES = values();
1111 
1112  public static Polarity valueOf(
1113  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1114  if (desc.getType() != getDescriptor()) {
1115  throw new java.lang.IllegalArgumentException(
1116  "EnumValueDescriptor is not for this type.");
1117  }
1118  return VALUES[desc.getIndex()];
1119  }
1120 
1121  private final int value;
1122 
1123  private Polarity(int value) {
1124  this.value = value;
1125  }
1126 
1127  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1128  }
1129 
1138  implements com.google.protobuf.ProtocolMessageEnum {
1142  NONE(0),
1155  ;
1156 
1160  public static final int NONE_VALUE = 0;
1164  public static final int SIMPLE_VALUE = 1;
1168  public static final int RECURSIVE_VALUE = 2;
1172  public static final int EXPERIMENTAL_VALUE = 3;
1173 
1174 
1175  public final int getNumber() {
1176  return value;
1177  }
1178 
1182  @java.lang.Deprecated
1183  public static ConflictMinimizationAlgorithm valueOf(int value) {
1184  return forNumber(value);
1185  }
1186 
1187  public static ConflictMinimizationAlgorithm forNumber(int value) {
1188  switch (value) {
1189  case 0: return NONE;
1190  case 1: return SIMPLE;
1191  case 2: return RECURSIVE;
1192  case 3: return EXPERIMENTAL;
1193  default: return null;
1194  }
1195  }
1196 
1197  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1199  return internalValueMap;
1200  }
1201  private static final com.google.protobuf.Internal.EnumLiteMap<
1202  ConflictMinimizationAlgorithm> internalValueMap =
1203  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1204  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1206  }
1207  };
1208 
1209  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1211  return getDescriptor().getValues().get(ordinal());
1212  }
1213  public final com.google.protobuf.Descriptors.EnumDescriptor
1215  return getDescriptor();
1216  }
1217  public static final com.google.protobuf.Descriptors.EnumDescriptor
1219  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1220  }
1221 
1222  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1223 
1225  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1226  if (desc.getType() != getDescriptor()) {
1227  throw new java.lang.IllegalArgumentException(
1228  "EnumValueDescriptor is not for this type.");
1229  }
1230  return VALUES[desc.getIndex()];
1231  }
1232 
1233  private final int value;
1234 
1235  private ConflictMinimizationAlgorithm(int value) {
1236  this.value = value;
1237  }
1238 
1239  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1240  }
1241 
1251  implements com.google.protobuf.ProtocolMessageEnum {
1272  ;
1273 
1277  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1281  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1285  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1289  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1293  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1294 
1295 
1296  public final int getNumber() {
1297  return value;
1298  }
1299 
1303  @java.lang.Deprecated
1304  public static BinaryMinizationAlgorithm valueOf(int value) {
1305  return forNumber(value);
1306  }
1307 
1308  public static BinaryMinizationAlgorithm forNumber(int value) {
1309  switch (value) {
1310  case 0: return NO_BINARY_MINIMIZATION;
1311  case 1: return BINARY_MINIMIZATION_FIRST;
1312  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1313  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1314  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1315  default: return null;
1316  }
1317  }
1318 
1319  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1321  return internalValueMap;
1322  }
1323  private static final com.google.protobuf.Internal.EnumLiteMap<
1324  BinaryMinizationAlgorithm> internalValueMap =
1325  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1326  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1327  return BinaryMinizationAlgorithm.forNumber(number);
1328  }
1329  };
1330 
1331  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1333  return getDescriptor().getValues().get(ordinal());
1334  }
1335  public final com.google.protobuf.Descriptors.EnumDescriptor
1337  return getDescriptor();
1338  }
1339  public static final com.google.protobuf.Descriptors.EnumDescriptor
1341  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1342  }
1343 
1344  private static final BinaryMinizationAlgorithm[] VALUES = values();
1345 
1347  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1348  if (desc.getType() != getDescriptor()) {
1349  throw new java.lang.IllegalArgumentException(
1350  "EnumValueDescriptor is not for this type.");
1351  }
1352  return VALUES[desc.getIndex()];
1353  }
1354 
1355  private final int value;
1356 
1357  private BinaryMinizationAlgorithm(int value) {
1358  this.value = value;
1359  }
1360 
1361  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1362  }
1363 
1373  public enum ClauseProtection
1374  implements com.google.protobuf.ProtocolMessageEnum {
1399  ;
1400 
1408  public static final int PROTECTION_NONE_VALUE = 0;
1416  public static final int PROTECTION_ALWAYS_VALUE = 1;
1424  public static final int PROTECTION_LBD_VALUE = 2;
1425 
1426 
1427  public final int getNumber() {
1428  return value;
1429  }
1430 
1434  @java.lang.Deprecated
1435  public static ClauseProtection valueOf(int value) {
1436  return forNumber(value);
1437  }
1438 
1439  public static ClauseProtection forNumber(int value) {
1440  switch (value) {
1441  case 0: return PROTECTION_NONE;
1442  case 1: return PROTECTION_ALWAYS;
1443  case 2: return PROTECTION_LBD;
1444  default: return null;
1445  }
1446  }
1447 
1448  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1450  return internalValueMap;
1451  }
1452  private static final com.google.protobuf.Internal.EnumLiteMap<
1453  ClauseProtection> internalValueMap =
1454  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1455  public ClauseProtection findValueByNumber(int number) {
1456  return ClauseProtection.forNumber(number);
1457  }
1458  };
1459 
1460  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1462  return getDescriptor().getValues().get(ordinal());
1463  }
1464  public final com.google.protobuf.Descriptors.EnumDescriptor
1466  return getDescriptor();
1467  }
1468  public static final com.google.protobuf.Descriptors.EnumDescriptor
1470  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1471  }
1472 
1473  private static final ClauseProtection[] VALUES = values();
1474 
1475  public static ClauseProtection valueOf(
1476  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1477  if (desc.getType() != getDescriptor()) {
1478  throw new java.lang.IllegalArgumentException(
1479  "EnumValueDescriptor is not for this type.");
1480  }
1481  return VALUES[desc.getIndex()];
1482  }
1483 
1484  private final int value;
1485 
1486  private ClauseProtection(int value) {
1487  this.value = value;
1488  }
1489 
1490  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1491  }
1492 
1501  public enum ClauseOrdering
1502  implements com.google.protobuf.ProtocolMessageEnum {
1519  ;
1520 
1528  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1536  public static final int CLAUSE_LBD_VALUE = 1;
1537 
1538 
1539  public final int getNumber() {
1540  return value;
1541  }
1542 
1546  @java.lang.Deprecated
1547  public static ClauseOrdering valueOf(int value) {
1548  return forNumber(value);
1549  }
1550 
1551  public static ClauseOrdering forNumber(int value) {
1552  switch (value) {
1553  case 0: return CLAUSE_ACTIVITY;
1554  case 1: return CLAUSE_LBD;
1555  default: return null;
1556  }
1557  }
1558 
1559  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1561  return internalValueMap;
1562  }
1563  private static final com.google.protobuf.Internal.EnumLiteMap<
1564  ClauseOrdering> internalValueMap =
1565  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1566  public ClauseOrdering findValueByNumber(int number) {
1567  return ClauseOrdering.forNumber(number);
1568  }
1569  };
1570 
1571  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1573  return getDescriptor().getValues().get(ordinal());
1574  }
1575  public final com.google.protobuf.Descriptors.EnumDescriptor
1577  return getDescriptor();
1578  }
1579  public static final com.google.protobuf.Descriptors.EnumDescriptor
1581  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1582  }
1583 
1584  private static final ClauseOrdering[] VALUES = values();
1585 
1586  public static ClauseOrdering valueOf(
1587  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1588  if (desc.getType() != getDescriptor()) {
1589  throw new java.lang.IllegalArgumentException(
1590  "EnumValueDescriptor is not for this type.");
1591  }
1592  return VALUES[desc.getIndex()];
1593  }
1594 
1595  private final int value;
1596 
1597  private ClauseOrdering(int value) {
1598  this.value = value;
1599  }
1600 
1601  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1602  }
1603 
1615  public enum RestartAlgorithm
1616  implements com.google.protobuf.ProtocolMessageEnum {
1653  ;
1654 
1658  public static final int NO_RESTART_VALUE = 0;
1666  public static final int LUBY_RESTART_VALUE = 1;
1674  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1682  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1690  public static final int FIXED_RESTART_VALUE = 4;
1691 
1692 
1693  public final int getNumber() {
1694  return value;
1695  }
1696 
1700  @java.lang.Deprecated
1701  public static RestartAlgorithm valueOf(int value) {
1702  return forNumber(value);
1703  }
1704 
1705  public static RestartAlgorithm forNumber(int value) {
1706  switch (value) {
1707  case 0: return NO_RESTART;
1708  case 1: return LUBY_RESTART;
1709  case 2: return DL_MOVING_AVERAGE_RESTART;
1710  case 3: return LBD_MOVING_AVERAGE_RESTART;
1711  case 4: return FIXED_RESTART;
1712  default: return null;
1713  }
1714  }
1715 
1716  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1718  return internalValueMap;
1719  }
1720  private static final com.google.protobuf.Internal.EnumLiteMap<
1721  RestartAlgorithm> internalValueMap =
1722  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1723  public RestartAlgorithm findValueByNumber(int number) {
1724  return RestartAlgorithm.forNumber(number);
1725  }
1726  };
1727 
1728  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1730  return getDescriptor().getValues().get(ordinal());
1731  }
1732  public final com.google.protobuf.Descriptors.EnumDescriptor
1734  return getDescriptor();
1735  }
1736  public static final com.google.protobuf.Descriptors.EnumDescriptor
1738  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1739  }
1740 
1741  private static final RestartAlgorithm[] VALUES = values();
1742 
1743  public static RestartAlgorithm valueOf(
1744  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1745  if (desc.getType() != getDescriptor()) {
1746  throw new java.lang.IllegalArgumentException(
1747  "EnumValueDescriptor is not for this type.");
1748  }
1749  return VALUES[desc.getIndex()];
1750  }
1751 
1752  private final int value;
1753 
1754  private RestartAlgorithm(int value) {
1755  this.value = value;
1756  }
1757 
1758  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1759  }
1760 
1769  implements com.google.protobuf.ProtocolMessageEnum {
1782  ;
1783 
1787  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1791  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1795  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1796 
1797 
1798  public final int getNumber() {
1799  return value;
1800  }
1801 
1805  @java.lang.Deprecated
1806  public static MaxSatAssumptionOrder valueOf(int value) {
1807  return forNumber(value);
1808  }
1809 
1810  public static MaxSatAssumptionOrder forNumber(int value) {
1811  switch (value) {
1812  case 0: return DEFAULT_ASSUMPTION_ORDER;
1813  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1814  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1815  default: return null;
1816  }
1817  }
1818 
1819  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1821  return internalValueMap;
1822  }
1823  private static final com.google.protobuf.Internal.EnumLiteMap<
1824  MaxSatAssumptionOrder> internalValueMap =
1825  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1826  public MaxSatAssumptionOrder findValueByNumber(int number) {
1827  return MaxSatAssumptionOrder.forNumber(number);
1828  }
1829  };
1830 
1831  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1833  return getDescriptor().getValues().get(ordinal());
1834  }
1835  public final com.google.protobuf.Descriptors.EnumDescriptor
1837  return getDescriptor();
1838  }
1839  public static final com.google.protobuf.Descriptors.EnumDescriptor
1841  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1842  }
1843 
1844  private static final MaxSatAssumptionOrder[] VALUES = values();
1845 
1847  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1848  if (desc.getType() != getDescriptor()) {
1849  throw new java.lang.IllegalArgumentException(
1850  "EnumValueDescriptor is not for this type.");
1851  }
1852  return VALUES[desc.getIndex()];
1853  }
1854 
1855  private final int value;
1856 
1857  private MaxSatAssumptionOrder(int value) {
1858  this.value = value;
1859  }
1860 
1861  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1862  }
1863 
1872  implements com.google.protobuf.ProtocolMessageEnum {
1901  ;
1902 
1910  public static final int STRATIFICATION_NONE_VALUE = 0;
1919  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1930  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1931 
1932 
1933  public final int getNumber() {
1934  return value;
1935  }
1936 
1940  @java.lang.Deprecated
1941  public static MaxSatStratificationAlgorithm valueOf(int value) {
1942  return forNumber(value);
1943  }
1944 
1945  public static MaxSatStratificationAlgorithm forNumber(int value) {
1946  switch (value) {
1947  case 0: return STRATIFICATION_NONE;
1948  case 1: return STRATIFICATION_DESCENT;
1949  case 2: return STRATIFICATION_ASCENT;
1950  default: return null;
1951  }
1952  }
1953 
1954  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1956  return internalValueMap;
1957  }
1958  private static final com.google.protobuf.Internal.EnumLiteMap<
1959  MaxSatStratificationAlgorithm> internalValueMap =
1960  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1961  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1963  }
1964  };
1965 
1966  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1968  return getDescriptor().getValues().get(ordinal());
1969  }
1970  public final com.google.protobuf.Descriptors.EnumDescriptor
1972  return getDescriptor();
1973  }
1974  public static final com.google.protobuf.Descriptors.EnumDescriptor
1976  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1977  }
1978 
1979  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1980 
1982  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1983  if (desc.getType() != getDescriptor()) {
1984  throw new java.lang.IllegalArgumentException(
1985  "EnumValueDescriptor is not for this type.");
1986  }
1987  return VALUES[desc.getIndex()];
1988  }
1989 
1990  private final int value;
1991 
1992  private MaxSatStratificationAlgorithm(int value) {
1993  this.value = value;
1994  }
1995 
1996  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1997  }
1998 
2006  public enum SearchBranching
2007  implements com.google.protobuf.ProtocolMessageEnum {
2075  ;
2076 
2085  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2095  public static final int FIXED_SEARCH_VALUE = 1;
2103  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2113  public static final int LP_SEARCH_VALUE = 3;
2123  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2133  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2143  public static final int HINT_SEARCH_VALUE = 6;
2144 
2145 
2146  public final int getNumber() {
2147  return value;
2148  }
2149 
2153  @java.lang.Deprecated
2154  public static SearchBranching valueOf(int value) {
2155  return forNumber(value);
2156  }
2157 
2158  public static SearchBranching forNumber(int value) {
2159  switch (value) {
2160  case 0: return AUTOMATIC_SEARCH;
2161  case 1: return FIXED_SEARCH;
2162  case 2: return PORTFOLIO_SEARCH;
2163  case 3: return LP_SEARCH;
2164  case 4: return PSEUDO_COST_SEARCH;
2165  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2166  case 6: return HINT_SEARCH;
2167  default: return null;
2168  }
2169  }
2170 
2171  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2173  return internalValueMap;
2174  }
2175  private static final com.google.protobuf.Internal.EnumLiteMap<
2176  SearchBranching> internalValueMap =
2177  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2178  public SearchBranching findValueByNumber(int number) {
2179  return SearchBranching.forNumber(number);
2180  }
2181  };
2182 
2183  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2185  return getDescriptor().getValues().get(ordinal());
2186  }
2187  public final com.google.protobuf.Descriptors.EnumDescriptor
2189  return getDescriptor();
2190  }
2191  public static final com.google.protobuf.Descriptors.EnumDescriptor
2193  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2194  }
2195 
2196  private static final SearchBranching[] VALUES = values();
2197 
2198  public static SearchBranching valueOf(
2199  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2200  if (desc.getType() != getDescriptor()) {
2201  throw new java.lang.IllegalArgumentException(
2202  "EnumValueDescriptor is not for this type.");
2203  }
2204  return VALUES[desc.getIndex()];
2205  }
2206 
2207  private final int value;
2208 
2209  private SearchBranching(int value) {
2210  this.value = value;
2211  }
2212 
2213  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2214  }
2215 
2216  private int bitField0_;
2217  private int bitField1_;
2218  private int bitField2_;
2219  private int bitField3_;
2220  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2221  private int preferredVariableOrder_;
2225  public boolean hasPreferredVariableOrder() {
2226  return ((bitField0_ & 0x00000001) != 0);
2227  }
2232  @SuppressWarnings("deprecation")
2234  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2235  }
2236 
2237  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2238  private int initialPolarity_;
2242  public boolean hasInitialPolarity() {
2243  return ((bitField0_ & 0x00000002) != 0);
2244  }
2249  @SuppressWarnings("deprecation")
2251  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2252  }
2253 
2254  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2255  private boolean usePhaseSaving_;
2269  public boolean hasUsePhaseSaving() {
2270  return ((bitField0_ & 0x00000004) != 0);
2271  }
2285  public boolean getUsePhaseSaving() {
2286  return usePhaseSaving_;
2287  }
2288 
2289  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2290  private double randomPolarityRatio_;
2302  public boolean hasRandomPolarityRatio() {
2303  return ((bitField0_ & 0x00000008) != 0);
2304  }
2316  public double getRandomPolarityRatio() {
2317  return randomPolarityRatio_;
2318  }
2319 
2320  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2321  private double randomBranchesRatio_;
2331  public boolean hasRandomBranchesRatio() {
2332  return ((bitField0_ & 0x00000010) != 0);
2333  }
2343  public double getRandomBranchesRatio() {
2344  return randomBranchesRatio_;
2345  }
2346 
2347  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2348  private boolean useErwaHeuristic_;
2358  public boolean hasUseErwaHeuristic() {
2359  return ((bitField0_ & 0x00000020) != 0);
2360  }
2370  public boolean getUseErwaHeuristic() {
2371  return useErwaHeuristic_;
2372  }
2373 
2374  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2375  private double initialVariablesActivity_;
2388  public boolean hasInitialVariablesActivity() {
2389  return ((bitField0_ & 0x00000040) != 0);
2390  }
2404  return initialVariablesActivity_;
2405  }
2406 
2408  private boolean alsoBumpVariablesInConflictReasons_;
2420  return ((bitField0_ & 0x00000080) != 0);
2421  }
2433  return alsoBumpVariablesInConflictReasons_;
2434  }
2435 
2436  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2437  private int minimizationAlgorithm_;
2441  public boolean hasMinimizationAlgorithm() {
2442  return ((bitField0_ & 0x00000100) != 0);
2443  }
2448  @SuppressWarnings("deprecation")
2450  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2451  }
2452 
2453  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2454  private int binaryMinimizationAlgorithm_;
2459  return ((bitField0_ & 0x00000200) != 0);
2460  }
2465  @SuppressWarnings("deprecation")
2468  }
2469 
2471  private boolean subsumptionDuringConflictAnalysis_;
2483  return ((bitField0_ & 0x00000400) != 0);
2484  }
2496  return subsumptionDuringConflictAnalysis_;
2497  }
2498 
2499  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2500  private int clauseCleanupPeriod_;
2508  public boolean hasClauseCleanupPeriod() {
2509  return ((bitField0_ & 0x00000800) != 0);
2510  }
2518  public int getClauseCleanupPeriod() {
2519  return clauseCleanupPeriod_;
2520  }
2521 
2522  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2523  private int clauseCleanupTarget_;
2532  public boolean hasClauseCleanupTarget() {
2533  return ((bitField0_ & 0x00001000) != 0);
2534  }
2543  public int getClauseCleanupTarget() {
2544  return clauseCleanupTarget_;
2545  }
2546 
2547  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2548  private int clauseCleanupProtection_;
2552  public boolean hasClauseCleanupProtection() {
2553  return ((bitField0_ & 0x00002000) != 0);
2554  }
2559  @SuppressWarnings("deprecation")
2561  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2562  }
2563 
2564  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2565  private int clauseCleanupLbdBound_;
2574  public boolean hasClauseCleanupLbdBound() {
2575  return ((bitField0_ & 0x00004000) != 0);
2576  }
2586  return clauseCleanupLbdBound_;
2587  }
2588 
2589  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2590  private int clauseCleanupOrdering_;
2594  public boolean hasClauseCleanupOrdering() {
2595  return ((bitField0_ & 0x00008000) != 0);
2596  }
2601  @SuppressWarnings("deprecation")
2603  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2604  }
2605 
2606  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2607  private int pbCleanupIncrement_;
2615  public boolean hasPbCleanupIncrement() {
2616  return ((bitField0_ & 0x00010000) != 0);
2617  }
2625  public int getPbCleanupIncrement() {
2626  return pbCleanupIncrement_;
2627  }
2628 
2629  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2630  private double pbCleanupRatio_;
2634  public boolean hasPbCleanupRatio() {
2635  return ((bitField0_ & 0x00020000) != 0);
2636  }
2640  public double getPbCleanupRatio() {
2641  return pbCleanupRatio_;
2642  }
2643 
2645  private int minimizeWithPropagationRestartPeriod_;
2664  return ((bitField0_ & 0x00040000) != 0);
2665  }
2684  return minimizeWithPropagationRestartPeriod_;
2685  }
2686 
2688  private int minimizeWithPropagationNumDecisions_;
2693  return ((bitField0_ & 0x00080000) != 0);
2694  }
2699  return minimizeWithPropagationNumDecisions_;
2700  }
2701 
2702  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2703  private double variableActivityDecay_;
2717  public boolean hasVariableActivityDecay() {
2718  return ((bitField0_ & 0x00100000) != 0);
2719  }
2733  public double getVariableActivityDecay() {
2734  return variableActivityDecay_;
2735  }
2736 
2737  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2738  private double maxVariableActivityValue_;
2742  public boolean hasMaxVariableActivityValue() {
2743  return ((bitField0_ & 0x00200000) != 0);
2744  }
2749  return maxVariableActivityValue_;
2750  }
2751 
2752  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2753  private double glucoseMaxDecay_;
2764  public boolean hasGlucoseMaxDecay() {
2765  return ((bitField0_ & 0x00400000) != 0);
2766  }
2777  public double getGlucoseMaxDecay() {
2778  return glucoseMaxDecay_;
2779  }
2780 
2781  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2782  private double glucoseDecayIncrement_;
2786  public boolean hasGlucoseDecayIncrement() {
2787  return ((bitField0_ & 0x00800000) != 0);
2788  }
2792  public double getGlucoseDecayIncrement() {
2793  return glucoseDecayIncrement_;
2794  }
2795 
2796  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2797  private int glucoseDecayIncrementPeriod_;
2802  return ((bitField0_ & 0x01000000) != 0);
2803  }
2808  return glucoseDecayIncrementPeriod_;
2809  }
2810 
2811  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2812  private double clauseActivityDecay_;
2820  public boolean hasClauseActivityDecay() {
2821  return ((bitField0_ & 0x02000000) != 0);
2822  }
2830  public double getClauseActivityDecay() {
2831  return clauseActivityDecay_;
2832  }
2833 
2834  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2835  private double maxClauseActivityValue_;
2839  public boolean hasMaxClauseActivityValue() {
2840  return ((bitField0_ & 0x04000000) != 0);
2841  }
2845  public double getMaxClauseActivityValue() {
2846  return maxClauseActivityValue_;
2847  }
2848 
2849  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2850  private java.util.List<java.lang.Integer> restartAlgorithms_;
2851  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2852  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2853  new com.google.protobuf.Internal.ListAdapter.Converter<
2854  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2855  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2856  @SuppressWarnings("deprecation")
2858  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2859  }
2860  };
2876  return new com.google.protobuf.Internal.ListAdapter<
2877  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2878  }
2894  return restartAlgorithms_.size();
2895  }
2911  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2912  }
2913 
2914  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2915  private volatile java.lang.Object defaultRestartAlgorithms_;
2919  public boolean hasDefaultRestartAlgorithms() {
2920  return ((bitField0_ & 0x08000000) != 0);
2921  }
2925  public java.lang.String getDefaultRestartAlgorithms() {
2926  java.lang.Object ref = defaultRestartAlgorithms_;
2927  if (ref instanceof java.lang.String) {
2928  return (java.lang.String) ref;
2929  } else {
2930  com.google.protobuf.ByteString bs =
2931  (com.google.protobuf.ByteString) ref;
2932  java.lang.String s = bs.toStringUtf8();
2933  if (bs.isValidUtf8()) {
2934  defaultRestartAlgorithms_ = s;
2935  }
2936  return s;
2937  }
2938  }
2942  public com.google.protobuf.ByteString
2944  java.lang.Object ref = defaultRestartAlgorithms_;
2945  if (ref instanceof java.lang.String) {
2946  com.google.protobuf.ByteString b =
2947  com.google.protobuf.ByteString.copyFromUtf8(
2948  (java.lang.String) ref);
2949  defaultRestartAlgorithms_ = b;
2950  return b;
2951  } else {
2952  return (com.google.protobuf.ByteString) ref;
2953  }
2954  }
2955 
2956  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2957  private int restartPeriod_;
2966  public boolean hasRestartPeriod() {
2967  return ((bitField0_ & 0x10000000) != 0);
2968  }
2977  public int getRestartPeriod() {
2978  return restartPeriod_;
2979  }
2980 
2981  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2982  private int restartRunningWindowSize_;
2990  public boolean hasRestartRunningWindowSize() {
2991  return ((bitField0_ & 0x20000000) != 0);
2992  }
3001  return restartRunningWindowSize_;
3002  }
3003 
3004  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
3005  private double restartDlAverageRatio_;
3014  public boolean hasRestartDlAverageRatio() {
3015  return ((bitField0_ & 0x40000000) != 0);
3016  }
3025  public double getRestartDlAverageRatio() {
3026  return restartDlAverageRatio_;
3027  }
3028 
3029  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3030  private double restartLbdAverageRatio_;
3034  public boolean hasRestartLbdAverageRatio() {
3035  return ((bitField0_ & 0x80000000) != 0);
3036  }
3040  public double getRestartLbdAverageRatio() {
3041  return restartLbdAverageRatio_;
3042  }
3043 
3044  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3045  private boolean useBlockingRestart_;
3055  public boolean hasUseBlockingRestart() {
3056  return ((bitField1_ & 0x00000001) != 0);
3057  }
3067  public boolean getUseBlockingRestart() {
3068  return useBlockingRestart_;
3069  }
3070 
3071  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3072  private int blockingRestartWindowSize_;
3076  public boolean hasBlockingRestartWindowSize() {
3077  return ((bitField1_ & 0x00000002) != 0);
3078  }
3083  return blockingRestartWindowSize_;
3084  }
3085 
3086  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3087  private double blockingRestartMultiplier_;
3091  public boolean hasBlockingRestartMultiplier() {
3092  return ((bitField1_ & 0x00000004) != 0);
3093  }
3098  return blockingRestartMultiplier_;
3099  }
3100 
3102  private int numConflictsBeforeStrategyChanges_;
3113  return ((bitField1_ & 0x00000008) != 0);
3114  }
3125  return numConflictsBeforeStrategyChanges_;
3126  }
3127 
3128  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3129  private double strategyChangeIncreaseRatio_;
3139  return ((bitField1_ & 0x00000010) != 0);
3140  }
3150  return strategyChangeIncreaseRatio_;
3151  }
3152 
3153  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3154  private double maxTimeInSeconds_;
3164  public boolean hasMaxTimeInSeconds() {
3165  return ((bitField1_ & 0x00000020) != 0);
3166  }
3176  public double getMaxTimeInSeconds() {
3177  return maxTimeInSeconds_;
3178  }
3179 
3180  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3181  private double maxDeterministicTime_;
3193  public boolean hasMaxDeterministicTime() {
3194  return ((bitField1_ & 0x00000040) != 0);
3195  }
3207  public double getMaxDeterministicTime() {
3208  return maxDeterministicTime_;
3209  }
3210 
3211  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3212  private long maxNumberOfConflicts_;
3225  public boolean hasMaxNumberOfConflicts() {
3226  return ((bitField1_ & 0x00000080) != 0);
3227  }
3240  public long getMaxNumberOfConflicts() {
3241  return maxNumberOfConflicts_;
3242  }
3243 
3244  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3245  private long maxMemoryInMb_;
3256  public boolean hasMaxMemoryInMb() {
3257  return ((bitField1_ & 0x00000100) != 0);
3258  }
3269  public long getMaxMemoryInMb() {
3270  return maxMemoryInMb_;
3271  }
3272 
3273  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3274  private boolean treatBinaryClausesSeparately_;
3285  return ((bitField1_ & 0x00000200) != 0);
3286  }
3297  return treatBinaryClausesSeparately_;
3298  }
3299 
3300  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3301  private int randomSeed_;
3314  public boolean hasRandomSeed() {
3315  return ((bitField1_ & 0x00000400) != 0);
3316  }
3329  public int getRandomSeed() {
3330  return randomSeed_;
3331  }
3332 
3333  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3334  private boolean logSearchProgress_;
3342  public boolean hasLogSearchProgress() {
3343  return ((bitField1_ & 0x00000800) != 0);
3344  }
3352  public boolean getLogSearchProgress() {
3353  return logSearchProgress_;
3354  }
3355 
3356  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3357  private boolean usePbResolution_;
3368  public boolean hasUsePbResolution() {
3369  return ((bitField1_ & 0x00001000) != 0);
3370  }
3381  public boolean getUsePbResolution() {
3382  return usePbResolution_;
3383  }
3384 
3386  private boolean minimizeReductionDuringPbResolution_;
3398  return ((bitField1_ & 0x00002000) != 0);
3399  }
3411  return minimizeReductionDuringPbResolution_;
3412  }
3413 
3414  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3415  private boolean countAssumptionLevelsInLbd_;
3431  return ((bitField1_ & 0x00004000) != 0);
3432  }
3448  return countAssumptionLevelsInLbd_;
3449  }
3450 
3451  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3452  private int presolveBveThreshold_;
3462  public boolean hasPresolveBveThreshold() {
3463  return ((bitField1_ & 0x00008000) != 0);
3464  }
3475  return presolveBveThreshold_;
3476  }
3477 
3478  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3479  private int presolveBveClauseWeight_;
3488  public boolean hasPresolveBveClauseWeight() {
3489  return ((bitField1_ & 0x00010000) != 0);
3490  }
3500  return presolveBveClauseWeight_;
3501  }
3502 
3504  private double presolveProbingDeterministicTimeLimit_;
3514  return ((bitField1_ & 0x00020000) != 0);
3515  }
3525  return presolveProbingDeterministicTimeLimit_;
3526  }
3527 
3528  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3529  private boolean presolveBlockedClause_;
3538  public boolean hasPresolveBlockedClause() {
3539  return ((bitField1_ & 0x00040000) != 0);
3540  }
3549  public boolean getPresolveBlockedClause() {
3550  return presolveBlockedClause_;
3551  }
3552 
3553  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3554  private boolean presolveUseBva_;
3562  public boolean hasPresolveUseBva() {
3563  return ((bitField1_ & 0x00080000) != 0);
3564  }
3572  public boolean getPresolveUseBva() {
3573  return presolveUseBva_;
3574  }
3575 
3576  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3577  private int presolveBvaThreshold_;
3588  public boolean hasPresolveBvaThreshold() {
3589  return ((bitField1_ & 0x00100000) != 0);
3590  }
3602  return presolveBvaThreshold_;
3603  }
3604 
3605  public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
3606  private int maxPresolveIterations_;
3616  public boolean hasMaxPresolveIterations() {
3617  return ((bitField1_ & 0x00200000) != 0);
3618  }
3629  return maxPresolveIterations_;
3630  }
3631 
3632  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
3633  private boolean cpModelPresolve_;
3641  public boolean hasCpModelPresolve() {
3642  return ((bitField1_ & 0x00400000) != 0);
3643  }
3651  public boolean getCpModelPresolve() {
3652  return cpModelPresolve_;
3653  }
3654 
3655  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
3656  private int cpModelProbingLevel_;
3664  public boolean hasCpModelProbingLevel() {
3665  return ((bitField1_ & 0x00800000) != 0);
3666  }
3674  public int getCpModelProbingLevel() {
3675  return cpModelProbingLevel_;
3676  }
3677 
3678  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
3679  private boolean cpModelUseSatPresolve_;
3687  public boolean hasCpModelUseSatPresolve() {
3688  return ((bitField1_ & 0x01000000) != 0);
3689  }
3697  public boolean getCpModelUseSatPresolve() {
3698  return cpModelUseSatPresolve_;
3699  }
3700 
3701  public static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER = 140;
3702  private boolean expandElementConstraints_;
3711  public boolean hasExpandElementConstraints() {
3712  return ((bitField1_ & 0x02000000) != 0);
3713  }
3722  public boolean getExpandElementConstraints() {
3723  return expandElementConstraints_;
3724  }
3725 
3726  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3727  private boolean useOptimizationHints_;
3738  public boolean hasUseOptimizationHints() {
3739  return ((bitField1_ & 0x04000000) != 0);
3740  }
3751  public boolean getUseOptimizationHints() {
3752  return useOptimizationHints_;
3753  }
3754 
3755  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3756  private boolean minimizeCore_;
3764  public boolean hasMinimizeCore() {
3765  return ((bitField1_ & 0x08000000) != 0);
3766  }
3774  public boolean getMinimizeCore() {
3775  return minimizeCore_;
3776  }
3777 
3778  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3779  private boolean findMultipleCores_;
3788  public boolean hasFindMultipleCores() {
3789  return ((bitField1_ & 0x10000000) != 0);
3790  }
3799  public boolean getFindMultipleCores() {
3800  return findMultipleCores_;
3801  }
3802 
3803  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3804  private boolean coverOptimization_;
3813  public boolean hasCoverOptimization() {
3814  return ((bitField1_ & 0x20000000) != 0);
3815  }
3824  public boolean getCoverOptimization() {
3825  return coverOptimization_;
3826  }
3827 
3828  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3829  private int maxSatAssumptionOrder_;
3833  public boolean hasMaxSatAssumptionOrder() {
3834  return ((bitField1_ & 0x40000000) != 0);
3835  }
3840  @SuppressWarnings("deprecation")
3843  }
3844 
3846  private boolean maxSatReverseAssumptionOrder_;
3856  return ((bitField1_ & 0x80000000) != 0);
3857  }
3867  return maxSatReverseAssumptionOrder_;
3868  }
3869 
3870  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3871  private int maxSatStratification_;
3875  public boolean hasMaxSatStratification() {
3876  return ((bitField2_ & 0x00000001) != 0);
3877  }
3882  @SuppressWarnings("deprecation")
3885  }
3886 
3888  private boolean usePrecedencesInDisjunctiveConstraint_;
3904  return ((bitField2_ & 0x00000002) != 0);
3905  }
3921  return usePrecedencesInDisjunctiveConstraint_;
3922  }
3923 
3925  private boolean useOverloadCheckerInCumulativeConstraint_;
3939  return ((bitField2_ & 0x00000004) != 0);
3940  }
3954  return useOverloadCheckerInCumulativeConstraint_;
3955  }
3956 
3958  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3972  return ((bitField2_ & 0x00000008) != 0);
3973  }
3987  return useTimetableEdgeFindingInCumulativeConstraint_;
3988  }
3989 
3991  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
4007  return ((bitField2_ & 0x00000010) != 0);
4008  }
4024  return useDisjunctiveConstraintInCumulativeConstraint_;
4025  }
4026 
4027  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
4028  private int linearizationLevel_;
4039  public boolean hasLinearizationLevel() {
4040  return ((bitField2_ & 0x00000020) != 0);
4041  }
4052  public int getLinearizationLevel() {
4053  return linearizationLevel_;
4054  }
4055 
4056  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
4057  private int booleanEncodingLevel_;
4066  public boolean hasBooleanEncodingLevel() {
4067  return ((bitField2_ & 0x00000040) != 0);
4068  }
4078  return booleanEncodingLevel_;
4079  }
4080 
4081  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
4082  private int maxNumCuts_;
4093  public boolean hasMaxNumCuts() {
4094  return ((bitField2_ & 0x00000080) != 0);
4095  }
4106  public int getMaxNumCuts() {
4107  return maxNumCuts_;
4108  }
4109 
4110  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
4111  private boolean onlyAddCutsAtLevelZero_;
4120  public boolean hasOnlyAddCutsAtLevelZero() {
4121  return ((bitField2_ & 0x00000100) != 0);
4122  }
4131  public boolean getOnlyAddCutsAtLevelZero() {
4132  return onlyAddCutsAtLevelZero_;
4133  }
4134 
4135  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
4136  private boolean addKnapsackCuts_;
4146  public boolean hasAddKnapsackCuts() {
4147  return ((bitField2_ & 0x00000200) != 0);
4148  }
4158  public boolean getAddKnapsackCuts() {
4159  return addKnapsackCuts_;
4160  }
4161 
4162  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4163  private boolean addCgCuts_;
4172  public boolean hasAddCgCuts() {
4173  return ((bitField2_ & 0x00000400) != 0);
4174  }
4183  public boolean getAddCgCuts() {
4184  return addCgCuts_;
4185  }
4186 
4187  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4188  private boolean addMirCuts_;
4197  public boolean hasAddMirCuts() {
4198  return ((bitField2_ & 0x00000800) != 0);
4199  }
4208  public boolean getAddMirCuts() {
4209  return addMirCuts_;
4210  }
4211 
4212  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4213  private boolean useMirRounding_;
4223  public boolean hasUseMirRounding() {
4224  return ((bitField2_ & 0x00001000) != 0);
4225  }
4235  public boolean getUseMirRounding() {
4236  return useMirRounding_;
4237  }
4238 
4239  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4240  private int maxIntegerRoundingScaling_;
4252  public boolean hasMaxIntegerRoundingScaling() {
4253  return ((bitField2_ & 0x00002000) != 0);
4254  }
4267  return maxIntegerRoundingScaling_;
4268  }
4269 
4270  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4271  private boolean addLpConstraintsLazily_;
4282  public boolean hasAddLpConstraintsLazily() {
4283  return ((bitField2_ & 0x00004000) != 0);
4284  }
4295  public boolean getAddLpConstraintsLazily() {
4296  return addLpConstraintsLazily_;
4297  }
4298 
4300  private double minOrthogonalityForLpConstraints_;
4313  return ((bitField2_ & 0x00008000) != 0);
4314  }
4327  return minOrthogonalityForLpConstraints_;
4328  }
4329 
4330  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4331  private long maxInactiveCount_;
4340  public boolean hasMaxInactiveCount() {
4341  return ((bitField2_ & 0x00010000) != 0);
4342  }
4351  public long getMaxInactiveCount() {
4352  return maxInactiveCount_;
4353  }
4354 
4355  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4356  private long constraintRemovalBatchSize_;
4366  return ((bitField2_ & 0x00020000) != 0);
4367  }
4377  return constraintRemovalBatchSize_;
4378  }
4379 
4380  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4381  private int searchBranching_;
4385  public boolean hasSearchBranching() {
4386  return ((bitField2_ & 0x00040000) != 0);
4387  }
4392  @SuppressWarnings("deprecation")
4394  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4395  }
4396 
4397  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4398  private boolean exploitIntegerLpSolution_;
4409  public boolean hasExploitIntegerLpSolution() {
4410  return ((bitField2_ & 0x00080000) != 0);
4411  }
4422  public boolean getExploitIntegerLpSolution() {
4423  return exploitIntegerLpSolution_;
4424  }
4425 
4426  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4427  private boolean exploitAllLpSolution_;
4437  public boolean hasExploitAllLpSolution() {
4438  return ((bitField2_ & 0x00100000) != 0);
4439  }
4449  public boolean getExploitAllLpSolution() {
4450  return exploitAllLpSolution_;
4451  }
4452 
4453  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4454  private boolean exploitBestSolution_;
4462  public boolean hasExploitBestSolution() {
4463  return ((bitField2_ & 0x00200000) != 0);
4464  }
4472  public boolean getExploitBestSolution() {
4473  return exploitBestSolution_;
4474  }
4475 
4476  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4477  private boolean exploitObjective_;
4486  public boolean hasExploitObjective() {
4487  return ((bitField2_ & 0x00400000) != 0);
4488  }
4497  public boolean getExploitObjective() {
4498  return exploitObjective_;
4499  }
4500 
4501  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4502  private long pseudoCostReliabilityThreshold_;
4512  return ((bitField2_ & 0x00800000) != 0);
4513  }
4523  return pseudoCostReliabilityThreshold_;
4524  }
4525 
4526  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4527  private boolean optimizeWithCore_;
4538  public boolean hasOptimizeWithCore() {
4539  return ((bitField2_ & 0x01000000) != 0);
4540  }
4551  public boolean getOptimizeWithCore() {
4552  return optimizeWithCore_;
4553  }
4554 
4555  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4556  private int binarySearchNumConflicts_;
4567  public boolean hasBinarySearchNumConflicts() {
4568  return ((bitField2_ & 0x02000000) != 0);
4569  }
4581  return binarySearchNumConflicts_;
4582  }
4583 
4584  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4585  private boolean optimizeWithMaxHs_;
4598  public boolean hasOptimizeWithMaxHs() {
4599  return ((bitField2_ & 0x04000000) != 0);
4600  }
4613  public boolean getOptimizeWithMaxHs() {
4614  return optimizeWithMaxHs_;
4615  }
4616 
4617  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4618  private boolean enumerateAllSolutions_;
4631  public boolean hasEnumerateAllSolutions() {
4632  return ((bitField2_ & 0x08000000) != 0);
4633  }
4646  public boolean getEnumerateAllSolutions() {
4647  return enumerateAllSolutions_;
4648  }
4649 
4651  private boolean fillTightenedDomainsInResponse_;
4664  return ((bitField2_ & 0x10000000) != 0);
4665  }
4678  return fillTightenedDomainsInResponse_;
4679  }
4680 
4681  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4682  private boolean instantiateAllVariables_;
4691  public boolean hasInstantiateAllVariables() {
4692  return ((bitField2_ & 0x20000000) != 0);
4693  }
4702  public boolean getInstantiateAllVariables() {
4703  return instantiateAllVariables_;
4704  }
4705 
4707  private boolean autoDetectGreaterThanAtLeastOneOf_;
4719  return ((bitField2_ & 0x40000000) != 0);
4720  }
4732  return autoDetectGreaterThanAtLeastOneOf_;
4733  }
4734 
4735  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4736  private boolean stopAfterFirstSolution_;
4744  public boolean hasStopAfterFirstSolution() {
4745  return ((bitField2_ & 0x80000000) != 0);
4746  }
4754  public boolean getStopAfterFirstSolution() {
4755  return stopAfterFirstSolution_;
4756  }
4757 
4758  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4759  private int numSearchWorkers_;
4768  public boolean hasNumSearchWorkers() {
4769  return ((bitField3_ & 0x00000001) != 0);
4770  }
4779  public int getNumSearchWorkers() {
4780  return numSearchWorkers_;
4781  }
4782 
4783  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
4784  private boolean interleaveSearch_;
4795  public boolean hasInterleaveSearch() {
4796  return ((bitField3_ & 0x00000002) != 0);
4797  }
4808  public boolean getInterleaveSearch() {
4809  return interleaveSearch_;
4810  }
4811 
4813  private boolean reduceMemoryUsageInInterleaveMode_;
4822  return ((bitField3_ & 0x00000004) != 0);
4823  }
4832  return reduceMemoryUsageInInterleaveMode_;
4833  }
4834 
4835  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
4836  private boolean deterministicParallelSearch_;
4847  return ((bitField3_ & 0x00000008) != 0);
4848  }
4859  return deterministicParallelSearch_;
4860  }
4861 
4862  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4863  private boolean shareObjectiveBounds_;
4871  public boolean hasShareObjectiveBounds() {
4872  return ((bitField3_ & 0x00000010) != 0);
4873  }
4881  public boolean getShareObjectiveBounds() {
4882  return shareObjectiveBounds_;
4883  }
4884 
4885  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4886  private boolean shareLevelZeroBounds_;
4894  public boolean hasShareLevelZeroBounds() {
4895  return ((bitField3_ & 0x00000020) != 0);
4896  }
4904  public boolean getShareLevelZeroBounds() {
4905  return shareLevelZeroBounds_;
4906  }
4907 
4908  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
4909  private boolean useLnsOnly_;
4917  public boolean hasUseLnsOnly() {
4918  return ((bitField3_ & 0x00000040) != 0);
4919  }
4927  public boolean getUseLnsOnly() {
4928  return useLnsOnly_;
4929  }
4930 
4931  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4932  private boolean lnsFocusOnDecisionVariables_;
4937  return ((bitField3_ & 0x00000080) != 0);
4938  }
4943  return lnsFocusOnDecisionVariables_;
4944  }
4945 
4946  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4947  private boolean useRinsLns_;
4955  public boolean hasUseRinsLns() {
4956  return ((bitField3_ & 0x00000100) != 0);
4957  }
4965  public boolean getUseRinsLns() {
4966  return useRinsLns_;
4967  }
4968 
4969  public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
4970  private boolean diversifyLnsParams_;
4978  public boolean hasDiversifyLnsParams() {
4979  return ((bitField3_ & 0x00000200) != 0);
4980  }
4988  public boolean getDiversifyLnsParams() {
4989  return diversifyLnsParams_;
4990  }
4991 
4992  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4993  private boolean randomizeSearch_;
5001  public boolean hasRandomizeSearch() {
5002  return ((bitField3_ & 0x00000400) != 0);
5003  }
5011  public boolean getRandomizeSearch() {
5012  return randomizeSearch_;
5013  }
5014 
5015  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
5016  private long searchRandomizationTolerance_;
5031  return ((bitField3_ & 0x00000800) != 0);
5032  }
5047  return searchRandomizationTolerance_;
5048  }
5049 
5050  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
5051  private boolean useOptionalVariables_;
5061  public boolean hasUseOptionalVariables() {
5062  return ((bitField3_ & 0x00001000) != 0);
5063  }
5073  public boolean getUseOptionalVariables() {
5074  return useOptionalVariables_;
5075  }
5076 
5077  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
5078  private boolean useExactLpReason_;
5089  public boolean hasUseExactLpReason() {
5090  return ((bitField3_ & 0x00002000) != 0);
5091  }
5102  public boolean getUseExactLpReason() {
5103  return useExactLpReason_;
5104  }
5105 
5106  public static final int USE_BRANCHING_IN_LP_FIELD_NUMBER = 139;
5107  private boolean useBranchingInLp_;
5117  public boolean hasUseBranchingInLp() {
5118  return ((bitField3_ & 0x00004000) != 0);
5119  }
5129  public boolean getUseBranchingInLp() {
5130  return useBranchingInLp_;
5131  }
5132 
5133  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
5134  private boolean useCombinedNoOverlap_;
5144  public boolean hasUseCombinedNoOverlap() {
5145  return ((bitField3_ & 0x00008000) != 0);
5146  }
5156  public boolean getUseCombinedNoOverlap() {
5157  return useCombinedNoOverlap_;
5158  }
5159 
5160  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5161  private boolean catchSigintSignal_;
5171  public boolean hasCatchSigintSignal() {
5172  return ((bitField3_ & 0x00010000) != 0);
5173  }
5183  public boolean getCatchSigintSignal() {
5184  return catchSigintSignal_;
5185  }
5186 
5187  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5188  private double mipMaxBound_;
5198  public boolean hasMipMaxBound() {
5199  return ((bitField3_ & 0x00020000) != 0);
5200  }
5210  public double getMipMaxBound() {
5211  return mipMaxBound_;
5212  }
5213 
5214  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5215  private double mipVarScaling_;
5225  public boolean hasMipVarScaling() {
5226  return ((bitField3_ & 0x00040000) != 0);
5227  }
5237  public double getMipVarScaling() {
5238  return mipVarScaling_;
5239  }
5240 
5241  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5242  private double mipWantedPrecision_;
5258  public boolean hasMipWantedPrecision() {
5259  return ((bitField3_ & 0x00080000) != 0);
5260  }
5276  public double getMipWantedPrecision() {
5277  return mipWantedPrecision_;
5278  }
5279 
5280  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5281  private int mipMaxActivityExponent_;
5295  public boolean hasMipMaxActivityExponent() {
5296  return ((bitField3_ & 0x00100000) != 0);
5297  }
5312  return mipMaxActivityExponent_;
5313  }
5314 
5315  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5316  private double mipCheckPrecision_;
5327  public boolean hasMipCheckPrecision() {
5328  return ((bitField3_ & 0x00200000) != 0);
5329  }
5340  public double getMipCheckPrecision() {
5341  return mipCheckPrecision_;
5342  }
5343 
5344  private byte memoizedIsInitialized = -1;
5345  @java.lang.Override
5346  public final boolean isInitialized() {
5347  byte isInitialized = memoizedIsInitialized;
5348  if (isInitialized == 1) return true;
5349  if (isInitialized == 0) return false;
5350 
5351  memoizedIsInitialized = 1;
5352  return true;
5353  }
5354 
5355  @java.lang.Override
5356  public void writeTo(com.google.protobuf.CodedOutputStream output)
5357  throws java.io.IOException {
5358  if (((bitField0_ & 0x00000001) != 0)) {
5359  output.writeEnum(1, preferredVariableOrder_);
5360  }
5361  if (((bitField0_ & 0x00000002) != 0)) {
5362  output.writeEnum(2, initialPolarity_);
5363  }
5364  if (((bitField0_ & 0x00000100) != 0)) {
5365  output.writeEnum(4, minimizationAlgorithm_);
5366  }
5367  if (((bitField0_ & 0x00000800) != 0)) {
5368  output.writeInt32(11, clauseCleanupPeriod_);
5369  }
5370  if (((bitField0_ & 0x00001000) != 0)) {
5371  output.writeInt32(13, clauseCleanupTarget_);
5372  }
5373  if (((bitField0_ & 0x00100000) != 0)) {
5374  output.writeDouble(15, variableActivityDecay_);
5375  }
5376  if (((bitField0_ & 0x00200000) != 0)) {
5377  output.writeDouble(16, maxVariableActivityValue_);
5378  }
5379  if (((bitField0_ & 0x02000000) != 0)) {
5380  output.writeDouble(17, clauseActivityDecay_);
5381  }
5382  if (((bitField0_ & 0x04000000) != 0)) {
5383  output.writeDouble(18, maxClauseActivityValue_);
5384  }
5385  if (((bitField0_ & 0x00400000) != 0)) {
5386  output.writeDouble(22, glucoseMaxDecay_);
5387  }
5388  if (((bitField0_ & 0x00800000) != 0)) {
5389  output.writeDouble(23, glucoseDecayIncrement_);
5390  }
5391  if (((bitField0_ & 0x01000000) != 0)) {
5392  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5393  }
5394  if (((bitField0_ & 0x10000000) != 0)) {
5395  output.writeInt32(30, restartPeriod_);
5396  }
5397  if (((bitField1_ & 0x00000400) != 0)) {
5398  output.writeInt32(31, randomSeed_);
5399  }
5400  if (((bitField0_ & 0x00000010) != 0)) {
5401  output.writeDouble(32, randomBranchesRatio_);
5402  }
5403  if (((bitField1_ & 0x00000200) != 0)) {
5404  output.writeBool(33, treatBinaryClausesSeparately_);
5405  }
5406  if (((bitField0_ & 0x00000200) != 0)) {
5407  output.writeEnum(34, binaryMinimizationAlgorithm_);
5408  }
5409  if (((bitField1_ & 0x04000000) != 0)) {
5410  output.writeBool(35, useOptimizationHints_);
5411  }
5412  if (((bitField1_ & 0x00000020) != 0)) {
5413  output.writeDouble(36, maxTimeInSeconds_);
5414  }
5415  if (((bitField1_ & 0x00000080) != 0)) {
5416  output.writeInt64(37, maxNumberOfConflicts_);
5417  }
5418  if (((bitField1_ & 0x00000100) != 0)) {
5419  output.writeInt64(40, maxMemoryInMb_);
5420  }
5421  if (((bitField1_ & 0x00000800) != 0)) {
5422  output.writeBool(41, logSearchProgress_);
5423  }
5424  if (((bitField1_ & 0x00001000) != 0)) {
5425  output.writeBool(43, usePbResolution_);
5426  }
5427  if (((bitField0_ & 0x00000004) != 0)) {
5428  output.writeBool(44, usePhaseSaving_);
5429  }
5430  if (((bitField0_ & 0x00000008) != 0)) {
5431  output.writeDouble(45, randomPolarityRatio_);
5432  }
5433  if (((bitField0_ & 0x00010000) != 0)) {
5434  output.writeInt32(46, pbCleanupIncrement_);
5435  }
5436  if (((bitField0_ & 0x00020000) != 0)) {
5437  output.writeDouble(47, pbCleanupRatio_);
5438  }
5439  if (((bitField1_ & 0x00002000) != 0)) {
5440  output.writeBool(48, minimizeReductionDuringPbResolution_);
5441  }
5442  if (((bitField1_ & 0x00004000) != 0)) {
5443  output.writeBool(49, countAssumptionLevelsInLbd_);
5444  }
5445  if (((bitField1_ & 0x08000000) != 0)) {
5446  output.writeBool(50, minimizeCore_);
5447  }
5448  if (((bitField1_ & 0x40000000) != 0)) {
5449  output.writeEnum(51, maxSatAssumptionOrder_);
5450  }
5451  if (((bitField1_ & 0x80000000) != 0)) {
5452  output.writeBool(52, maxSatReverseAssumptionOrder_);
5453  }
5454  if (((bitField2_ & 0x00000001) != 0)) {
5455  output.writeEnum(53, maxSatStratification_);
5456  }
5457  if (((bitField1_ & 0x00008000) != 0)) {
5458  output.writeInt32(54, presolveBveThreshold_);
5459  }
5460  if (((bitField1_ & 0x00010000) != 0)) {
5461  output.writeInt32(55, presolveBveClauseWeight_);
5462  }
5463  if (((bitField0_ & 0x00000400) != 0)) {
5464  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5465  }
5466  if (((bitField1_ & 0x00020000) != 0)) {
5467  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5468  }
5469  if (((bitField0_ & 0x00002000) != 0)) {
5470  output.writeEnum(58, clauseCleanupProtection_);
5471  }
5472  if (((bitField0_ & 0x00004000) != 0)) {
5473  output.writeInt32(59, clauseCleanupLbdBound_);
5474  }
5475  if (((bitField0_ & 0x00008000) != 0)) {
5476  output.writeEnum(60, clauseCleanupOrdering_);
5477  }
5478  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5479  output.writeEnum(61, restartAlgorithms_.get(i));
5480  }
5481  if (((bitField0_ & 0x20000000) != 0)) {
5482  output.writeInt32(62, restartRunningWindowSize_);
5483  }
5484  if (((bitField0_ & 0x40000000) != 0)) {
5485  output.writeDouble(63, restartDlAverageRatio_);
5486  }
5487  if (((bitField1_ & 0x00000001) != 0)) {
5488  output.writeBool(64, useBlockingRestart_);
5489  }
5490  if (((bitField1_ & 0x00000002) != 0)) {
5491  output.writeInt32(65, blockingRestartWindowSize_);
5492  }
5493  if (((bitField1_ & 0x00000004) != 0)) {
5494  output.writeDouble(66, blockingRestartMultiplier_);
5495  }
5496  if (((bitField1_ & 0x00000040) != 0)) {
5497  output.writeDouble(67, maxDeterministicTime_);
5498  }
5499  if (((bitField1_ & 0x00000008) != 0)) {
5500  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5501  }
5502  if (((bitField1_ & 0x00000010) != 0)) {
5503  output.writeDouble(69, strategyChangeIncreaseRatio_);
5504  }
5505  if (((bitField0_ & 0x08000000) != 0)) {
5506  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5507  }
5508  if (((bitField0_ & 0x80000000) != 0)) {
5509  output.writeDouble(71, restartLbdAverageRatio_);
5510  }
5511  if (((bitField1_ & 0x00080000) != 0)) {
5512  output.writeBool(72, presolveUseBva_);
5513  }
5514  if (((bitField1_ & 0x00100000) != 0)) {
5515  output.writeInt32(73, presolveBvaThreshold_);
5516  }
5517  if (((bitField2_ & 0x00000002) != 0)) {
5518  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5519  }
5520  if (((bitField0_ & 0x00000020) != 0)) {
5521  output.writeBool(75, useErwaHeuristic_);
5522  }
5523  if (((bitField0_ & 0x00000040) != 0)) {
5524  output.writeDouble(76, initialVariablesActivity_);
5525  }
5526  if (((bitField0_ & 0x00000080) != 0)) {
5527  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5528  }
5529  if (((bitField2_ & 0x00000004) != 0)) {
5530  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5531  }
5532  if (((bitField2_ & 0x00000008) != 0)) {
5533  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5534  }
5535  if (((bitField2_ & 0x00000010) != 0)) {
5536  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5537  }
5538  if (((bitField2_ & 0x00040000) != 0)) {
5539  output.writeEnum(82, searchBranching_);
5540  }
5541  if (((bitField2_ & 0x01000000) != 0)) {
5542  output.writeBool(83, optimizeWithCore_);
5543  }
5544  if (((bitField1_ & 0x10000000) != 0)) {
5545  output.writeBool(84, findMultipleCores_);
5546  }
5547  if (((bitField2_ & 0x04000000) != 0)) {
5548  output.writeBool(85, optimizeWithMaxHs_);
5549  }
5550  if (((bitField1_ & 0x00400000) != 0)) {
5551  output.writeBool(86, cpModelPresolve_);
5552  }
5553  if (((bitField2_ & 0x08000000) != 0)) {
5554  output.writeBool(87, enumerateAllSolutions_);
5555  }
5556  if (((bitField1_ & 0x00040000) != 0)) {
5557  output.writeBool(88, presolveBlockedClause_);
5558  }
5559  if (((bitField1_ & 0x20000000) != 0)) {
5560  output.writeBool(89, coverOptimization_);
5561  }
5562  if (((bitField2_ & 0x00000020) != 0)) {
5563  output.writeInt32(90, linearizationLevel_);
5564  }
5565  if (((bitField2_ & 0x00000080) != 0)) {
5566  output.writeInt32(91, maxNumCuts_);
5567  }
5568  if (((bitField2_ & 0x00000100) != 0)) {
5569  output.writeBool(92, onlyAddCutsAtLevelZero_);
5570  }
5571  if (((bitField1_ & 0x01000000) != 0)) {
5572  output.writeBool(93, cpModelUseSatPresolve_);
5573  }
5574  if (((bitField2_ & 0x00080000) != 0)) {
5575  output.writeBool(94, exploitIntegerLpSolution_);
5576  }
5577  if (((bitField2_ & 0x40000000) != 0)) {
5578  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5579  }
5580  if (((bitField0_ & 0x00040000) != 0)) {
5581  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5582  }
5583  if (((bitField0_ & 0x00080000) != 0)) {
5584  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5585  }
5586  if (((bitField2_ & 0x80000000) != 0)) {
5587  output.writeBool(98, stopAfterFirstSolution_);
5588  }
5589  if (((bitField2_ & 0x02000000) != 0)) {
5590  output.writeInt32(99, binarySearchNumConflicts_);
5591  }
5592  if (((bitField3_ & 0x00000001) != 0)) {
5593  output.writeInt32(100, numSearchWorkers_);
5594  }
5595  if (((bitField3_ & 0x00000040) != 0)) {
5596  output.writeBool(101, useLnsOnly_);
5597  }
5598  if (((bitField3_ & 0x00000400) != 0)) {
5599  output.writeBool(103, randomizeSearch_);
5600  }
5601  if (((bitField3_ & 0x00000800) != 0)) {
5602  output.writeInt64(104, searchRandomizationTolerance_);
5603  }
5604  if (((bitField3_ & 0x00000080) != 0)) {
5605  output.writeBool(105, lnsFocusOnDecisionVariables_);
5606  }
5607  if (((bitField2_ & 0x20000000) != 0)) {
5608  output.writeBool(106, instantiateAllVariables_);
5609  }
5610  if (((bitField2_ & 0x00000040) != 0)) {
5611  output.writeInt32(107, booleanEncodingLevel_);
5612  }
5613  if (((bitField3_ & 0x00001000) != 0)) {
5614  output.writeBool(108, useOptionalVariables_);
5615  }
5616  if (((bitField3_ & 0x00002000) != 0)) {
5617  output.writeBool(109, useExactLpReason_);
5618  }
5619  if (((bitField1_ & 0x00800000) != 0)) {
5620  output.writeInt32(110, cpModelProbingLevel_);
5621  }
5622  if (((bitField2_ & 0x00000200) != 0)) {
5623  output.writeBool(111, addKnapsackCuts_);
5624  }
5625  if (((bitField2_ & 0x00004000) != 0)) {
5626  output.writeBool(112, addLpConstraintsLazily_);
5627  }
5628  if (((bitField3_ & 0x00000010) != 0)) {
5629  output.writeBool(113, shareObjectiveBounds_);
5630  }
5631  if (((bitField3_ & 0x00000020) != 0)) {
5632  output.writeBool(114, shareLevelZeroBounds_);
5633  }
5634  if (((bitField2_ & 0x00008000) != 0)) {
5635  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5636  }
5637  if (((bitField2_ & 0x00100000) != 0)) {
5638  output.writeBool(116, exploitAllLpSolution_);
5639  }
5640  if (((bitField2_ & 0x00000400) != 0)) {
5641  output.writeBool(117, addCgCuts_);
5642  }
5643  if (((bitField2_ & 0x00001000) != 0)) {
5644  output.writeBool(118, useMirRounding_);
5645  }
5646  if (((bitField2_ & 0x00002000) != 0)) {
5647  output.writeInt32(119, maxIntegerRoundingScaling_);
5648  }
5649  if (((bitField2_ & 0x00000800) != 0)) {
5650  output.writeBool(120, addMirCuts_);
5651  }
5652  if (((bitField2_ & 0x00010000) != 0)) {
5653  output.writeInt64(121, maxInactiveCount_);
5654  }
5655  if (((bitField2_ & 0x00020000) != 0)) {
5656  output.writeInt64(122, constraintRemovalBatchSize_);
5657  }
5658  if (((bitField2_ & 0x00800000) != 0)) {
5659  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5660  }
5661  if (((bitField3_ & 0x00020000) != 0)) {
5662  output.writeDouble(124, mipMaxBound_);
5663  }
5664  if (((bitField3_ & 0x00040000) != 0)) {
5665  output.writeDouble(125, mipVarScaling_);
5666  }
5667  if (((bitField3_ & 0x00080000) != 0)) {
5668  output.writeDouble(126, mipWantedPrecision_);
5669  }
5670  if (((bitField3_ & 0x00100000) != 0)) {
5671  output.writeInt32(127, mipMaxActivityExponent_);
5672  }
5673  if (((bitField3_ & 0x00200000) != 0)) {
5674  output.writeDouble(128, mipCheckPrecision_);
5675  }
5676  if (((bitField3_ & 0x00000100) != 0)) {
5677  output.writeBool(129, useRinsLns_);
5678  }
5679  if (((bitField2_ & 0x00200000) != 0)) {
5680  output.writeBool(130, exploitBestSolution_);
5681  }
5682  if (((bitField2_ & 0x00400000) != 0)) {
5683  output.writeBool(131, exploitObjective_);
5684  }
5685  if (((bitField2_ & 0x10000000) != 0)) {
5686  output.writeBool(132, fillTightenedDomainsInResponse_);
5687  }
5688  if (((bitField3_ & 0x00008000) != 0)) {
5689  output.writeBool(133, useCombinedNoOverlap_);
5690  }
5691  if (((bitField3_ & 0x00000008) != 0)) {
5692  output.writeBool(134, deterministicParallelSearch_);
5693  }
5694  if (((bitField3_ & 0x00010000) != 0)) {
5695  output.writeBool(135, catchSigintSignal_);
5696  }
5697  if (((bitField3_ & 0x00000002) != 0)) {
5698  output.writeBool(136, interleaveSearch_);
5699  }
5700  if (((bitField3_ & 0x00000200) != 0)) {
5701  output.writeBool(137, diversifyLnsParams_);
5702  }
5703  if (((bitField1_ & 0x00200000) != 0)) {
5704  output.writeInt32(138, maxPresolveIterations_);
5705  }
5706  if (((bitField3_ & 0x00004000) != 0)) {
5707  output.writeBool(139, useBranchingInLp_);
5708  }
5709  if (((bitField1_ & 0x02000000) != 0)) {
5710  output.writeBool(140, expandElementConstraints_);
5711  }
5712  if (((bitField3_ & 0x00000004) != 0)) {
5713  output.writeBool(141, reduceMemoryUsageInInterleaveMode_);
5714  }
5715  unknownFields.writeTo(output);
5716  }
5717 
5718  @java.lang.Override
5719  public int getSerializedSize() {
5720  int size = memoizedSize;
5721  if (size != -1) return size;
5722 
5723  size = 0;
5724  if (((bitField0_ & 0x00000001) != 0)) {
5725  size += com.google.protobuf.CodedOutputStream
5726  .computeEnumSize(1, preferredVariableOrder_);
5727  }
5728  if (((bitField0_ & 0x00000002) != 0)) {
5729  size += com.google.protobuf.CodedOutputStream
5730  .computeEnumSize(2, initialPolarity_);
5731  }
5732  if (((bitField0_ & 0x00000100) != 0)) {
5733  size += com.google.protobuf.CodedOutputStream
5734  .computeEnumSize(4, minimizationAlgorithm_);
5735  }
5736  if (((bitField0_ & 0x00000800) != 0)) {
5737  size += com.google.protobuf.CodedOutputStream
5738  .computeInt32Size(11, clauseCleanupPeriod_);
5739  }
5740  if (((bitField0_ & 0x00001000) != 0)) {
5741  size += com.google.protobuf.CodedOutputStream
5742  .computeInt32Size(13, clauseCleanupTarget_);
5743  }
5744  if (((bitField0_ & 0x00100000) != 0)) {
5745  size += com.google.protobuf.CodedOutputStream
5746  .computeDoubleSize(15, variableActivityDecay_);
5747  }
5748  if (((bitField0_ & 0x00200000) != 0)) {
5749  size += com.google.protobuf.CodedOutputStream
5750  .computeDoubleSize(16, maxVariableActivityValue_);
5751  }
5752  if (((bitField0_ & 0x02000000) != 0)) {
5753  size += com.google.protobuf.CodedOutputStream
5754  .computeDoubleSize(17, clauseActivityDecay_);
5755  }
5756  if (((bitField0_ & 0x04000000) != 0)) {
5757  size += com.google.protobuf.CodedOutputStream
5758  .computeDoubleSize(18, maxClauseActivityValue_);
5759  }
5760  if (((bitField0_ & 0x00400000) != 0)) {
5761  size += com.google.protobuf.CodedOutputStream
5762  .computeDoubleSize(22, glucoseMaxDecay_);
5763  }
5764  if (((bitField0_ & 0x00800000) != 0)) {
5765  size += com.google.protobuf.CodedOutputStream
5766  .computeDoubleSize(23, glucoseDecayIncrement_);
5767  }
5768  if (((bitField0_ & 0x01000000) != 0)) {
5769  size += com.google.protobuf.CodedOutputStream
5770  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5771  }
5772  if (((bitField0_ & 0x10000000) != 0)) {
5773  size += com.google.protobuf.CodedOutputStream
5774  .computeInt32Size(30, restartPeriod_);
5775  }
5776  if (((bitField1_ & 0x00000400) != 0)) {
5777  size += com.google.protobuf.CodedOutputStream
5778  .computeInt32Size(31, randomSeed_);
5779  }
5780  if (((bitField0_ & 0x00000010) != 0)) {
5781  size += com.google.protobuf.CodedOutputStream
5782  .computeDoubleSize(32, randomBranchesRatio_);
5783  }
5784  if (((bitField1_ & 0x00000200) != 0)) {
5785  size += com.google.protobuf.CodedOutputStream
5786  .computeBoolSize(33, treatBinaryClausesSeparately_);
5787  }
5788  if (((bitField0_ & 0x00000200) != 0)) {
5789  size += com.google.protobuf.CodedOutputStream
5790  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5791  }
5792  if (((bitField1_ & 0x04000000) != 0)) {
5793  size += com.google.protobuf.CodedOutputStream
5794  .computeBoolSize(35, useOptimizationHints_);
5795  }
5796  if (((bitField1_ & 0x00000020) != 0)) {
5797  size += com.google.protobuf.CodedOutputStream
5798  .computeDoubleSize(36, maxTimeInSeconds_);
5799  }
5800  if (((bitField1_ & 0x00000080) != 0)) {
5801  size += com.google.protobuf.CodedOutputStream
5802  .computeInt64Size(37, maxNumberOfConflicts_);
5803  }
5804  if (((bitField1_ & 0x00000100) != 0)) {
5805  size += com.google.protobuf.CodedOutputStream
5806  .computeInt64Size(40, maxMemoryInMb_);
5807  }
5808  if (((bitField1_ & 0x00000800) != 0)) {
5809  size += com.google.protobuf.CodedOutputStream
5810  .computeBoolSize(41, logSearchProgress_);
5811  }
5812  if (((bitField1_ & 0x00001000) != 0)) {
5813  size += com.google.protobuf.CodedOutputStream
5814  .computeBoolSize(43, usePbResolution_);
5815  }
5816  if (((bitField0_ & 0x00000004) != 0)) {
5817  size += com.google.protobuf.CodedOutputStream
5818  .computeBoolSize(44, usePhaseSaving_);
5819  }
5820  if (((bitField0_ & 0x00000008) != 0)) {
5821  size += com.google.protobuf.CodedOutputStream
5822  .computeDoubleSize(45, randomPolarityRatio_);
5823  }
5824  if (((bitField0_ & 0x00010000) != 0)) {
5825  size += com.google.protobuf.CodedOutputStream
5826  .computeInt32Size(46, pbCleanupIncrement_);
5827  }
5828  if (((bitField0_ & 0x00020000) != 0)) {
5829  size += com.google.protobuf.CodedOutputStream
5830  .computeDoubleSize(47, pbCleanupRatio_);
5831  }
5832  if (((bitField1_ & 0x00002000) != 0)) {
5833  size += com.google.protobuf.CodedOutputStream
5834  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5835  }
5836  if (((bitField1_ & 0x00004000) != 0)) {
5837  size += com.google.protobuf.CodedOutputStream
5838  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5839  }
5840  if (((bitField1_ & 0x08000000) != 0)) {
5841  size += com.google.protobuf.CodedOutputStream
5842  .computeBoolSize(50, minimizeCore_);
5843  }
5844  if (((bitField1_ & 0x40000000) != 0)) {
5845  size += com.google.protobuf.CodedOutputStream
5846  .computeEnumSize(51, maxSatAssumptionOrder_);
5847  }
5848  if (((bitField1_ & 0x80000000) != 0)) {
5849  size += com.google.protobuf.CodedOutputStream
5850  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5851  }
5852  if (((bitField2_ & 0x00000001) != 0)) {
5853  size += com.google.protobuf.CodedOutputStream
5854  .computeEnumSize(53, maxSatStratification_);
5855  }
5856  if (((bitField1_ & 0x00008000) != 0)) {
5857  size += com.google.protobuf.CodedOutputStream
5858  .computeInt32Size(54, presolveBveThreshold_);
5859  }
5860  if (((bitField1_ & 0x00010000) != 0)) {
5861  size += com.google.protobuf.CodedOutputStream
5862  .computeInt32Size(55, presolveBveClauseWeight_);
5863  }
5864  if (((bitField0_ & 0x00000400) != 0)) {
5865  size += com.google.protobuf.CodedOutputStream
5866  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5867  }
5868  if (((bitField1_ & 0x00020000) != 0)) {
5869  size += com.google.protobuf.CodedOutputStream
5870  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5871  }
5872  if (((bitField0_ & 0x00002000) != 0)) {
5873  size += com.google.protobuf.CodedOutputStream
5874  .computeEnumSize(58, clauseCleanupProtection_);
5875  }
5876  if (((bitField0_ & 0x00004000) != 0)) {
5877  size += com.google.protobuf.CodedOutputStream
5878  .computeInt32Size(59, clauseCleanupLbdBound_);
5879  }
5880  if (((bitField0_ & 0x00008000) != 0)) {
5881  size += com.google.protobuf.CodedOutputStream
5882  .computeEnumSize(60, clauseCleanupOrdering_);
5883  }
5884  {
5885  int dataSize = 0;
5886  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5887  dataSize += com.google.protobuf.CodedOutputStream
5888  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5889  }
5890  size += dataSize;
5891  size += 2 * restartAlgorithms_.size();
5892  }
5893  if (((bitField0_ & 0x20000000) != 0)) {
5894  size += com.google.protobuf.CodedOutputStream
5895  .computeInt32Size(62, restartRunningWindowSize_);
5896  }
5897  if (((bitField0_ & 0x40000000) != 0)) {
5898  size += com.google.protobuf.CodedOutputStream
5899  .computeDoubleSize(63, restartDlAverageRatio_);
5900  }
5901  if (((bitField1_ & 0x00000001) != 0)) {
5902  size += com.google.protobuf.CodedOutputStream
5903  .computeBoolSize(64, useBlockingRestart_);
5904  }
5905  if (((bitField1_ & 0x00000002) != 0)) {
5906  size += com.google.protobuf.CodedOutputStream
5907  .computeInt32Size(65, blockingRestartWindowSize_);
5908  }
5909  if (((bitField1_ & 0x00000004) != 0)) {
5910  size += com.google.protobuf.CodedOutputStream
5911  .computeDoubleSize(66, blockingRestartMultiplier_);
5912  }
5913  if (((bitField1_ & 0x00000040) != 0)) {
5914  size += com.google.protobuf.CodedOutputStream
5915  .computeDoubleSize(67, maxDeterministicTime_);
5916  }
5917  if (((bitField1_ & 0x00000008) != 0)) {
5918  size += com.google.protobuf.CodedOutputStream
5919  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5920  }
5921  if (((bitField1_ & 0x00000010) != 0)) {
5922  size += com.google.protobuf.CodedOutputStream
5923  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5924  }
5925  if (((bitField0_ & 0x08000000) != 0)) {
5926  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5927  }
5928  if (((bitField0_ & 0x80000000) != 0)) {
5929  size += com.google.protobuf.CodedOutputStream
5930  .computeDoubleSize(71, restartLbdAverageRatio_);
5931  }
5932  if (((bitField1_ & 0x00080000) != 0)) {
5933  size += com.google.protobuf.CodedOutputStream
5934  .computeBoolSize(72, presolveUseBva_);
5935  }
5936  if (((bitField1_ & 0x00100000) != 0)) {
5937  size += com.google.protobuf.CodedOutputStream
5938  .computeInt32Size(73, presolveBvaThreshold_);
5939  }
5940  if (((bitField2_ & 0x00000002) != 0)) {
5941  size += com.google.protobuf.CodedOutputStream
5942  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5943  }
5944  if (((bitField0_ & 0x00000020) != 0)) {
5945  size += com.google.protobuf.CodedOutputStream
5946  .computeBoolSize(75, useErwaHeuristic_);
5947  }
5948  if (((bitField0_ & 0x00000040) != 0)) {
5949  size += com.google.protobuf.CodedOutputStream
5950  .computeDoubleSize(76, initialVariablesActivity_);
5951  }
5952  if (((bitField0_ & 0x00000080) != 0)) {
5953  size += com.google.protobuf.CodedOutputStream
5954  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5955  }
5956  if (((bitField2_ & 0x00000004) != 0)) {
5957  size += com.google.protobuf.CodedOutputStream
5958  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5959  }
5960  if (((bitField2_ & 0x00000008) != 0)) {
5961  size += com.google.protobuf.CodedOutputStream
5962  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5963  }
5964  if (((bitField2_ & 0x00000010) != 0)) {
5965  size += com.google.protobuf.CodedOutputStream
5966  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5967  }
5968  if (((bitField2_ & 0x00040000) != 0)) {
5969  size += com.google.protobuf.CodedOutputStream
5970  .computeEnumSize(82, searchBranching_);
5971  }
5972  if (((bitField2_ & 0x01000000) != 0)) {
5973  size += com.google.protobuf.CodedOutputStream
5974  .computeBoolSize(83, optimizeWithCore_);
5975  }
5976  if (((bitField1_ & 0x10000000) != 0)) {
5977  size += com.google.protobuf.CodedOutputStream
5978  .computeBoolSize(84, findMultipleCores_);
5979  }
5980  if (((bitField2_ & 0x04000000) != 0)) {
5981  size += com.google.protobuf.CodedOutputStream
5982  .computeBoolSize(85, optimizeWithMaxHs_);
5983  }
5984  if (((bitField1_ & 0x00400000) != 0)) {
5985  size += com.google.protobuf.CodedOutputStream
5986  .computeBoolSize(86, cpModelPresolve_);
5987  }
5988  if (((bitField2_ & 0x08000000) != 0)) {
5989  size += com.google.protobuf.CodedOutputStream
5990  .computeBoolSize(87, enumerateAllSolutions_);
5991  }
5992  if (((bitField1_ & 0x00040000) != 0)) {
5993  size += com.google.protobuf.CodedOutputStream
5994  .computeBoolSize(88, presolveBlockedClause_);
5995  }
5996  if (((bitField1_ & 0x20000000) != 0)) {
5997  size += com.google.protobuf.CodedOutputStream
5998  .computeBoolSize(89, coverOptimization_);
5999  }
6000  if (((bitField2_ & 0x00000020) != 0)) {
6001  size += com.google.protobuf.CodedOutputStream
6002  .computeInt32Size(90, linearizationLevel_);
6003  }
6004  if (((bitField2_ & 0x00000080) != 0)) {
6005  size += com.google.protobuf.CodedOutputStream
6006  .computeInt32Size(91, maxNumCuts_);
6007  }
6008  if (((bitField2_ & 0x00000100) != 0)) {
6009  size += com.google.protobuf.CodedOutputStream
6010  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
6011  }
6012  if (((bitField1_ & 0x01000000) != 0)) {
6013  size += com.google.protobuf.CodedOutputStream
6014  .computeBoolSize(93, cpModelUseSatPresolve_);
6015  }
6016  if (((bitField2_ & 0x00080000) != 0)) {
6017  size += com.google.protobuf.CodedOutputStream
6018  .computeBoolSize(94, exploitIntegerLpSolution_);
6019  }
6020  if (((bitField2_ & 0x40000000) != 0)) {
6021  size += com.google.protobuf.CodedOutputStream
6022  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
6023  }
6024  if (((bitField0_ & 0x00040000) != 0)) {
6025  size += com.google.protobuf.CodedOutputStream
6026  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
6027  }
6028  if (((bitField0_ & 0x00080000) != 0)) {
6029  size += com.google.protobuf.CodedOutputStream
6030  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
6031  }
6032  if (((bitField2_ & 0x80000000) != 0)) {
6033  size += com.google.protobuf.CodedOutputStream
6034  .computeBoolSize(98, stopAfterFirstSolution_);
6035  }
6036  if (((bitField2_ & 0x02000000) != 0)) {
6037  size += com.google.protobuf.CodedOutputStream
6038  .computeInt32Size(99, binarySearchNumConflicts_);
6039  }
6040  if (((bitField3_ & 0x00000001) != 0)) {
6041  size += com.google.protobuf.CodedOutputStream
6042  .computeInt32Size(100, numSearchWorkers_);
6043  }
6044  if (((bitField3_ & 0x00000040) != 0)) {
6045  size += com.google.protobuf.CodedOutputStream
6046  .computeBoolSize(101, useLnsOnly_);
6047  }
6048  if (((bitField3_ & 0x00000400) != 0)) {
6049  size += com.google.protobuf.CodedOutputStream
6050  .computeBoolSize(103, randomizeSearch_);
6051  }
6052  if (((bitField3_ & 0x00000800) != 0)) {
6053  size += com.google.protobuf.CodedOutputStream
6054  .computeInt64Size(104, searchRandomizationTolerance_);
6055  }
6056  if (((bitField3_ & 0x00000080) != 0)) {
6057  size += com.google.protobuf.CodedOutputStream
6058  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
6059  }
6060  if (((bitField2_ & 0x20000000) != 0)) {
6061  size += com.google.protobuf.CodedOutputStream
6062  .computeBoolSize(106, instantiateAllVariables_);
6063  }
6064  if (((bitField2_ & 0x00000040) != 0)) {
6065  size += com.google.protobuf.CodedOutputStream
6066  .computeInt32Size(107, booleanEncodingLevel_);
6067  }
6068  if (((bitField3_ & 0x00001000) != 0)) {
6069  size += com.google.protobuf.CodedOutputStream
6070  .computeBoolSize(108, useOptionalVariables_);
6071  }
6072  if (((bitField3_ & 0x00002000) != 0)) {
6073  size += com.google.protobuf.CodedOutputStream
6074  .computeBoolSize(109, useExactLpReason_);
6075  }
6076  if (((bitField1_ & 0x00800000) != 0)) {
6077  size += com.google.protobuf.CodedOutputStream
6078  .computeInt32Size(110, cpModelProbingLevel_);
6079  }
6080  if (((bitField2_ & 0x00000200) != 0)) {
6081  size += com.google.protobuf.CodedOutputStream
6082  .computeBoolSize(111, addKnapsackCuts_);
6083  }
6084  if (((bitField2_ & 0x00004000) != 0)) {
6085  size += com.google.protobuf.CodedOutputStream
6086  .computeBoolSize(112, addLpConstraintsLazily_);
6087  }
6088  if (((bitField3_ & 0x00000010) != 0)) {
6089  size += com.google.protobuf.CodedOutputStream
6090  .computeBoolSize(113, shareObjectiveBounds_);
6091  }
6092  if (((bitField3_ & 0x00000020) != 0)) {
6093  size += com.google.protobuf.CodedOutputStream
6094  .computeBoolSize(114, shareLevelZeroBounds_);
6095  }
6096  if (((bitField2_ & 0x00008000) != 0)) {
6097  size += com.google.protobuf.CodedOutputStream
6098  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
6099  }
6100  if (((bitField2_ & 0x00100000) != 0)) {
6101  size += com.google.protobuf.CodedOutputStream
6102  .computeBoolSize(116, exploitAllLpSolution_);
6103  }
6104  if (((bitField2_ & 0x00000400) != 0)) {
6105  size += com.google.protobuf.CodedOutputStream
6106  .computeBoolSize(117, addCgCuts_);
6107  }
6108  if (((bitField2_ & 0x00001000) != 0)) {
6109  size += com.google.protobuf.CodedOutputStream
6110  .computeBoolSize(118, useMirRounding_);
6111  }
6112  if (((bitField2_ & 0x00002000) != 0)) {
6113  size += com.google.protobuf.CodedOutputStream
6114  .computeInt32Size(119, maxIntegerRoundingScaling_);
6115  }
6116  if (((bitField2_ & 0x00000800) != 0)) {
6117  size += com.google.protobuf.CodedOutputStream
6118  .computeBoolSize(120, addMirCuts_);
6119  }
6120  if (((bitField2_ & 0x00010000) != 0)) {
6121  size += com.google.protobuf.CodedOutputStream
6122  .computeInt64Size(121, maxInactiveCount_);
6123  }
6124  if (((bitField2_ & 0x00020000) != 0)) {
6125  size += com.google.protobuf.CodedOutputStream
6126  .computeInt64Size(122, constraintRemovalBatchSize_);
6127  }
6128  if (((bitField2_ & 0x00800000) != 0)) {
6129  size += com.google.protobuf.CodedOutputStream
6130  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
6131  }
6132  if (((bitField3_ & 0x00020000) != 0)) {
6133  size += com.google.protobuf.CodedOutputStream
6134  .computeDoubleSize(124, mipMaxBound_);
6135  }
6136  if (((bitField3_ & 0x00040000) != 0)) {
6137  size += com.google.protobuf.CodedOutputStream
6138  .computeDoubleSize(125, mipVarScaling_);
6139  }
6140  if (((bitField3_ & 0x00080000) != 0)) {
6141  size += com.google.protobuf.CodedOutputStream
6142  .computeDoubleSize(126, mipWantedPrecision_);
6143  }
6144  if (((bitField3_ & 0x00100000) != 0)) {
6145  size += com.google.protobuf.CodedOutputStream
6146  .computeInt32Size(127, mipMaxActivityExponent_);
6147  }
6148  if (((bitField3_ & 0x00200000) != 0)) {
6149  size += com.google.protobuf.CodedOutputStream
6150  .computeDoubleSize(128, mipCheckPrecision_);
6151  }
6152  if (((bitField3_ & 0x00000100) != 0)) {
6153  size += com.google.protobuf.CodedOutputStream
6154  .computeBoolSize(129, useRinsLns_);
6155  }
6156  if (((bitField2_ & 0x00200000) != 0)) {
6157  size += com.google.protobuf.CodedOutputStream
6158  .computeBoolSize(130, exploitBestSolution_);
6159  }
6160  if (((bitField2_ & 0x00400000) != 0)) {
6161  size += com.google.protobuf.CodedOutputStream
6162  .computeBoolSize(131, exploitObjective_);
6163  }
6164  if (((bitField2_ & 0x10000000) != 0)) {
6165  size += com.google.protobuf.CodedOutputStream
6166  .computeBoolSize(132, fillTightenedDomainsInResponse_);
6167  }
6168  if (((bitField3_ & 0x00008000) != 0)) {
6169  size += com.google.protobuf.CodedOutputStream
6170  .computeBoolSize(133, useCombinedNoOverlap_);
6171  }
6172  if (((bitField3_ & 0x00000008) != 0)) {
6173  size += com.google.protobuf.CodedOutputStream
6174  .computeBoolSize(134, deterministicParallelSearch_);
6175  }
6176  if (((bitField3_ & 0x00010000) != 0)) {
6177  size += com.google.protobuf.CodedOutputStream
6178  .computeBoolSize(135, catchSigintSignal_);
6179  }
6180  if (((bitField3_ & 0x00000002) != 0)) {
6181  size += com.google.protobuf.CodedOutputStream
6182  .computeBoolSize(136, interleaveSearch_);
6183  }
6184  if (((bitField3_ & 0x00000200) != 0)) {
6185  size += com.google.protobuf.CodedOutputStream
6186  .computeBoolSize(137, diversifyLnsParams_);
6187  }
6188  if (((bitField1_ & 0x00200000) != 0)) {
6189  size += com.google.protobuf.CodedOutputStream
6190  .computeInt32Size(138, maxPresolveIterations_);
6191  }
6192  if (((bitField3_ & 0x00004000) != 0)) {
6193  size += com.google.protobuf.CodedOutputStream
6194  .computeBoolSize(139, useBranchingInLp_);
6195  }
6196  if (((bitField1_ & 0x02000000) != 0)) {
6197  size += com.google.protobuf.CodedOutputStream
6198  .computeBoolSize(140, expandElementConstraints_);
6199  }
6200  if (((bitField3_ & 0x00000004) != 0)) {
6201  size += com.google.protobuf.CodedOutputStream
6202  .computeBoolSize(141, reduceMemoryUsageInInterleaveMode_);
6203  }
6204  size += unknownFields.getSerializedSize();
6205  memoizedSize = size;
6206  return size;
6207  }
6208 
6209  @java.lang.Override
6210  public boolean equals(final java.lang.Object obj) {
6211  if (obj == this) {
6212  return true;
6213  }
6214  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6215  return super.equals(obj);
6216  }
6218 
6219  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6220  if (hasPreferredVariableOrder()) {
6221  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6222  }
6223  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6224  if (hasInitialPolarity()) {
6225  if (initialPolarity_ != other.initialPolarity_) return false;
6226  }
6227  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6228  if (hasUsePhaseSaving()) {
6229  if (getUsePhaseSaving()
6230  != other.getUsePhaseSaving()) return false;
6231  }
6232  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6233  if (hasRandomPolarityRatio()) {
6234  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6235  != java.lang.Double.doubleToLongBits(
6236  other.getRandomPolarityRatio())) return false;
6237  }
6238  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6239  if (hasRandomBranchesRatio()) {
6240  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6241  != java.lang.Double.doubleToLongBits(
6242  other.getRandomBranchesRatio())) return false;
6243  }
6244  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6245  if (hasUseErwaHeuristic()) {
6246  if (getUseErwaHeuristic()
6247  != other.getUseErwaHeuristic()) return false;
6248  }
6249  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6251  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6252  != java.lang.Double.doubleToLongBits(
6253  other.getInitialVariablesActivity())) return false;
6254  }
6255  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6258  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6259  }
6260  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6261  if (hasMinimizationAlgorithm()) {
6262  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6263  }
6264  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6266  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6267  }
6268  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6271  != other.getSubsumptionDuringConflictAnalysis()) return false;
6272  }
6273  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6274  if (hasClauseCleanupPeriod()) {
6276  != other.getClauseCleanupPeriod()) return false;
6277  }
6278  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6279  if (hasClauseCleanupTarget()) {
6281  != other.getClauseCleanupTarget()) return false;
6282  }
6283  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6285  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6286  }
6287  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6288  if (hasClauseCleanupLbdBound()) {
6290  != other.getClauseCleanupLbdBound()) return false;
6291  }
6292  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6293  if (hasClauseCleanupOrdering()) {
6294  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6295  }
6296  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6297  if (hasPbCleanupIncrement()) {
6298  if (getPbCleanupIncrement()
6299  != other.getPbCleanupIncrement()) return false;
6300  }
6301  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6302  if (hasPbCleanupRatio()) {
6303  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6304  != java.lang.Double.doubleToLongBits(
6305  other.getPbCleanupRatio())) return false;
6306  }
6307  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6310  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6311  }
6312  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6315  != other.getMinimizeWithPropagationNumDecisions()) return false;
6316  }
6317  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6318  if (hasVariableActivityDecay()) {
6319  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6320  != java.lang.Double.doubleToLongBits(
6321  other.getVariableActivityDecay())) return false;
6322  }
6323  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6325  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6326  != java.lang.Double.doubleToLongBits(
6327  other.getMaxVariableActivityValue())) return false;
6328  }
6329  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6330  if (hasGlucoseMaxDecay()) {
6331  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6332  != java.lang.Double.doubleToLongBits(
6333  other.getGlucoseMaxDecay())) return false;
6334  }
6335  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6336  if (hasGlucoseDecayIncrement()) {
6337  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6338  != java.lang.Double.doubleToLongBits(
6339  other.getGlucoseDecayIncrement())) return false;
6340  }
6341  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6344  != other.getGlucoseDecayIncrementPeriod()) return false;
6345  }
6346  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6347  if (hasClauseActivityDecay()) {
6348  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6349  != java.lang.Double.doubleToLongBits(
6350  other.getClauseActivityDecay())) return false;
6351  }
6352  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6353  if (hasMaxClauseActivityValue()) {
6354  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6355  != java.lang.Double.doubleToLongBits(
6356  other.getMaxClauseActivityValue())) return false;
6357  }
6358  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6359  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6362  .equals(other.getDefaultRestartAlgorithms())) return false;
6363  }
6364  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6365  if (hasRestartPeriod()) {
6366  if (getRestartPeriod()
6367  != other.getRestartPeriod()) return false;
6368  }
6369  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6372  != other.getRestartRunningWindowSize()) return false;
6373  }
6374  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6375  if (hasRestartDlAverageRatio()) {
6376  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6377  != java.lang.Double.doubleToLongBits(
6378  other.getRestartDlAverageRatio())) return false;
6379  }
6380  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6381  if (hasRestartLbdAverageRatio()) {
6382  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6383  != java.lang.Double.doubleToLongBits(
6384  other.getRestartLbdAverageRatio())) return false;
6385  }
6386  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6387  if (hasUseBlockingRestart()) {
6388  if (getUseBlockingRestart()
6389  != other.getUseBlockingRestart()) return false;
6390  }
6391  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6394  != other.getBlockingRestartWindowSize()) return false;
6395  }
6396  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6398  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6399  != java.lang.Double.doubleToLongBits(
6400  other.getBlockingRestartMultiplier())) return false;
6401  }
6402  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6405  != other.getNumConflictsBeforeStrategyChanges()) return false;
6406  }
6407  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6409  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6410  != java.lang.Double.doubleToLongBits(
6411  other.getStrategyChangeIncreaseRatio())) return false;
6412  }
6413  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6414  if (hasMaxTimeInSeconds()) {
6415  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6416  != java.lang.Double.doubleToLongBits(
6417  other.getMaxTimeInSeconds())) return false;
6418  }
6419  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6420  if (hasMaxDeterministicTime()) {
6421  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6422  != java.lang.Double.doubleToLongBits(
6423  other.getMaxDeterministicTime())) return false;
6424  }
6425  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6426  if (hasMaxNumberOfConflicts()) {
6428  != other.getMaxNumberOfConflicts()) return false;
6429  }
6430  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6431  if (hasMaxMemoryInMb()) {
6432  if (getMaxMemoryInMb()
6433  != other.getMaxMemoryInMb()) return false;
6434  }
6435  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6438  != other.getTreatBinaryClausesSeparately()) return false;
6439  }
6440  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6441  if (hasRandomSeed()) {
6442  if (getRandomSeed()
6443  != other.getRandomSeed()) return false;
6444  }
6445  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6446  if (hasLogSearchProgress()) {
6447  if (getLogSearchProgress()
6448  != other.getLogSearchProgress()) return false;
6449  }
6450  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6451  if (hasUsePbResolution()) {
6452  if (getUsePbResolution()
6453  != other.getUsePbResolution()) return false;
6454  }
6455  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6458  != other.getMinimizeReductionDuringPbResolution()) return false;
6459  }
6460  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6463  != other.getCountAssumptionLevelsInLbd()) return false;
6464  }
6465  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6466  if (hasPresolveBveThreshold()) {
6468  != other.getPresolveBveThreshold()) return false;
6469  }
6470  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6473  != other.getPresolveBveClauseWeight()) return false;
6474  }
6475  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6477  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6478  != java.lang.Double.doubleToLongBits(
6479  other.getPresolveProbingDeterministicTimeLimit())) return false;
6480  }
6481  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6482  if (hasPresolveBlockedClause()) {
6484  != other.getPresolveBlockedClause()) return false;
6485  }
6486  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6487  if (hasPresolveUseBva()) {
6488  if (getPresolveUseBva()
6489  != other.getPresolveUseBva()) return false;
6490  }
6491  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6492  if (hasPresolveBvaThreshold()) {
6494  != other.getPresolveBvaThreshold()) return false;
6495  }
6496  if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
6497  if (hasMaxPresolveIterations()) {
6499  != other.getMaxPresolveIterations()) return false;
6500  }
6501  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6502  if (hasCpModelPresolve()) {
6503  if (getCpModelPresolve()
6504  != other.getCpModelPresolve()) return false;
6505  }
6506  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6507  if (hasCpModelProbingLevel()) {
6509  != other.getCpModelProbingLevel()) return false;
6510  }
6511  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6512  if (hasCpModelUseSatPresolve()) {
6514  != other.getCpModelUseSatPresolve()) return false;
6515  }
6516  if (hasExpandElementConstraints() != other.hasExpandElementConstraints()) return false;
6519  != other.getExpandElementConstraints()) return false;
6520  }
6521  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6522  if (hasUseOptimizationHints()) {
6524  != other.getUseOptimizationHints()) return false;
6525  }
6526  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6527  if (hasMinimizeCore()) {
6528  if (getMinimizeCore()
6529  != other.getMinimizeCore()) return false;
6530  }
6531  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6532  if (hasFindMultipleCores()) {
6533  if (getFindMultipleCores()
6534  != other.getFindMultipleCores()) return false;
6535  }
6536  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6537  if (hasCoverOptimization()) {
6538  if (getCoverOptimization()
6539  != other.getCoverOptimization()) return false;
6540  }
6541  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6542  if (hasMaxSatAssumptionOrder()) {
6543  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6544  }
6545  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6548  != other.getMaxSatReverseAssumptionOrder()) return false;
6549  }
6550  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6551  if (hasMaxSatStratification()) {
6552  if (maxSatStratification_ != other.maxSatStratification_) return false;
6553  }
6554  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6557  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6558  }
6559  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6562  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6563  }
6564  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6567  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6568  }
6569  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6572  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6573  }
6574  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6575  if (hasLinearizationLevel()) {
6576  if (getLinearizationLevel()
6577  != other.getLinearizationLevel()) return false;
6578  }
6579  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6580  if (hasBooleanEncodingLevel()) {
6582  != other.getBooleanEncodingLevel()) return false;
6583  }
6584  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6585  if (hasMaxNumCuts()) {
6586  if (getMaxNumCuts()
6587  != other.getMaxNumCuts()) return false;
6588  }
6589  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6590  if (hasOnlyAddCutsAtLevelZero()) {
6592  != other.getOnlyAddCutsAtLevelZero()) return false;
6593  }
6594  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6595  if (hasAddKnapsackCuts()) {
6596  if (getAddKnapsackCuts()
6597  != other.getAddKnapsackCuts()) return false;
6598  }
6599  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6600  if (hasAddCgCuts()) {
6601  if (getAddCgCuts()
6602  != other.getAddCgCuts()) return false;
6603  }
6604  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6605  if (hasAddMirCuts()) {
6606  if (getAddMirCuts()
6607  != other.getAddMirCuts()) return false;
6608  }
6609  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6610  if (hasUseMirRounding()) {
6611  if (getUseMirRounding()
6612  != other.getUseMirRounding()) return false;
6613  }
6614  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6617  != other.getMaxIntegerRoundingScaling()) return false;
6618  }
6619  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6620  if (hasAddLpConstraintsLazily()) {
6622  != other.getAddLpConstraintsLazily()) return false;
6623  }
6624  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6626  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6627  != java.lang.Double.doubleToLongBits(
6628  other.getMinOrthogonalityForLpConstraints())) return false;
6629  }
6630  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6631  if (hasMaxInactiveCount()) {
6632  if (getMaxInactiveCount()
6633  != other.getMaxInactiveCount()) return false;
6634  }
6635  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6638  != other.getConstraintRemovalBatchSize()) return false;
6639  }
6640  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6641  if (hasSearchBranching()) {
6642  if (searchBranching_ != other.searchBranching_) return false;
6643  }
6644  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6647  != other.getExploitIntegerLpSolution()) return false;
6648  }
6649  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6650  if (hasExploitAllLpSolution()) {
6652  != other.getExploitAllLpSolution()) return false;
6653  }
6654  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6655  if (hasExploitBestSolution()) {
6657  != other.getExploitBestSolution()) return false;
6658  }
6659  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6660  if (hasExploitObjective()) {
6661  if (getExploitObjective()
6662  != other.getExploitObjective()) return false;
6663  }
6664  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6667  != other.getPseudoCostReliabilityThreshold()) return false;
6668  }
6669  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6670  if (hasOptimizeWithCore()) {
6671  if (getOptimizeWithCore()
6672  != other.getOptimizeWithCore()) return false;
6673  }
6674  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6677  != other.getBinarySearchNumConflicts()) return false;
6678  }
6679  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6680  if (hasOptimizeWithMaxHs()) {
6681  if (getOptimizeWithMaxHs()
6682  != other.getOptimizeWithMaxHs()) return false;
6683  }
6684  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6685  if (hasEnumerateAllSolutions()) {
6687  != other.getEnumerateAllSolutions()) return false;
6688  }
6689  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6692  != other.getFillTightenedDomainsInResponse()) return false;
6693  }
6694  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6697  != other.getInstantiateAllVariables()) return false;
6698  }
6699  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6702  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6703  }
6704  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6705  if (hasStopAfterFirstSolution()) {
6707  != other.getStopAfterFirstSolution()) return false;
6708  }
6709  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6710  if (hasNumSearchWorkers()) {
6711  if (getNumSearchWorkers()
6712  != other.getNumSearchWorkers()) return false;
6713  }
6714  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
6715  if (hasInterleaveSearch()) {
6716  if (getInterleaveSearch()
6717  != other.getInterleaveSearch()) return false;
6718  }
6719  if (hasReduceMemoryUsageInInterleaveMode() != other.hasReduceMemoryUsageInInterleaveMode()) return false;
6722  != other.getReduceMemoryUsageInInterleaveMode()) return false;
6723  }
6724  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
6727  != other.getDeterministicParallelSearch()) return false;
6728  }
6729  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6730  if (hasShareObjectiveBounds()) {
6732  != other.getShareObjectiveBounds()) return false;
6733  }
6734  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6735  if (hasShareLevelZeroBounds()) {
6737  != other.getShareLevelZeroBounds()) return false;
6738  }
6739  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
6740  if (hasUseLnsOnly()) {
6741  if (getUseLnsOnly()
6742  != other.getUseLnsOnly()) return false;
6743  }
6744  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6747  != other.getLnsFocusOnDecisionVariables()) return false;
6748  }
6749  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6750  if (hasUseRinsLns()) {
6751  if (getUseRinsLns()
6752  != other.getUseRinsLns()) return false;
6753  }
6754  if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
6755  if (hasDiversifyLnsParams()) {
6756  if (getDiversifyLnsParams()
6757  != other.getDiversifyLnsParams()) return false;
6758  }
6759  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6760  if (hasRandomizeSearch()) {
6761  if (getRandomizeSearch()
6762  != other.getRandomizeSearch()) return false;
6763  }
6764  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6767  != other.getSearchRandomizationTolerance()) return false;
6768  }
6769  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6770  if (hasUseOptionalVariables()) {
6772  != other.getUseOptionalVariables()) return false;
6773  }
6774  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6775  if (hasUseExactLpReason()) {
6776  if (getUseExactLpReason()
6777  != other.getUseExactLpReason()) return false;
6778  }
6779  if (hasUseBranchingInLp() != other.hasUseBranchingInLp()) return false;
6780  if (hasUseBranchingInLp()) {
6781  if (getUseBranchingInLp()
6782  != other.getUseBranchingInLp()) return false;
6783  }
6784  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6785  if (hasUseCombinedNoOverlap()) {
6787  != other.getUseCombinedNoOverlap()) return false;
6788  }
6789  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6790  if (hasCatchSigintSignal()) {
6791  if (getCatchSigintSignal()
6792  != other.getCatchSigintSignal()) return false;
6793  }
6794  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6795  if (hasMipMaxBound()) {
6796  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6797  != java.lang.Double.doubleToLongBits(
6798  other.getMipMaxBound())) return false;
6799  }
6800  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6801  if (hasMipVarScaling()) {
6802  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6803  != java.lang.Double.doubleToLongBits(
6804  other.getMipVarScaling())) return false;
6805  }
6806  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6807  if (hasMipWantedPrecision()) {
6808  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6809  != java.lang.Double.doubleToLongBits(
6810  other.getMipWantedPrecision())) return false;
6811  }
6812  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6813  if (hasMipMaxActivityExponent()) {
6815  != other.getMipMaxActivityExponent()) return false;
6816  }
6817  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6818  if (hasMipCheckPrecision()) {
6819  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6820  != java.lang.Double.doubleToLongBits(
6821  other.getMipCheckPrecision())) return false;
6822  }
6823  if (!unknownFields.equals(other.unknownFields)) return false;
6824  return true;
6825  }
6826 
6827  @java.lang.Override
6828  public int hashCode() {
6829  if (memoizedHashCode != 0) {
6830  return memoizedHashCode;
6831  }
6832  int hash = 41;
6833  hash = (19 * hash) + getDescriptor().hashCode();
6834  if (hasPreferredVariableOrder()) {
6835  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6836  hash = (53 * hash) + preferredVariableOrder_;
6837  }
6838  if (hasInitialPolarity()) {
6839  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6840  hash = (53 * hash) + initialPolarity_;
6841  }
6842  if (hasUsePhaseSaving()) {
6843  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6844  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6845  getUsePhaseSaving());
6846  }
6847  if (hasRandomPolarityRatio()) {
6848  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6849  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6850  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6851  }
6852  if (hasRandomBranchesRatio()) {
6853  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6854  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6855  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6856  }
6857  if (hasUseErwaHeuristic()) {
6858  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6859  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6861  }
6863  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6864  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6865  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6866  }
6869  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6871  }
6872  if (hasMinimizationAlgorithm()) {
6873  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6874  hash = (53 * hash) + minimizationAlgorithm_;
6875  }
6877  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6878  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6879  }
6882  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6884  }
6885  if (hasClauseCleanupPeriod()) {
6886  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6887  hash = (53 * hash) + getClauseCleanupPeriod();
6888  }
6889  if (hasClauseCleanupTarget()) {
6890  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6891  hash = (53 * hash) + getClauseCleanupTarget();
6892  }
6894  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6895  hash = (53 * hash) + clauseCleanupProtection_;
6896  }
6897  if (hasClauseCleanupLbdBound()) {
6898  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6899  hash = (53 * hash) + getClauseCleanupLbdBound();
6900  }
6901  if (hasClauseCleanupOrdering()) {
6902  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6903  hash = (53 * hash) + clauseCleanupOrdering_;
6904  }
6905  if (hasPbCleanupIncrement()) {
6906  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6907  hash = (53 * hash) + getPbCleanupIncrement();
6908  }
6909  if (hasPbCleanupRatio()) {
6910  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6911  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6912  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6913  }
6916  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6917  }
6920  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6921  }
6922  if (hasVariableActivityDecay()) {
6923  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6924  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6925  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6926  }
6928  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6929  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6930  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6931  }
6932  if (hasGlucoseMaxDecay()) {
6933  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6934  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6935  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6936  }
6937  if (hasGlucoseDecayIncrement()) {
6938  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6939  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6940  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6941  }
6943  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6944  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6945  }
6946  if (hasClauseActivityDecay()) {
6947  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6948  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6949  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6950  }
6951  if (hasMaxClauseActivityValue()) {
6952  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6953  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6954  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6955  }
6956  if (getRestartAlgorithmsCount() > 0) {
6957  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6958  hash = (53 * hash) + restartAlgorithms_.hashCode();
6959  }
6961  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6962  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6963  }
6964  if (hasRestartPeriod()) {
6965  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6966  hash = (53 * hash) + getRestartPeriod();
6967  }
6969  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6970  hash = (53 * hash) + getRestartRunningWindowSize();
6971  }
6972  if (hasRestartDlAverageRatio()) {
6973  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6974  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6975  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6976  }
6977  if (hasRestartLbdAverageRatio()) {
6978  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6979  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6980  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6981  }
6982  if (hasUseBlockingRestart()) {
6983  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6984  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6986  }
6988  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6989  hash = (53 * hash) + getBlockingRestartWindowSize();
6990  }
6992  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6993  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6994  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6995  }
6998  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6999  }
7001  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
7002  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7003  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
7004  }
7005  if (hasMaxTimeInSeconds()) {
7006  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
7007  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7008  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
7009  }
7010  if (hasMaxDeterministicTime()) {
7011  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
7012  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7013  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
7014  }
7015  if (hasMaxNumberOfConflicts()) {
7016  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
7017  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7019  }
7020  if (hasMaxMemoryInMb()) {
7021  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
7022  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7023  getMaxMemoryInMb());
7024  }
7026  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
7027  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7029  }
7030  if (hasRandomSeed()) {
7031  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
7032  hash = (53 * hash) + getRandomSeed();
7033  }
7034  if (hasLogSearchProgress()) {
7035  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
7036  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7038  }
7039  if (hasUsePbResolution()) {
7040  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
7041  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7042  getUsePbResolution());
7043  }
7046  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7048  }
7050  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
7051  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7053  }
7054  if (hasPresolveBveThreshold()) {
7055  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
7056  hash = (53 * hash) + getPresolveBveThreshold();
7057  }
7059  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
7060  hash = (53 * hash) + getPresolveBveClauseWeight();
7061  }
7064  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7065  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
7066  }
7067  if (hasPresolveBlockedClause()) {
7068  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
7069  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7071  }
7072  if (hasPresolveUseBva()) {
7073  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
7074  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7075  getPresolveUseBva());
7076  }
7077  if (hasPresolveBvaThreshold()) {
7078  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
7079  hash = (53 * hash) + getPresolveBvaThreshold();
7080  }
7081  if (hasMaxPresolveIterations()) {
7082  hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
7083  hash = (53 * hash) + getMaxPresolveIterations();
7084  }
7085  if (hasCpModelPresolve()) {
7086  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7087  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7088  getCpModelPresolve());
7089  }
7090  if (hasCpModelProbingLevel()) {
7091  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7092  hash = (53 * hash) + getCpModelProbingLevel();
7093  }
7094  if (hasCpModelUseSatPresolve()) {
7095  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7096  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7098  }
7100  hash = (37 * hash) + EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER;
7101  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7103  }
7104  if (hasUseOptimizationHints()) {
7105  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
7106  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7108  }
7109  if (hasMinimizeCore()) {
7110  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
7111  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7112  getMinimizeCore());
7113  }
7114  if (hasFindMultipleCores()) {
7115  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
7116  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7118  }
7119  if (hasCoverOptimization()) {
7120  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
7121  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7123  }
7124  if (hasMaxSatAssumptionOrder()) {
7125  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
7126  hash = (53 * hash) + maxSatAssumptionOrder_;
7127  }
7129  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
7130  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7132  }
7133  if (hasMaxSatStratification()) {
7134  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
7135  hash = (53 * hash) + maxSatStratification_;
7136  }
7139  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7141  }
7144  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7146  }
7149  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7151  }
7154  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7156  }
7157  if (hasLinearizationLevel()) {
7158  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
7159  hash = (53 * hash) + getLinearizationLevel();
7160  }
7161  if (hasBooleanEncodingLevel()) {
7162  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
7163  hash = (53 * hash) + getBooleanEncodingLevel();
7164  }
7165  if (hasMaxNumCuts()) {
7166  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
7167  hash = (53 * hash) + getMaxNumCuts();
7168  }
7169  if (hasOnlyAddCutsAtLevelZero()) {
7170  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
7171  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7173  }
7174  if (hasAddKnapsackCuts()) {
7175  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
7176  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7177  getAddKnapsackCuts());
7178  }
7179  if (hasAddCgCuts()) {
7180  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
7181  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7182  getAddCgCuts());
7183  }
7184  if (hasAddMirCuts()) {
7185  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
7186  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7187  getAddMirCuts());
7188  }
7189  if (hasUseMirRounding()) {
7190  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
7191  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7192  getUseMirRounding());
7193  }
7195  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
7196  hash = (53 * hash) + getMaxIntegerRoundingScaling();
7197  }
7198  if (hasAddLpConstraintsLazily()) {
7199  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
7200  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7202  }
7205  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7206  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
7207  }
7208  if (hasMaxInactiveCount()) {
7209  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
7210  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7212  }
7214  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
7215  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7217  }
7218  if (hasSearchBranching()) {
7219  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
7220  hash = (53 * hash) + searchBranching_;
7221  }
7223  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
7224  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7226  }
7227  if (hasExploitAllLpSolution()) {
7228  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
7229  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7231  }
7232  if (hasExploitBestSolution()) {
7233  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
7234  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7236  }
7237  if (hasExploitObjective()) {
7238  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
7239  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7241  }
7244  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7246  }
7247  if (hasOptimizeWithCore()) {
7248  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7249  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7251  }
7253  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7254  hash = (53 * hash) + getBinarySearchNumConflicts();
7255  }
7256  if (hasOptimizeWithMaxHs()) {
7257  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7258  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7260  }
7261  if (hasEnumerateAllSolutions()) {
7262  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
7263  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7265  }
7268  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7270  }
7272  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
7273  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7275  }
7278  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7280  }
7281  if (hasStopAfterFirstSolution()) {
7282  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7283  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7285  }
7286  if (hasNumSearchWorkers()) {
7287  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7288  hash = (53 * hash) + getNumSearchWorkers();
7289  }
7290  if (hasInterleaveSearch()) {
7291  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
7292  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7294  }
7297  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7299  }
7301  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
7302  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7304  }
7305  if (hasShareObjectiveBounds()) {
7306  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7307  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7309  }
7310  if (hasShareLevelZeroBounds()) {
7311  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7312  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7314  }
7315  if (hasUseLnsOnly()) {
7316  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
7317  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7318  getUseLnsOnly());
7319  }
7321  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7322  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7324  }
7325  if (hasUseRinsLns()) {
7326  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7327  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7328  getUseRinsLns());
7329  }
7330  if (hasDiversifyLnsParams()) {
7331  hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
7332  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7334  }
7335  if (hasRandomizeSearch()) {
7336  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7337  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7338  getRandomizeSearch());
7339  }
7341  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7342  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7344  }
7345  if (hasUseOptionalVariables()) {
7346  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7347  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7349  }
7350  if (hasUseExactLpReason()) {
7351  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7352  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7354  }
7355  if (hasUseBranchingInLp()) {
7356  hash = (37 * hash) + USE_BRANCHING_IN_LP_FIELD_NUMBER;
7357  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7359  }
7360  if (hasUseCombinedNoOverlap()) {
7361  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7362  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7364  }
7365  if (hasCatchSigintSignal()) {
7366  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7367  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7369  }
7370  if (hasMipMaxBound()) {
7371  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7372  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7373  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7374  }
7375  if (hasMipVarScaling()) {
7376  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7377  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7378  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7379  }
7380  if (hasMipWantedPrecision()) {
7381  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7382  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7383  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7384  }
7385  if (hasMipMaxActivityExponent()) {
7386  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7387  hash = (53 * hash) + getMipMaxActivityExponent();
7388  }
7389  if (hasMipCheckPrecision()) {
7390  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7391  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7392  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7393  }
7394  hash = (29 * hash) + unknownFields.hashCode();
7395  memoizedHashCode = hash;
7396  return hash;
7397  }
7398 
7400  java.nio.ByteBuffer data)
7401  throws com.google.protobuf.InvalidProtocolBufferException {
7402  return PARSER.parseFrom(data);
7403  }
7405  java.nio.ByteBuffer data,
7406  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7407  throws com.google.protobuf.InvalidProtocolBufferException {
7408  return PARSER.parseFrom(data, extensionRegistry);
7409  }
7411  com.google.protobuf.ByteString data)
7412  throws com.google.protobuf.InvalidProtocolBufferException {
7413  return PARSER.parseFrom(data);
7414  }
7416  com.google.protobuf.ByteString data,
7417  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7418  throws com.google.protobuf.InvalidProtocolBufferException {
7419  return PARSER.parseFrom(data, extensionRegistry);
7420  }
7421  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7422  throws com.google.protobuf.InvalidProtocolBufferException {
7423  return PARSER.parseFrom(data);
7424  }
7426  byte[] data,
7427  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7428  throws com.google.protobuf.InvalidProtocolBufferException {
7429  return PARSER.parseFrom(data, extensionRegistry);
7430  }
7431  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7432  throws java.io.IOException {
7433  return com.google.protobuf.GeneratedMessageV3
7434  .parseWithIOException(PARSER, input);
7435  }
7437  java.io.InputStream input,
7438  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7439  throws java.io.IOException {
7440  return com.google.protobuf.GeneratedMessageV3
7441  .parseWithIOException(PARSER, input, extensionRegistry);
7442  }
7443  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7444  throws java.io.IOException {
7445  return com.google.protobuf.GeneratedMessageV3
7446  .parseDelimitedWithIOException(PARSER, input);
7447  }
7449  java.io.InputStream input,
7450  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7451  throws java.io.IOException {
7452  return com.google.protobuf.GeneratedMessageV3
7453  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7454  }
7456  com.google.protobuf.CodedInputStream input)
7457  throws java.io.IOException {
7458  return com.google.protobuf.GeneratedMessageV3
7459  .parseWithIOException(PARSER, input);
7460  }
7462  com.google.protobuf.CodedInputStream input,
7463  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7464  throws java.io.IOException {
7465  return com.google.protobuf.GeneratedMessageV3
7466  .parseWithIOException(PARSER, input, extensionRegistry);
7467  }
7468 
7469  @java.lang.Override
7470  public Builder newBuilderForType() { return newBuilder(); }
7471  public static Builder newBuilder() {
7472  return DEFAULT_INSTANCE.toBuilder();
7473  }
7474  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7475  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7476  }
7477  @java.lang.Override
7478  public Builder toBuilder() {
7479  return this == DEFAULT_INSTANCE
7480  ? new Builder() : new Builder().mergeFrom(this);
7481  }
7482 
7483  @java.lang.Override
7485  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7486  Builder builder = new Builder(parent);
7487  return builder;
7488  }
7498  public static final class Builder extends
7499  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7500  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7501  com.google.ortools.sat.SatParametersOrBuilder {
7502  public static final com.google.protobuf.Descriptors.Descriptor
7504  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7505  }
7506 
7507  @java.lang.Override
7508  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7510  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7511  .ensureFieldAccessorsInitialized(
7513  }
7514 
7515  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7516  private Builder() {
7517  maybeForceBuilderInitialization();
7518  }
7519 
7520  private Builder(
7521  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7522  super(parent);
7523  maybeForceBuilderInitialization();
7524  }
7525  private void maybeForceBuilderInitialization() {
7526  if (com.google.protobuf.GeneratedMessageV3
7527  .alwaysUseFieldBuilders) {
7528  }
7529  }
7530  @java.lang.Override
7531  public Builder clear() {
7532  super.clear();
7533  preferredVariableOrder_ = 0;
7534  bitField0_ = (bitField0_ & ~0x00000001);
7535  initialPolarity_ = 1;
7536  bitField0_ = (bitField0_ & ~0x00000002);
7537  usePhaseSaving_ = true;
7538  bitField0_ = (bitField0_ & ~0x00000004);
7539  randomPolarityRatio_ = 0D;
7540  bitField0_ = (bitField0_ & ~0x00000008);
7541  randomBranchesRatio_ = 0D;
7542  bitField0_ = (bitField0_ & ~0x00000010);
7543  useErwaHeuristic_ = false;
7544  bitField0_ = (bitField0_ & ~0x00000020);
7545  initialVariablesActivity_ = 0D;
7546  bitField0_ = (bitField0_ & ~0x00000040);
7547  alsoBumpVariablesInConflictReasons_ = false;
7548  bitField0_ = (bitField0_ & ~0x00000080);
7549  minimizationAlgorithm_ = 2;
7550  bitField0_ = (bitField0_ & ~0x00000100);
7551  binaryMinimizationAlgorithm_ = 1;
7552  bitField0_ = (bitField0_ & ~0x00000200);
7553  subsumptionDuringConflictAnalysis_ = true;
7554  bitField0_ = (bitField0_ & ~0x00000400);
7555  clauseCleanupPeriod_ = 10000;
7556  bitField0_ = (bitField0_ & ~0x00000800);
7557  clauseCleanupTarget_ = 10000;
7558  bitField0_ = (bitField0_ & ~0x00001000);
7559  clauseCleanupProtection_ = 0;
7560  bitField0_ = (bitField0_ & ~0x00002000);
7561  clauseCleanupLbdBound_ = 5;
7562  bitField0_ = (bitField0_ & ~0x00004000);
7563  clauseCleanupOrdering_ = 0;
7564  bitField0_ = (bitField0_ & ~0x00008000);
7565  pbCleanupIncrement_ = 200;
7566  bitField0_ = (bitField0_ & ~0x00010000);
7567  pbCleanupRatio_ = 0.5D;
7568  bitField0_ = (bitField0_ & ~0x00020000);
7569  minimizeWithPropagationRestartPeriod_ = 10;
7570  bitField0_ = (bitField0_ & ~0x00040000);
7571  minimizeWithPropagationNumDecisions_ = 1000;
7572  bitField0_ = (bitField0_ & ~0x00080000);
7573  variableActivityDecay_ = 0.8D;
7574  bitField0_ = (bitField0_ & ~0x00100000);
7575  maxVariableActivityValue_ = 1e+100D;
7576  bitField0_ = (bitField0_ & ~0x00200000);
7577  glucoseMaxDecay_ = 0.95D;
7578  bitField0_ = (bitField0_ & ~0x00400000);
7579  glucoseDecayIncrement_ = 0.01D;
7580  bitField0_ = (bitField0_ & ~0x00800000);
7581  glucoseDecayIncrementPeriod_ = 5000;
7582  bitField0_ = (bitField0_ & ~0x01000000);
7583  clauseActivityDecay_ = 0.999D;
7584  bitField0_ = (bitField0_ & ~0x02000000);
7585  maxClauseActivityValue_ = 1e+20D;
7586  bitField0_ = (bitField0_ & ~0x04000000);
7587  restartAlgorithms_ = java.util.Collections.emptyList();
7588  bitField0_ = (bitField0_ & ~0x08000000);
7589  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7590  bitField0_ = (bitField0_ & ~0x10000000);
7591  restartPeriod_ = 50;
7592  bitField0_ = (bitField0_ & ~0x20000000);
7593  restartRunningWindowSize_ = 50;
7594  bitField0_ = (bitField0_ & ~0x40000000);
7595  restartDlAverageRatio_ = 1D;
7596  bitField0_ = (bitField0_ & ~0x80000000);
7597  restartLbdAverageRatio_ = 1D;
7598  bitField1_ = (bitField1_ & ~0x00000001);
7599  useBlockingRestart_ = false;
7600  bitField1_ = (bitField1_ & ~0x00000002);
7601  blockingRestartWindowSize_ = 5000;
7602  bitField1_ = (bitField1_ & ~0x00000004);
7603  blockingRestartMultiplier_ = 1.4D;
7604  bitField1_ = (bitField1_ & ~0x00000008);
7605  numConflictsBeforeStrategyChanges_ = 0;
7606  bitField1_ = (bitField1_ & ~0x00000010);
7607  strategyChangeIncreaseRatio_ = 0D;
7608  bitField1_ = (bitField1_ & ~0x00000020);
7609  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7610  bitField1_ = (bitField1_ & ~0x00000040);
7611  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7612  bitField1_ = (bitField1_ & ~0x00000080);
7613  maxNumberOfConflicts_ = 9223372036854775807L;
7614  bitField1_ = (bitField1_ & ~0x00000100);
7615  maxMemoryInMb_ = 10000L;
7616  bitField1_ = (bitField1_ & ~0x00000200);
7617  treatBinaryClausesSeparately_ = true;
7618  bitField1_ = (bitField1_ & ~0x00000400);
7619  randomSeed_ = 1;
7620  bitField1_ = (bitField1_ & ~0x00000800);
7621  logSearchProgress_ = false;
7622  bitField1_ = (bitField1_ & ~0x00001000);
7623  usePbResolution_ = false;
7624  bitField1_ = (bitField1_ & ~0x00002000);
7625  minimizeReductionDuringPbResolution_ = false;
7626  bitField1_ = (bitField1_ & ~0x00004000);
7627  countAssumptionLevelsInLbd_ = true;
7628  bitField1_ = (bitField1_ & ~0x00008000);
7629  presolveBveThreshold_ = 500;
7630  bitField1_ = (bitField1_ & ~0x00010000);
7631  presolveBveClauseWeight_ = 3;
7632  bitField1_ = (bitField1_ & ~0x00020000);
7633  presolveProbingDeterministicTimeLimit_ = 30D;
7634  bitField1_ = (bitField1_ & ~0x00040000);
7635  presolveBlockedClause_ = true;
7636  bitField1_ = (bitField1_ & ~0x00080000);
7637  presolveUseBva_ = true;
7638  bitField1_ = (bitField1_ & ~0x00100000);
7639  presolveBvaThreshold_ = 1;
7640  bitField1_ = (bitField1_ & ~0x00200000);
7641  maxPresolveIterations_ = 3;
7642  bitField1_ = (bitField1_ & ~0x00400000);
7643  cpModelPresolve_ = true;
7644  bitField1_ = (bitField1_ & ~0x00800000);
7645  cpModelProbingLevel_ = 2;
7646  bitField1_ = (bitField1_ & ~0x01000000);
7647  cpModelUseSatPresolve_ = true;
7648  bitField1_ = (bitField1_ & ~0x02000000);
7649  expandElementConstraints_ = true;
7650  bitField1_ = (bitField1_ & ~0x04000000);
7651  useOptimizationHints_ = true;
7652  bitField1_ = (bitField1_ & ~0x08000000);
7653  minimizeCore_ = true;
7654  bitField1_ = (bitField1_ & ~0x10000000);
7655  findMultipleCores_ = true;
7656  bitField1_ = (bitField1_ & ~0x20000000);
7657  coverOptimization_ = true;
7658  bitField1_ = (bitField1_ & ~0x40000000);
7659  maxSatAssumptionOrder_ = 0;
7660  bitField1_ = (bitField1_ & ~0x80000000);
7661  maxSatReverseAssumptionOrder_ = false;
7662  bitField2_ = (bitField2_ & ~0x00000001);
7663  maxSatStratification_ = 1;
7664  bitField2_ = (bitField2_ & ~0x00000002);
7665  usePrecedencesInDisjunctiveConstraint_ = true;
7666  bitField2_ = (bitField2_ & ~0x00000004);
7667  useOverloadCheckerInCumulativeConstraint_ = false;
7668  bitField2_ = (bitField2_ & ~0x00000008);
7669  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7670  bitField2_ = (bitField2_ & ~0x00000010);
7671  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7672  bitField2_ = (bitField2_ & ~0x00000020);
7673  linearizationLevel_ = 1;
7674  bitField2_ = (bitField2_ & ~0x00000040);
7675  booleanEncodingLevel_ = 1;
7676  bitField2_ = (bitField2_ & ~0x00000080);
7677  maxNumCuts_ = 5000;
7678  bitField2_ = (bitField2_ & ~0x00000100);
7679  onlyAddCutsAtLevelZero_ = false;
7680  bitField2_ = (bitField2_ & ~0x00000200);
7681  addKnapsackCuts_ = false;
7682  bitField2_ = (bitField2_ & ~0x00000400);
7683  addCgCuts_ = false;
7684  bitField2_ = (bitField2_ & ~0x00000800);
7685  addMirCuts_ = true;
7686  bitField2_ = (bitField2_ & ~0x00001000);
7687  useMirRounding_ = true;
7688  bitField2_ = (bitField2_ & ~0x00002000);
7689  maxIntegerRoundingScaling_ = 600;
7690  bitField2_ = (bitField2_ & ~0x00004000);
7691  addLpConstraintsLazily_ = true;
7692  bitField2_ = (bitField2_ & ~0x00008000);
7693  minOrthogonalityForLpConstraints_ = 0D;
7694  bitField2_ = (bitField2_ & ~0x00010000);
7695  maxInactiveCount_ = 1000L;
7696  bitField2_ = (bitField2_ & ~0x00020000);
7697  constraintRemovalBatchSize_ = 100L;
7698  bitField2_ = (bitField2_ & ~0x00040000);
7699  searchBranching_ = 0;
7700  bitField2_ = (bitField2_ & ~0x00080000);
7701  exploitIntegerLpSolution_ = true;
7702  bitField2_ = (bitField2_ & ~0x00100000);
7703  exploitAllLpSolution_ = true;
7704  bitField2_ = (bitField2_ & ~0x00200000);
7705  exploitBestSolution_ = false;
7706  bitField2_ = (bitField2_ & ~0x00400000);
7707  exploitObjective_ = true;
7708  bitField2_ = (bitField2_ & ~0x00800000);
7709  pseudoCostReliabilityThreshold_ = 100L;
7710  bitField2_ = (bitField2_ & ~0x01000000);
7711  optimizeWithCore_ = false;
7712  bitField2_ = (bitField2_ & ~0x02000000);
7713  binarySearchNumConflicts_ = -1;
7714  bitField2_ = (bitField2_ & ~0x04000000);
7715  optimizeWithMaxHs_ = false;
7716  bitField2_ = (bitField2_ & ~0x08000000);
7717  enumerateAllSolutions_ = false;
7718  bitField2_ = (bitField2_ & ~0x10000000);
7719  fillTightenedDomainsInResponse_ = false;
7720  bitField2_ = (bitField2_ & ~0x20000000);
7721  instantiateAllVariables_ = true;
7722  bitField2_ = (bitField2_ & ~0x40000000);
7723  autoDetectGreaterThanAtLeastOneOf_ = true;
7724  bitField2_ = (bitField2_ & ~0x80000000);
7725  stopAfterFirstSolution_ = false;
7726  bitField3_ = (bitField3_ & ~0x00000001);
7727  numSearchWorkers_ = 1;
7728  bitField3_ = (bitField3_ & ~0x00000002);
7729  interleaveSearch_ = false;
7730  bitField3_ = (bitField3_ & ~0x00000004);
7731  reduceMemoryUsageInInterleaveMode_ = true;
7732  bitField3_ = (bitField3_ & ~0x00000008);
7733  deterministicParallelSearch_ = false;
7734  bitField3_ = (bitField3_ & ~0x00000010);
7735  shareObjectiveBounds_ = true;
7736  bitField3_ = (bitField3_ & ~0x00000020);
7737  shareLevelZeroBounds_ = true;
7738  bitField3_ = (bitField3_ & ~0x00000040);
7739  useLnsOnly_ = false;
7740  bitField3_ = (bitField3_ & ~0x00000080);
7741  lnsFocusOnDecisionVariables_ = false;
7742  bitField3_ = (bitField3_ & ~0x00000100);
7743  useRinsLns_ = true;
7744  bitField3_ = (bitField3_ & ~0x00000200);
7745  diversifyLnsParams_ = false;
7746  bitField3_ = (bitField3_ & ~0x00000400);
7747  randomizeSearch_ = false;
7748  bitField3_ = (bitField3_ & ~0x00000800);
7749  searchRandomizationTolerance_ = 0L;
7750  bitField3_ = (bitField3_ & ~0x00001000);
7751  useOptionalVariables_ = true;
7752  bitField3_ = (bitField3_ & ~0x00002000);
7753  useExactLpReason_ = true;
7754  bitField3_ = (bitField3_ & ~0x00004000);
7755  useBranchingInLp_ = false;
7756  bitField3_ = (bitField3_ & ~0x00008000);
7757  useCombinedNoOverlap_ = false;
7758  bitField3_ = (bitField3_ & ~0x00010000);
7759  catchSigintSignal_ = true;
7760  bitField3_ = (bitField3_ & ~0x00020000);
7761  mipMaxBound_ = 10000000D;
7762  bitField3_ = (bitField3_ & ~0x00040000);
7763  mipVarScaling_ = 1D;
7764  bitField3_ = (bitField3_ & ~0x00080000);
7765  mipWantedPrecision_ = 1e-06D;
7766  bitField3_ = (bitField3_ & ~0x00100000);
7767  mipMaxActivityExponent_ = 53;
7768  bitField3_ = (bitField3_ & ~0x00200000);
7769  mipCheckPrecision_ = 0.0001D;
7770  bitField3_ = (bitField3_ & ~0x00400000);
7771  return this;
7772  }
7773 
7774  @java.lang.Override
7775  public com.google.protobuf.Descriptors.Descriptor
7777  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7778  }
7779 
7780  @java.lang.Override
7783  }
7784 
7785  @java.lang.Override
7788  if (!result.isInitialized()) {
7789  throw newUninitializedMessageException(result);
7790  }
7791  return result;
7792  }
7793 
7794  @java.lang.Override
7797  int from_bitField0_ = bitField0_;
7798  int from_bitField1_ = bitField1_;
7799  int from_bitField2_ = bitField2_;
7800  int from_bitField3_ = bitField3_;
7801  int to_bitField0_ = 0;
7802  int to_bitField1_ = 0;
7803  int to_bitField2_ = 0;
7804  int to_bitField3_ = 0;
7805  if (((from_bitField0_ & 0x00000001) != 0)) {
7806  to_bitField0_ |= 0x00000001;
7807  }
7808  result.preferredVariableOrder_ = preferredVariableOrder_;
7809  if (((from_bitField0_ & 0x00000002) != 0)) {
7810  to_bitField0_ |= 0x00000002;
7811  }
7812  result.initialPolarity_ = initialPolarity_;
7813  if (((from_bitField0_ & 0x00000004) != 0)) {
7814  to_bitField0_ |= 0x00000004;
7815  }
7816  result.usePhaseSaving_ = usePhaseSaving_;
7817  if (((from_bitField0_ & 0x00000008) != 0)) {
7818  result.randomPolarityRatio_ = randomPolarityRatio_;
7819  to_bitField0_ |= 0x00000008;
7820  }
7821  if (((from_bitField0_ & 0x00000010) != 0)) {
7822  result.randomBranchesRatio_ = randomBranchesRatio_;
7823  to_bitField0_ |= 0x00000010;
7824  }
7825  if (((from_bitField0_ & 0x00000020) != 0)) {
7826  result.useErwaHeuristic_ = useErwaHeuristic_;
7827  to_bitField0_ |= 0x00000020;
7828  }
7829  if (((from_bitField0_ & 0x00000040) != 0)) {
7830  result.initialVariablesActivity_ = initialVariablesActivity_;
7831  to_bitField0_ |= 0x00000040;
7832  }
7833  if (((from_bitField0_ & 0x00000080) != 0)) {
7834  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7835  to_bitField0_ |= 0x00000080;
7836  }
7837  if (((from_bitField0_ & 0x00000100) != 0)) {
7838  to_bitField0_ |= 0x00000100;
7839  }
7840  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7841  if (((from_bitField0_ & 0x00000200) != 0)) {
7842  to_bitField0_ |= 0x00000200;
7843  }
7844  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7845  if (((from_bitField0_ & 0x00000400) != 0)) {
7846  to_bitField0_ |= 0x00000400;
7847  }
7848  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7849  if (((from_bitField0_ & 0x00000800) != 0)) {
7850  to_bitField0_ |= 0x00000800;
7851  }
7852  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7853  if (((from_bitField0_ & 0x00001000) != 0)) {
7854  to_bitField0_ |= 0x00001000;
7855  }
7856  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7857  if (((from_bitField0_ & 0x00002000) != 0)) {
7858  to_bitField0_ |= 0x00002000;
7859  }
7860  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7861  if (((from_bitField0_ & 0x00004000) != 0)) {
7862  to_bitField0_ |= 0x00004000;
7863  }
7864  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7865  if (((from_bitField0_ & 0x00008000) != 0)) {
7866  to_bitField0_ |= 0x00008000;
7867  }
7868  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7869  if (((from_bitField0_ & 0x00010000) != 0)) {
7870  to_bitField0_ |= 0x00010000;
7871  }
7872  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7873  if (((from_bitField0_ & 0x00020000) != 0)) {
7874  to_bitField0_ |= 0x00020000;
7875  }
7876  result.pbCleanupRatio_ = pbCleanupRatio_;
7877  if (((from_bitField0_ & 0x00040000) != 0)) {
7878  to_bitField0_ |= 0x00040000;
7879  }
7880  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7881  if (((from_bitField0_ & 0x00080000) != 0)) {
7882  to_bitField0_ |= 0x00080000;
7883  }
7884  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7885  if (((from_bitField0_ & 0x00100000) != 0)) {
7886  to_bitField0_ |= 0x00100000;
7887  }
7888  result.variableActivityDecay_ = variableActivityDecay_;
7889  if (((from_bitField0_ & 0x00200000) != 0)) {
7890  to_bitField0_ |= 0x00200000;
7891  }
7892  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7893  if (((from_bitField0_ & 0x00400000) != 0)) {
7894  to_bitField0_ |= 0x00400000;
7895  }
7896  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7897  if (((from_bitField0_ & 0x00800000) != 0)) {
7898  to_bitField0_ |= 0x00800000;
7899  }
7900  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7901  if (((from_bitField0_ & 0x01000000) != 0)) {
7902  to_bitField0_ |= 0x01000000;
7903  }
7904  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7905  if (((from_bitField0_ & 0x02000000) != 0)) {
7906  to_bitField0_ |= 0x02000000;
7907  }
7908  result.clauseActivityDecay_ = clauseActivityDecay_;
7909  if (((from_bitField0_ & 0x04000000) != 0)) {
7910  to_bitField0_ |= 0x04000000;
7911  }
7912  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7913  if (((bitField0_ & 0x08000000) != 0)) {
7914  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7915  bitField0_ = (bitField0_ & ~0x08000000);
7916  }
7917  result.restartAlgorithms_ = restartAlgorithms_;
7918  if (((from_bitField0_ & 0x10000000) != 0)) {
7919  to_bitField0_ |= 0x08000000;
7920  }
7921  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7922  if (((from_bitField0_ & 0x20000000) != 0)) {
7923  to_bitField0_ |= 0x10000000;
7924  }
7925  result.restartPeriod_ = restartPeriod_;
7926  if (((from_bitField0_ & 0x40000000) != 0)) {
7927  to_bitField0_ |= 0x20000000;
7928  }
7929  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7930  if (((from_bitField0_ & 0x80000000) != 0)) {
7931  to_bitField0_ |= 0x40000000;
7932  }
7933  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7934  if (((from_bitField1_ & 0x00000001) != 0)) {
7935  to_bitField0_ |= 0x80000000;
7936  }
7937  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7938  if (((from_bitField1_ & 0x00000002) != 0)) {
7939  result.useBlockingRestart_ = useBlockingRestart_;
7940  to_bitField1_ |= 0x00000001;
7941  }
7942  if (((from_bitField1_ & 0x00000004) != 0)) {
7943  to_bitField1_ |= 0x00000002;
7944  }
7945  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7946  if (((from_bitField1_ & 0x00000008) != 0)) {
7947  to_bitField1_ |= 0x00000004;
7948  }
7949  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7950  if (((from_bitField1_ & 0x00000010) != 0)) {
7951  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7952  to_bitField1_ |= 0x00000008;
7953  }
7954  if (((from_bitField1_ & 0x00000020) != 0)) {
7955  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7956  to_bitField1_ |= 0x00000010;
7957  }
7958  if (((from_bitField1_ & 0x00000040) != 0)) {
7959  to_bitField1_ |= 0x00000020;
7960  }
7961  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7962  if (((from_bitField1_ & 0x00000080) != 0)) {
7963  to_bitField1_ |= 0x00000040;
7964  }
7965  result.maxDeterministicTime_ = maxDeterministicTime_;
7966  if (((from_bitField1_ & 0x00000100) != 0)) {
7967  to_bitField1_ |= 0x00000080;
7968  }
7969  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7970  if (((from_bitField1_ & 0x00000200) != 0)) {
7971  to_bitField1_ |= 0x00000100;
7972  }
7973  result.maxMemoryInMb_ = maxMemoryInMb_;
7974  if (((from_bitField1_ & 0x00000400) != 0)) {
7975  to_bitField1_ |= 0x00000200;
7976  }
7977  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7978  if (((from_bitField1_ & 0x00000800) != 0)) {
7979  to_bitField1_ |= 0x00000400;
7980  }
7981  result.randomSeed_ = randomSeed_;
7982  if (((from_bitField1_ & 0x00001000) != 0)) {
7983  result.logSearchProgress_ = logSearchProgress_;
7984  to_bitField1_ |= 0x00000800;
7985  }
7986  if (((from_bitField1_ & 0x00002000) != 0)) {
7987  result.usePbResolution_ = usePbResolution_;
7988  to_bitField1_ |= 0x00001000;
7989  }
7990  if (((from_bitField1_ & 0x00004000) != 0)) {
7991  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7992  to_bitField1_ |= 0x00002000;
7993  }
7994  if (((from_bitField1_ & 0x00008000) != 0)) {
7995  to_bitField1_ |= 0x00004000;
7996  }
7997  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7998  if (((from_bitField1_ & 0x00010000) != 0)) {
7999  to_bitField1_ |= 0x00008000;
8000  }
8001  result.presolveBveThreshold_ = presolveBveThreshold_;
8002  if (((from_bitField1_ & 0x00020000) != 0)) {
8003  to_bitField1_ |= 0x00010000;
8004  }
8005  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
8006  if (((from_bitField1_ & 0x00040000) != 0)) {
8007  to_bitField1_ |= 0x00020000;
8008  }
8009  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
8010  if (((from_bitField1_ & 0x00080000) != 0)) {
8011  to_bitField1_ |= 0x00040000;
8012  }
8013  result.presolveBlockedClause_ = presolveBlockedClause_;
8014  if (((from_bitField1_ & 0x00100000) != 0)) {
8015  to_bitField1_ |= 0x00080000;
8016  }
8017  result.presolveUseBva_ = presolveUseBva_;
8018  if (((from_bitField1_ & 0x00200000) != 0)) {
8019  to_bitField1_ |= 0x00100000;
8020  }
8021  result.presolveBvaThreshold_ = presolveBvaThreshold_;
8022  if (((from_bitField1_ & 0x00400000) != 0)) {
8023  to_bitField1_ |= 0x00200000;
8024  }
8025  result.maxPresolveIterations_ = maxPresolveIterations_;
8026  if (((from_bitField1_ & 0x00800000) != 0)) {
8027  to_bitField1_ |= 0x00400000;
8028  }
8029  result.cpModelPresolve_ = cpModelPresolve_;
8030  if (((from_bitField1_ & 0x01000000) != 0)) {
8031  to_bitField1_ |= 0x00800000;
8032  }
8033  result.cpModelProbingLevel_ = cpModelProbingLevel_;
8034  if (((from_bitField1_ & 0x02000000) != 0)) {
8035  to_bitField1_ |= 0x01000000;
8036  }
8037  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
8038  if (((from_bitField1_ & 0x04000000) != 0)) {
8039  to_bitField1_ |= 0x02000000;
8040  }
8041  result.expandElementConstraints_ = expandElementConstraints_;
8042  if (((from_bitField1_ & 0x08000000) != 0)) {
8043  to_bitField1_ |= 0x04000000;
8044  }
8045  result.useOptimizationHints_ = useOptimizationHints_;
8046  if (((from_bitField1_ & 0x10000000) != 0)) {
8047  to_bitField1_ |= 0x08000000;
8048  }
8049  result.minimizeCore_ = minimizeCore_;
8050  if (((from_bitField1_ & 0x20000000) != 0)) {
8051  to_bitField1_ |= 0x10000000;
8052  }
8053  result.findMultipleCores_ = findMultipleCores_;
8054  if (((from_bitField1_ & 0x40000000) != 0)) {
8055  to_bitField1_ |= 0x20000000;
8056  }
8057  result.coverOptimization_ = coverOptimization_;
8058  if (((from_bitField1_ & 0x80000000) != 0)) {
8059  to_bitField1_ |= 0x40000000;
8060  }
8061  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
8062  if (((from_bitField2_ & 0x00000001) != 0)) {
8063  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
8064  to_bitField1_ |= 0x80000000;
8065  }
8066  if (((from_bitField2_ & 0x00000002) != 0)) {
8067  to_bitField2_ |= 0x00000001;
8068  }
8069  result.maxSatStratification_ = maxSatStratification_;
8070  if (((from_bitField2_ & 0x00000004) != 0)) {
8071  to_bitField2_ |= 0x00000002;
8072  }
8073  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
8074  if (((from_bitField2_ & 0x00000008) != 0)) {
8075  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
8076  to_bitField2_ |= 0x00000004;
8077  }
8078  if (((from_bitField2_ & 0x00000010) != 0)) {
8079  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
8080  to_bitField2_ |= 0x00000008;
8081  }
8082  if (((from_bitField2_ & 0x00000020) != 0)) {
8083  to_bitField2_ |= 0x00000010;
8084  }
8085  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
8086  if (((from_bitField2_ & 0x00000040) != 0)) {
8087  to_bitField2_ |= 0x00000020;
8088  }
8089  result.linearizationLevel_ = linearizationLevel_;
8090  if (((from_bitField2_ & 0x00000080) != 0)) {
8091  to_bitField2_ |= 0x00000040;
8092  }
8093  result.booleanEncodingLevel_ = booleanEncodingLevel_;
8094  if (((from_bitField2_ & 0x00000100) != 0)) {
8095  to_bitField2_ |= 0x00000080;
8096  }
8097  result.maxNumCuts_ = maxNumCuts_;
8098  if (((from_bitField2_ & 0x00000200) != 0)) {
8099  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
8100  to_bitField2_ |= 0x00000100;
8101  }
8102  if (((from_bitField2_ & 0x00000400) != 0)) {
8103  result.addKnapsackCuts_ = addKnapsackCuts_;
8104  to_bitField2_ |= 0x00000200;
8105  }
8106  if (((from_bitField2_ & 0x00000800) != 0)) {
8107  result.addCgCuts_ = addCgCuts_;
8108  to_bitField2_ |= 0x00000400;
8109  }
8110  if (((from_bitField2_ & 0x00001000) != 0)) {
8111  to_bitField2_ |= 0x00000800;
8112  }
8113  result.addMirCuts_ = addMirCuts_;
8114  if (((from_bitField2_ & 0x00002000) != 0)) {
8115  to_bitField2_ |= 0x00001000;
8116  }
8117  result.useMirRounding_ = useMirRounding_;
8118  if (((from_bitField2_ & 0x00004000) != 0)) {
8119  to_bitField2_ |= 0x00002000;
8120  }
8121  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
8122  if (((from_bitField2_ & 0x00008000) != 0)) {
8123  to_bitField2_ |= 0x00004000;
8124  }
8125  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
8126  if (((from_bitField2_ & 0x00010000) != 0)) {
8127  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
8128  to_bitField2_ |= 0x00008000;
8129  }
8130  if (((from_bitField2_ & 0x00020000) != 0)) {
8131  to_bitField2_ |= 0x00010000;
8132  }
8133  result.maxInactiveCount_ = maxInactiveCount_;
8134  if (((from_bitField2_ & 0x00040000) != 0)) {
8135  to_bitField2_ |= 0x00020000;
8136  }
8137  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
8138  if (((from_bitField2_ & 0x00080000) != 0)) {
8139  to_bitField2_ |= 0x00040000;
8140  }
8141  result.searchBranching_ = searchBranching_;
8142  if (((from_bitField2_ & 0x00100000) != 0)) {
8143  to_bitField2_ |= 0x00080000;
8144  }
8145  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
8146  if (((from_bitField2_ & 0x00200000) != 0)) {
8147  to_bitField2_ |= 0x00100000;
8148  }
8149  result.exploitAllLpSolution_ = exploitAllLpSolution_;
8150  if (((from_bitField2_ & 0x00400000) != 0)) {
8151  result.exploitBestSolution_ = exploitBestSolution_;
8152  to_bitField2_ |= 0x00200000;
8153  }
8154  if (((from_bitField2_ & 0x00800000) != 0)) {
8155  to_bitField2_ |= 0x00400000;
8156  }
8157  result.exploitObjective_ = exploitObjective_;
8158  if (((from_bitField2_ & 0x01000000) != 0)) {
8159  to_bitField2_ |= 0x00800000;
8160  }
8161  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
8162  if (((from_bitField2_ & 0x02000000) != 0)) {
8163  result.optimizeWithCore_ = optimizeWithCore_;
8164  to_bitField2_ |= 0x01000000;
8165  }
8166  if (((from_bitField2_ & 0x04000000) != 0)) {
8167  to_bitField2_ |= 0x02000000;
8168  }
8169  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
8170  if (((from_bitField2_ & 0x08000000) != 0)) {
8171  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
8172  to_bitField2_ |= 0x04000000;
8173  }
8174  if (((from_bitField2_ & 0x10000000) != 0)) {
8175  result.enumerateAllSolutions_ = enumerateAllSolutions_;
8176  to_bitField2_ |= 0x08000000;
8177  }
8178  if (((from_bitField2_ & 0x20000000) != 0)) {
8179  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
8180  to_bitField2_ |= 0x10000000;
8181  }
8182  if (((from_bitField2_ & 0x40000000) != 0)) {
8183  to_bitField2_ |= 0x20000000;
8184  }
8185  result.instantiateAllVariables_ = instantiateAllVariables_;
8186  if (((from_bitField2_ & 0x80000000) != 0)) {
8187  to_bitField2_ |= 0x40000000;
8188  }
8189  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
8190  if (((from_bitField3_ & 0x00000001) != 0)) {
8191  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
8192  to_bitField2_ |= 0x80000000;
8193  }
8194  if (((from_bitField3_ & 0x00000002) != 0)) {
8195  to_bitField3_ |= 0x00000001;
8196  }
8197  result.numSearchWorkers_ = numSearchWorkers_;
8198  if (((from_bitField3_ & 0x00000004) != 0)) {
8199  result.interleaveSearch_ = interleaveSearch_;
8200  to_bitField3_ |= 0x00000002;
8201  }
8202  if (((from_bitField3_ & 0x00000008) != 0)) {
8203  to_bitField3_ |= 0x00000004;
8204  }
8205  result.reduceMemoryUsageInInterleaveMode_ = reduceMemoryUsageInInterleaveMode_;
8206  if (((from_bitField3_ & 0x00000010) != 0)) {
8207  result.deterministicParallelSearch_ = deterministicParallelSearch_;
8208  to_bitField3_ |= 0x00000008;
8209  }
8210  if (((from_bitField3_ & 0x00000020) != 0)) {
8211  to_bitField3_ |= 0x00000010;
8212  }
8213  result.shareObjectiveBounds_ = shareObjectiveBounds_;
8214  if (((from_bitField3_ & 0x00000040) != 0)) {
8215  to_bitField3_ |= 0x00000020;
8216  }
8217  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
8218  if (((from_bitField3_ & 0x00000080) != 0)) {
8219  result.useLnsOnly_ = useLnsOnly_;
8220  to_bitField3_ |= 0x00000040;
8221  }
8222  if (((from_bitField3_ & 0x00000100) != 0)) {
8223  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
8224  to_bitField3_ |= 0x00000080;
8225  }
8226  if (((from_bitField3_ & 0x00000200) != 0)) {
8227  to_bitField3_ |= 0x00000100;
8228  }
8229  result.useRinsLns_ = useRinsLns_;
8230  if (((from_bitField3_ & 0x00000400) != 0)) {
8231  result.diversifyLnsParams_ = diversifyLnsParams_;
8232  to_bitField3_ |= 0x00000200;
8233  }
8234  if (((from_bitField3_ & 0x00000800) != 0)) {
8235  result.randomizeSearch_ = randomizeSearch_;
8236  to_bitField3_ |= 0x00000400;
8237  }
8238  if (((from_bitField3_ & 0x00001000) != 0)) {
8239  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
8240  to_bitField3_ |= 0x00000800;
8241  }
8242  if (((from_bitField3_ & 0x00002000) != 0)) {
8243  to_bitField3_ |= 0x00001000;
8244  }
8245  result.useOptionalVariables_ = useOptionalVariables_;
8246  if (((from_bitField3_ & 0x00004000) != 0)) {
8247  to_bitField3_ |= 0x00002000;
8248  }
8249  result.useExactLpReason_ = useExactLpReason_;
8250  if (((from_bitField3_ & 0x00008000) != 0)) {
8251  result.useBranchingInLp_ = useBranchingInLp_;
8252  to_bitField3_ |= 0x00004000;
8253  }
8254  if (((from_bitField3_ & 0x00010000) != 0)) {
8255  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
8256  to_bitField3_ |= 0x00008000;
8257  }
8258  if (((from_bitField3_ & 0x00020000) != 0)) {
8259  to_bitField3_ |= 0x00010000;
8260  }
8261  result.catchSigintSignal_ = catchSigintSignal_;
8262  if (((from_bitField3_ & 0x00040000) != 0)) {
8263  to_bitField3_ |= 0x00020000;
8264  }
8265  result.mipMaxBound_ = mipMaxBound_;
8266  if (((from_bitField3_ & 0x00080000) != 0)) {
8267  to_bitField3_ |= 0x00040000;
8268  }
8269  result.mipVarScaling_ = mipVarScaling_;
8270  if (((from_bitField3_ & 0x00100000) != 0)) {
8271  to_bitField3_ |= 0x00080000;
8272  }
8273  result.mipWantedPrecision_ = mipWantedPrecision_;
8274  if (((from_bitField3_ & 0x00200000) != 0)) {
8275  to_bitField3_ |= 0x00100000;
8276  }
8277  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
8278  if (((from_bitField3_ & 0x00400000) != 0)) {
8279  to_bitField3_ |= 0x00200000;
8280  }
8281  result.mipCheckPrecision_ = mipCheckPrecision_;
8282  result.bitField0_ = to_bitField0_;
8283  result.bitField1_ = to_bitField1_;
8284  result.bitField2_ = to_bitField2_;
8285  result.bitField3_ = to_bitField3_;
8286  onBuilt();
8287  return result;
8288  }
8289 
8290  @java.lang.Override
8291  public Builder clone() {
8292  return super.clone();
8293  }
8294  @java.lang.Override
8296  com.google.protobuf.Descriptors.FieldDescriptor field,
8297  java.lang.Object value) {
8298  return super.setField(field, value);
8299  }
8300  @java.lang.Override
8302  com.google.protobuf.Descriptors.FieldDescriptor field) {
8303  return super.clearField(field);
8304  }
8305  @java.lang.Override
8307  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
8308  return super.clearOneof(oneof);
8309  }
8310  @java.lang.Override
8312  com.google.protobuf.Descriptors.FieldDescriptor field,
8313  int index, java.lang.Object value) {
8314  return super.setRepeatedField(field, index, value);
8315  }
8316  @java.lang.Override
8318  com.google.protobuf.Descriptors.FieldDescriptor field,
8319  java.lang.Object value) {
8320  return super.addRepeatedField(field, value);
8321  }
8322  @java.lang.Override
8323  public Builder mergeFrom(com.google.protobuf.Message other) {
8324  if (other instanceof com.google.ortools.sat.SatParameters) {
8325  return mergeFrom((com.google.ortools.sat.SatParameters)other);
8326  } else {
8327  super.mergeFrom(other);
8328  return this;
8329  }
8330  }
8331 
8333  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8334  if (other.hasPreferredVariableOrder()) {
8335  setPreferredVariableOrder(other.getPreferredVariableOrder());
8336  }
8337  if (other.hasInitialPolarity()) {
8338  setInitialPolarity(other.getInitialPolarity());
8339  }
8340  if (other.hasUsePhaseSaving()) {
8341  setUsePhaseSaving(other.getUsePhaseSaving());
8342  }
8343  if (other.hasRandomPolarityRatio()) {
8344  setRandomPolarityRatio(other.getRandomPolarityRatio());
8345  }
8346  if (other.hasRandomBranchesRatio()) {
8347  setRandomBranchesRatio(other.getRandomBranchesRatio());
8348  }
8349  if (other.hasUseErwaHeuristic()) {
8350  setUseErwaHeuristic(other.getUseErwaHeuristic());
8351  }
8352  if (other.hasInitialVariablesActivity()) {
8353  setInitialVariablesActivity(other.getInitialVariablesActivity());
8354  }
8355  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8356  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8357  }
8358  if (other.hasMinimizationAlgorithm()) {
8359  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8360  }
8361  if (other.hasBinaryMinimizationAlgorithm()) {
8362  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8363  }
8364  if (other.hasSubsumptionDuringConflictAnalysis()) {
8365  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8366  }
8367  if (other.hasClauseCleanupPeriod()) {
8368  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8369  }
8370  if (other.hasClauseCleanupTarget()) {
8371  setClauseCleanupTarget(other.getClauseCleanupTarget());
8372  }
8373  if (other.hasClauseCleanupProtection()) {
8374  setClauseCleanupProtection(other.getClauseCleanupProtection());
8375  }
8376  if (other.hasClauseCleanupLbdBound()) {
8377  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8378  }
8379  if (other.hasClauseCleanupOrdering()) {
8380  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8381  }
8382  if (other.hasPbCleanupIncrement()) {
8383  setPbCleanupIncrement(other.getPbCleanupIncrement());
8384  }
8385  if (other.hasPbCleanupRatio()) {
8386  setPbCleanupRatio(other.getPbCleanupRatio());
8387  }
8388  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8389  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8390  }
8391  if (other.hasMinimizeWithPropagationNumDecisions()) {
8392  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8393  }
8394  if (other.hasVariableActivityDecay()) {
8395  setVariableActivityDecay(other.getVariableActivityDecay());
8396  }
8397  if (other.hasMaxVariableActivityValue()) {
8398  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8399  }
8400  if (other.hasGlucoseMaxDecay()) {
8401  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8402  }
8403  if (other.hasGlucoseDecayIncrement()) {
8404  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8405  }
8406  if (other.hasGlucoseDecayIncrementPeriod()) {
8407  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8408  }
8409  if (other.hasClauseActivityDecay()) {
8410  setClauseActivityDecay(other.getClauseActivityDecay());
8411  }
8412  if (other.hasMaxClauseActivityValue()) {
8413  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8414  }
8415  if (!other.restartAlgorithms_.isEmpty()) {
8416  if (restartAlgorithms_.isEmpty()) {
8417  restartAlgorithms_ = other.restartAlgorithms_;
8418  bitField0_ = (bitField0_ & ~0x08000000);
8419  } else {
8420  ensureRestartAlgorithmsIsMutable();
8421  restartAlgorithms_.addAll(other.restartAlgorithms_);
8422  }
8423  onChanged();
8424  }
8425  if (other.hasDefaultRestartAlgorithms()) {
8426  bitField0_ |= 0x10000000;
8427  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8428  onChanged();
8429  }
8430  if (other.hasRestartPeriod()) {
8431  setRestartPeriod(other.getRestartPeriod());
8432  }
8433  if (other.hasRestartRunningWindowSize()) {
8434  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8435  }
8436  if (other.hasRestartDlAverageRatio()) {
8437  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8438  }
8439  if (other.hasRestartLbdAverageRatio()) {
8440  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8441  }
8442  if (other.hasUseBlockingRestart()) {
8443  setUseBlockingRestart(other.getUseBlockingRestart());
8444  }
8445  if (other.hasBlockingRestartWindowSize()) {
8446  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8447  }
8448  if (other.hasBlockingRestartMultiplier()) {
8449  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8450  }
8451  if (other.hasNumConflictsBeforeStrategyChanges()) {
8452  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8453  }
8454  if (other.hasStrategyChangeIncreaseRatio()) {
8455  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8456  }
8457  if (other.hasMaxTimeInSeconds()) {
8458  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8459  }
8460  if (other.hasMaxDeterministicTime()) {
8461  setMaxDeterministicTime(other.getMaxDeterministicTime());
8462  }
8463  if (other.hasMaxNumberOfConflicts()) {
8464  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8465  }
8466  if (other.hasMaxMemoryInMb()) {
8467  setMaxMemoryInMb(other.getMaxMemoryInMb());
8468  }
8469  if (other.hasTreatBinaryClausesSeparately()) {
8470  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8471  }
8472  if (other.hasRandomSeed()) {
8473  setRandomSeed(other.getRandomSeed());
8474  }
8475  if (other.hasLogSearchProgress()) {
8476  setLogSearchProgress(other.getLogSearchProgress());
8477  }
8478  if (other.hasUsePbResolution()) {
8479  setUsePbResolution(other.getUsePbResolution());
8480  }
8481  if (other.hasMinimizeReductionDuringPbResolution()) {
8482  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8483  }
8484  if (other.hasCountAssumptionLevelsInLbd()) {
8485  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8486  }
8487  if (other.hasPresolveBveThreshold()) {
8488  setPresolveBveThreshold(other.getPresolveBveThreshold());
8489  }
8490  if (other.hasPresolveBveClauseWeight()) {
8491  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8492  }
8493  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8494  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8495  }
8496  if (other.hasPresolveBlockedClause()) {
8497  setPresolveBlockedClause(other.getPresolveBlockedClause());
8498  }
8499  if (other.hasPresolveUseBva()) {
8500  setPresolveUseBva(other.getPresolveUseBva());
8501  }
8502  if (other.hasPresolveBvaThreshold()) {
8503  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8504  }
8505  if (other.hasMaxPresolveIterations()) {
8506  setMaxPresolveIterations(other.getMaxPresolveIterations());
8507  }
8508  if (other.hasCpModelPresolve()) {
8509  setCpModelPresolve(other.getCpModelPresolve());
8510  }
8511  if (other.hasCpModelProbingLevel()) {
8512  setCpModelProbingLevel(other.getCpModelProbingLevel());
8513  }
8514  if (other.hasCpModelUseSatPresolve()) {
8515  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8516  }
8517  if (other.hasExpandElementConstraints()) {
8518  setExpandElementConstraints(other.getExpandElementConstraints());
8519  }
8520  if (other.hasUseOptimizationHints()) {
8521  setUseOptimizationHints(other.getUseOptimizationHints());
8522  }
8523  if (other.hasMinimizeCore()) {
8524  setMinimizeCore(other.getMinimizeCore());
8525  }
8526  if (other.hasFindMultipleCores()) {
8527  setFindMultipleCores(other.getFindMultipleCores());
8528  }
8529  if (other.hasCoverOptimization()) {
8530  setCoverOptimization(other.getCoverOptimization());
8531  }
8532  if (other.hasMaxSatAssumptionOrder()) {
8533  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8534  }
8535  if (other.hasMaxSatReverseAssumptionOrder()) {
8536  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8537  }
8538  if (other.hasMaxSatStratification()) {
8539  setMaxSatStratification(other.getMaxSatStratification());
8540  }
8541  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8542  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8543  }
8544  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8545  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8546  }
8547  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8548  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8549  }
8550  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8551  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8552  }
8553  if (other.hasLinearizationLevel()) {
8554  setLinearizationLevel(other.getLinearizationLevel());
8555  }
8556  if (other.hasBooleanEncodingLevel()) {
8557  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8558  }
8559  if (other.hasMaxNumCuts()) {
8560  setMaxNumCuts(other.getMaxNumCuts());
8561  }
8562  if (other.hasOnlyAddCutsAtLevelZero()) {
8563  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8564  }
8565  if (other.hasAddKnapsackCuts()) {
8566  setAddKnapsackCuts(other.getAddKnapsackCuts());
8567  }
8568  if (other.hasAddCgCuts()) {
8569  setAddCgCuts(other.getAddCgCuts());
8570  }
8571  if (other.hasAddMirCuts()) {
8572  setAddMirCuts(other.getAddMirCuts());
8573  }
8574  if (other.hasUseMirRounding()) {
8575  setUseMirRounding(other.getUseMirRounding());
8576  }
8577  if (other.hasMaxIntegerRoundingScaling()) {
8578  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8579  }
8580  if (other.hasAddLpConstraintsLazily()) {
8581  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8582  }
8583  if (other.hasMinOrthogonalityForLpConstraints()) {
8584  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8585  }
8586  if (other.hasMaxInactiveCount()) {
8587  setMaxInactiveCount(other.getMaxInactiveCount());
8588  }
8589  if (other.hasConstraintRemovalBatchSize()) {
8590  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8591  }
8592  if (other.hasSearchBranching()) {
8593  setSearchBranching(other.getSearchBranching());
8594  }
8595  if (other.hasExploitIntegerLpSolution()) {
8596  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8597  }
8598  if (other.hasExploitAllLpSolution()) {
8599  setExploitAllLpSolution(other.getExploitAllLpSolution());
8600  }
8601  if (other.hasExploitBestSolution()) {
8602  setExploitBestSolution(other.getExploitBestSolution());
8603  }
8604  if (other.hasExploitObjective()) {
8605  setExploitObjective(other.getExploitObjective());
8606  }
8607  if (other.hasPseudoCostReliabilityThreshold()) {
8608  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8609  }
8610  if (other.hasOptimizeWithCore()) {
8611  setOptimizeWithCore(other.getOptimizeWithCore());
8612  }
8613  if (other.hasBinarySearchNumConflicts()) {
8614  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8615  }
8616  if (other.hasOptimizeWithMaxHs()) {
8617  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8618  }
8619  if (other.hasEnumerateAllSolutions()) {
8620  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8621  }
8622  if (other.hasFillTightenedDomainsInResponse()) {
8623  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8624  }
8625  if (other.hasInstantiateAllVariables()) {
8626  setInstantiateAllVariables(other.getInstantiateAllVariables());
8627  }
8628  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8629  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8630  }
8631  if (other.hasStopAfterFirstSolution()) {
8632  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8633  }
8634  if (other.hasNumSearchWorkers()) {
8635  setNumSearchWorkers(other.getNumSearchWorkers());
8636  }
8637  if (other.hasInterleaveSearch()) {
8638  setInterleaveSearch(other.getInterleaveSearch());
8639  }
8640  if (other.hasReduceMemoryUsageInInterleaveMode()) {
8641  setReduceMemoryUsageInInterleaveMode(other.getReduceMemoryUsageInInterleaveMode());
8642  }
8643  if (other.hasDeterministicParallelSearch()) {
8644  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
8645  }
8646  if (other.hasShareObjectiveBounds()) {
8647  setShareObjectiveBounds(other.getShareObjectiveBounds());
8648  }
8649  if (other.hasShareLevelZeroBounds()) {
8650  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8651  }
8652  if (other.hasUseLnsOnly()) {
8653  setUseLnsOnly(other.getUseLnsOnly());
8654  }
8655  if (other.hasLnsFocusOnDecisionVariables()) {
8656  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8657  }
8658  if (other.hasUseRinsLns()) {
8659  setUseRinsLns(other.getUseRinsLns());
8660  }
8661  if (other.hasDiversifyLnsParams()) {
8662  setDiversifyLnsParams(other.getDiversifyLnsParams());
8663  }
8664  if (other.hasRandomizeSearch()) {
8665  setRandomizeSearch(other.getRandomizeSearch());
8666  }
8667  if (other.hasSearchRandomizationTolerance()) {
8668  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8669  }
8670  if (other.hasUseOptionalVariables()) {
8671  setUseOptionalVariables(other.getUseOptionalVariables());
8672  }
8673  if (other.hasUseExactLpReason()) {
8674  setUseExactLpReason(other.getUseExactLpReason());
8675  }
8676  if (other.hasUseBranchingInLp()) {
8677  setUseBranchingInLp(other.getUseBranchingInLp());
8678  }
8679  if (other.hasUseCombinedNoOverlap()) {
8680  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8681  }
8682  if (other.hasCatchSigintSignal()) {
8683  setCatchSigintSignal(other.getCatchSigintSignal());
8684  }
8685  if (other.hasMipMaxBound()) {
8686  setMipMaxBound(other.getMipMaxBound());
8687  }
8688  if (other.hasMipVarScaling()) {
8689  setMipVarScaling(other.getMipVarScaling());
8690  }
8691  if (other.hasMipWantedPrecision()) {
8692  setMipWantedPrecision(other.getMipWantedPrecision());
8693  }
8694  if (other.hasMipMaxActivityExponent()) {
8695  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8696  }
8697  if (other.hasMipCheckPrecision()) {
8698  setMipCheckPrecision(other.getMipCheckPrecision());
8699  }
8700  this.mergeUnknownFields(other.unknownFields);
8701  onChanged();
8702  return this;
8703  }
8704 
8705  @java.lang.Override
8706  public final boolean isInitialized() {
8707  return true;
8708  }
8709 
8710  @java.lang.Override
8712  com.google.protobuf.CodedInputStream input,
8713  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8714  throws java.io.IOException {
8715  com.google.ortools.sat.SatParameters parsedMessage = null;
8716  try {
8717  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8718  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8719  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8720  throw e.unwrapIOException();
8721  } finally {
8722  if (parsedMessage != null) {
8723  mergeFrom(parsedMessage);
8724  }
8725  }
8726  return this;
8727  }
8728  private int bitField0_;
8729  private int bitField1_;
8730  private int bitField2_;
8731  private int bitField3_;
8732 
8733  private int preferredVariableOrder_ = 0;
8737  public boolean hasPreferredVariableOrder() {
8738  return ((bitField0_ & 0x00000001) != 0);
8739  }
8744  @SuppressWarnings("deprecation")
8746  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8747  }
8752  if (value == null) {
8753  throw new NullPointerException();
8754  }
8755  bitField0_ |= 0x00000001;
8756  preferredVariableOrder_ = value.getNumber();
8757  onChanged();
8758  return this;
8759  }
8764  bitField0_ = (bitField0_ & ~0x00000001);
8765  preferredVariableOrder_ = 0;
8766  onChanged();
8767  return this;
8768  }
8769 
8770  private int initialPolarity_ = 1;
8774  public boolean hasInitialPolarity() {
8775  return ((bitField0_ & 0x00000002) != 0);
8776  }
8781  @SuppressWarnings("deprecation")
8783  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8784  }
8789  if (value == null) {
8790  throw new NullPointerException();
8791  }
8792  bitField0_ |= 0x00000002;
8793  initialPolarity_ = value.getNumber();
8794  onChanged();
8795  return this;
8796  }
8801  bitField0_ = (bitField0_ & ~0x00000002);
8802  initialPolarity_ = 1;
8803  onChanged();
8804  return this;
8805  }
8806 
8807  private boolean usePhaseSaving_ = true;
8821  public boolean hasUsePhaseSaving() {
8822  return ((bitField0_ & 0x00000004) != 0);
8823  }
8837  public boolean getUsePhaseSaving() {
8838  return usePhaseSaving_;
8839  }
8853  public Builder setUsePhaseSaving(boolean value) {
8854  bitField0_ |= 0x00000004;
8855  usePhaseSaving_ = value;
8856  onChanged();
8857  return this;
8858  }
8873  bitField0_ = (bitField0_ & ~0x00000004);
8874  usePhaseSaving_ = true;
8875  onChanged();
8876  return this;
8877  }
8878 
8879  private double randomPolarityRatio_ ;
8891  public boolean hasRandomPolarityRatio() {
8892  return ((bitField0_ & 0x00000008) != 0);
8893  }
8905  public double getRandomPolarityRatio() {
8906  return randomPolarityRatio_;
8907  }
8919  public Builder setRandomPolarityRatio(double value) {
8920  bitField0_ |= 0x00000008;
8921  randomPolarityRatio_ = value;
8922  onChanged();
8923  return this;
8924  }
8937  bitField0_ = (bitField0_ & ~0x00000008);
8938  randomPolarityRatio_ = 0D;
8939  onChanged();
8940  return this;
8941  }
8942 
8943  private double randomBranchesRatio_ ;
8953  public boolean hasRandomBranchesRatio() {
8954  return ((bitField0_ & 0x00000010) != 0);
8955  }
8965  public double getRandomBranchesRatio() {
8966  return randomBranchesRatio_;
8967  }
8977  public Builder setRandomBranchesRatio(double value) {
8978  bitField0_ |= 0x00000010;
8979  randomBranchesRatio_ = value;
8980  onChanged();
8981  return this;
8982  }
8993  bitField0_ = (bitField0_ & ~0x00000010);
8994  randomBranchesRatio_ = 0D;
8995  onChanged();
8996  return this;
8997  }
8998 
8999  private boolean useErwaHeuristic_ ;
9009  public boolean hasUseErwaHeuristic() {
9010  return ((bitField0_ & 0x00000020) != 0);
9011  }
9021  public boolean getUseErwaHeuristic() {
9022  return useErwaHeuristic_;
9023  }
9033  public Builder setUseErwaHeuristic(boolean value) {
9034  bitField0_ |= 0x00000020;
9035  useErwaHeuristic_ = value;
9036  onChanged();
9037  return this;
9038  }
9049  bitField0_ = (bitField0_ & ~0x00000020);
9050  useErwaHeuristic_ = false;
9051  onChanged();
9052  return this;
9053  }
9054 
9055  private double initialVariablesActivity_ ;
9068  public boolean hasInitialVariablesActivity() {
9069  return ((bitField0_ & 0x00000040) != 0);
9070  }
9084  return initialVariablesActivity_;
9085  }
9098  public Builder setInitialVariablesActivity(double value) {
9099  bitField0_ |= 0x00000040;
9100  initialVariablesActivity_ = value;
9101  onChanged();
9102  return this;
9103  }
9117  bitField0_ = (bitField0_ & ~0x00000040);
9118  initialVariablesActivity_ = 0D;
9119  onChanged();
9120  return this;
9121  }
9122 
9123  private boolean alsoBumpVariablesInConflictReasons_ ;
9135  return ((bitField0_ & 0x00000080) != 0);
9136  }
9148  return alsoBumpVariablesInConflictReasons_;
9149  }
9161  bitField0_ |= 0x00000080;
9162  alsoBumpVariablesInConflictReasons_ = value;
9163  onChanged();
9164  return this;
9165  }
9177  bitField0_ = (bitField0_ & ~0x00000080);
9178  alsoBumpVariablesInConflictReasons_ = false;
9179  onChanged();
9180  return this;
9181  }
9182 
9183  private int minimizationAlgorithm_ = 2;
9187  public boolean hasMinimizationAlgorithm() {
9188  return ((bitField0_ & 0x00000100) != 0);
9189  }
9194  @SuppressWarnings("deprecation")
9196  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
9197  }
9202  if (value == null) {
9203  throw new NullPointerException();
9204  }
9205  bitField0_ |= 0x00000100;
9206  minimizationAlgorithm_ = value.getNumber();
9207  onChanged();
9208  return this;
9209  }
9214  bitField0_ = (bitField0_ & ~0x00000100);
9215  minimizationAlgorithm_ = 2;
9216  onChanged();
9217  return this;
9218  }
9219 
9220  private int binaryMinimizationAlgorithm_ = 1;
9225  return ((bitField0_ & 0x00000200) != 0);
9226  }
9231  @SuppressWarnings("deprecation")
9234  }
9239  if (value == null) {
9240  throw new NullPointerException();
9241  }
9242  bitField0_ |= 0x00000200;
9243  binaryMinimizationAlgorithm_ = value.getNumber();
9244  onChanged();
9245  return this;
9246  }
9251  bitField0_ = (bitField0_ & ~0x00000200);
9252  binaryMinimizationAlgorithm_ = 1;
9253  onChanged();
9254  return this;
9255  }
9256 
9257  private boolean subsumptionDuringConflictAnalysis_ = true;
9269  return ((bitField0_ & 0x00000400) != 0);
9270  }
9282  return subsumptionDuringConflictAnalysis_;
9283  }
9295  bitField0_ |= 0x00000400;
9296  subsumptionDuringConflictAnalysis_ = value;
9297  onChanged();
9298  return this;
9299  }
9311  bitField0_ = (bitField0_ & ~0x00000400);
9312  subsumptionDuringConflictAnalysis_ = true;
9313  onChanged();
9314  return this;
9315  }
9316 
9317  private int clauseCleanupPeriod_ = 10000;
9325  public boolean hasClauseCleanupPeriod() {
9326  return ((bitField0_ & 0x00000800) != 0);
9327  }
9335  public int getClauseCleanupPeriod() {
9336  return clauseCleanupPeriod_;
9337  }
9345  public Builder setClauseCleanupPeriod(int value) {
9346  bitField0_ |= 0x00000800;
9347  clauseCleanupPeriod_ = value;
9348  onChanged();
9349  return this;
9350  }
9359  bitField0_ = (bitField0_ & ~0x00000800);
9360  clauseCleanupPeriod_ = 10000;
9361  onChanged();
9362  return this;
9363  }
9364 
9365  private int clauseCleanupTarget_ = 10000;
9374  public boolean hasClauseCleanupTarget() {
9375  return ((bitField0_ & 0x00001000) != 0);
9376  }
9385  public int getClauseCleanupTarget() {
9386  return clauseCleanupTarget_;
9387  }
9396  public Builder setClauseCleanupTarget(int value) {
9397  bitField0_ |= 0x00001000;
9398  clauseCleanupTarget_ = value;
9399  onChanged();
9400  return this;
9401  }
9411  bitField0_ = (bitField0_ & ~0x00001000);
9412  clauseCleanupTarget_ = 10000;
9413  onChanged();
9414  return this;
9415  }
9416 
9417  private int clauseCleanupProtection_ = 0;
9421  public boolean hasClauseCleanupProtection() {
9422  return ((bitField0_ & 0x00002000) != 0);
9423  }
9428  @SuppressWarnings("deprecation")
9430  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9431  }
9436  if (value == null) {
9437  throw new NullPointerException();
9438  }
9439  bitField0_ |= 0x00002000;
9440  clauseCleanupProtection_ = value.getNumber();
9441  onChanged();
9442  return this;
9443  }
9448  bitField0_ = (bitField0_ & ~0x00002000);
9449  clauseCleanupProtection_ = 0;
9450  onChanged();
9451  return this;
9452  }
9453 
9454  private int clauseCleanupLbdBound_ = 5;
9463  public boolean hasClauseCleanupLbdBound() {
9464  return ((bitField0_ & 0x00004000) != 0);
9465  }
9475  return clauseCleanupLbdBound_;
9476  }
9485  public Builder setClauseCleanupLbdBound(int value) {
9486  bitField0_ |= 0x00004000;
9487  clauseCleanupLbdBound_ = value;
9488  onChanged();
9489  return this;
9490  }
9500  bitField0_ = (bitField0_ & ~0x00004000);
9501  clauseCleanupLbdBound_ = 5;
9502  onChanged();
9503  return this;
9504  }
9505 
9506  private int clauseCleanupOrdering_ = 0;
9510  public boolean hasClauseCleanupOrdering() {
9511  return ((bitField0_ & 0x00008000) != 0);
9512  }
9517  @SuppressWarnings("deprecation")
9519  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9520  }
9525  if (value == null) {
9526  throw new NullPointerException();
9527  }
9528  bitField0_ |= 0x00008000;
9529  clauseCleanupOrdering_ = value.getNumber();
9530  onChanged();
9531  return this;
9532  }
9537  bitField0_ = (bitField0_ & ~0x00008000);
9538  clauseCleanupOrdering_ = 0;
9539  onChanged();
9540  return this;
9541  }
9542 
9543  private int pbCleanupIncrement_ = 200;
9551  public boolean hasPbCleanupIncrement() {
9552  return ((bitField0_ & 0x00010000) != 0);
9553  }
9561  public int getPbCleanupIncrement() {
9562  return pbCleanupIncrement_;
9563  }
9571  public Builder setPbCleanupIncrement(int value) {
9572  bitField0_ |= 0x00010000;
9573  pbCleanupIncrement_ = value;
9574  onChanged();
9575  return this;
9576  }
9585  bitField0_ = (bitField0_ & ~0x00010000);
9586  pbCleanupIncrement_ = 200;
9587  onChanged();
9588  return this;
9589  }
9590 
9591  private double pbCleanupRatio_ = 0.5D;
9595  public boolean hasPbCleanupRatio() {
9596  return ((bitField0_ & 0x00020000) != 0);
9597  }
9601  public double getPbCleanupRatio() {
9602  return pbCleanupRatio_;
9603  }
9607  public Builder setPbCleanupRatio(double value) {
9608  bitField0_ |= 0x00020000;
9609  pbCleanupRatio_ = value;
9610  onChanged();
9611  return this;
9612  }
9617  bitField0_ = (bitField0_ & ~0x00020000);
9618  pbCleanupRatio_ = 0.5D;
9619  onChanged();
9620  return this;
9621  }
9622 
9623  private int minimizeWithPropagationRestartPeriod_ = 10;
9642  return ((bitField0_ & 0x00040000) != 0);
9643  }
9662  return minimizeWithPropagationRestartPeriod_;
9663  }
9682  bitField0_ |= 0x00040000;
9683  minimizeWithPropagationRestartPeriod_ = value;
9684  onChanged();
9685  return this;
9686  }
9705  bitField0_ = (bitField0_ & ~0x00040000);
9706  minimizeWithPropagationRestartPeriod_ = 10;
9707  onChanged();
9708  return this;
9709  }
9710 
9711  private int minimizeWithPropagationNumDecisions_ = 1000;
9716  return ((bitField0_ & 0x00080000) != 0);
9717  }
9722  return minimizeWithPropagationNumDecisions_;
9723  }
9728  bitField0_ |= 0x00080000;
9729  minimizeWithPropagationNumDecisions_ = value;
9730  onChanged();
9731  return this;
9732  }
9737  bitField0_ = (bitField0_ & ~0x00080000);
9738  minimizeWithPropagationNumDecisions_ = 1000;
9739  onChanged();
9740  return this;
9741  }
9742 
9743  private double variableActivityDecay_ = 0.8D;
9757  public boolean hasVariableActivityDecay() {
9758  return ((bitField0_ & 0x00100000) != 0);
9759  }
9773  public double getVariableActivityDecay() {
9774  return variableActivityDecay_;
9775  }
9789  public Builder setVariableActivityDecay(double value) {
9790  bitField0_ |= 0x00100000;
9791  variableActivityDecay_ = value;
9792  onChanged();
9793  return this;
9794  }
9809  bitField0_ = (bitField0_ & ~0x00100000);
9810  variableActivityDecay_ = 0.8D;
9811  onChanged();
9812  return this;
9813  }
9814 
9815  private double maxVariableActivityValue_ = 1e+100D;
9819  public boolean hasMaxVariableActivityValue() {
9820  return ((bitField0_ & 0x00200000) != 0);
9821  }
9826  return maxVariableActivityValue_;
9827  }
9831  public Builder setMaxVariableActivityValue(double value) {
9832  bitField0_ |= 0x00200000;
9833  maxVariableActivityValue_ = value;
9834  onChanged();
9835  return this;
9836  }
9841  bitField0_ = (bitField0_ & ~0x00200000);
9842  maxVariableActivityValue_ = 1e+100D;
9843  onChanged();
9844  return this;
9845  }
9846 
9847  private double glucoseMaxDecay_ = 0.95D;
9858  public boolean hasGlucoseMaxDecay() {
9859  return ((bitField0_ & 0x00400000) != 0);
9860  }
9871  public double getGlucoseMaxDecay() {
9872  return glucoseMaxDecay_;
9873  }
9884  public Builder setGlucoseMaxDecay(double value) {
9885  bitField0_ |= 0x00400000;
9886  glucoseMaxDecay_ = value;
9887  onChanged();
9888  return this;
9889  }
9901  bitField0_ = (bitField0_ & ~0x00400000);
9902  glucoseMaxDecay_ = 0.95D;
9903  onChanged();
9904  return this;
9905  }
9906 
9907  private double glucoseDecayIncrement_ = 0.01D;
9911  public boolean hasGlucoseDecayIncrement() {
9912  return ((bitField0_ & 0x00800000) != 0);
9913  }
9917  public double getGlucoseDecayIncrement() {
9918  return glucoseDecayIncrement_;
9919  }
9923  public Builder setGlucoseDecayIncrement(double value) {
9924  bitField0_ |= 0x00800000;
9925  glucoseDecayIncrement_ = value;
9926  onChanged();
9927  return this;
9928  }
9933  bitField0_ = (bitField0_ & ~0x00800000);
9934  glucoseDecayIncrement_ = 0.01D;
9935  onChanged();
9936  return this;
9937  }
9938 
9939  private int glucoseDecayIncrementPeriod_ = 5000;
9944  return ((bitField0_ & 0x01000000) != 0);
9945  }
9950  return glucoseDecayIncrementPeriod_;
9951  }
9956  bitField0_ |= 0x01000000;
9957  glucoseDecayIncrementPeriod_ = value;
9958  onChanged();
9959  return this;
9960  }
9965  bitField0_ = (bitField0_ & ~0x01000000);
9966  glucoseDecayIncrementPeriod_ = 5000;
9967  onChanged();
9968  return this;
9969  }
9970 
9971  private double clauseActivityDecay_ = 0.999D;
9979  public boolean hasClauseActivityDecay() {
9980  return ((bitField0_ & 0x02000000) != 0);
9981  }
9989  public double getClauseActivityDecay() {
9990  return clauseActivityDecay_;
9991  }
9999  public Builder setClauseActivityDecay(double value) {
10000  bitField0_ |= 0x02000000;
10001  clauseActivityDecay_ = value;
10002  onChanged();
10003  return this;
10004  }
10013  bitField0_ = (bitField0_ & ~0x02000000);
10014  clauseActivityDecay_ = 0.999D;
10015  onChanged();
10016  return this;
10017  }
10018 
10019  private double maxClauseActivityValue_ = 1e+20D;
10023  public boolean hasMaxClauseActivityValue() {
10024  return ((bitField0_ & 0x04000000) != 0);
10025  }
10029  public double getMaxClauseActivityValue() {
10030  return maxClauseActivityValue_;
10031  }
10035  public Builder setMaxClauseActivityValue(double value) {
10036  bitField0_ |= 0x04000000;
10037  maxClauseActivityValue_ = value;
10038  onChanged();
10039  return this;
10040  }
10045  bitField0_ = (bitField0_ & ~0x04000000);
10046  maxClauseActivityValue_ = 1e+20D;
10047  onChanged();
10048  return this;
10049  }
10050 
10051  private java.util.List<java.lang.Integer> restartAlgorithms_ =
10052  java.util.Collections.emptyList();
10053  private void ensureRestartAlgorithmsIsMutable() {
10054  if (!((bitField0_ & 0x08000000) != 0)) {
10055  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
10056  bitField0_ |= 0x08000000;
10057  }
10058  }
10074  return new com.google.protobuf.Internal.ListAdapter<
10075  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
10076  }
10092  return restartAlgorithms_.size();
10093  }
10109  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
10110  }
10126  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
10127  if (value == null) {
10128  throw new NullPointerException();
10129  }
10130  ensureRestartAlgorithmsIsMutable();
10131  restartAlgorithms_.set(index, value.getNumber());
10132  onChanged();
10133  return this;
10134  }
10150  if (value == null) {
10151  throw new NullPointerException();
10152  }
10153  ensureRestartAlgorithmsIsMutable();
10154  restartAlgorithms_.add(value.getNumber());
10155  onChanged();
10156  return this;
10157  }
10173  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
10174  ensureRestartAlgorithmsIsMutable();
10175  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
10176  restartAlgorithms_.add(value.getNumber());
10177  }
10178  onChanged();
10179  return this;
10180  }
10196  restartAlgorithms_ = java.util.Collections.emptyList();
10197  bitField0_ = (bitField0_ & ~0x08000000);
10198  onChanged();
10199  return this;
10200  }
10201 
10202  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
10206  public boolean hasDefaultRestartAlgorithms() {
10207  return ((bitField0_ & 0x10000000) != 0);
10208  }
10212  public java.lang.String getDefaultRestartAlgorithms() {
10213  java.lang.Object ref = defaultRestartAlgorithms_;
10214  if (!(ref instanceof java.lang.String)) {
10215  com.google.protobuf.ByteString bs =
10216  (com.google.protobuf.ByteString) ref;
10217  java.lang.String s = bs.toStringUtf8();
10218  if (bs.isValidUtf8()) {
10219  defaultRestartAlgorithms_ = s;
10220  }
10221  return s;
10222  } else {
10223  return (java.lang.String) ref;
10224  }
10225  }
10229  public com.google.protobuf.ByteString
10231  java.lang.Object ref = defaultRestartAlgorithms_;
10232  if (ref instanceof String) {
10233  com.google.protobuf.ByteString b =
10234  com.google.protobuf.ByteString.copyFromUtf8(
10235  (java.lang.String) ref);
10236  defaultRestartAlgorithms_ = b;
10237  return b;
10238  } else {
10239  return (com.google.protobuf.ByteString) ref;
10240  }
10241  }
10246  java.lang.String value) {
10247  if (value == null) {
10248  throw new NullPointerException();
10249  }
10250  bitField0_ |= 0x10000000;
10251  defaultRestartAlgorithms_ = value;
10252  onChanged();
10253  return this;
10254  }
10259  bitField0_ = (bitField0_ & ~0x10000000);
10260  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
10261  onChanged();
10262  return this;
10263  }
10268  com.google.protobuf.ByteString value) {
10269  if (value == null) {
10270  throw new NullPointerException();
10271  }
10272  bitField0_ |= 0x10000000;
10273  defaultRestartAlgorithms_ = value;
10274  onChanged();
10275  return this;
10276  }
10277 
10278  private int restartPeriod_ = 50;
10287  public boolean hasRestartPeriod() {
10288  return ((bitField0_ & 0x20000000) != 0);
10289  }
10298  public int getRestartPeriod() {
10299  return restartPeriod_;
10300  }
10309  public Builder setRestartPeriod(int value) {
10310  bitField0_ |= 0x20000000;
10311  restartPeriod_ = value;
10312  onChanged();
10313  return this;
10314  }
10324  bitField0_ = (bitField0_ & ~0x20000000);
10325  restartPeriod_ = 50;
10326  onChanged();
10327  return this;
10328  }
10329 
10330  private int restartRunningWindowSize_ = 50;
10338  public boolean hasRestartRunningWindowSize() {
10339  return ((bitField0_ & 0x40000000) != 0);
10340  }
10349  return restartRunningWindowSize_;
10350  }
10359  bitField0_ |= 0x40000000;
10360  restartRunningWindowSize_ = value;
10361  onChanged();
10362  return this;
10363  }
10372  bitField0_ = (bitField0_ & ~0x40000000);
10373  restartRunningWindowSize_ = 50;
10374  onChanged();
10375  return this;
10376  }
10377 
10378  private double restartDlAverageRatio_ = 1D;
10387  public boolean hasRestartDlAverageRatio() {
10388  return ((bitField0_ & 0x80000000) != 0);
10389  }
10398  public double getRestartDlAverageRatio() {
10399  return restartDlAverageRatio_;
10400  }
10409  public Builder setRestartDlAverageRatio(double value) {
10410  bitField0_ |= 0x80000000;
10411  restartDlAverageRatio_ = value;
10412  onChanged();
10413  return this;
10414  }
10424  bitField0_ = (bitField0_ & ~0x80000000);
10425  restartDlAverageRatio_ = 1D;
10426  onChanged();
10427  return this;
10428  }
10429 
10430  private double restartLbdAverageRatio_ = 1D;
10434  public boolean hasRestartLbdAverageRatio() {
10435  return ((bitField1_ & 0x00000001) != 0);
10436  }
10440  public double getRestartLbdAverageRatio() {
10441  return restartLbdAverageRatio_;
10442  }
10446  public Builder setRestartLbdAverageRatio(double value) {
10447  bitField1_ |= 0x00000001;
10448  restartLbdAverageRatio_ = value;
10449  onChanged();
10450  return this;
10451  }
10456  bitField1_ = (bitField1_ & ~0x00000001);
10457  restartLbdAverageRatio_ = 1D;
10458  onChanged();
10459  return this;
10460  }
10461 
10462  private boolean useBlockingRestart_ ;
10472  public boolean hasUseBlockingRestart() {
10473  return ((bitField1_ & 0x00000002) != 0);
10474  }
10484  public boolean getUseBlockingRestart() {
10485  return useBlockingRestart_;
10486  }
10496  public Builder setUseBlockingRestart(boolean value) {
10497  bitField1_ |= 0x00000002;
10498  useBlockingRestart_ = value;
10499  onChanged();
10500  return this;
10501  }
10512  bitField1_ = (bitField1_ & ~0x00000002);
10513  useBlockingRestart_ = false;
10514  onChanged();
10515  return this;
10516  }
10517 
10518  private int blockingRestartWindowSize_ = 5000;
10522  public boolean hasBlockingRestartWindowSize() {
10523  return ((bitField1_ & 0x00000004) != 0);
10524  }
10529  return blockingRestartWindowSize_;
10530  }
10535  bitField1_ |= 0x00000004;
10536  blockingRestartWindowSize_ = value;
10537  onChanged();
10538  return this;
10539  }
10544  bitField1_ = (bitField1_ & ~0x00000004);
10545  blockingRestartWindowSize_ = 5000;
10546  onChanged();
10547  return this;
10548  }
10549 
10550  private double blockingRestartMultiplier_ = 1.4D;
10554  public boolean hasBlockingRestartMultiplier() {
10555  return ((bitField1_ & 0x00000008) != 0);
10556  }
10561  return blockingRestartMultiplier_;
10562  }
10566  public Builder setBlockingRestartMultiplier(double value) {
10567  bitField1_ |= 0x00000008;
10568  blockingRestartMultiplier_ = value;
10569  onChanged();
10570  return this;
10571  }
10576  bitField1_ = (bitField1_ & ~0x00000008);
10577  blockingRestartMultiplier_ = 1.4D;
10578  onChanged();
10579  return this;
10580  }
10581 
10582  private int numConflictsBeforeStrategyChanges_ ;
10593  return ((bitField1_ & 0x00000010) != 0);
10594  }
10605  return numConflictsBeforeStrategyChanges_;
10606  }
10617  bitField1_ |= 0x00000010;
10618  numConflictsBeforeStrategyChanges_ = value;
10619  onChanged();
10620  return this;
10621  }
10632  bitField1_ = (bitField1_ & ~0x00000010);
10633  numConflictsBeforeStrategyChanges_ = 0;
10634  onChanged();
10635  return this;
10636  }
10637 
10638  private double strategyChangeIncreaseRatio_ ;
10648  return ((bitField1_ & 0x00000020) != 0);
10649  }
10659  return strategyChangeIncreaseRatio_;
10660  }
10670  bitField1_ |= 0x00000020;
10671  strategyChangeIncreaseRatio_ = value;
10672  onChanged();
10673  return this;
10674  }
10684  bitField1_ = (bitField1_ & ~0x00000020);
10685  strategyChangeIncreaseRatio_ = 0D;
10686  onChanged();
10687  return this;
10688  }
10689 
10690  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10700  public boolean hasMaxTimeInSeconds() {
10701  return ((bitField1_ & 0x00000040) != 0);
10702  }
10712  public double getMaxTimeInSeconds() {
10713  return maxTimeInSeconds_;
10714  }
10724  public Builder setMaxTimeInSeconds(double value) {
10725  bitField1_ |= 0x00000040;
10726  maxTimeInSeconds_ = value;
10727  onChanged();
10728  return this;
10729  }
10740  bitField1_ = (bitField1_ & ~0x00000040);
10741  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10742  onChanged();
10743  return this;
10744  }
10745 
10746  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10758  public boolean hasMaxDeterministicTime() {
10759  return ((bitField1_ & 0x00000080) != 0);
10760  }
10772  public double getMaxDeterministicTime() {
10773  return maxDeterministicTime_;
10774  }
10786  public Builder setMaxDeterministicTime(double value) {
10787  bitField1_ |= 0x00000080;
10788  maxDeterministicTime_ = value;
10789  onChanged();
10790  return this;
10791  }
10804  bitField1_ = (bitField1_ & ~0x00000080);
10805  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10806  onChanged();
10807  return this;
10808  }
10809 
10810  private long maxNumberOfConflicts_ = 9223372036854775807L;
10823  public boolean hasMaxNumberOfConflicts() {
10824  return ((bitField1_ & 0x00000100) != 0);
10825  }
10838  public long getMaxNumberOfConflicts() {
10839  return maxNumberOfConflicts_;
10840  }
10853  public Builder setMaxNumberOfConflicts(long value) {
10854  bitField1_ |= 0x00000100;
10855  maxNumberOfConflicts_ = value;
10856  onChanged();
10857  return this;
10858  }
10872  bitField1_ = (bitField1_ & ~0x00000100);
10873  maxNumberOfConflicts_ = 9223372036854775807L;
10874  onChanged();
10875  return this;
10876  }
10877 
10878  private long maxMemoryInMb_ = 10000L;
10889  public boolean hasMaxMemoryInMb() {
10890  return ((bitField1_ & 0x00000200) != 0);
10891  }
10902  public long getMaxMemoryInMb() {
10903  return maxMemoryInMb_;
10904  }
10915  public Builder setMaxMemoryInMb(long value) {
10916  bitField1_ |= 0x00000200;
10917  maxMemoryInMb_ = value;
10918  onChanged();
10919  return this;
10920  }
10932  bitField1_ = (bitField1_ & ~0x00000200);
10933  maxMemoryInMb_ = 10000L;
10934  onChanged();
10935  return this;
10936  }
10937 
10938  private boolean treatBinaryClausesSeparately_ = true;
10949  return ((bitField1_ & 0x00000400) != 0);
10950  }
10961  return treatBinaryClausesSeparately_;
10962  }
10973  bitField1_ |= 0x00000400;
10974  treatBinaryClausesSeparately_ = value;
10975  onChanged();
10976  return this;
10977  }
10988  bitField1_ = (bitField1_ & ~0x00000400);
10989  treatBinaryClausesSeparately_ = true;
10990  onChanged();
10991  return this;
10992  }
10993 
10994  private int randomSeed_ = 1;
11007  public boolean hasRandomSeed() {
11008  return ((bitField1_ & 0x00000800) != 0);
11009  }
11022  public int getRandomSeed() {
11023  return randomSeed_;
11024  }
11037  public Builder setRandomSeed(int value) {
11038  bitField1_ |= 0x00000800;
11039  randomSeed_ = value;
11040  onChanged();
11041  return this;
11042  }
11056  bitField1_ = (bitField1_ & ~0x00000800);
11057  randomSeed_ = 1;
11058  onChanged();
11059  return this;
11060  }
11061 
11062  private boolean logSearchProgress_ ;
11070  public boolean hasLogSearchProgress() {
11071  return ((bitField1_ & 0x00001000) != 0);
11072  }
11080  public boolean getLogSearchProgress() {
11081  return logSearchProgress_;
11082  }
11090  public Builder setLogSearchProgress(boolean value) {
11091  bitField1_ |= 0x00001000;
11092  logSearchProgress_ = value;
11093  onChanged();
11094  return this;
11095  }
11104  bitField1_ = (bitField1_ & ~0x00001000);
11105  logSearchProgress_ = false;
11106  onChanged();
11107  return this;
11108  }
11109 
11110  private boolean usePbResolution_ ;
11121  public boolean hasUsePbResolution() {
11122  return ((bitField1_ & 0x00002000) != 0);
11123  }
11134  public boolean getUsePbResolution() {
11135  return usePbResolution_;
11136  }
11147  public Builder setUsePbResolution(boolean value) {
11148  bitField1_ |= 0x00002000;
11149  usePbResolution_ = value;
11150  onChanged();
11151  return this;
11152  }
11164  bitField1_ = (bitField1_ & ~0x00002000);
11165  usePbResolution_ = false;
11166  onChanged();
11167  return this;
11168  }
11169 
11170  private boolean minimizeReductionDuringPbResolution_ ;
11182  return ((bitField1_ & 0x00004000) != 0);
11183  }
11195  return minimizeReductionDuringPbResolution_;
11196  }
11208  bitField1_ |= 0x00004000;
11209  minimizeReductionDuringPbResolution_ = value;
11210  onChanged();
11211  return this;
11212  }
11224  bitField1_ = (bitField1_ & ~0x00004000);
11225  minimizeReductionDuringPbResolution_ = false;
11226  onChanged();
11227  return this;
11228  }
11229 
11230  private boolean countAssumptionLevelsInLbd_ = true;
11246  return ((bitField1_ & 0x00008000) != 0);
11247  }
11263  return countAssumptionLevelsInLbd_;
11264  }
11279  public Builder setCountAssumptionLevelsInLbd(boolean value) {
11280  bitField1_ |= 0x00008000;
11281  countAssumptionLevelsInLbd_ = value;
11282  onChanged();
11283  return this;
11284  }
11300  bitField1_ = (bitField1_ & ~0x00008000);
11301  countAssumptionLevelsInLbd_ = true;
11302  onChanged();
11303  return this;
11304  }
11305 
11306  private int presolveBveThreshold_ = 500;
11316  public boolean hasPresolveBveThreshold() {
11317  return ((bitField1_ & 0x00010000) != 0);
11318  }
11329  return presolveBveThreshold_;
11330  }
11340  public Builder setPresolveBveThreshold(int value) {
11341  bitField1_ |= 0x00010000;
11342  presolveBveThreshold_ = value;
11343  onChanged();
11344  return this;
11345  }
11356  bitField1_ = (bitField1_ & ~0x00010000);
11357  presolveBveThreshold_ = 500;
11358  onChanged();
11359  return this;
11360  }
11361 
11362  private int presolveBveClauseWeight_ = 3;
11371  public boolean hasPresolveBveClauseWeight() {
11372  return ((bitField1_ & 0x00020000) != 0);
11373  }
11383  return presolveBveClauseWeight_;
11384  }
11394  bitField1_ |= 0x00020000;
11395  presolveBveClauseWeight_ = value;
11396  onChanged();
11397  return this;
11398  }
11408  bitField1_ = (bitField1_ & ~0x00020000);
11409  presolveBveClauseWeight_ = 3;
11410  onChanged();
11411  return this;
11412  }
11413 
11414  private double presolveProbingDeterministicTimeLimit_ = 30D;
11424  return ((bitField1_ & 0x00040000) != 0);
11425  }
11435  return presolveProbingDeterministicTimeLimit_;
11436  }
11446  bitField1_ |= 0x00040000;
11447  presolveProbingDeterministicTimeLimit_ = value;
11448  onChanged();
11449  return this;
11450  }
11460  bitField1_ = (bitField1_ & ~0x00040000);
11461  presolveProbingDeterministicTimeLimit_ = 30D;
11462  onChanged();
11463  return this;
11464  }
11465 
11466  private boolean presolveBlockedClause_ = true;
11475  public boolean hasPresolveBlockedClause() {
11476  return ((bitField1_ & 0x00080000) != 0);
11477  }
11486  public boolean getPresolveBlockedClause() {
11487  return presolveBlockedClause_;
11488  }
11497  public Builder setPresolveBlockedClause(boolean value) {
11498  bitField1_ |= 0x00080000;
11499  presolveBlockedClause_ = value;
11500  onChanged();
11501  return this;
11502  }
11512  bitField1_ = (bitField1_ & ~0x00080000);
11513  presolveBlockedClause_ = true;
11514  onChanged();
11515  return this;
11516  }
11517 
11518  private boolean presolveUseBva_ = true;
11526  public boolean hasPresolveUseBva() {
11527  return ((bitField1_ & 0x00100000) != 0);
11528  }
11536  public boolean getPresolveUseBva() {
11537  return presolveUseBva_;
11538  }
11546  public Builder setPresolveUseBva(boolean value) {
11547  bitField1_ |= 0x00100000;
11548  presolveUseBva_ = value;
11549  onChanged();
11550  return this;
11551  }
11560  bitField1_ = (bitField1_ & ~0x00100000);
11561  presolveUseBva_ = true;
11562  onChanged();
11563  return this;
11564  }
11565 
11566  private int presolveBvaThreshold_ = 1;
11577  public boolean hasPresolveBvaThreshold() {
11578  return ((bitField1_ & 0x00200000) != 0);
11579  }
11591  return presolveBvaThreshold_;
11592  }
11603  public Builder setPresolveBvaThreshold(int value) {
11604  bitField1_ |= 0x00200000;
11605  presolveBvaThreshold_ = value;
11606  onChanged();
11607  return this;
11608  }
11620  bitField1_ = (bitField1_ & ~0x00200000);
11621  presolveBvaThreshold_ = 1;
11622  onChanged();
11623  return this;
11624  }
11625 
11626  private int maxPresolveIterations_ = 3;
11636  public boolean hasMaxPresolveIterations() {
11637  return ((bitField1_ & 0x00400000) != 0);
11638  }
11649  return maxPresolveIterations_;
11650  }
11660  public Builder setMaxPresolveIterations(int value) {
11661  bitField1_ |= 0x00400000;
11662  maxPresolveIterations_ = value;
11663  onChanged();
11664  return this;
11665  }
11676  bitField1_ = (bitField1_ & ~0x00400000);
11677  maxPresolveIterations_ = 3;
11678  onChanged();
11679  return this;
11680  }
11681 
11682  private boolean cpModelPresolve_ = true;
11690  public boolean hasCpModelPresolve() {
11691  return ((bitField1_ & 0x00800000) != 0);
11692  }
11700  public boolean getCpModelPresolve() {
11701  return cpModelPresolve_;
11702  }
11710  public Builder setCpModelPresolve(boolean value) {
11711  bitField1_ |= 0x00800000;
11712  cpModelPresolve_ = value;
11713  onChanged();
11714  return this;
11715  }
11724  bitField1_ = (bitField1_ & ~0x00800000);
11725  cpModelPresolve_ = true;
11726  onChanged();
11727  return this;
11728  }
11729 
11730  private int cpModelProbingLevel_ = 2;
11738  public boolean hasCpModelProbingLevel() {
11739  return ((bitField1_ & 0x01000000) != 0);
11740  }
11748  public int getCpModelProbingLevel() {
11749  return cpModelProbingLevel_;
11750  }
11758  public Builder setCpModelProbingLevel(int value) {
11759  bitField1_ |= 0x01000000;
11760  cpModelProbingLevel_ = value;
11761  onChanged();
11762  return this;
11763  }
11772  bitField1_ = (bitField1_ & ~0x01000000);
11773  cpModelProbingLevel_ = 2;
11774  onChanged();
11775  return this;
11776  }
11777 
11778  private boolean cpModelUseSatPresolve_ = true;
11786  public boolean hasCpModelUseSatPresolve() {
11787  return ((bitField1_ & 0x02000000) != 0);
11788  }
11796  public boolean getCpModelUseSatPresolve() {
11797  return cpModelUseSatPresolve_;
11798  }
11806  public Builder setCpModelUseSatPresolve(boolean value) {
11807  bitField1_ |= 0x02000000;
11808  cpModelUseSatPresolve_ = value;
11809  onChanged();
11810  return this;
11811  }
11820  bitField1_ = (bitField1_ & ~0x02000000);
11821  cpModelUseSatPresolve_ = true;
11822  onChanged();
11823  return this;
11824  }
11825 
11826  private boolean expandElementConstraints_ = true;
11835  public boolean hasExpandElementConstraints() {
11836  return ((bitField1_ & 0x04000000) != 0);
11837  }
11846  public boolean getExpandElementConstraints() {
11847  return expandElementConstraints_;
11848  }
11857  public Builder setExpandElementConstraints(boolean value) {
11858  bitField1_ |= 0x04000000;
11859  expandElementConstraints_ = value;
11860  onChanged();
11861  return this;
11862  }
11872  bitField1_ = (bitField1_ & ~0x04000000);
11873  expandElementConstraints_ = true;
11874  onChanged();
11875  return this;
11876  }
11877 
11878  private boolean useOptimizationHints_ = true;
11889  public boolean hasUseOptimizationHints() {
11890  return ((bitField1_ & 0x08000000) != 0);
11891  }
11902  public boolean getUseOptimizationHints() {
11903  return useOptimizationHints_;
11904  }
11915  public Builder setUseOptimizationHints(boolean value) {
11916  bitField1_ |= 0x08000000;
11917  useOptimizationHints_ = value;
11918  onChanged();
11919  return this;
11920  }
11932  bitField1_ = (bitField1_ & ~0x08000000);
11933  useOptimizationHints_ = true;
11934  onChanged();
11935  return this;
11936  }
11937 
11938  private boolean minimizeCore_ = true;
11946  public boolean hasMinimizeCore() {
11947  return ((bitField1_ & 0x10000000) != 0);
11948  }
11956  public boolean getMinimizeCore() {
11957  return minimizeCore_;
11958  }
11966  public Builder setMinimizeCore(boolean value) {
11967  bitField1_ |= 0x10000000;
11968  minimizeCore_ = value;
11969  onChanged();
11970  return this;
11971  }
11980  bitField1_ = (bitField1_ & ~0x10000000);
11981  minimizeCore_ = true;
11982  onChanged();
11983  return this;
11984  }
11985 
11986  private boolean findMultipleCores_ = true;
11995  public boolean hasFindMultipleCores() {
11996  return ((bitField1_ & 0x20000000) != 0);
11997  }
12006  public boolean getFindMultipleCores() {
12007  return findMultipleCores_;
12008  }
12017  public Builder setFindMultipleCores(boolean value) {
12018  bitField1_ |= 0x20000000;
12019  findMultipleCores_ = value;
12020  onChanged();
12021  return this;
12022  }
12032  bitField1_ = (bitField1_ & ~0x20000000);
12033  findMultipleCores_ = true;
12034  onChanged();
12035  return this;
12036  }
12037 
12038  private boolean coverOptimization_ = true;
12047  public boolean hasCoverOptimization() {
12048  return ((bitField1_ & 0x40000000) != 0);
12049  }
12058  public boolean getCoverOptimization() {
12059  return coverOptimization_;
12060  }
12069  public Builder setCoverOptimization(boolean value) {
12070  bitField1_ |= 0x40000000;
12071  coverOptimization_ = value;
12072  onChanged();
12073  return this;
12074  }
12084  bitField1_ = (bitField1_ & ~0x40000000);
12085  coverOptimization_ = true;
12086  onChanged();
12087  return this;
12088  }
12089 
12090  private int maxSatAssumptionOrder_ = 0;
12094  public boolean hasMaxSatAssumptionOrder() {
12095  return ((bitField1_ & 0x80000000) != 0);
12096  }
12101  @SuppressWarnings("deprecation")
12104  }
12109  if (value == null) {
12110  throw new NullPointerException();
12111  }
12112  bitField1_ |= 0x80000000;
12113  maxSatAssumptionOrder_ = value.getNumber();
12114  onChanged();
12115  return this;
12116  }
12121  bitField1_ = (bitField1_ & ~0x80000000);
12122  maxSatAssumptionOrder_ = 0;
12123  onChanged();
12124  return this;
12125  }
12126 
12127  private boolean maxSatReverseAssumptionOrder_ ;
12137  return ((bitField2_ & 0x00000001) != 0);
12138  }
12148  return maxSatReverseAssumptionOrder_;
12149  }
12159  bitField2_ |= 0x00000001;
12160  maxSatReverseAssumptionOrder_ = value;
12161  onChanged();
12162  return this;
12163  }
12173  bitField2_ = (bitField2_ & ~0x00000001);
12174  maxSatReverseAssumptionOrder_ = false;
12175  onChanged();
12176  return this;
12177  }
12178 
12179  private int maxSatStratification_ = 1;
12183  public boolean hasMaxSatStratification() {
12184  return ((bitField2_ & 0x00000002) != 0);
12185  }
12190  @SuppressWarnings("deprecation")
12193  }
12198  if (value == null) {
12199  throw new NullPointerException();
12200  }
12201  bitField2_ |= 0x00000002;
12202  maxSatStratification_ = value.getNumber();
12203  onChanged();
12204  return this;
12205  }
12210  bitField2_ = (bitField2_ & ~0x00000002);
12211  maxSatStratification_ = 1;
12212  onChanged();
12213  return this;
12214  }
12215 
12216  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
12232  return ((bitField2_ & 0x00000004) != 0);
12233  }
12249  return usePrecedencesInDisjunctiveConstraint_;
12250  }
12266  bitField2_ |= 0x00000004;
12267  usePrecedencesInDisjunctiveConstraint_ = value;
12268  onChanged();
12269  return this;
12270  }
12286  bitField2_ = (bitField2_ & ~0x00000004);
12287  usePrecedencesInDisjunctiveConstraint_ = true;
12288  onChanged();
12289  return this;
12290  }
12291 
12292  private boolean useOverloadCheckerInCumulativeConstraint_ ;
12306  return ((bitField2_ & 0x00000008) != 0);
12307  }
12321  return useOverloadCheckerInCumulativeConstraint_;
12322  }
12336  bitField2_ |= 0x00000008;
12337  useOverloadCheckerInCumulativeConstraint_ = value;
12338  onChanged();
12339  return this;
12340  }
12354  bitField2_ = (bitField2_ & ~0x00000008);
12355  useOverloadCheckerInCumulativeConstraint_ = false;
12356  onChanged();
12357  return this;
12358  }
12359 
12360  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
12374  return ((bitField2_ & 0x00000010) != 0);
12375  }
12389  return useTimetableEdgeFindingInCumulativeConstraint_;
12390  }
12404  bitField2_ |= 0x00000010;
12405  useTimetableEdgeFindingInCumulativeConstraint_ = value;
12406  onChanged();
12407  return this;
12408  }
12422  bitField2_ = (bitField2_ & ~0x00000010);
12423  useTimetableEdgeFindingInCumulativeConstraint_ = false;
12424  onChanged();
12425  return this;
12426  }
12427 
12428  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
12444  return ((bitField2_ & 0x00000020) != 0);
12445  }
12461  return useDisjunctiveConstraintInCumulativeConstraint_;
12462  }
12478  bitField2_ |= 0x00000020;
12479  useDisjunctiveConstraintInCumulativeConstraint_ = value;
12480  onChanged();
12481  return this;
12482  }
12498  bitField2_ = (bitField2_ & ~0x00000020);
12499  useDisjunctiveConstraintInCumulativeConstraint_ = true;
12500  onChanged();
12501  return this;
12502  }
12503 
12504  private int linearizationLevel_ = 1;
12515  public boolean hasLinearizationLevel() {
12516  return ((bitField2_ & 0x00000040) != 0);
12517  }
12528  public int getLinearizationLevel() {
12529  return linearizationLevel_;
12530  }
12541  public Builder setLinearizationLevel(int value) {
12542  bitField2_ |= 0x00000040;
12543  linearizationLevel_ = value;
12544  onChanged();
12545  return this;
12546  }
12558  bitField2_ = (bitField2_ & ~0x00000040);
12559  linearizationLevel_ = 1;
12560  onChanged();
12561  return this;
12562  }
12563 
12564  private int booleanEncodingLevel_ = 1;
12573  public boolean hasBooleanEncodingLevel() {
12574  return ((bitField2_ & 0x00000080) != 0);
12575  }
12585  return booleanEncodingLevel_;
12586  }
12595  public Builder setBooleanEncodingLevel(int value) {
12596  bitField2_ |= 0x00000080;
12597  booleanEncodingLevel_ = value;
12598  onChanged();
12599  return this;
12600  }
12610  bitField2_ = (bitField2_ & ~0x00000080);
12611  booleanEncodingLevel_ = 1;
12612  onChanged();
12613  return this;
12614  }
12615 
12616  private int maxNumCuts_ = 5000;
12627  public boolean hasMaxNumCuts() {
12628  return ((bitField2_ & 0x00000100) != 0);
12629  }
12640  public int getMaxNumCuts() {
12641  return maxNumCuts_;
12642  }
12653  public Builder setMaxNumCuts(int value) {
12654  bitField2_ |= 0x00000100;
12655  maxNumCuts_ = value;
12656  onChanged();
12657  return this;
12658  }
12670  bitField2_ = (bitField2_ & ~0x00000100);
12671  maxNumCuts_ = 5000;
12672  onChanged();
12673  return this;
12674  }
12675 
12676  private boolean onlyAddCutsAtLevelZero_ ;
12685  public boolean hasOnlyAddCutsAtLevelZero() {
12686  return ((bitField2_ & 0x00000200) != 0);
12687  }
12696  public boolean getOnlyAddCutsAtLevelZero() {
12697  return onlyAddCutsAtLevelZero_;
12698  }
12707  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12708  bitField2_ |= 0x00000200;
12709  onlyAddCutsAtLevelZero_ = value;
12710  onChanged();
12711  return this;
12712  }
12722  bitField2_ = (bitField2_ & ~0x00000200);
12723  onlyAddCutsAtLevelZero_ = false;
12724  onChanged();
12725  return this;
12726  }
12727 
12728  private boolean addKnapsackCuts_ ;
12738  public boolean hasAddKnapsackCuts() {
12739  return ((bitField2_ & 0x00000400) != 0);
12740  }
12750  public boolean getAddKnapsackCuts() {
12751  return addKnapsackCuts_;
12752  }
12762  public Builder setAddKnapsackCuts(boolean value) {
12763  bitField2_ |= 0x00000400;
12764  addKnapsackCuts_ = value;
12765  onChanged();
12766  return this;
12767  }
12778  bitField2_ = (bitField2_ & ~0x00000400);
12779  addKnapsackCuts_ = false;
12780  onChanged();
12781  return this;
12782  }
12783 
12784  private boolean addCgCuts_ ;
12793  public boolean hasAddCgCuts() {
12794  return ((bitField2_ & 0x00000800) != 0);
12795  }
12804  public boolean getAddCgCuts() {
12805  return addCgCuts_;
12806  }
12815  public Builder setAddCgCuts(boolean value) {
12816  bitField2_ |= 0x00000800;
12817  addCgCuts_ = value;
12818  onChanged();
12819  return this;
12820  }
12830  bitField2_ = (bitField2_ & ~0x00000800);
12831  addCgCuts_ = false;
12832  onChanged();
12833  return this;
12834  }
12835 
12836  private boolean addMirCuts_ = true;
12845  public boolean hasAddMirCuts() {
12846  return ((bitField2_ & 0x00001000) != 0);
12847  }
12856  public boolean getAddMirCuts() {
12857  return addMirCuts_;
12858  }
12867  public Builder setAddMirCuts(boolean value) {
12868  bitField2_ |= 0x00001000;
12869  addMirCuts_ = value;
12870  onChanged();
12871  return this;
12872  }
12882  bitField2_ = (bitField2_ & ~0x00001000);
12883  addMirCuts_ = true;
12884  onChanged();
12885  return this;
12886  }
12887 
12888  private boolean useMirRounding_ = true;
12898  public boolean hasUseMirRounding() {
12899  return ((bitField2_ & 0x00002000) != 0);
12900  }
12910  public boolean getUseMirRounding() {
12911  return useMirRounding_;
12912  }
12922  public Builder setUseMirRounding(boolean value) {
12923  bitField2_ |= 0x00002000;
12924  useMirRounding_ = value;
12925  onChanged();
12926  return this;
12927  }
12938  bitField2_ = (bitField2_ & ~0x00002000);
12939  useMirRounding_ = true;
12940  onChanged();
12941  return this;
12942  }
12943 
12944  private int maxIntegerRoundingScaling_ = 600;
12956  public boolean hasMaxIntegerRoundingScaling() {
12957  return ((bitField2_ & 0x00004000) != 0);
12958  }
12971  return maxIntegerRoundingScaling_;
12972  }
12985  bitField2_ |= 0x00004000;
12986  maxIntegerRoundingScaling_ = value;
12987  onChanged();
12988  return this;
12989  }
13002  bitField2_ = (bitField2_ & ~0x00004000);
13003  maxIntegerRoundingScaling_ = 600;
13004  onChanged();
13005  return this;
13006  }
13007 
13008  private boolean addLpConstraintsLazily_ = true;
13019  public boolean hasAddLpConstraintsLazily() {
13020  return ((bitField2_ & 0x00008000) != 0);
13021  }
13032  public boolean getAddLpConstraintsLazily() {
13033  return addLpConstraintsLazily_;
13034  }
13045  public Builder setAddLpConstraintsLazily(boolean value) {
13046  bitField2_ |= 0x00008000;
13047  addLpConstraintsLazily_ = value;
13048  onChanged();
13049  return this;
13050  }
13062  bitField2_ = (bitField2_ & ~0x00008000);
13063  addLpConstraintsLazily_ = true;
13064  onChanged();
13065  return this;
13066  }
13067 
13068  private double minOrthogonalityForLpConstraints_ ;
13081  return ((bitField2_ & 0x00010000) != 0);
13082  }
13095  return minOrthogonalityForLpConstraints_;
13096  }
13109  bitField2_ |= 0x00010000;
13110  minOrthogonalityForLpConstraints_ = value;
13111  onChanged();
13112  return this;
13113  }
13126  bitField2_ = (bitField2_ & ~0x00010000);
13127  minOrthogonalityForLpConstraints_ = 0D;
13128  onChanged();
13129  return this;
13130  }
13131 
13132  private long maxInactiveCount_ = 1000L;
13141  public boolean hasMaxInactiveCount() {
13142  return ((bitField2_ & 0x00020000) != 0);
13143  }
13152  public long getMaxInactiveCount() {
13153  return maxInactiveCount_;
13154  }
13163  public Builder setMaxInactiveCount(long value) {
13164  bitField2_ |= 0x00020000;
13165  maxInactiveCount_ = value;
13166  onChanged();
13167  return this;
13168  }
13178  bitField2_ = (bitField2_ & ~0x00020000);
13179  maxInactiveCount_ = 1000L;
13180  onChanged();
13181  return this;
13182  }
13183 
13184  private long constraintRemovalBatchSize_ = 100L;
13194  return ((bitField2_ & 0x00040000) != 0);
13195  }
13205  return constraintRemovalBatchSize_;
13206  }
13216  bitField2_ |= 0x00040000;
13217  constraintRemovalBatchSize_ = value;
13218  onChanged();
13219  return this;
13220  }
13230  bitField2_ = (bitField2_ & ~0x00040000);
13231  constraintRemovalBatchSize_ = 100L;
13232  onChanged();
13233  return this;
13234  }
13235 
13236  private int searchBranching_ = 0;
13240  public boolean hasSearchBranching() {
13241  return ((bitField2_ & 0x00080000) != 0);
13242  }
13247  @SuppressWarnings("deprecation")
13249  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
13250  }
13255  if (value == null) {
13256  throw new NullPointerException();
13257  }
13258  bitField2_ |= 0x00080000;
13259  searchBranching_ = value.getNumber();
13260  onChanged();
13261  return this;
13262  }
13267  bitField2_ = (bitField2_ & ~0x00080000);
13268  searchBranching_ = 0;
13269  onChanged();
13270  return this;
13271  }
13272 
13273  private boolean exploitIntegerLpSolution_ = true;
13284  public boolean hasExploitIntegerLpSolution() {
13285  return ((bitField2_ & 0x00100000) != 0);
13286  }
13297  public boolean getExploitIntegerLpSolution() {
13298  return exploitIntegerLpSolution_;
13299  }
13310  public Builder setExploitIntegerLpSolution(boolean value) {
13311  bitField2_ |= 0x00100000;
13312  exploitIntegerLpSolution_ = value;
13313  onChanged();
13314  return this;
13315  }
13327  bitField2_ = (bitField2_ & ~0x00100000);
13328  exploitIntegerLpSolution_ = true;
13329  onChanged();
13330  return this;
13331  }
13332 
13333  private boolean exploitAllLpSolution_ = true;
13343  public boolean hasExploitAllLpSolution() {
13344  return ((bitField2_ & 0x00200000) != 0);
13345  }
13355  public boolean getExploitAllLpSolution() {
13356  return exploitAllLpSolution_;
13357  }
13367  public Builder setExploitAllLpSolution(boolean value) {
13368  bitField2_ |= 0x00200000;
13369  exploitAllLpSolution_ = value;
13370  onChanged();
13371  return this;
13372  }
13383  bitField2_ = (bitField2_ & ~0x00200000);
13384  exploitAllLpSolution_ = true;
13385  onChanged();
13386  return this;
13387  }
13388 
13389  private boolean exploitBestSolution_ ;
13397  public boolean hasExploitBestSolution() {
13398  return ((bitField2_ & 0x00400000) != 0);
13399  }
13407  public boolean getExploitBestSolution() {
13408  return exploitBestSolution_;
13409  }
13417  public Builder setExploitBestSolution(boolean value) {
13418  bitField2_ |= 0x00400000;
13419  exploitBestSolution_ = value;
13420  onChanged();
13421  return this;
13422  }
13431  bitField2_ = (bitField2_ & ~0x00400000);
13432  exploitBestSolution_ = false;
13433  onChanged();
13434  return this;
13435  }
13436 
13437  private boolean exploitObjective_ = true;
13446  public boolean hasExploitObjective() {
13447  return ((bitField2_ & 0x00800000) != 0);
13448  }
13457  public boolean getExploitObjective() {
13458  return exploitObjective_;
13459  }
13468  public Builder setExploitObjective(boolean value) {
13469  bitField2_ |= 0x00800000;
13470  exploitObjective_ = value;
13471  onChanged();
13472  return this;
13473  }
13483  bitField2_ = (bitField2_ & ~0x00800000);
13484  exploitObjective_ = true;
13485  onChanged();
13486  return this;
13487  }
13488 
13489  private long pseudoCostReliabilityThreshold_ = 100L;
13499  return ((bitField2_ & 0x01000000) != 0);
13500  }
13510  return pseudoCostReliabilityThreshold_;
13511  }
13521  bitField2_ |= 0x01000000;
13522  pseudoCostReliabilityThreshold_ = value;
13523  onChanged();
13524  return this;
13525  }
13535  bitField2_ = (bitField2_ & ~0x01000000);
13536  pseudoCostReliabilityThreshold_ = 100L;
13537  onChanged();
13538  return this;
13539  }
13540 
13541  private boolean optimizeWithCore_ ;
13552  public boolean hasOptimizeWithCore() {
13553  return ((bitField2_ & 0x02000000) != 0);
13554  }
13565  public boolean getOptimizeWithCore() {
13566  return optimizeWithCore_;
13567  }
13578  public Builder setOptimizeWithCore(boolean value) {
13579  bitField2_ |= 0x02000000;
13580  optimizeWithCore_ = value;
13581  onChanged();
13582  return this;
13583  }
13595  bitField2_ = (bitField2_ & ~0x02000000);
13596  optimizeWithCore_ = false;
13597  onChanged();
13598  return this;
13599  }
13600 
13601  private int binarySearchNumConflicts_ = -1;
13612  public boolean hasBinarySearchNumConflicts() {
13613  return ((bitField2_ & 0x04000000) != 0);
13614  }
13626  return binarySearchNumConflicts_;
13627  }
13639  bitField2_ |= 0x04000000;
13640  binarySearchNumConflicts_ = value;
13641  onChanged();
13642  return this;
13643  }
13655  bitField2_ = (bitField2_ & ~0x04000000);
13656  binarySearchNumConflicts_ = -1;
13657  onChanged();
13658  return this;
13659  }
13660 
13661  private boolean optimizeWithMaxHs_ ;
13674  public boolean hasOptimizeWithMaxHs() {
13675  return ((bitField2_ & 0x08000000) != 0);
13676  }
13689  public boolean getOptimizeWithMaxHs() {
13690  return optimizeWithMaxHs_;
13691  }
13704  public Builder setOptimizeWithMaxHs(boolean value) {
13705  bitField2_ |= 0x08000000;
13706  optimizeWithMaxHs_ = value;
13707  onChanged();
13708  return this;
13709  }
13723  bitField2_ = (bitField2_ & ~0x08000000);
13724  optimizeWithMaxHs_ = false;
13725  onChanged();
13726  return this;
13727  }
13728 
13729  private boolean enumerateAllSolutions_ ;
13742  public boolean hasEnumerateAllSolutions() {
13743  return ((bitField2_ & 0x10000000) != 0);
13744  }
13757  public boolean getEnumerateAllSolutions() {
13758  return enumerateAllSolutions_;
13759  }
13772  public Builder setEnumerateAllSolutions(boolean value) {
13773  bitField2_ |= 0x10000000;
13774  enumerateAllSolutions_ = value;
13775  onChanged();
13776  return this;
13777  }
13791  bitField2_ = (bitField2_ & ~0x10000000);
13792  enumerateAllSolutions_ = false;
13793  onChanged();
13794  return this;
13795  }
13796 
13797  private boolean fillTightenedDomainsInResponse_ ;
13810  return ((bitField2_ & 0x20000000) != 0);
13811  }
13824  return fillTightenedDomainsInResponse_;
13825  }
13838  bitField2_ |= 0x20000000;
13839  fillTightenedDomainsInResponse_ = value;
13840  onChanged();
13841  return this;
13842  }
13855  bitField2_ = (bitField2_ & ~0x20000000);
13856  fillTightenedDomainsInResponse_ = false;
13857  onChanged();
13858  return this;
13859  }
13860 
13861  private boolean instantiateAllVariables_ = true;
13870  public boolean hasInstantiateAllVariables() {
13871  return ((bitField2_ & 0x40000000) != 0);
13872  }
13881  public boolean getInstantiateAllVariables() {
13882  return instantiateAllVariables_;
13883  }
13892  public Builder setInstantiateAllVariables(boolean value) {
13893  bitField2_ |= 0x40000000;
13894  instantiateAllVariables_ = value;
13895  onChanged();
13896  return this;
13897  }
13907  bitField2_ = (bitField2_ & ~0x40000000);
13908  instantiateAllVariables_ = true;
13909  onChanged();
13910  return this;
13911  }
13912 
13913  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13925  return ((bitField2_ & 0x80000000) != 0);
13926  }
13938  return autoDetectGreaterThanAtLeastOneOf_;
13939  }
13951  bitField2_ |= 0x80000000;
13952  autoDetectGreaterThanAtLeastOneOf_ = value;
13953  onChanged();
13954  return this;
13955  }
13967  bitField2_ = (bitField2_ & ~0x80000000);
13968  autoDetectGreaterThanAtLeastOneOf_ = true;
13969  onChanged();
13970  return this;
13971  }
13972 
13973  private boolean stopAfterFirstSolution_ ;
13981  public boolean hasStopAfterFirstSolution() {
13982  return ((bitField3_ & 0x00000001) != 0);
13983  }
13991  public boolean getStopAfterFirstSolution() {
13992  return stopAfterFirstSolution_;
13993  }
14001  public Builder setStopAfterFirstSolution(boolean value) {
14002  bitField3_ |= 0x00000001;
14003  stopAfterFirstSolution_ = value;
14004  onChanged();
14005  return this;
14006  }
14015  bitField3_ = (bitField3_ & ~0x00000001);
14016  stopAfterFirstSolution_ = false;
14017  onChanged();
14018  return this;
14019  }
14020 
14021  private int numSearchWorkers_ = 1;
14030  public boolean hasNumSearchWorkers() {
14031  return ((bitField3_ & 0x00000002) != 0);
14032  }
14041  public int getNumSearchWorkers() {
14042  return numSearchWorkers_;
14043  }
14052  public Builder setNumSearchWorkers(int value) {
14053  bitField3_ |= 0x00000002;
14054  numSearchWorkers_ = value;
14055  onChanged();
14056  return this;
14057  }
14067  bitField3_ = (bitField3_ & ~0x00000002);
14068  numSearchWorkers_ = 1;
14069  onChanged();
14070  return this;
14071  }
14072 
14073  private boolean interleaveSearch_ ;
14084  public boolean hasInterleaveSearch() {
14085  return ((bitField3_ & 0x00000004) != 0);
14086  }
14097  public boolean getInterleaveSearch() {
14098  return interleaveSearch_;
14099  }
14110  public Builder setInterleaveSearch(boolean value) {
14111  bitField3_ |= 0x00000004;
14112  interleaveSearch_ = value;
14113  onChanged();
14114  return this;
14115  }
14127  bitField3_ = (bitField3_ & ~0x00000004);
14128  interleaveSearch_ = false;
14129  onChanged();
14130  return this;
14131  }
14132 
14133  private boolean reduceMemoryUsageInInterleaveMode_ = true;
14142  return ((bitField3_ & 0x00000008) != 0);
14143  }
14152  return reduceMemoryUsageInInterleaveMode_;
14153  }
14162  bitField3_ |= 0x00000008;
14163  reduceMemoryUsageInInterleaveMode_ = value;
14164  onChanged();
14165  return this;
14166  }
14175  bitField3_ = (bitField3_ & ~0x00000008);
14176  reduceMemoryUsageInInterleaveMode_ = true;
14177  onChanged();
14178  return this;
14179  }
14180 
14181  private boolean deterministicParallelSearch_ ;
14192  return ((bitField3_ & 0x00000010) != 0);
14193  }
14204  return deterministicParallelSearch_;
14205  }
14215  public Builder setDeterministicParallelSearch(boolean value) {
14216  bitField3_ |= 0x00000010;
14217  deterministicParallelSearch_ = value;
14218  onChanged();
14219  return this;
14220  }
14231  bitField3_ = (bitField3_ & ~0x00000010);
14232  deterministicParallelSearch_ = false;
14233  onChanged();
14234  return this;
14235  }
14236 
14237  private boolean shareObjectiveBounds_ = true;
14245  public boolean hasShareObjectiveBounds() {
14246  return ((bitField3_ & 0x00000020) != 0);
14247  }
14255  public boolean getShareObjectiveBounds() {
14256  return shareObjectiveBounds_;
14257  }
14265  public Builder setShareObjectiveBounds(boolean value) {
14266  bitField3_ |= 0x00000020;
14267  shareObjectiveBounds_ = value;
14268  onChanged();
14269  return this;
14270  }
14279  bitField3_ = (bitField3_ & ~0x00000020);
14280  shareObjectiveBounds_ = true;
14281  onChanged();
14282  return this;
14283  }
14284 
14285  private boolean shareLevelZeroBounds_ = true;
14293  public boolean hasShareLevelZeroBounds() {
14294  return ((bitField3_ & 0x00000040) != 0);
14295  }
14303  public boolean getShareLevelZeroBounds() {
14304  return shareLevelZeroBounds_;
14305  }
14313  public Builder setShareLevelZeroBounds(boolean value) {
14314  bitField3_ |= 0x00000040;
14315  shareLevelZeroBounds_ = value;
14316  onChanged();
14317  return this;
14318  }
14327  bitField3_ = (bitField3_ & ~0x00000040);
14328  shareLevelZeroBounds_ = true;
14329  onChanged();
14330  return this;
14331  }
14332 
14333  private boolean useLnsOnly_ ;
14341  public boolean hasUseLnsOnly() {
14342  return ((bitField3_ & 0x00000080) != 0);
14343  }
14351  public boolean getUseLnsOnly() {
14352  return useLnsOnly_;
14353  }
14361  public Builder setUseLnsOnly(boolean value) {
14362  bitField3_ |= 0x00000080;
14363  useLnsOnly_ = value;
14364  onChanged();
14365  return this;
14366  }
14375  bitField3_ = (bitField3_ & ~0x00000080);
14376  useLnsOnly_ = false;
14377  onChanged();
14378  return this;
14379  }
14380 
14381  private boolean lnsFocusOnDecisionVariables_ ;
14386  return ((bitField3_ & 0x00000100) != 0);
14387  }
14392  return lnsFocusOnDecisionVariables_;
14393  }
14397  public Builder setLnsFocusOnDecisionVariables(boolean value) {
14398  bitField3_ |= 0x00000100;
14399  lnsFocusOnDecisionVariables_ = value;
14400  onChanged();
14401  return this;
14402  }
14407  bitField3_ = (bitField3_ & ~0x00000100);
14408  lnsFocusOnDecisionVariables_ = false;
14409  onChanged();
14410  return this;
14411  }
14412 
14413  private boolean useRinsLns_ = true;
14421  public boolean hasUseRinsLns() {
14422  return ((bitField3_ & 0x00000200) != 0);
14423  }
14431  public boolean getUseRinsLns() {
14432  return useRinsLns_;
14433  }
14441  public Builder setUseRinsLns(boolean value) {
14442  bitField3_ |= 0x00000200;
14443  useRinsLns_ = value;
14444  onChanged();
14445  return this;
14446  }
14455  bitField3_ = (bitField3_ & ~0x00000200);
14456  useRinsLns_ = true;
14457  onChanged();
14458  return this;
14459  }
14460 
14461  private boolean diversifyLnsParams_ ;
14469  public boolean hasDiversifyLnsParams() {
14470  return ((bitField3_ & 0x00000400) != 0);
14471  }
14479  public boolean getDiversifyLnsParams() {
14480  return diversifyLnsParams_;
14481  }
14489  public Builder setDiversifyLnsParams(boolean value) {
14490  bitField3_ |= 0x00000400;
14491  diversifyLnsParams_ = value;
14492  onChanged();
14493  return this;
14494  }
14503  bitField3_ = (bitField3_ & ~0x00000400);
14504  diversifyLnsParams_ = false;
14505  onChanged();
14506  return this;
14507  }
14508 
14509  private boolean randomizeSearch_ ;
14517  public boolean hasRandomizeSearch() {
14518  return ((bitField3_ & 0x00000800) != 0);
14519  }
14527  public boolean getRandomizeSearch() {
14528  return randomizeSearch_;
14529  }
14537  public Builder setRandomizeSearch(boolean value) {
14538  bitField3_ |= 0x00000800;
14539  randomizeSearch_ = value;
14540  onChanged();
14541  return this;
14542  }
14551  bitField3_ = (bitField3_ & ~0x00000800);
14552  randomizeSearch_ = false;
14553  onChanged();
14554  return this;
14555  }
14556 
14557  private long searchRandomizationTolerance_ ;
14572  return ((bitField3_ & 0x00001000) != 0);
14573  }
14588  return searchRandomizationTolerance_;
14589  }
14604  bitField3_ |= 0x00001000;
14605  searchRandomizationTolerance_ = value;
14606  onChanged();
14607  return this;
14608  }
14623  bitField3_ = (bitField3_ & ~0x00001000);
14624  searchRandomizationTolerance_ = 0L;
14625  onChanged();
14626  return this;
14627  }
14628 
14629  private boolean useOptionalVariables_ = true;
14639  public boolean hasUseOptionalVariables() {
14640  return ((bitField3_ & 0x00002000) != 0);
14641  }
14651  public boolean getUseOptionalVariables() {
14652  return useOptionalVariables_;
14653  }
14663  public Builder setUseOptionalVariables(boolean value) {
14664  bitField3_ |= 0x00002000;
14665  useOptionalVariables_ = value;
14666  onChanged();
14667  return this;
14668  }
14679  bitField3_ = (bitField3_ & ~0x00002000);
14680  useOptionalVariables_ = true;
14681  onChanged();
14682  return this;
14683  }
14684 
14685  private boolean useExactLpReason_ = true;
14696  public boolean hasUseExactLpReason() {
14697  return ((bitField3_ & 0x00004000) != 0);
14698  }
14709  public boolean getUseExactLpReason() {
14710  return useExactLpReason_;
14711  }
14722  public Builder setUseExactLpReason(boolean value) {
14723  bitField3_ |= 0x00004000;
14724  useExactLpReason_ = value;
14725  onChanged();
14726  return this;
14727  }
14739  bitField3_ = (bitField3_ & ~0x00004000);
14740  useExactLpReason_ = true;
14741  onChanged();
14742  return this;
14743  }
14744 
14745  private boolean useBranchingInLp_ ;
14755  public boolean hasUseBranchingInLp() {
14756  return ((bitField3_ & 0x00008000) != 0);
14757  }
14767  public boolean getUseBranchingInLp() {
14768  return useBranchingInLp_;
14769  }
14779  public Builder setUseBranchingInLp(boolean value) {
14780  bitField3_ |= 0x00008000;
14781  useBranchingInLp_ = value;
14782  onChanged();
14783  return this;
14784  }
14795  bitField3_ = (bitField3_ & ~0x00008000);
14796  useBranchingInLp_ = false;
14797  onChanged();
14798  return this;
14799  }
14800 
14801  private boolean useCombinedNoOverlap_ ;
14811  public boolean hasUseCombinedNoOverlap() {
14812  return ((bitField3_ & 0x00010000) != 0);
14813  }
14823  public boolean getUseCombinedNoOverlap() {
14824  return useCombinedNoOverlap_;
14825  }
14835  public Builder setUseCombinedNoOverlap(boolean value) {
14836  bitField3_ |= 0x00010000;
14837  useCombinedNoOverlap_ = value;
14838  onChanged();
14839  return this;
14840  }
14851  bitField3_ = (bitField3_ & ~0x00010000);
14852  useCombinedNoOverlap_ = false;
14853  onChanged();
14854  return this;
14855  }
14856 
14857  private boolean catchSigintSignal_ = true;
14867  public boolean hasCatchSigintSignal() {
14868  return ((bitField3_ & 0x00020000) != 0);
14869  }
14879  public boolean getCatchSigintSignal() {
14880  return catchSigintSignal_;
14881  }
14891  public Builder setCatchSigintSignal(boolean value) {
14892  bitField3_ |= 0x00020000;
14893  catchSigintSignal_ = value;
14894  onChanged();
14895  return this;
14896  }
14907  bitField3_ = (bitField3_ & ~0x00020000);
14908  catchSigintSignal_ = true;
14909  onChanged();
14910  return this;
14911  }
14912 
14913  private double mipMaxBound_ = 10000000D;
14923  public boolean hasMipMaxBound() {
14924  return ((bitField3_ & 0x00040000) != 0);
14925  }
14935  public double getMipMaxBound() {
14936  return mipMaxBound_;
14937  }
14947  public Builder setMipMaxBound(double value) {
14948  bitField3_ |= 0x00040000;
14949  mipMaxBound_ = value;
14950  onChanged();
14951  return this;
14952  }
14963  bitField3_ = (bitField3_ & ~0x00040000);
14964  mipMaxBound_ = 10000000D;
14965  onChanged();
14966  return this;
14967  }
14968 
14969  private double mipVarScaling_ = 1D;
14979  public boolean hasMipVarScaling() {
14980  return ((bitField3_ & 0x00080000) != 0);
14981  }
14991  public double getMipVarScaling() {
14992  return mipVarScaling_;
14993  }
15003  public Builder setMipVarScaling(double value) {
15004  bitField3_ |= 0x00080000;
15005  mipVarScaling_ = value;
15006  onChanged();
15007  return this;
15008  }
15019  bitField3_ = (bitField3_ & ~0x00080000);
15020  mipVarScaling_ = 1D;
15021  onChanged();
15022  return this;
15023  }
15024 
15025  private double mipWantedPrecision_ = 1e-06D;
15041  public boolean hasMipWantedPrecision() {
15042  return ((bitField3_ & 0x00100000) != 0);
15043  }
15059  public double getMipWantedPrecision() {
15060  return mipWantedPrecision_;
15061  }
15077  public Builder setMipWantedPrecision(double value) {
15078  bitField3_ |= 0x00100000;
15079  mipWantedPrecision_ = value;
15080  onChanged();
15081  return this;
15082  }
15099  bitField3_ = (bitField3_ & ~0x00100000);
15100  mipWantedPrecision_ = 1e-06D;
15101  onChanged();
15102  return this;
15103  }
15104 
15105  private int mipMaxActivityExponent_ = 53;
15119  public boolean hasMipMaxActivityExponent() {
15120  return ((bitField3_ & 0x00200000) != 0);
15121  }
15136  return mipMaxActivityExponent_;
15137  }
15152  bitField3_ |= 0x00200000;
15153  mipMaxActivityExponent_ = value;
15154  onChanged();
15155  return this;
15156  }
15171  bitField3_ = (bitField3_ & ~0x00200000);
15172  mipMaxActivityExponent_ = 53;
15173  onChanged();
15174  return this;
15175  }
15176 
15177  private double mipCheckPrecision_ = 0.0001D;
15188  public boolean hasMipCheckPrecision() {
15189  return ((bitField3_ & 0x00400000) != 0);
15190  }
15201  public double getMipCheckPrecision() {
15202  return mipCheckPrecision_;
15203  }
15214  public Builder setMipCheckPrecision(double value) {
15215  bitField3_ |= 0x00400000;
15216  mipCheckPrecision_ = value;
15217  onChanged();
15218  return this;
15219  }
15231  bitField3_ = (bitField3_ & ~0x00400000);
15232  mipCheckPrecision_ = 0.0001D;
15233  onChanged();
15234  return this;
15235  }
15236  @java.lang.Override
15238  final com.google.protobuf.UnknownFieldSet unknownFields) {
15239  return super.setUnknownFields(unknownFields);
15240  }
15241 
15242  @java.lang.Override
15244  final com.google.protobuf.UnknownFieldSet unknownFields) {
15245  return super.mergeUnknownFields(unknownFields);
15246  }
15247 
15248 
15249  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
15250  }
15251 
15252  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
15253  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
15254  static {
15255  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
15256  }
15257 
15259  return DEFAULT_INSTANCE;
15260  }
15261 
15262  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
15263  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
15264  @java.lang.Override
15265  public SatParameters parsePartialFrom(
15266  com.google.protobuf.CodedInputStream input,
15267  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15268  throws com.google.protobuf.InvalidProtocolBufferException {
15269  return new SatParameters(input, extensionRegistry);
15270  }
15271  };
15272 
15273  public static com.google.protobuf.Parser<SatParameters> parser() {
15274  return PARSER;
15275  }
15276 
15277  @java.lang.Override
15278  public com.google.protobuf.Parser<SatParameters> getParserForType() {
15279  return PARSER;
15280  }
15281 
15282  @java.lang.Override
15284  return DEFAULT_INSTANCE;
15285  }
15286 
15287 }
15288 
.lang.Override Builder newBuilderForType()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
.lang.Override final boolean isInitialized()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static VariableOrder valueOf(int value)
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
static MaxSatAssumptionOrder forNumber(int value)
.lang.Deprecated static ClauseOrdering valueOf(int value)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setSubsumptionDuringConflictAnalysis(boolean value)
.lang.Deprecated static ClauseProtection valueOf(int value)
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
Builder setFillTightenedDomainsInResponse(boolean value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setMinimizeReductionDuringPbResolution(boolean value)
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override boolean equals(final java.lang.Object obj)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static ConflictMinimizationAlgorithm forNumber(int value)
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override final boolean isInitialized()
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static MaxSatStratificationAlgorithm forNumber(int value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override Builder toBuilder()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static com.google.protobuf.Parser< SatParameters > parser()
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static Polarity valueOf(int value)
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static BinaryMinizationAlgorithm forNumber(int value)
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Deprecated static RestartAlgorithm valueOf(int value)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters build()
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters getDefaultInstance()
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int REDUCE_MEMORY_USAGE_IN_INTERLEAVE_MODE_FIELD_NUMBER
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPresolveProbingDeterministicTimeLimit(double value)
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
Builder setReduceMemoryUsageInInterleaveMode(boolean value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static SearchBranching valueOf(int value)
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];