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 
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER
static final int REDUCE_MEMORY_USAGE_IN_INTERLEAVE_MODE_FIELD_NUMBER
.lang.Override final boolean isInitialized()
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
boolean getDiversifyLnsParams()
static final int USE_RINS_LNS_FIELD_NUMBER
boolean getUseExactLpReason()
boolean hasMaxPresolveIterations()
static ClauseProtection forNumber(int value)
Builder setMaxMemoryInMb(long value)
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasClauseCleanupPeriod()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
boolean hasSearchRandomizationTolerance()
Builder setUsePhaseSaving(boolean value)
boolean hasMipMaxBound()
NO_BINARY_MINIMIZATION
NO_BINARY_MINIMIZATION = 0;
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
Builder clearMinOrthogonalityForLpConstraints()
boolean hasLogSearchProgress()
final int getNumber()
static BinaryMinizationAlgorithm forNumber(int value)
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder setDiversifyLnsParams(boolean value)
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder clearClauseCleanupTarget()
boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
Builder clearAddCgCuts()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
static final int USE_MIR_ROUNDING_FIELD_NUMBER
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
boolean hasMinimizeWithPropagationRestartPeriod()
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
boolean hasAlsoBumpVariablesInConflictReasons()
boolean getInstantiateAllVariables()
int getPresolveBveClauseWeight()
boolean getOnlyAddCutsAtLevelZero()
Builder setPseudoCostReliabilityThreshold(long value)
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
boolean hasOptimizeWithMaxHs()
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int ADD_MIR_CUTS_FIELD_NUMBER
Builder setUseRinsLns(boolean value)
Builder clearMipVarScaling()
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
boolean getMinimizeReductionDuringPbResolution()
int getMinimizeWithPropagationRestartPeriod()
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasAddLpConstraintsLazily()
Builder setNumSearchWorkers(int value)
Builder clearUseRinsLns()
static final int FIND_MULTIPLE_CORES_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
IN_REVERSE_ORDER
IN_REVERSE_ORDER = 1;
Builder clearVariableActivityDecay()
boolean hasAddLpConstraintsLazily()
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
boolean getTreatBinaryClausesSeparately()
boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
boolean hasClauseCleanupTarget()
boolean getMinimizeReductionDuringPbResolution()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
static final int RANDOM_SEED_FIELD_NUMBER
POLARITY_TRUE
POLARITY_TRUE = 0;
boolean hasCatchSigintSignal()
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
boolean getInstantiateAllVariables()
boolean hasFillTightenedDomainsInResponse()
Builder clearUseLnsOnly()
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setInterleaveSearch(boolean value)
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getAddKnapsackCuts()
boolean getUseMirRounding()
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasOptimizeWithCore()
static final int CP_MODEL_PRESOLVE_FIELD_NUMBER
boolean hasMipVarScaling()
PSEUDO_COST_SEARCH
static VariableOrder forNumber(int value)
boolean hasRestartRunningWindowSize()
Builder clearReduceMemoryUsageInInterleaveMode()
Builder setAddLpConstraintsLazily(boolean value)
Builder setMinimizeWithPropagationRestartPeriod(int value)
Builder clearShareObjectiveBounds()
boolean hasUsePhaseSaving()
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean getMinimizeCore()
boolean hasMinOrthogonalityForLpConstraints()
boolean hasUseMirRounding()
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
SIMPLE
SIMPLE = 1;
Builder setBooleanEncodingLevel(int value)
boolean hasMaxTimeInSeconds()
double getMipVarScaling()
Builder setPresolveBvaThreshold(int value)
double getRandomPolarityRatio()
boolean getAddCgCuts()
final int getNumber()
boolean getAlsoBumpVariablesInConflictReasons()
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
boolean hasConstraintRemovalBatchSize()
boolean hasLinearizationLevel()
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
int getMinimizeWithPropagationRestartPeriod()
static final int COVER_OPTIMIZATION_FIELD_NUMBER
boolean hasMipCheckPrecision()
final int getNumber()
Builder setMaxIntegerRoundingScaling(int value)
Builder setDeterministicParallelSearch(boolean value)
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
boolean hasUseOverloadCheckerInCumulativeConstraint()
boolean getDiversifyLnsParams()
Builder clearRestartRunningWindowSize()
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
boolean hasRandomBranchesRatio()
static final int MIP_CHECK_PRECISION_FIELD_NUMBER
boolean getUseCombinedNoOverlap()
Builder setAddKnapsackCuts(boolean value)
boolean hasEnumerateAllSolutions()
static final int RANDOMIZE_SEARCH_FIELD_NUMBER
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
boolean hasCpModelProbingLevel()
boolean getInterleaveSearch()
boolean hasUsePbResolution()
POLARITY_RANDOM
POLARITY_RANDOM = 2;
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
STRATIFICATION_ASCENT
final int getNumber()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasFindMultipleCores()
Builder clearRestartPeriod()
Builder setExploitAllLpSolution(boolean value)
Builder setMaxSatReverseAssumptionOrder(boolean value)
Builder setCpModelUseSatPresolve(boolean value)
final int getNumber()
boolean getShareObjectiveBounds()
boolean getRandomizeSearch()
Builder clearRestartAlgorithms()
Builder setMipMaxActivityExponent(int value)
double getMipMaxBound()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasMaxDeterministicTime()
boolean hasDeterministicParallelSearch()
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean getUseLnsOnly()
boolean hasBinarySearchNumConflicts()
.lang.Override Builder clear()
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
boolean hasMaxNumberOfConflicts()
Builder clearLogSearchProgress()
boolean getOptimizeWithMaxHs()
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
boolean hasExploitIntegerLpSolution()
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean getUseExactLpReason()
boolean hasVariableActivityDecay()
boolean hasExploitAllLpSolution()
Builder clearDiversifyLnsParams()
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasAddMirCuts()
boolean hasPresolveProbingDeterministicTimeLimit()
boolean hasClauseCleanupLbdBound()
boolean getMinimizeCore()
boolean getUsePhaseSaving()
boolean hasUseExactLpReason()
double getGlucoseMaxDecay()
Builder clearMinimizeWithPropagationRestartPeriod()
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setSearchRandomizationTolerance(long value)
boolean hasUsePrecedencesInDisjunctiveConstraint()
static final int INTERLEAVE_SEARCH_FIELD_NUMBER
boolean getSubsumptionDuringConflictAnalysis()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasAddKnapsackCuts()
static final int RESTART_ALGORITHMS_FIELD_NUMBER
boolean getCountAssumptionLevelsInLbd()
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasUseOptimizationHints()
Builder setReduceMemoryUsageInInterleaveMode(boolean value)
boolean getFillTightenedDomainsInResponse()
.lang.Deprecated static ClauseOrdering valueOf(int value)
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
Builder setOptimizeWithCore(boolean value)
boolean hasPresolveBlockedClause()
boolean hasUseExactLpReason()
static final int MAX_INACTIVE_COUNT_FIELD_NUMBER
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
boolean getShareLevelZeroBounds()
boolean getCountAssumptionLevelsInLbd()
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
Builder clearUseOptimizationHints()
Builder clearMaxMemoryInMb()
boolean hasTreatBinaryClausesSeparately()
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasPresolveBlockedClause()
int getPresolveBveThreshold()
boolean hasMinOrthogonalityForLpConstraints()
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
double getMipCheckPrecision()
int getClauseCleanupTarget()
boolean hasInstantiateAllVariables()
boolean getUsePrecedencesInDisjunctiveConstraint()
Builder clearMaxClauseActivityValue()
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.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Builder setAddMirCuts(boolean value)
static final int MIP_VAR_SCALING_FIELD_NUMBER
Builder clearUseOverloadCheckerInCumulativeConstraint()
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
boolean hasUseBlockingRestart()
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
Builder setStopAfterFirstSolution(boolean value)
boolean getUseTimetableEdgeFindingInCumulativeConstraint()
CLAUSE_ACTIVITY
ORDER_ASSUMPTION_BY_WEIGHT
ORDER_ASSUMPTION_BY_WEIGHT = 2;
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
int getPresolveBveClauseWeight()
boolean hasStopAfterFirstSolution()
boolean hasMaxTimeInSeconds()
boolean hasUseOptionalVariables()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
PROTECTION_LBD
static final int MINIMIZE_CORE_FIELD_NUMBER
Builder clearMaxNumberOfConflicts()
static final int USE_BRANCHING_IN_LP_FIELD_NUMBER
boolean hasPresolveBvaThreshold()
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasInterleaveSearch()
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
static MaxSatAssumptionOrder forNumber(int value)
Builder setPbCleanupIncrement(int value)
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
boolean getStopAfterFirstSolution()
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean getAddLpConstraintsLazily()
boolean hasUseCombinedNoOverlap()
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
PORTFOLIO_SEARCH
boolean hasShareLevelZeroBounds()
boolean hasMipWantedPrecision()
boolean hasMaxMemoryInMb()
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
final int getNumber()
boolean getUseOptimizationHints()
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder clearCoverOptimization()
static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER
boolean hasNumConflictsBeforeStrategyChanges()
boolean hasCpModelProbingLevel()
Builder clearBinarySearchNumConflicts()
Builder setMaxNumCuts(int value)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
boolean hasDiversifyLnsParams()
static RestartAlgorithm forNumber(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseMaxDecay()
boolean getLogSearchProgress()
Builder setFindMultipleCores(boolean value)
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasClauseCleanupLbdBound()
boolean getExpandElementConstraints()
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
boolean hasUsePrecedencesInDisjunctiveConstraint()
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
.lang.Deprecated static ClauseProtection valueOf(int value)
int getLinearizationLevel()
Builder setRestartDlAverageRatio(double value)
.lang.Override int hashCode()
boolean hasRestartRunningWindowSize()
Builder clearExploitAllLpSolution()
boolean getTreatBinaryClausesSeparately()
Builder clearInitialVariablesActivity()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
long getConstraintRemovalBatchSize()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean getUseLnsOnly()
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
int getClauseCleanupTarget()
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
Builder setMaxDeterministicTime(double value)
final int getNumber()
boolean getCpModelPresolve()
Builder clearOnlyAddCutsAtLevelZero()
int getClauseCleanupPeriod()
int getClauseCleanupPeriod()
boolean getExpandElementConstraints()
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
boolean hasMaxNumberOfConflicts()
long getConstraintRemovalBatchSize()
AUTOMATIC_SEARCH
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean getStopAfterFirstSolution()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasMaxMemoryInMb()
boolean hasUseOverloadCheckerInCumulativeConstraint()
boolean getUseOptionalVariables()
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean getUseBlockingRestart()
boolean getUseRinsLns()
Builder clearUseTimetableEdgeFindingInCumulativeConstraint()
boolean hasAddCgCuts()
double getInitialVariablesActivity()
IN_RANDOM_ORDER
IN_RANDOM_ORDER = 2;
Builder clearExploitIntegerLpSolution()
Builder setConstraintRemovalBatchSize(long value)
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasUsePbResolution()
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean getDeterministicParallelSearch()
boolean getUseOptimizationHints()
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
boolean getUseRinsLns()
.lang.Override Builder clone()
static Builder newBuilder()
boolean hasAutoDetectGreaterThanAtLeastOneOf()
LBD_MOVING_AVERAGE_RESTART
.lang.Override Builder toBuilder()
Builder clearMipCheckPrecision()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
int getPbCleanupIncrement()
boolean hasUseOptimizationHints()
boolean getCpModelUseSatPresolve()
boolean getUseErwaHeuristic()
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean hasVariableActivityDecay()
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
int getPresolveBvaThreshold()
Builder setCountAssumptionLevelsInLbd(boolean value)
boolean hasPresolveProbingDeterministicTimeLimit()
boolean hasExploitBestSolution()
double getPresolveProbingDeterministicTimeLimit()
int getMipMaxActivityExponent()
boolean hasAutoDetectGreaterThanAtLeastOneOf()
Builder setNumConflictsBeforeStrategyChanges(int value)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
Builder clearRandomBranchesRatio()
Builder setOptimizeWithMaxHs(boolean value)
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean hasEnumerateAllSolutions()
Builder clearRandomSeed()
boolean getFillTightenedDomainsInResponse()
boolean getUseBranchingInLp()
boolean getOptimizeWithMaxHs()
boolean hasExploitIntegerLpSolution()
Builder setMipCheckPrecision(double value)
Builder setMinimizeCore(boolean value)
Builder clearUseDisjunctiveConstraintInCumulativeConstraint()
Builder setUseLnsOnly(boolean value)
boolean hasRandomBranchesRatio()
Builder clearUseCombinedNoOverlap()
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
boolean hasPresolveUseBva()
boolean hasInstantiateAllVariables()
static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER
boolean getOptimizeWithCore()
double getMaxTimeInSeconds()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean getLogSearchProgress()
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static com.google.protobuf.Parser< SatParameters > parser()
static ConflictMinimizationAlgorithm forNumber(int value)
.lang.Override final boolean isInitialized()
Builder setUseBranchingInLp(boolean value)
int getClauseCleanupLbdBound()
boolean hasPseudoCostReliabilityThreshold()
boolean getUseCombinedNoOverlap()
Builder setStrategyChangeIncreaseRatio(double value)
boolean getEnumerateAllSolutions()
boolean hasExploitObjective()
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasPresolveUseBva()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasUseRinsLns()
FIXED_RESTART
Builder clearStrategyChangeIncreaseRatio()
boolean hasOnlyAddCutsAtLevelZero()
Builder clearMaxNumCuts()
CLAUSE_LBD
boolean getUseBranchingInLp()
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters build()
int getRestartAlgorithmsCount()
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean getPresolveUseBva()
Builder clearMaxIntegerRoundingScaling()
boolean hasRestartDlAverageRatio()
boolean hasMaxIntegerRoundingScaling()
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setInstantiateAllVariables(boolean value)
boolean hasStopAfterFirstSolution()
boolean getPresolveUseBva()
static final int PRESOLVE_USE_BVA_FIELD_NUMBER
double getMipWantedPrecision()
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasMinimizeWithPropagationRestartPeriod()
Builder clearSearchRandomizationTolerance()
Builder setPresolveBlockedClause(boolean value)
Builder clearMaxTimeInSeconds()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder setMaxPresolveIterations(int value)
Builder setEnumerateAllSolutions(boolean value)
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean getOnlyAddCutsAtLevelZero()
Builder clearConstraintRemovalBatchSize()
Builder clearPseudoCostReliabilityThreshold()
boolean hasMinimizeReductionDuringPbResolution()
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean hasUseBranchingInLp()
Builder clearExpandElementConstraints()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
boolean hasCpModelPresolve()
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
double getRestartDlAverageRatio()
Builder clearCpModelProbingLevel()
double getRandomBranchesRatio()
boolean hasUseErwaHeuristic()
boolean hasMipMaxActivityExponent()
boolean hasUseMirRounding()
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
int getCpModelProbingLevel()
double getMaxTimeInSeconds()
double getMinOrthogonalityForLpConstraints()
boolean hasMaxSatReverseAssumptionOrder()
boolean hasClauseActivityDecay()
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMaxNumberOfConflicts(long value)
double getRandomBranchesRatio()
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
boolean getMaxSatReverseAssumptionOrder()
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearAddLpConstraintsLazily()
double getRestartDlAverageRatio()
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
boolean hasUseOptionalVariables()
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
boolean hasNumSearchWorkers()
boolean hasSubsumptionDuringConflictAnalysis()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
boolean hasUseErwaHeuristic()
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
boolean hasUseTimetableEdgeFindingInCumulativeConstraint()
boolean hasInitialVariablesActivity()
boolean hasRestartPeriod()
long getPseudoCostReliabilityThreshold()
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
Builder setUsePbResolution(boolean value)
boolean hasMipWantedPrecision()
Builder clearNumSearchWorkers()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearUsePrecedencesInDisjunctiveConstraint()
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean getFindMultipleCores()
boolean getExploitBestSolution()
Builder setClauseCleanupPeriod(int value)
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
boolean hasStrategyChangeIncreaseRatio()
Builder setMaxInactiveCount(long value)
Builder setTreatBinaryClausesSeparately(boolean value)
Builder clearFindMultipleCores()
boolean hasMipVarScaling()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
boolean getUseOverloadCheckerInCumulativeConstraint()
POLARITY_REVERSE_WEIGHTED_SIGN
boolean hasBooleanEncodingLevel()
IN_ORDER
static final int MIP_MAX_BOUND_FIELD_NUMBER
boolean getFindMultipleCores()
boolean hasExpandElementConstraints()
Builder clearMaxInactiveCount()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
boolean hasCatchSigintSignal()
boolean getShareLevelZeroBounds()
int getLinearizationLevel()
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
boolean hasClauseCleanupTarget()
static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER
boolean hasAlsoBumpVariablesInConflictReasons()
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearMipWantedPrecision()
Builder setInitialVariablesActivity(double value)
Builder clearBooleanEncodingLevel()
boolean hasShareLevelZeroBounds()
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMinOrthogonalityForLpConstraints()
int getRandomSeed()
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean hasUseBranchingInLp()
DEFAULT_ASSUMPTION_ORDER
DEFAULT_ASSUMPTION_ORDER = 0;
boolean getAddLpConstraintsLazily()
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
boolean hasRandomPolarityRatio()
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
int getCpModelProbingLevel()
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 ...
static ClauseOrdering forNumber(int value)
Builder setSubsumptionDuringConflictAnalysis(boolean value)
long getSearchRandomizationTolerance()
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean hasNumConflictsBeforeStrategyChanges()
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
boolean hasCpModelUseSatPresolve()
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
static MaxSatStratificationAlgorithm forNumber(int value)
boolean hasPbCleanupIncrement()
boolean hasOptimizeWithMaxHs()
boolean hasReduceMemoryUsageInInterleaveMode()
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasInterleaveSearch()
Builder setCoverOptimization(boolean value)
Builder setExpandElementConstraints(boolean value)
Builder clearUseBlockingRestart()
double getVariableActivityDecay()
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
boolean getCatchSigintSignal()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
POLARITY_WEIGHTED_SIGN
Builder setPresolveProbingDeterministicTimeLimit(double value)
static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER
Builder clearOptimizeWithMaxHs()
Builder clearEnumerateAllSolutions()
boolean hasLogSearchProgress()
double getPresolveProbingDeterministicTimeLimit()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean getEnumerateAllSolutions()
double getRandomPolarityRatio()
int getNumSearchWorkers()
double getMipVarScaling()
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
boolean hasMipMaxBound()
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasTreatBinaryClausesSeparately()
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
Builder setUseExactLpReason(boolean value)
int getNumConflictsBeforeStrategyChanges()
static final int MAX_NUM_CUTS_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
Builder setShareLevelZeroBounds(boolean value)
double getVariableActivityDecay()
int getMaxPresolveIterations()
Builder clearPresolveProbingDeterministicTimeLimit()
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
boolean getSubsumptionDuringConflictAnalysis()
Builder setPresolveBveThreshold(int value)
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
int getNumSearchWorkers()
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
static final int USE_LNS_ONLY_FIELD_NUMBER
Builder setRestartRunningWindowSize(int value)
boolean hasUseLnsOnly()
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean getUseErwaHeuristic()
boolean getExploitIntegerLpSolution()
int getPresolveBveThreshold()
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static SearchBranching valueOf(int value)
boolean getCoverOptimization()
final int getNumber()
Builder setMaxTimeInSeconds(double value)
Builder setRandomizeSearch(boolean value)
Builder clearNumConflictsBeforeStrategyChanges()
Builder clearRandomPolarityRatio()
.lang.Deprecated static VariableOrder valueOf(int value)
boolean getExploitObjective()
static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER
Builder setLinearizationLevel(int value)
boolean hasMaxNumCuts()
boolean hasUseDisjunctiveConstraintInCumulativeConstraint()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setUseOptimizationHints(boolean value)
Builder clearRandomizeSearch()
Builder setExploitIntegerLpSolution(boolean value)
boolean hasMaxSatReverseAssumptionOrder()
boolean hasMipCheckPrecision()
boolean getUseBlockingRestart()
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
int getRandomSeed()
long getMaxInactiveCount()
boolean hasMinimizeReductionDuringPbResolution()
Builder setAddCgCuts(boolean value)
boolean hasBooleanEncodingLevel()
Builder clearUseOptionalVariables()
int getBooleanEncodingLevel()
boolean hasAddMirCuts()
int getRestartPeriod()
boolean getUseDisjunctiveConstraintInCumulativeConstraint()
Builder setMinOrthogonalityForLpConstraints(double value)
boolean getExploitBestSolution()
long getMaxMemoryInMb()
boolean getUseTimetableEdgeFindingInCumulativeConstraint()
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
int getPbCleanupIncrement()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
long getMaxInactiveCount()
Builder clearAddKnapsackCuts()
boolean getUseDisjunctiveConstraintInCumulativeConstraint()
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasFillTightenedDomainsInResponse()
boolean hasPresolveBveThreshold()
boolean hasDiversifyLnsParams()
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasRestartPeriod()
Builder clearUseMirRounding()
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean getUsePrecedencesInDisjunctiveConstraint()
boolean hasShareObjectiveBounds()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
Builder setShareObjectiveBounds(boolean value)
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasCountAssumptionLevelsInLbd()
int getMaxNumCuts()
Builder clearUsePhaseSaving()
static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
.lang.Override boolean equals(final java.lang.Object obj)
Builder setClauseActivityDecay(double value)
boolean getUsePbResolution()
static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER
boolean getUseOptionalVariables()
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
boolean getUseMirRounding()
boolean hasLinearizationLevel()
static final int RESTART_PERIOD_FIELD_NUMBER
Builder clearUsePbResolution()
boolean hasUseLnsOnly()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
boolean getReduceMemoryUsageInInterleaveMode()
Builder clearAutoDetectGreaterThanAtLeastOneOf()
Builder setUseMirRounding(boolean value)
static final int PB_CLEANUP_RATIO_FIELD_NUMBER
Builder clearOptimizeWithCore()
boolean hasPresolveBveClauseWeight()
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
Builder clearUseExactLpReason()
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
Builder clearMipMaxBound()
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
boolean getExploitAllLpSolution()
boolean hasConstraintRemovalBatchSize()
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
long getMaxNumberOfConflicts()
final int getNumber()
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
boolean hasRestartDlAverageRatio()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
boolean hasUseRinsLns()
int getBinarySearchNumConflicts()
boolean hasOptimizeWithCore()
Builder setMipWantedPrecision(double value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasMaxIntegerRoundingScaling()
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
boolean hasExploitObjective()
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
double getMipMaxBound()
Builder clearMaxDeterministicTime()
boolean getShareObjectiveBounds()
Builder setRandomBranchesRatio(double value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasCountAssumptionLevelsInLbd()
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
boolean hasExploitBestSolution()
boolean getAutoDetectGreaterThanAtLeastOneOf()
boolean hasPresolveBveClauseWeight()
boolean getReduceMemoryUsageInInterleaveMode()
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
POLARITY_FALSE
POLARITY_FALSE = 1;
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int USE_PB_RESOLUTION_FIELD_NUMBER
double getMaxDeterministicTime()
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
PROTECTION_ALWAYS
boolean hasMaxPresolveIterations()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasCoverOptimization()
Builder clearStopAfterFirstSolution()
boolean getAddMirCuts()
Builder clearAddMirCuts()
int getRestartAlgorithmsCount()
Builder clearPresolveBvaThreshold()
Builder setCpModelProbingLevel(int value)
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
Builder setClauseCleanupTarget(int value)
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
NONE
NONE = 0;
static final int ADD_CG_CUTS_FIELD_NUMBER
boolean hasPresolveBvaThreshold()
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
HINT_SEARCH
static final int SEARCH_BRANCHING_FIELD_NUMBER
Builder setLogSearchProgress(boolean value)
Builder clearPresolveBveClauseWeight()
Builder setUseErwaHeuristic(boolean value)
boolean hasMinimizeCore()
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder clearGlucoseMaxDecay()
int getMaxIntegerRoundingScaling()
int getMaxPresolveIterations()
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
boolean hasCpModelPresolve()
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasMaxInactiveCount()
Builder clearMinimizeCore()
.lang.Deprecated static RestartAlgorithm valueOf(int value)
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasExploitAllLpSolution()
boolean hasBinarySearchNumConflicts()
boolean hasDeterministicParallelSearch()
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
Builder clearUseErwaHeuristic()
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean hasNumSearchWorkers()
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
boolean getOptimizeWithCore()
int getMipMaxActivityExponent()
Builder clearExploitObjective()
Builder setOnlyAddCutsAtLevelZero(boolean value)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
Builder clearMaxSatReverseAssumptionOrder()
boolean getDeterministicParallelSearch()
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
BINARY_MINIMIZATION_FIRST
BINARY_MINIMIZATION_FIRST = 1;
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
boolean getExploitAllLpSolution()
Builder clearInterleaveSearch()
boolean getUsePhaseSaving()
ORDER_ASSUMPTION_BY_DEPTH
ORDER_ASSUMPTION_BY_DEPTH = 1;
Builder clearPresolveBlockedClause()
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
Builder setPresolveBveClauseWeight(int value)
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
Builder setUseCombinedNoOverlap(boolean value)
boolean hasClauseCleanupPeriod()
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasSearchRandomizationTolerance()
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
int getMaxIntegerRoundingScaling()
double getStrategyChangeIncreaseRatio()
STRATIFICATION_DESCENT
double getInitialVariablesActivity()
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
final int getNumber()
Builder setMipVarScaling(double value)
Builder setBinarySearchNumConflicts(int value)
boolean hasUseCombinedNoOverlap()
boolean hasRandomPolarityRatio()
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
boolean getCoverOptimization()
boolean getExploitIntegerLpSolution()
boolean getAddCgCuts()
Builder clearRestartDlAverageRatio()
Builder clearCatchSigintSignal()
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
boolean hasAddKnapsackCuts()
boolean getUsePbResolution()
int getNumConflictsBeforeStrategyChanges()
int getRestartRunningWindowSize()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
.lang.Deprecated static Polarity valueOf(int value)
boolean getAutoDetectGreaterThanAtLeastOneOf()
boolean getCpModelUseSatPresolve()
.lang.Override int getSerializedSize()
Builder clearSubsumptionDuringConflictAnalysis()
Builder clearUseBranchingInLp()
boolean hasPresolveBveThreshold()
Builder setPresolveUseBva(boolean value)
long getPseudoCostReliabilityThreshold()
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
Builder clearCpModelPresolve()
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
PORTFOLIO_WITH_QUICK_RESTART_SEARCH
EXPERIMENTAL
EXPERIMENTAL = 3;
boolean getInterleaveSearch()
Builder clearAlsoBumpVariablesInConflictReasons()
boolean hasMinimizeCore()
static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER
DL_MOVING_AVERAGE_RESTART
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
boolean hasSubsumptionDuringConflictAnalysis()
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
boolean hasMaxDeterministicTime()
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder clearClauseCleanupPeriod()
double getMipWantedPrecision()
Builder clearPresolveBveThreshold()
boolean hasGlucoseMaxDecay()
Builder clearMipMaxActivityExponent()
static SearchBranching forNumber(int value)
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasCoverOptimization()
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
int getRestartPeriod()
double getClauseActivityDecay()
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int USE_EXACT_LP_REASON_FIELD_NUMBER
static final int INITIAL_POLARITY_FIELD_NUMBER
RECURSIVE
RECURSIVE = 2;
Builder clearLinearizationLevel()
Builder setMipMaxBound(double value)
boolean hasClauseActivityDecay()
double getClauseActivityDecay()
static Polarity forNumber(int value)
Builder setRandomPolarityRatio(double value)
boolean hasExpandElementConstraints()
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
STRATIFICATION_NONE
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder clearInstantiateAllVariables()
boolean hasInitialVariablesActivity()
PROTECTION_NONE
Builder clearShareLevelZeroBounds()
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setClauseCleanupLbdBound(int value)
boolean hasUsePhaseSaving()
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int NUM_SEARCH_WORKERS_FIELD_NUMBER
Builder setRestartPeriod(int value)
Builder clearCpModelUseSatPresolve()
int getPresolveBvaThreshold()
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
Builder setVariableActivityDecay(double value)
Builder setCpModelPresolve(boolean value)
NO_RESTART
NO_RESTART = 0;
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder setRandomSeed(int value)
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearTreatBinaryClausesSeparately()
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
boolean hasShareObjectiveBounds()
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int USE_PHASE_SAVING_FIELD_NUMBER
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
boolean hasMaxNumCuts()
Builder clearPbCleanupIncrement()
Builder setExploitBestSolution(boolean value)
boolean hasReduceMemoryUsageInInterleaveMode()
boolean hasStrategyChangeIncreaseRatio()
FIXED_SEARCH
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
static final int LINEARIZATION_LEVEL_FIELD_NUMBER
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static com.google.ortools.sat.SatParameters getDefaultInstance()
boolean hasFindMultipleCores()
int getMaxNumCuts()
Builder setMinimizeReductionDuringPbResolution(boolean value)
boolean getPresolveBlockedClause()
int getRestartRunningWindowSize()
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
boolean getPresolveBlockedClause()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
Builder setUseOptionalVariables(boolean value)
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasUseBlockingRestart()
LUBY_RESTART
double getMaxDeterministicTime()
double getGlucoseMaxDecay()
.lang.Override Builder newBuilderForType()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
boolean hasMipMaxActivityExponent()
boolean hasRandomSeed()
Builder clearPresolveUseBva()
boolean hasOnlyAddCutsAtLevelZero()
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
double getStrategyChangeIncreaseRatio()
LP_SEARCH
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder clearDeterministicParallelSearch()
boolean getUseOverloadCheckerInCumulativeConstraint()
Builder setCatchSigintSignal(boolean value)
Builder clearExploitBestSolution()
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
Builder setExploitObjective(boolean value)
static final int MAX_MEMORY_IN_MB_FIELD_NUMBER
boolean hasAddCgCuts()
boolean getRandomizeSearch()
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
Builder clearMinimizeReductionDuringPbResolution()
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
long getMaxMemoryInMb()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean hasCpModelUseSatPresolve()
boolean getExploitObjective()
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
boolean getAlsoBumpVariablesInConflictReasons()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
long getSearchRandomizationTolerance()
boolean getAddKnapsackCuts()
long getMaxNumberOfConflicts()
boolean hasMaxInactiveCount()
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
boolean hasRandomizeSearch()
Builder clearFillTightenedDomainsInResponse()
boolean getCatchSigintSignal()
boolean getCpModelPresolve()
Builder clearClauseCleanupLbdBound()
boolean hasPseudoCostReliabilityThreshold()
Builder setFillTightenedDomainsInResponse(boolean value)
Builder setUseBlockingRestart(boolean value)
int getBinarySearchNumConflicts()
int getBooleanEncodingLevel()
double getMipCheckPrecision()
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasPbCleanupIncrement()
Builder clearMaxPresolveIterations()
boolean getAddMirCuts()
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasRandomizeSearch()
static final int USE_ERWA_HEURISTIC_FIELD_NUMBER
Builder clearCountAssumptionLevelsInLbd()
Builder setGlucoseMaxDecay(double value)
Builder clearClauseActivityDecay()
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
int getClauseCleanupLbdBound()
boolean getMaxSatReverseAssumptionOrder()
boolean hasRandomSeed()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...