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  shareObjectiveBounds_ = true;
100  shareLevelZeroBounds_ = true;
101  useRinsLns_ = true;
102  useOptionalVariables_ = true;
103  useExactLpReason_ = true;
104  catchSigintSignal_ = true;
105  mipMaxBound_ = 10000000D;
106  mipVarScaling_ = 1D;
107  mipWantedPrecision_ = 1e-06D;
108  mipMaxActivityExponent_ = 53;
109  mipCheckPrecision_ = 0.0001D;
110  }
111 
112  @java.lang.Override
113  @SuppressWarnings({"unused"})
114  protected java.lang.Object newInstance(
115  UnusedPrivateParameter unused) {
116  return new SatParameters();
117  }
118 
119  @java.lang.Override
120  public final com.google.protobuf.UnknownFieldSet
122  return this.unknownFields;
123  }
124  private SatParameters(
125  com.google.protobuf.CodedInputStream input,
126  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
127  throws com.google.protobuf.InvalidProtocolBufferException {
128  this();
129  if (extensionRegistry == null) {
130  throw new java.lang.NullPointerException();
131  }
132  int mutable_bitField0_ = 0;
133  int mutable_bitField1_ = 0;
134  int mutable_bitField2_ = 0;
135  int mutable_bitField3_ = 0;
136  com.google.protobuf.UnknownFieldSet.Builder unknownFields =
137  com.google.protobuf.UnknownFieldSet.newBuilder();
138  try {
139  boolean done = false;
140  while (!done) {
141  int tag = input.readTag();
142  switch (tag) {
143  case 0:
144  done = true;
145  break;
146  case 8: {
147  int rawValue = input.readEnum();
148  @SuppressWarnings("deprecation")
149  com.google.ortools.sat.SatParameters.VariableOrder value = com.google.ortools.sat.SatParameters.VariableOrder.valueOf(rawValue);
150  if (value == null) {
151  unknownFields.mergeVarintField(1, rawValue);
152  } else {
153  bitField0_ |= 0x00000001;
154  preferredVariableOrder_ = rawValue;
155  }
156  break;
157  }
158  case 16: {
159  int rawValue = input.readEnum();
160  @SuppressWarnings("deprecation")
161  com.google.ortools.sat.SatParameters.Polarity value = com.google.ortools.sat.SatParameters.Polarity.valueOf(rawValue);
162  if (value == null) {
163  unknownFields.mergeVarintField(2, rawValue);
164  } else {
165  bitField0_ |= 0x00000002;
166  initialPolarity_ = rawValue;
167  }
168  break;
169  }
170  case 32: {
171  int rawValue = input.readEnum();
172  @SuppressWarnings("deprecation")
173  com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value = com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.valueOf(rawValue);
174  if (value == null) {
175  unknownFields.mergeVarintField(4, rawValue);
176  } else {
177  bitField0_ |= 0x00000100;
178  minimizationAlgorithm_ = rawValue;
179  }
180  break;
181  }
182  case 88: {
183  bitField0_ |= 0x00000800;
184  clauseCleanupPeriod_ = input.readInt32();
185  break;
186  }
187  case 104: {
188  bitField0_ |= 0x00001000;
189  clauseCleanupTarget_ = input.readInt32();
190  break;
191  }
192  case 121: {
193  bitField0_ |= 0x00100000;
194  variableActivityDecay_ = input.readDouble();
195  break;
196  }
197  case 129: {
198  bitField0_ |= 0x00200000;
199  maxVariableActivityValue_ = input.readDouble();
200  break;
201  }
202  case 137: {
203  bitField0_ |= 0x02000000;
204  clauseActivityDecay_ = input.readDouble();
205  break;
206  }
207  case 145: {
208  bitField0_ |= 0x04000000;
209  maxClauseActivityValue_ = input.readDouble();
210  break;
211  }
212  case 177: {
213  bitField0_ |= 0x00400000;
214  glucoseMaxDecay_ = input.readDouble();
215  break;
216  }
217  case 185: {
218  bitField0_ |= 0x00800000;
219  glucoseDecayIncrement_ = input.readDouble();
220  break;
221  }
222  case 192: {
223  bitField0_ |= 0x01000000;
224  glucoseDecayIncrementPeriod_ = input.readInt32();
225  break;
226  }
227  case 240: {
228  bitField0_ |= 0x10000000;
229  restartPeriod_ = input.readInt32();
230  break;
231  }
232  case 248: {
233  bitField1_ |= 0x00000400;
234  randomSeed_ = input.readInt32();
235  break;
236  }
237  case 257: {
238  bitField0_ |= 0x00000010;
239  randomBranchesRatio_ = input.readDouble();
240  break;
241  }
242  case 264: {
243  bitField1_ |= 0x00000200;
244  treatBinaryClausesSeparately_ = input.readBool();
245  break;
246  }
247  case 272: {
248  int rawValue = input.readEnum();
249  @SuppressWarnings("deprecation")
250  com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value = com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm.valueOf(rawValue);
251  if (value == null) {
252  unknownFields.mergeVarintField(34, rawValue);
253  } else {
254  bitField0_ |= 0x00000200;
255  binaryMinimizationAlgorithm_ = rawValue;
256  }
257  break;
258  }
259  case 280: {
260  bitField1_ |= 0x04000000;
261  useOptimizationHints_ = input.readBool();
262  break;
263  }
264  case 289: {
265  bitField1_ |= 0x00000020;
266  maxTimeInSeconds_ = input.readDouble();
267  break;
268  }
269  case 296: {
270  bitField1_ |= 0x00000080;
271  maxNumberOfConflicts_ = input.readInt64();
272  break;
273  }
274  case 320: {
275  bitField1_ |= 0x00000100;
276  maxMemoryInMb_ = input.readInt64();
277  break;
278  }
279  case 328: {
280  bitField1_ |= 0x00000800;
281  logSearchProgress_ = input.readBool();
282  break;
283  }
284  case 344: {
285  bitField1_ |= 0x00001000;
286  usePbResolution_ = input.readBool();
287  break;
288  }
289  case 352: {
290  bitField0_ |= 0x00000004;
291  usePhaseSaving_ = input.readBool();
292  break;
293  }
294  case 361: {
295  bitField0_ |= 0x00000008;
296  randomPolarityRatio_ = input.readDouble();
297  break;
298  }
299  case 368: {
300  bitField0_ |= 0x00010000;
301  pbCleanupIncrement_ = input.readInt32();
302  break;
303  }
304  case 377: {
305  bitField0_ |= 0x00020000;
306  pbCleanupRatio_ = input.readDouble();
307  break;
308  }
309  case 384: {
310  bitField1_ |= 0x00002000;
311  minimizeReductionDuringPbResolution_ = input.readBool();
312  break;
313  }
314  case 392: {
315  bitField1_ |= 0x00004000;
316  countAssumptionLevelsInLbd_ = input.readBool();
317  break;
318  }
319  case 400: {
320  bitField1_ |= 0x08000000;
321  minimizeCore_ = input.readBool();
322  break;
323  }
324  case 408: {
325  int rawValue = input.readEnum();
326  @SuppressWarnings("deprecation")
327  com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value = com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder.valueOf(rawValue);
328  if (value == null) {
329  unknownFields.mergeVarintField(51, rawValue);
330  } else {
331  bitField1_ |= 0x40000000;
332  maxSatAssumptionOrder_ = rawValue;
333  }
334  break;
335  }
336  case 416: {
337  bitField1_ |= 0x80000000;
338  maxSatReverseAssumptionOrder_ = input.readBool();
339  break;
340  }
341  case 424: {
342  int rawValue = input.readEnum();
343  @SuppressWarnings("deprecation")
344  com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value = com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm.valueOf(rawValue);
345  if (value == null) {
346  unknownFields.mergeVarintField(53, rawValue);
347  } else {
348  bitField2_ |= 0x00000001;
349  maxSatStratification_ = rawValue;
350  }
351  break;
352  }
353  case 432: {
354  bitField1_ |= 0x00008000;
355  presolveBveThreshold_ = input.readInt32();
356  break;
357  }
358  case 440: {
359  bitField1_ |= 0x00010000;
360  presolveBveClauseWeight_ = input.readInt32();
361  break;
362  }
363  case 448: {
364  bitField0_ |= 0x00000400;
365  subsumptionDuringConflictAnalysis_ = input.readBool();
366  break;
367  }
368  case 457: {
369  bitField1_ |= 0x00020000;
370  presolveProbingDeterministicTimeLimit_ = input.readDouble();
371  break;
372  }
373  case 464: {
374  int rawValue = input.readEnum();
375  @SuppressWarnings("deprecation")
376  com.google.ortools.sat.SatParameters.ClauseProtection value = com.google.ortools.sat.SatParameters.ClauseProtection.valueOf(rawValue);
377  if (value == null) {
378  unknownFields.mergeVarintField(58, rawValue);
379  } else {
380  bitField0_ |= 0x00002000;
381  clauseCleanupProtection_ = rawValue;
382  }
383  break;
384  }
385  case 472: {
386  bitField0_ |= 0x00004000;
387  clauseCleanupLbdBound_ = input.readInt32();
388  break;
389  }
390  case 480: {
391  int rawValue = input.readEnum();
392  @SuppressWarnings("deprecation")
393  com.google.ortools.sat.SatParameters.ClauseOrdering value = com.google.ortools.sat.SatParameters.ClauseOrdering.valueOf(rawValue);
394  if (value == null) {
395  unknownFields.mergeVarintField(60, rawValue);
396  } else {
397  bitField0_ |= 0x00008000;
398  clauseCleanupOrdering_ = rawValue;
399  }
400  break;
401  }
402  case 488: {
403  int rawValue = input.readEnum();
404  @SuppressWarnings("deprecation")
405  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
406  if (value == null) {
407  unknownFields.mergeVarintField(61, rawValue);
408  } else {
409  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
410  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
411  mutable_bitField0_ |= 0x08000000;
412  }
413  restartAlgorithms_.add(rawValue);
414  }
415  break;
416  }
417  case 490: {
418  int length = input.readRawVarint32();
419  int oldLimit = input.pushLimit(length);
420  while(input.getBytesUntilLimit() > 0) {
421  int rawValue = input.readEnum();
422  @SuppressWarnings("deprecation")
423  com.google.ortools.sat.SatParameters.RestartAlgorithm value = com.google.ortools.sat.SatParameters.RestartAlgorithm.valueOf(rawValue);
424  if (value == null) {
425  unknownFields.mergeVarintField(61, rawValue);
426  } else {
427  if (!((mutable_bitField0_ & 0x08000000) != 0)) {
428  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>();
429  mutable_bitField0_ |= 0x08000000;
430  }
431  restartAlgorithms_.add(rawValue);
432  }
433  }
434  input.popLimit(oldLimit);
435  break;
436  }
437  case 496: {
438  bitField0_ |= 0x20000000;
439  restartRunningWindowSize_ = input.readInt32();
440  break;
441  }
442  case 505: {
443  bitField0_ |= 0x40000000;
444  restartDlAverageRatio_ = input.readDouble();
445  break;
446  }
447  case 512: {
448  bitField1_ |= 0x00000001;
449  useBlockingRestart_ = input.readBool();
450  break;
451  }
452  case 520: {
453  bitField1_ |= 0x00000002;
454  blockingRestartWindowSize_ = input.readInt32();
455  break;
456  }
457  case 529: {
458  bitField1_ |= 0x00000004;
459  blockingRestartMultiplier_ = input.readDouble();
460  break;
461  }
462  case 537: {
463  bitField1_ |= 0x00000040;
464  maxDeterministicTime_ = input.readDouble();
465  break;
466  }
467  case 544: {
468  bitField1_ |= 0x00000008;
469  numConflictsBeforeStrategyChanges_ = input.readInt32();
470  break;
471  }
472  case 553: {
473  bitField1_ |= 0x00000010;
474  strategyChangeIncreaseRatio_ = input.readDouble();
475  break;
476  }
477  case 562: {
478  com.google.protobuf.ByteString bs = input.readBytes();
479  bitField0_ |= 0x08000000;
480  defaultRestartAlgorithms_ = bs;
481  break;
482  }
483  case 569: {
484  bitField0_ |= 0x80000000;
485  restartLbdAverageRatio_ = input.readDouble();
486  break;
487  }
488  case 576: {
489  bitField1_ |= 0x00080000;
490  presolveUseBva_ = input.readBool();
491  break;
492  }
493  case 584: {
494  bitField1_ |= 0x00100000;
495  presolveBvaThreshold_ = input.readInt32();
496  break;
497  }
498  case 592: {
499  bitField2_ |= 0x00000002;
500  usePrecedencesInDisjunctiveConstraint_ = input.readBool();
501  break;
502  }
503  case 600: {
504  bitField0_ |= 0x00000020;
505  useErwaHeuristic_ = input.readBool();
506  break;
507  }
508  case 609: {
509  bitField0_ |= 0x00000040;
510  initialVariablesActivity_ = input.readDouble();
511  break;
512  }
513  case 616: {
514  bitField0_ |= 0x00000080;
515  alsoBumpVariablesInConflictReasons_ = input.readBool();
516  break;
517  }
518  case 624: {
519  bitField2_ |= 0x00000004;
520  useOverloadCheckerInCumulativeConstraint_ = input.readBool();
521  break;
522  }
523  case 632: {
524  bitField2_ |= 0x00000008;
525  useTimetableEdgeFindingInCumulativeConstraint_ = input.readBool();
526  break;
527  }
528  case 640: {
529  bitField2_ |= 0x00000010;
530  useDisjunctiveConstraintInCumulativeConstraint_ = input.readBool();
531  break;
532  }
533  case 656: {
534  int rawValue = input.readEnum();
535  @SuppressWarnings("deprecation")
536  com.google.ortools.sat.SatParameters.SearchBranching value = com.google.ortools.sat.SatParameters.SearchBranching.valueOf(rawValue);
537  if (value == null) {
538  unknownFields.mergeVarintField(82, rawValue);
539  } else {
540  bitField2_ |= 0x00040000;
541  searchBranching_ = rawValue;
542  }
543  break;
544  }
545  case 664: {
546  bitField2_ |= 0x01000000;
547  optimizeWithCore_ = input.readBool();
548  break;
549  }
550  case 672: {
551  bitField1_ |= 0x10000000;
552  findMultipleCores_ = input.readBool();
553  break;
554  }
555  case 680: {
556  bitField2_ |= 0x04000000;
557  optimizeWithMaxHs_ = input.readBool();
558  break;
559  }
560  case 688: {
561  bitField1_ |= 0x00400000;
562  cpModelPresolve_ = input.readBool();
563  break;
564  }
565  case 696: {
566  bitField2_ |= 0x08000000;
567  enumerateAllSolutions_ = input.readBool();
568  break;
569  }
570  case 704: {
571  bitField1_ |= 0x00040000;
572  presolveBlockedClause_ = input.readBool();
573  break;
574  }
575  case 712: {
576  bitField1_ |= 0x20000000;
577  coverOptimization_ = input.readBool();
578  break;
579  }
580  case 720: {
581  bitField2_ |= 0x00000020;
582  linearizationLevel_ = input.readInt32();
583  break;
584  }
585  case 728: {
586  bitField2_ |= 0x00000080;
587  maxNumCuts_ = input.readInt32();
588  break;
589  }
590  case 736: {
591  bitField2_ |= 0x00000100;
592  onlyAddCutsAtLevelZero_ = input.readBool();
593  break;
594  }
595  case 744: {
596  bitField1_ |= 0x01000000;
597  cpModelUseSatPresolve_ = input.readBool();
598  break;
599  }
600  case 752: {
601  bitField2_ |= 0x00080000;
602  exploitIntegerLpSolution_ = input.readBool();
603  break;
604  }
605  case 760: {
606  bitField2_ |= 0x40000000;
607  autoDetectGreaterThanAtLeastOneOf_ = input.readBool();
608  break;
609  }
610  case 768: {
611  bitField0_ |= 0x00040000;
612  minimizeWithPropagationRestartPeriod_ = input.readInt32();
613  break;
614  }
615  case 776: {
616  bitField0_ |= 0x00080000;
617  minimizeWithPropagationNumDecisions_ = input.readInt32();
618  break;
619  }
620  case 784: {
621  bitField2_ |= 0x80000000;
622  stopAfterFirstSolution_ = input.readBool();
623  break;
624  }
625  case 792: {
626  bitField2_ |= 0x02000000;
627  binarySearchNumConflicts_ = input.readInt32();
628  break;
629  }
630  case 800: {
631  bitField3_ |= 0x00000001;
632  numSearchWorkers_ = input.readInt32();
633  break;
634  }
635  case 808: {
636  bitField3_ |= 0x00000020;
637  useLnsOnly_ = input.readBool();
638  break;
639  }
640  case 824: {
641  bitField3_ |= 0x00000200;
642  randomizeSearch_ = input.readBool();
643  break;
644  }
645  case 832: {
646  bitField3_ |= 0x00000400;
647  searchRandomizationTolerance_ = input.readInt64();
648  break;
649  }
650  case 840: {
651  bitField3_ |= 0x00000040;
652  lnsFocusOnDecisionVariables_ = input.readBool();
653  break;
654  }
655  case 848: {
656  bitField2_ |= 0x20000000;
657  instantiateAllVariables_ = input.readBool();
658  break;
659  }
660  case 856: {
661  bitField2_ |= 0x00000040;
662  booleanEncodingLevel_ = input.readInt32();
663  break;
664  }
665  case 864: {
666  bitField3_ |= 0x00000800;
667  useOptionalVariables_ = input.readBool();
668  break;
669  }
670  case 872: {
671  bitField3_ |= 0x00001000;
672  useExactLpReason_ = input.readBool();
673  break;
674  }
675  case 880: {
676  bitField1_ |= 0x00800000;
677  cpModelProbingLevel_ = input.readInt32();
678  break;
679  }
680  case 888: {
681  bitField2_ |= 0x00000200;
682  addKnapsackCuts_ = input.readBool();
683  break;
684  }
685  case 896: {
686  bitField2_ |= 0x00004000;
687  addLpConstraintsLazily_ = input.readBool();
688  break;
689  }
690  case 904: {
691  bitField3_ |= 0x00000008;
692  shareObjectiveBounds_ = input.readBool();
693  break;
694  }
695  case 912: {
696  bitField3_ |= 0x00000010;
697  shareLevelZeroBounds_ = input.readBool();
698  break;
699  }
700  case 921: {
701  bitField2_ |= 0x00008000;
702  minOrthogonalityForLpConstraints_ = input.readDouble();
703  break;
704  }
705  case 928: {
706  bitField2_ |= 0x00100000;
707  exploitAllLpSolution_ = input.readBool();
708  break;
709  }
710  case 936: {
711  bitField2_ |= 0x00000400;
712  addCgCuts_ = input.readBool();
713  break;
714  }
715  case 944: {
716  bitField2_ |= 0x00001000;
717  useMirRounding_ = input.readBool();
718  break;
719  }
720  case 952: {
721  bitField2_ |= 0x00002000;
722  maxIntegerRoundingScaling_ = input.readInt32();
723  break;
724  }
725  case 960: {
726  bitField2_ |= 0x00000800;
727  addMirCuts_ = input.readBool();
728  break;
729  }
730  case 968: {
731  bitField2_ |= 0x00010000;
732  maxInactiveCount_ = input.readInt64();
733  break;
734  }
735  case 976: {
736  bitField2_ |= 0x00020000;
737  constraintRemovalBatchSize_ = input.readInt64();
738  break;
739  }
740  case 984: {
741  bitField2_ |= 0x00800000;
742  pseudoCostReliabilityThreshold_ = input.readInt64();
743  break;
744  }
745  case 993: {
746  bitField3_ |= 0x00010000;
747  mipMaxBound_ = input.readDouble();
748  break;
749  }
750  case 1001: {
751  bitField3_ |= 0x00020000;
752  mipVarScaling_ = input.readDouble();
753  break;
754  }
755  case 1009: {
756  bitField3_ |= 0x00040000;
757  mipWantedPrecision_ = input.readDouble();
758  break;
759  }
760  case 1016: {
761  bitField3_ |= 0x00080000;
762  mipMaxActivityExponent_ = input.readInt32();
763  break;
764  }
765  case 1025: {
766  bitField3_ |= 0x00100000;
767  mipCheckPrecision_ = input.readDouble();
768  break;
769  }
770  case 1032: {
771  bitField3_ |= 0x00000080;
772  useRinsLns_ = input.readBool();
773  break;
774  }
775  case 1040: {
776  bitField2_ |= 0x00200000;
777  exploitBestSolution_ = input.readBool();
778  break;
779  }
780  case 1048: {
781  bitField2_ |= 0x00400000;
782  exploitObjective_ = input.readBool();
783  break;
784  }
785  case 1056: {
786  bitField2_ |= 0x10000000;
787  fillTightenedDomainsInResponse_ = input.readBool();
788  break;
789  }
790  case 1064: {
791  bitField3_ |= 0x00004000;
792  useCombinedNoOverlap_ = input.readBool();
793  break;
794  }
795  case 1072: {
796  bitField3_ |= 0x00000004;
797  deterministicParallelSearch_ = input.readBool();
798  break;
799  }
800  case 1080: {
801  bitField3_ |= 0x00008000;
802  catchSigintSignal_ = input.readBool();
803  break;
804  }
805  case 1088: {
806  bitField3_ |= 0x00000002;
807  interleaveSearch_ = input.readBool();
808  break;
809  }
810  case 1096: {
811  bitField3_ |= 0x00000100;
812  diversifyLnsParams_ = input.readBool();
813  break;
814  }
815  case 1104: {
816  bitField1_ |= 0x00200000;
817  maxPresolveIterations_ = input.readInt32();
818  break;
819  }
820  case 1112: {
821  bitField3_ |= 0x00002000;
822  useBranchingInLp_ = input.readBool();
823  break;
824  }
825  case 1120: {
826  bitField1_ |= 0x02000000;
827  expandElementConstraints_ = input.readBool();
828  break;
829  }
830  default: {
831  if (!parseUnknownField(
832  input, unknownFields, extensionRegistry, tag)) {
833  done = true;
834  }
835  break;
836  }
837  }
838  }
839  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
840  throw e.setUnfinishedMessage(this);
841  } catch (java.io.IOException e) {
842  throw new com.google.protobuf.InvalidProtocolBufferException(
843  e).setUnfinishedMessage(this);
844  } finally {
845  if (((mutable_bitField0_ & 0x08000000) != 0)) {
846  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
847  }
848  this.unknownFields = unknownFields.build();
849  makeExtensionsImmutable();
850  }
851  }
852  public static final com.google.protobuf.Descriptors.Descriptor
854  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
855  }
856 
857  @java.lang.Override
858  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
860  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
861  .ensureFieldAccessorsInitialized(
863  }
864 
873  public enum VariableOrder
874  implements com.google.protobuf.ProtocolMessageEnum {
891  ;
892 
900  public static final int IN_ORDER_VALUE = 0;
904  public static final int IN_REVERSE_ORDER_VALUE = 1;
908  public static final int IN_RANDOM_ORDER_VALUE = 2;
909 
910 
911  public final int getNumber() {
912  return value;
913  }
914 
918  @java.lang.Deprecated
919  public static VariableOrder valueOf(int value) {
920  return forNumber(value);
921  }
922 
923  public static VariableOrder forNumber(int value) {
924  switch (value) {
925  case 0: return IN_ORDER;
926  case 1: return IN_REVERSE_ORDER;
927  case 2: return IN_RANDOM_ORDER;
928  default: return null;
929  }
930  }
931 
932  public static com.google.protobuf.Internal.EnumLiteMap<VariableOrder>
934  return internalValueMap;
935  }
936  private static final com.google.protobuf.Internal.EnumLiteMap<
937  VariableOrder> internalValueMap =
938  new com.google.protobuf.Internal.EnumLiteMap<VariableOrder>() {
939  public VariableOrder findValueByNumber(int number) {
940  return VariableOrder.forNumber(number);
941  }
942  };
943 
944  public final com.google.protobuf.Descriptors.EnumValueDescriptor
946  return getDescriptor().getValues().get(ordinal());
947  }
948  public final com.google.protobuf.Descriptors.EnumDescriptor
950  return getDescriptor();
951  }
952  public static final com.google.protobuf.Descriptors.EnumDescriptor
954  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(0);
955  }
956 
957  private static final VariableOrder[] VALUES = values();
958 
959  public static VariableOrder valueOf(
960  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
961  if (desc.getType() != getDescriptor()) {
962  throw new java.lang.IllegalArgumentException(
963  "EnumValueDescriptor is not for this type.");
964  }
965  return VALUES[desc.getIndex()];
966  }
967 
968  private final int value;
969 
970  private VariableOrder(int value) {
971  this.value = value;
972  }
973 
974  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.VariableOrder)
975  }
976 
988  public enum Polarity
989  implements com.google.protobuf.ProtocolMessageEnum {
1021  ;
1022 
1026  public static final int POLARITY_TRUE_VALUE = 0;
1030  public static final int POLARITY_FALSE_VALUE = 1;
1034  public static final int POLARITY_RANDOM_VALUE = 2;
1045  public static final int POLARITY_WEIGHTED_SIGN_VALUE = 3;
1053  public static final int POLARITY_REVERSE_WEIGHTED_SIGN_VALUE = 4;
1054 
1055 
1056  public final int getNumber() {
1057  return value;
1058  }
1059 
1063  @java.lang.Deprecated
1064  public static Polarity valueOf(int value) {
1065  return forNumber(value);
1066  }
1067 
1068  public static Polarity forNumber(int value) {
1069  switch (value) {
1070  case 0: return POLARITY_TRUE;
1071  case 1: return POLARITY_FALSE;
1072  case 2: return POLARITY_RANDOM;
1073  case 3: return POLARITY_WEIGHTED_SIGN;
1074  case 4: return POLARITY_REVERSE_WEIGHTED_SIGN;
1075  default: return null;
1076  }
1077  }
1078 
1079  public static com.google.protobuf.Internal.EnumLiteMap<Polarity>
1081  return internalValueMap;
1082  }
1083  private static final com.google.protobuf.Internal.EnumLiteMap<
1084  Polarity> internalValueMap =
1085  new com.google.protobuf.Internal.EnumLiteMap<Polarity>() {
1086  public Polarity findValueByNumber(int number) {
1087  return Polarity.forNumber(number);
1088  }
1089  };
1090 
1091  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1093  return getDescriptor().getValues().get(ordinal());
1094  }
1095  public final com.google.protobuf.Descriptors.EnumDescriptor
1097  return getDescriptor();
1098  }
1099  public static final com.google.protobuf.Descriptors.EnumDescriptor
1101  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(1);
1102  }
1103 
1104  private static final Polarity[] VALUES = values();
1105 
1106  public static Polarity valueOf(
1107  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1108  if (desc.getType() != getDescriptor()) {
1109  throw new java.lang.IllegalArgumentException(
1110  "EnumValueDescriptor is not for this type.");
1111  }
1112  return VALUES[desc.getIndex()];
1113  }
1114 
1115  private final int value;
1116 
1117  private Polarity(int value) {
1118  this.value = value;
1119  }
1120 
1121  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.Polarity)
1122  }
1123 
1132  implements com.google.protobuf.ProtocolMessageEnum {
1136  NONE(0),
1149  ;
1150 
1154  public static final int NONE_VALUE = 0;
1158  public static final int SIMPLE_VALUE = 1;
1162  public static final int RECURSIVE_VALUE = 2;
1166  public static final int EXPERIMENTAL_VALUE = 3;
1167 
1168 
1169  public final int getNumber() {
1170  return value;
1171  }
1172 
1176  @java.lang.Deprecated
1177  public static ConflictMinimizationAlgorithm valueOf(int value) {
1178  return forNumber(value);
1179  }
1180 
1181  public static ConflictMinimizationAlgorithm forNumber(int value) {
1182  switch (value) {
1183  case 0: return NONE;
1184  case 1: return SIMPLE;
1185  case 2: return RECURSIVE;
1186  case 3: return EXPERIMENTAL;
1187  default: return null;
1188  }
1189  }
1190 
1191  public static com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>
1193  return internalValueMap;
1194  }
1195  private static final com.google.protobuf.Internal.EnumLiteMap<
1196  ConflictMinimizationAlgorithm> internalValueMap =
1197  new com.google.protobuf.Internal.EnumLiteMap<ConflictMinimizationAlgorithm>() {
1198  public ConflictMinimizationAlgorithm findValueByNumber(int number) {
1200  }
1201  };
1202 
1203  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1205  return getDescriptor().getValues().get(ordinal());
1206  }
1207  public final com.google.protobuf.Descriptors.EnumDescriptor
1209  return getDescriptor();
1210  }
1211  public static final com.google.protobuf.Descriptors.EnumDescriptor
1213  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(2);
1214  }
1215 
1216  private static final ConflictMinimizationAlgorithm[] VALUES = values();
1217 
1219  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1220  if (desc.getType() != getDescriptor()) {
1221  throw new java.lang.IllegalArgumentException(
1222  "EnumValueDescriptor is not for this type.");
1223  }
1224  return VALUES[desc.getIndex()];
1225  }
1226 
1227  private final int value;
1228 
1229  private ConflictMinimizationAlgorithm(int value) {
1230  this.value = value;
1231  }
1232 
1233  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ConflictMinimizationAlgorithm)
1234  }
1235 
1245  implements com.google.protobuf.ProtocolMessageEnum {
1266  ;
1267 
1271  public static final int NO_BINARY_MINIMIZATION_VALUE = 0;
1275  public static final int BINARY_MINIMIZATION_FIRST_VALUE = 1;
1279  public static final int BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION_VALUE = 4;
1283  public static final int BINARY_MINIMIZATION_WITH_REACHABILITY_VALUE = 2;
1287  public static final int EXPERIMENTAL_BINARY_MINIMIZATION_VALUE = 3;
1288 
1289 
1290  public final int getNumber() {
1291  return value;
1292  }
1293 
1297  @java.lang.Deprecated
1298  public static BinaryMinizationAlgorithm valueOf(int value) {
1299  return forNumber(value);
1300  }
1301 
1302  public static BinaryMinizationAlgorithm forNumber(int value) {
1303  switch (value) {
1304  case 0: return NO_BINARY_MINIMIZATION;
1305  case 1: return BINARY_MINIMIZATION_FIRST;
1306  case 4: return BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION;
1307  case 2: return BINARY_MINIMIZATION_WITH_REACHABILITY;
1308  case 3: return EXPERIMENTAL_BINARY_MINIMIZATION;
1309  default: return null;
1310  }
1311  }
1312 
1313  public static com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>
1315  return internalValueMap;
1316  }
1317  private static final com.google.protobuf.Internal.EnumLiteMap<
1318  BinaryMinizationAlgorithm> internalValueMap =
1319  new com.google.protobuf.Internal.EnumLiteMap<BinaryMinizationAlgorithm>() {
1320  public BinaryMinizationAlgorithm findValueByNumber(int number) {
1321  return BinaryMinizationAlgorithm.forNumber(number);
1322  }
1323  };
1324 
1325  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1327  return getDescriptor().getValues().get(ordinal());
1328  }
1329  public final com.google.protobuf.Descriptors.EnumDescriptor
1331  return getDescriptor();
1332  }
1333  public static final com.google.protobuf.Descriptors.EnumDescriptor
1335  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(3);
1336  }
1337 
1338  private static final BinaryMinizationAlgorithm[] VALUES = values();
1339 
1341  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1342  if (desc.getType() != getDescriptor()) {
1343  throw new java.lang.IllegalArgumentException(
1344  "EnumValueDescriptor is not for this type.");
1345  }
1346  return VALUES[desc.getIndex()];
1347  }
1348 
1349  private final int value;
1350 
1351  private BinaryMinizationAlgorithm(int value) {
1352  this.value = value;
1353  }
1354 
1355  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.BinaryMinizationAlgorithm)
1356  }
1357 
1367  public enum ClauseProtection
1368  implements com.google.protobuf.ProtocolMessageEnum {
1393  ;
1394 
1402  public static final int PROTECTION_NONE_VALUE = 0;
1410  public static final int PROTECTION_ALWAYS_VALUE = 1;
1418  public static final int PROTECTION_LBD_VALUE = 2;
1419 
1420 
1421  public final int getNumber() {
1422  return value;
1423  }
1424 
1428  @java.lang.Deprecated
1429  public static ClauseProtection valueOf(int value) {
1430  return forNumber(value);
1431  }
1432 
1433  public static ClauseProtection forNumber(int value) {
1434  switch (value) {
1435  case 0: return PROTECTION_NONE;
1436  case 1: return PROTECTION_ALWAYS;
1437  case 2: return PROTECTION_LBD;
1438  default: return null;
1439  }
1440  }
1441 
1442  public static com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>
1444  return internalValueMap;
1445  }
1446  private static final com.google.protobuf.Internal.EnumLiteMap<
1447  ClauseProtection> internalValueMap =
1448  new com.google.protobuf.Internal.EnumLiteMap<ClauseProtection>() {
1449  public ClauseProtection findValueByNumber(int number) {
1450  return ClauseProtection.forNumber(number);
1451  }
1452  };
1453 
1454  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1456  return getDescriptor().getValues().get(ordinal());
1457  }
1458  public final com.google.protobuf.Descriptors.EnumDescriptor
1460  return getDescriptor();
1461  }
1462  public static final com.google.protobuf.Descriptors.EnumDescriptor
1464  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(4);
1465  }
1466 
1467  private static final ClauseProtection[] VALUES = values();
1468 
1469  public static ClauseProtection valueOf(
1470  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1471  if (desc.getType() != getDescriptor()) {
1472  throw new java.lang.IllegalArgumentException(
1473  "EnumValueDescriptor is not for this type.");
1474  }
1475  return VALUES[desc.getIndex()];
1476  }
1477 
1478  private final int value;
1479 
1480  private ClauseProtection(int value) {
1481  this.value = value;
1482  }
1483 
1484  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseProtection)
1485  }
1486 
1495  public enum ClauseOrdering
1496  implements com.google.protobuf.ProtocolMessageEnum {
1513  ;
1514 
1522  public static final int CLAUSE_ACTIVITY_VALUE = 0;
1530  public static final int CLAUSE_LBD_VALUE = 1;
1531 
1532 
1533  public final int getNumber() {
1534  return value;
1535  }
1536 
1540  @java.lang.Deprecated
1541  public static ClauseOrdering valueOf(int value) {
1542  return forNumber(value);
1543  }
1544 
1545  public static ClauseOrdering forNumber(int value) {
1546  switch (value) {
1547  case 0: return CLAUSE_ACTIVITY;
1548  case 1: return CLAUSE_LBD;
1549  default: return null;
1550  }
1551  }
1552 
1553  public static com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>
1555  return internalValueMap;
1556  }
1557  private static final com.google.protobuf.Internal.EnumLiteMap<
1558  ClauseOrdering> internalValueMap =
1559  new com.google.protobuf.Internal.EnumLiteMap<ClauseOrdering>() {
1560  public ClauseOrdering findValueByNumber(int number) {
1561  return ClauseOrdering.forNumber(number);
1562  }
1563  };
1564 
1565  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1567  return getDescriptor().getValues().get(ordinal());
1568  }
1569  public final com.google.protobuf.Descriptors.EnumDescriptor
1571  return getDescriptor();
1572  }
1573  public static final com.google.protobuf.Descriptors.EnumDescriptor
1575  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(5);
1576  }
1577 
1578  private static final ClauseOrdering[] VALUES = values();
1579 
1580  public static ClauseOrdering valueOf(
1581  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1582  if (desc.getType() != getDescriptor()) {
1583  throw new java.lang.IllegalArgumentException(
1584  "EnumValueDescriptor is not for this type.");
1585  }
1586  return VALUES[desc.getIndex()];
1587  }
1588 
1589  private final int value;
1590 
1591  private ClauseOrdering(int value) {
1592  this.value = value;
1593  }
1594 
1595  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.ClauseOrdering)
1596  }
1597 
1609  public enum RestartAlgorithm
1610  implements com.google.protobuf.ProtocolMessageEnum {
1647  ;
1648 
1652  public static final int NO_RESTART_VALUE = 0;
1660  public static final int LUBY_RESTART_VALUE = 1;
1668  public static final int DL_MOVING_AVERAGE_RESTART_VALUE = 2;
1676  public static final int LBD_MOVING_AVERAGE_RESTART_VALUE = 3;
1684  public static final int FIXED_RESTART_VALUE = 4;
1685 
1686 
1687  public final int getNumber() {
1688  return value;
1689  }
1690 
1694  @java.lang.Deprecated
1695  public static RestartAlgorithm valueOf(int value) {
1696  return forNumber(value);
1697  }
1698 
1699  public static RestartAlgorithm forNumber(int value) {
1700  switch (value) {
1701  case 0: return NO_RESTART;
1702  case 1: return LUBY_RESTART;
1703  case 2: return DL_MOVING_AVERAGE_RESTART;
1704  case 3: return LBD_MOVING_AVERAGE_RESTART;
1705  case 4: return FIXED_RESTART;
1706  default: return null;
1707  }
1708  }
1709 
1710  public static com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>
1712  return internalValueMap;
1713  }
1714  private static final com.google.protobuf.Internal.EnumLiteMap<
1715  RestartAlgorithm> internalValueMap =
1716  new com.google.protobuf.Internal.EnumLiteMap<RestartAlgorithm>() {
1717  public RestartAlgorithm findValueByNumber(int number) {
1718  return RestartAlgorithm.forNumber(number);
1719  }
1720  };
1721 
1722  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1724  return getDescriptor().getValues().get(ordinal());
1725  }
1726  public final com.google.protobuf.Descriptors.EnumDescriptor
1728  return getDescriptor();
1729  }
1730  public static final com.google.protobuf.Descriptors.EnumDescriptor
1732  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(6);
1733  }
1734 
1735  private static final RestartAlgorithm[] VALUES = values();
1736 
1737  public static RestartAlgorithm valueOf(
1738  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1739  if (desc.getType() != getDescriptor()) {
1740  throw new java.lang.IllegalArgumentException(
1741  "EnumValueDescriptor is not for this type.");
1742  }
1743  return VALUES[desc.getIndex()];
1744  }
1745 
1746  private final int value;
1747 
1748  private RestartAlgorithm(int value) {
1749  this.value = value;
1750  }
1751 
1752  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.RestartAlgorithm)
1753  }
1754 
1763  implements com.google.protobuf.ProtocolMessageEnum {
1776  ;
1777 
1781  public static final int DEFAULT_ASSUMPTION_ORDER_VALUE = 0;
1785  public static final int ORDER_ASSUMPTION_BY_DEPTH_VALUE = 1;
1789  public static final int ORDER_ASSUMPTION_BY_WEIGHT_VALUE = 2;
1790 
1791 
1792  public final int getNumber() {
1793  return value;
1794  }
1795 
1799  @java.lang.Deprecated
1800  public static MaxSatAssumptionOrder valueOf(int value) {
1801  return forNumber(value);
1802  }
1803 
1804  public static MaxSatAssumptionOrder forNumber(int value) {
1805  switch (value) {
1806  case 0: return DEFAULT_ASSUMPTION_ORDER;
1807  case 1: return ORDER_ASSUMPTION_BY_DEPTH;
1808  case 2: return ORDER_ASSUMPTION_BY_WEIGHT;
1809  default: return null;
1810  }
1811  }
1812 
1813  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>
1815  return internalValueMap;
1816  }
1817  private static final com.google.protobuf.Internal.EnumLiteMap<
1818  MaxSatAssumptionOrder> internalValueMap =
1819  new com.google.protobuf.Internal.EnumLiteMap<MaxSatAssumptionOrder>() {
1820  public MaxSatAssumptionOrder findValueByNumber(int number) {
1821  return MaxSatAssumptionOrder.forNumber(number);
1822  }
1823  };
1824 
1825  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1827  return getDescriptor().getValues().get(ordinal());
1828  }
1829  public final com.google.protobuf.Descriptors.EnumDescriptor
1831  return getDescriptor();
1832  }
1833  public static final com.google.protobuf.Descriptors.EnumDescriptor
1835  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(7);
1836  }
1837 
1838  private static final MaxSatAssumptionOrder[] VALUES = values();
1839 
1841  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1842  if (desc.getType() != getDescriptor()) {
1843  throw new java.lang.IllegalArgumentException(
1844  "EnumValueDescriptor is not for this type.");
1845  }
1846  return VALUES[desc.getIndex()];
1847  }
1848 
1849  private final int value;
1850 
1851  private MaxSatAssumptionOrder(int value) {
1852  this.value = value;
1853  }
1854 
1855  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatAssumptionOrder)
1856  }
1857 
1866  implements com.google.protobuf.ProtocolMessageEnum {
1895  ;
1896 
1904  public static final int STRATIFICATION_NONE_VALUE = 0;
1913  public static final int STRATIFICATION_DESCENT_VALUE = 1;
1924  public static final int STRATIFICATION_ASCENT_VALUE = 2;
1925 
1926 
1927  public final int getNumber() {
1928  return value;
1929  }
1930 
1934  @java.lang.Deprecated
1935  public static MaxSatStratificationAlgorithm valueOf(int value) {
1936  return forNumber(value);
1937  }
1938 
1939  public static MaxSatStratificationAlgorithm forNumber(int value) {
1940  switch (value) {
1941  case 0: return STRATIFICATION_NONE;
1942  case 1: return STRATIFICATION_DESCENT;
1943  case 2: return STRATIFICATION_ASCENT;
1944  default: return null;
1945  }
1946  }
1947 
1948  public static com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>
1950  return internalValueMap;
1951  }
1952  private static final com.google.protobuf.Internal.EnumLiteMap<
1953  MaxSatStratificationAlgorithm> internalValueMap =
1954  new com.google.protobuf.Internal.EnumLiteMap<MaxSatStratificationAlgorithm>() {
1955  public MaxSatStratificationAlgorithm findValueByNumber(int number) {
1957  }
1958  };
1959 
1960  public final com.google.protobuf.Descriptors.EnumValueDescriptor
1962  return getDescriptor().getValues().get(ordinal());
1963  }
1964  public final com.google.protobuf.Descriptors.EnumDescriptor
1966  return getDescriptor();
1967  }
1968  public static final com.google.protobuf.Descriptors.EnumDescriptor
1970  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(8);
1971  }
1972 
1973  private static final MaxSatStratificationAlgorithm[] VALUES = values();
1974 
1976  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
1977  if (desc.getType() != getDescriptor()) {
1978  throw new java.lang.IllegalArgumentException(
1979  "EnumValueDescriptor is not for this type.");
1980  }
1981  return VALUES[desc.getIndex()];
1982  }
1983 
1984  private final int value;
1985 
1986  private MaxSatStratificationAlgorithm(int value) {
1987  this.value = value;
1988  }
1989 
1990  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.MaxSatStratificationAlgorithm)
1991  }
1992 
2000  public enum SearchBranching
2001  implements com.google.protobuf.ProtocolMessageEnum {
2069  ;
2070 
2079  public static final int AUTOMATIC_SEARCH_VALUE = 0;
2089  public static final int FIXED_SEARCH_VALUE = 1;
2097  public static final int PORTFOLIO_SEARCH_VALUE = 2;
2107  public static final int LP_SEARCH_VALUE = 3;
2117  public static final int PSEUDO_COST_SEARCH_VALUE = 4;
2127  public static final int PORTFOLIO_WITH_QUICK_RESTART_SEARCH_VALUE = 5;
2137  public static final int HINT_SEARCH_VALUE = 6;
2138 
2139 
2140  public final int getNumber() {
2141  return value;
2142  }
2143 
2147  @java.lang.Deprecated
2148  public static SearchBranching valueOf(int value) {
2149  return forNumber(value);
2150  }
2151 
2152  public static SearchBranching forNumber(int value) {
2153  switch (value) {
2154  case 0: return AUTOMATIC_SEARCH;
2155  case 1: return FIXED_SEARCH;
2156  case 2: return PORTFOLIO_SEARCH;
2157  case 3: return LP_SEARCH;
2158  case 4: return PSEUDO_COST_SEARCH;
2159  case 5: return PORTFOLIO_WITH_QUICK_RESTART_SEARCH;
2160  case 6: return HINT_SEARCH;
2161  default: return null;
2162  }
2163  }
2164 
2165  public static com.google.protobuf.Internal.EnumLiteMap<SearchBranching>
2167  return internalValueMap;
2168  }
2169  private static final com.google.protobuf.Internal.EnumLiteMap<
2170  SearchBranching> internalValueMap =
2171  new com.google.protobuf.Internal.EnumLiteMap<SearchBranching>() {
2172  public SearchBranching findValueByNumber(int number) {
2173  return SearchBranching.forNumber(number);
2174  }
2175  };
2176 
2177  public final com.google.protobuf.Descriptors.EnumValueDescriptor
2179  return getDescriptor().getValues().get(ordinal());
2180  }
2181  public final com.google.protobuf.Descriptors.EnumDescriptor
2183  return getDescriptor();
2184  }
2185  public static final com.google.protobuf.Descriptors.EnumDescriptor
2187  return com.google.ortools.sat.SatParameters.getDescriptor().getEnumTypes().get(9);
2188  }
2189 
2190  private static final SearchBranching[] VALUES = values();
2191 
2192  public static SearchBranching valueOf(
2193  com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
2194  if (desc.getType() != getDescriptor()) {
2195  throw new java.lang.IllegalArgumentException(
2196  "EnumValueDescriptor is not for this type.");
2197  }
2198  return VALUES[desc.getIndex()];
2199  }
2200 
2201  private final int value;
2202 
2203  private SearchBranching(int value) {
2204  this.value = value;
2205  }
2206 
2207  // @@protoc_insertion_point(enum_scope:operations_research.sat.SatParameters.SearchBranching)
2208  }
2209 
2210  private int bitField0_;
2211  private int bitField1_;
2212  private int bitField2_;
2213  private int bitField3_;
2214  public static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER = 1;
2215  private int preferredVariableOrder_;
2219  public boolean hasPreferredVariableOrder() {
2220  return ((bitField0_ & 0x00000001) != 0);
2221  }
2226  @SuppressWarnings("deprecation")
2228  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
2229  }
2230 
2231  public static final int INITIAL_POLARITY_FIELD_NUMBER = 2;
2232  private int initialPolarity_;
2236  public boolean hasInitialPolarity() {
2237  return ((bitField0_ & 0x00000002) != 0);
2238  }
2243  @SuppressWarnings("deprecation")
2245  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
2246  }
2247 
2248  public static final int USE_PHASE_SAVING_FIELD_NUMBER = 44;
2249  private boolean usePhaseSaving_;
2263  public boolean hasUsePhaseSaving() {
2264  return ((bitField0_ & 0x00000004) != 0);
2265  }
2279  public boolean getUsePhaseSaving() {
2280  return usePhaseSaving_;
2281  }
2282 
2283  public static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER = 45;
2284  private double randomPolarityRatio_;
2296  public boolean hasRandomPolarityRatio() {
2297  return ((bitField0_ & 0x00000008) != 0);
2298  }
2310  public double getRandomPolarityRatio() {
2311  return randomPolarityRatio_;
2312  }
2313 
2314  public static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER = 32;
2315  private double randomBranchesRatio_;
2325  public boolean hasRandomBranchesRatio() {
2326  return ((bitField0_ & 0x00000010) != 0);
2327  }
2337  public double getRandomBranchesRatio() {
2338  return randomBranchesRatio_;
2339  }
2340 
2341  public static final int USE_ERWA_HEURISTIC_FIELD_NUMBER = 75;
2342  private boolean useErwaHeuristic_;
2352  public boolean hasUseErwaHeuristic() {
2353  return ((bitField0_ & 0x00000020) != 0);
2354  }
2364  public boolean getUseErwaHeuristic() {
2365  return useErwaHeuristic_;
2366  }
2367 
2368  public static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER = 76;
2369  private double initialVariablesActivity_;
2382  public boolean hasInitialVariablesActivity() {
2383  return ((bitField0_ & 0x00000040) != 0);
2384  }
2398  return initialVariablesActivity_;
2399  }
2400 
2402  private boolean alsoBumpVariablesInConflictReasons_;
2414  return ((bitField0_ & 0x00000080) != 0);
2415  }
2427  return alsoBumpVariablesInConflictReasons_;
2428  }
2429 
2430  public static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER = 4;
2431  private int minimizationAlgorithm_;
2435  public boolean hasMinimizationAlgorithm() {
2436  return ((bitField0_ & 0x00000100) != 0);
2437  }
2442  @SuppressWarnings("deprecation")
2444  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
2445  }
2446 
2447  public static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER = 34;
2448  private int binaryMinimizationAlgorithm_;
2453  return ((bitField0_ & 0x00000200) != 0);
2454  }
2459  @SuppressWarnings("deprecation")
2462  }
2463 
2465  private boolean subsumptionDuringConflictAnalysis_;
2477  return ((bitField0_ & 0x00000400) != 0);
2478  }
2490  return subsumptionDuringConflictAnalysis_;
2491  }
2492 
2493  public static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER = 11;
2494  private int clauseCleanupPeriod_;
2502  public boolean hasClauseCleanupPeriod() {
2503  return ((bitField0_ & 0x00000800) != 0);
2504  }
2512  public int getClauseCleanupPeriod() {
2513  return clauseCleanupPeriod_;
2514  }
2515 
2516  public static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER = 13;
2517  private int clauseCleanupTarget_;
2526  public boolean hasClauseCleanupTarget() {
2527  return ((bitField0_ & 0x00001000) != 0);
2528  }
2537  public int getClauseCleanupTarget() {
2538  return clauseCleanupTarget_;
2539  }
2540 
2541  public static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER = 58;
2542  private int clauseCleanupProtection_;
2546  public boolean hasClauseCleanupProtection() {
2547  return ((bitField0_ & 0x00002000) != 0);
2548  }
2553  @SuppressWarnings("deprecation")
2555  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
2556  }
2557 
2558  public static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER = 59;
2559  private int clauseCleanupLbdBound_;
2568  public boolean hasClauseCleanupLbdBound() {
2569  return ((bitField0_ & 0x00004000) != 0);
2570  }
2580  return clauseCleanupLbdBound_;
2581  }
2582 
2583  public static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER = 60;
2584  private int clauseCleanupOrdering_;
2588  public boolean hasClauseCleanupOrdering() {
2589  return ((bitField0_ & 0x00008000) != 0);
2590  }
2595  @SuppressWarnings("deprecation")
2597  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
2598  }
2599 
2600  public static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER = 46;
2601  private int pbCleanupIncrement_;
2609  public boolean hasPbCleanupIncrement() {
2610  return ((bitField0_ & 0x00010000) != 0);
2611  }
2619  public int getPbCleanupIncrement() {
2620  return pbCleanupIncrement_;
2621  }
2622 
2623  public static final int PB_CLEANUP_RATIO_FIELD_NUMBER = 47;
2624  private double pbCleanupRatio_;
2628  public boolean hasPbCleanupRatio() {
2629  return ((bitField0_ & 0x00020000) != 0);
2630  }
2634  public double getPbCleanupRatio() {
2635  return pbCleanupRatio_;
2636  }
2637 
2639  private int minimizeWithPropagationRestartPeriod_;
2658  return ((bitField0_ & 0x00040000) != 0);
2659  }
2678  return minimizeWithPropagationRestartPeriod_;
2679  }
2680 
2682  private int minimizeWithPropagationNumDecisions_;
2687  return ((bitField0_ & 0x00080000) != 0);
2688  }
2693  return minimizeWithPropagationNumDecisions_;
2694  }
2695 
2696  public static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER = 15;
2697  private double variableActivityDecay_;
2711  public boolean hasVariableActivityDecay() {
2712  return ((bitField0_ & 0x00100000) != 0);
2713  }
2727  public double getVariableActivityDecay() {
2728  return variableActivityDecay_;
2729  }
2730 
2731  public static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER = 16;
2732  private double maxVariableActivityValue_;
2736  public boolean hasMaxVariableActivityValue() {
2737  return ((bitField0_ & 0x00200000) != 0);
2738  }
2743  return maxVariableActivityValue_;
2744  }
2745 
2746  public static final int GLUCOSE_MAX_DECAY_FIELD_NUMBER = 22;
2747  private double glucoseMaxDecay_;
2758  public boolean hasGlucoseMaxDecay() {
2759  return ((bitField0_ & 0x00400000) != 0);
2760  }
2771  public double getGlucoseMaxDecay() {
2772  return glucoseMaxDecay_;
2773  }
2774 
2775  public static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER = 23;
2776  private double glucoseDecayIncrement_;
2780  public boolean hasGlucoseDecayIncrement() {
2781  return ((bitField0_ & 0x00800000) != 0);
2782  }
2786  public double getGlucoseDecayIncrement() {
2787  return glucoseDecayIncrement_;
2788  }
2789 
2790  public static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER = 24;
2791  private int glucoseDecayIncrementPeriod_;
2796  return ((bitField0_ & 0x01000000) != 0);
2797  }
2802  return glucoseDecayIncrementPeriod_;
2803  }
2804 
2805  public static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER = 17;
2806  private double clauseActivityDecay_;
2814  public boolean hasClauseActivityDecay() {
2815  return ((bitField0_ & 0x02000000) != 0);
2816  }
2824  public double getClauseActivityDecay() {
2825  return clauseActivityDecay_;
2826  }
2827 
2828  public static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER = 18;
2829  private double maxClauseActivityValue_;
2833  public boolean hasMaxClauseActivityValue() {
2834  return ((bitField0_ & 0x04000000) != 0);
2835  }
2839  public double getMaxClauseActivityValue() {
2840  return maxClauseActivityValue_;
2841  }
2842 
2843  public static final int RESTART_ALGORITHMS_FIELD_NUMBER = 61;
2844  private java.util.List<java.lang.Integer> restartAlgorithms_;
2845  private static final com.google.protobuf.Internal.ListAdapter.Converter<
2846  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm> restartAlgorithms_converter_ =
2847  new com.google.protobuf.Internal.ListAdapter.Converter<
2848  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>() {
2849  public com.google.ortools.sat.SatParameters.RestartAlgorithm convert(java.lang.Integer from) {
2850  @SuppressWarnings("deprecation")
2852  return result == null ? com.google.ortools.sat.SatParameters.RestartAlgorithm.NO_RESTART : result;
2853  }
2854  };
2870  return new com.google.protobuf.Internal.ListAdapter<
2871  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
2872  }
2888  return restartAlgorithms_.size();
2889  }
2905  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
2906  }
2907 
2908  public static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER = 70;
2909  private volatile java.lang.Object defaultRestartAlgorithms_;
2913  public boolean hasDefaultRestartAlgorithms() {
2914  return ((bitField0_ & 0x08000000) != 0);
2915  }
2919  public java.lang.String getDefaultRestartAlgorithms() {
2920  java.lang.Object ref = defaultRestartAlgorithms_;
2921  if (ref instanceof java.lang.String) {
2922  return (java.lang.String) ref;
2923  } else {
2924  com.google.protobuf.ByteString bs =
2925  (com.google.protobuf.ByteString) ref;
2926  java.lang.String s = bs.toStringUtf8();
2927  if (bs.isValidUtf8()) {
2928  defaultRestartAlgorithms_ = s;
2929  }
2930  return s;
2931  }
2932  }
2936  public com.google.protobuf.ByteString
2938  java.lang.Object ref = defaultRestartAlgorithms_;
2939  if (ref instanceof java.lang.String) {
2940  com.google.protobuf.ByteString b =
2941  com.google.protobuf.ByteString.copyFromUtf8(
2942  (java.lang.String) ref);
2943  defaultRestartAlgorithms_ = b;
2944  return b;
2945  } else {
2946  return (com.google.protobuf.ByteString) ref;
2947  }
2948  }
2949 
2950  public static final int RESTART_PERIOD_FIELD_NUMBER = 30;
2951  private int restartPeriod_;
2960  public boolean hasRestartPeriod() {
2961  return ((bitField0_ & 0x10000000) != 0);
2962  }
2971  public int getRestartPeriod() {
2972  return restartPeriod_;
2973  }
2974 
2975  public static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER = 62;
2976  private int restartRunningWindowSize_;
2984  public boolean hasRestartRunningWindowSize() {
2985  return ((bitField0_ & 0x20000000) != 0);
2986  }
2995  return restartRunningWindowSize_;
2996  }
2997 
2998  public static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER = 63;
2999  private double restartDlAverageRatio_;
3008  public boolean hasRestartDlAverageRatio() {
3009  return ((bitField0_ & 0x40000000) != 0);
3010  }
3019  public double getRestartDlAverageRatio() {
3020  return restartDlAverageRatio_;
3021  }
3022 
3023  public static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER = 71;
3024  private double restartLbdAverageRatio_;
3028  public boolean hasRestartLbdAverageRatio() {
3029  return ((bitField0_ & 0x80000000) != 0);
3030  }
3034  public double getRestartLbdAverageRatio() {
3035  return restartLbdAverageRatio_;
3036  }
3037 
3038  public static final int USE_BLOCKING_RESTART_FIELD_NUMBER = 64;
3039  private boolean useBlockingRestart_;
3049  public boolean hasUseBlockingRestart() {
3050  return ((bitField1_ & 0x00000001) != 0);
3051  }
3061  public boolean getUseBlockingRestart() {
3062  return useBlockingRestart_;
3063  }
3064 
3065  public static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER = 65;
3066  private int blockingRestartWindowSize_;
3070  public boolean hasBlockingRestartWindowSize() {
3071  return ((bitField1_ & 0x00000002) != 0);
3072  }
3077  return blockingRestartWindowSize_;
3078  }
3079 
3080  public static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER = 66;
3081  private double blockingRestartMultiplier_;
3085  public boolean hasBlockingRestartMultiplier() {
3086  return ((bitField1_ & 0x00000004) != 0);
3087  }
3092  return blockingRestartMultiplier_;
3093  }
3094 
3096  private int numConflictsBeforeStrategyChanges_;
3107  return ((bitField1_ & 0x00000008) != 0);
3108  }
3119  return numConflictsBeforeStrategyChanges_;
3120  }
3121 
3122  public static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER = 69;
3123  private double strategyChangeIncreaseRatio_;
3133  return ((bitField1_ & 0x00000010) != 0);
3134  }
3144  return strategyChangeIncreaseRatio_;
3145  }
3146 
3147  public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 36;
3148  private double maxTimeInSeconds_;
3158  public boolean hasMaxTimeInSeconds() {
3159  return ((bitField1_ & 0x00000020) != 0);
3160  }
3170  public double getMaxTimeInSeconds() {
3171  return maxTimeInSeconds_;
3172  }
3173 
3174  public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 67;
3175  private double maxDeterministicTime_;
3187  public boolean hasMaxDeterministicTime() {
3188  return ((bitField1_ & 0x00000040) != 0);
3189  }
3201  public double getMaxDeterministicTime() {
3202  return maxDeterministicTime_;
3203  }
3204 
3205  public static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER = 37;
3206  private long maxNumberOfConflicts_;
3219  public boolean hasMaxNumberOfConflicts() {
3220  return ((bitField1_ & 0x00000080) != 0);
3221  }
3234  public long getMaxNumberOfConflicts() {
3235  return maxNumberOfConflicts_;
3236  }
3237 
3238  public static final int MAX_MEMORY_IN_MB_FIELD_NUMBER = 40;
3239  private long maxMemoryInMb_;
3250  public boolean hasMaxMemoryInMb() {
3251  return ((bitField1_ & 0x00000100) != 0);
3252  }
3263  public long getMaxMemoryInMb() {
3264  return maxMemoryInMb_;
3265  }
3266 
3267  public static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER = 33;
3268  private boolean treatBinaryClausesSeparately_;
3279  return ((bitField1_ & 0x00000200) != 0);
3280  }
3291  return treatBinaryClausesSeparately_;
3292  }
3293 
3294  public static final int RANDOM_SEED_FIELD_NUMBER = 31;
3295  private int randomSeed_;
3308  public boolean hasRandomSeed() {
3309  return ((bitField1_ & 0x00000400) != 0);
3310  }
3323  public int getRandomSeed() {
3324  return randomSeed_;
3325  }
3326 
3327  public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 41;
3328  private boolean logSearchProgress_;
3336  public boolean hasLogSearchProgress() {
3337  return ((bitField1_ & 0x00000800) != 0);
3338  }
3346  public boolean getLogSearchProgress() {
3347  return logSearchProgress_;
3348  }
3349 
3350  public static final int USE_PB_RESOLUTION_FIELD_NUMBER = 43;
3351  private boolean usePbResolution_;
3362  public boolean hasUsePbResolution() {
3363  return ((bitField1_ & 0x00001000) != 0);
3364  }
3375  public boolean getUsePbResolution() {
3376  return usePbResolution_;
3377  }
3378 
3380  private boolean minimizeReductionDuringPbResolution_;
3392  return ((bitField1_ & 0x00002000) != 0);
3393  }
3405  return minimizeReductionDuringPbResolution_;
3406  }
3407 
3408  public static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER = 49;
3409  private boolean countAssumptionLevelsInLbd_;
3425  return ((bitField1_ & 0x00004000) != 0);
3426  }
3442  return countAssumptionLevelsInLbd_;
3443  }
3444 
3445  public static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER = 54;
3446  private int presolveBveThreshold_;
3456  public boolean hasPresolveBveThreshold() {
3457  return ((bitField1_ & 0x00008000) != 0);
3458  }
3469  return presolveBveThreshold_;
3470  }
3471 
3472  public static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER = 55;
3473  private int presolveBveClauseWeight_;
3482  public boolean hasPresolveBveClauseWeight() {
3483  return ((bitField1_ & 0x00010000) != 0);
3484  }
3494  return presolveBveClauseWeight_;
3495  }
3496 
3498  private double presolveProbingDeterministicTimeLimit_;
3508  return ((bitField1_ & 0x00020000) != 0);
3509  }
3519  return presolveProbingDeterministicTimeLimit_;
3520  }
3521 
3522  public static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER = 88;
3523  private boolean presolveBlockedClause_;
3532  public boolean hasPresolveBlockedClause() {
3533  return ((bitField1_ & 0x00040000) != 0);
3534  }
3543  public boolean getPresolveBlockedClause() {
3544  return presolveBlockedClause_;
3545  }
3546 
3547  public static final int PRESOLVE_USE_BVA_FIELD_NUMBER = 72;
3548  private boolean presolveUseBva_;
3556  public boolean hasPresolveUseBva() {
3557  return ((bitField1_ & 0x00080000) != 0);
3558  }
3566  public boolean getPresolveUseBva() {
3567  return presolveUseBva_;
3568  }
3569 
3570  public static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER = 73;
3571  private int presolveBvaThreshold_;
3582  public boolean hasPresolveBvaThreshold() {
3583  return ((bitField1_ & 0x00100000) != 0);
3584  }
3596  return presolveBvaThreshold_;
3597  }
3598 
3599  public static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER = 138;
3600  private int maxPresolveIterations_;
3610  public boolean hasMaxPresolveIterations() {
3611  return ((bitField1_ & 0x00200000) != 0);
3612  }
3623  return maxPresolveIterations_;
3624  }
3625 
3626  public static final int CP_MODEL_PRESOLVE_FIELD_NUMBER = 86;
3627  private boolean cpModelPresolve_;
3635  public boolean hasCpModelPresolve() {
3636  return ((bitField1_ & 0x00400000) != 0);
3637  }
3645  public boolean getCpModelPresolve() {
3646  return cpModelPresolve_;
3647  }
3648 
3649  public static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER = 110;
3650  private int cpModelProbingLevel_;
3658  public boolean hasCpModelProbingLevel() {
3659  return ((bitField1_ & 0x00800000) != 0);
3660  }
3668  public int getCpModelProbingLevel() {
3669  return cpModelProbingLevel_;
3670  }
3671 
3672  public static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER = 93;
3673  private boolean cpModelUseSatPresolve_;
3681  public boolean hasCpModelUseSatPresolve() {
3682  return ((bitField1_ & 0x01000000) != 0);
3683  }
3691  public boolean getCpModelUseSatPresolve() {
3692  return cpModelUseSatPresolve_;
3693  }
3694 
3695  public static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER = 140;
3696  private boolean expandElementConstraints_;
3705  public boolean hasExpandElementConstraints() {
3706  return ((bitField1_ & 0x02000000) != 0);
3707  }
3716  public boolean getExpandElementConstraints() {
3717  return expandElementConstraints_;
3718  }
3719 
3720  public static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER = 35;
3721  private boolean useOptimizationHints_;
3732  public boolean hasUseOptimizationHints() {
3733  return ((bitField1_ & 0x04000000) != 0);
3734  }
3745  public boolean getUseOptimizationHints() {
3746  return useOptimizationHints_;
3747  }
3748 
3749  public static final int MINIMIZE_CORE_FIELD_NUMBER = 50;
3750  private boolean minimizeCore_;
3758  public boolean hasMinimizeCore() {
3759  return ((bitField1_ & 0x08000000) != 0);
3760  }
3768  public boolean getMinimizeCore() {
3769  return minimizeCore_;
3770  }
3771 
3772  public static final int FIND_MULTIPLE_CORES_FIELD_NUMBER = 84;
3773  private boolean findMultipleCores_;
3782  public boolean hasFindMultipleCores() {
3783  return ((bitField1_ & 0x10000000) != 0);
3784  }
3793  public boolean getFindMultipleCores() {
3794  return findMultipleCores_;
3795  }
3796 
3797  public static final int COVER_OPTIMIZATION_FIELD_NUMBER = 89;
3798  private boolean coverOptimization_;
3807  public boolean hasCoverOptimization() {
3808  return ((bitField1_ & 0x20000000) != 0);
3809  }
3818  public boolean getCoverOptimization() {
3819  return coverOptimization_;
3820  }
3821 
3822  public static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER = 51;
3823  private int maxSatAssumptionOrder_;
3827  public boolean hasMaxSatAssumptionOrder() {
3828  return ((bitField1_ & 0x40000000) != 0);
3829  }
3834  @SuppressWarnings("deprecation")
3837  }
3838 
3840  private boolean maxSatReverseAssumptionOrder_;
3850  return ((bitField1_ & 0x80000000) != 0);
3851  }
3861  return maxSatReverseAssumptionOrder_;
3862  }
3863 
3864  public static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER = 53;
3865  private int maxSatStratification_;
3869  public boolean hasMaxSatStratification() {
3870  return ((bitField2_ & 0x00000001) != 0);
3871  }
3876  @SuppressWarnings("deprecation")
3879  }
3880 
3882  private boolean usePrecedencesInDisjunctiveConstraint_;
3898  return ((bitField2_ & 0x00000002) != 0);
3899  }
3915  return usePrecedencesInDisjunctiveConstraint_;
3916  }
3917 
3919  private boolean useOverloadCheckerInCumulativeConstraint_;
3933  return ((bitField2_ & 0x00000004) != 0);
3934  }
3948  return useOverloadCheckerInCumulativeConstraint_;
3949  }
3950 
3952  private boolean useTimetableEdgeFindingInCumulativeConstraint_;
3966  return ((bitField2_ & 0x00000008) != 0);
3967  }
3981  return useTimetableEdgeFindingInCumulativeConstraint_;
3982  }
3983 
3985  private boolean useDisjunctiveConstraintInCumulativeConstraint_;
4001  return ((bitField2_ & 0x00000010) != 0);
4002  }
4018  return useDisjunctiveConstraintInCumulativeConstraint_;
4019  }
4020 
4021  public static final int LINEARIZATION_LEVEL_FIELD_NUMBER = 90;
4022  private int linearizationLevel_;
4033  public boolean hasLinearizationLevel() {
4034  return ((bitField2_ & 0x00000020) != 0);
4035  }
4046  public int getLinearizationLevel() {
4047  return linearizationLevel_;
4048  }
4049 
4050  public static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER = 107;
4051  private int booleanEncodingLevel_;
4060  public boolean hasBooleanEncodingLevel() {
4061  return ((bitField2_ & 0x00000040) != 0);
4062  }
4072  return booleanEncodingLevel_;
4073  }
4074 
4075  public static final int MAX_NUM_CUTS_FIELD_NUMBER = 91;
4076  private int maxNumCuts_;
4087  public boolean hasMaxNumCuts() {
4088  return ((bitField2_ & 0x00000080) != 0);
4089  }
4100  public int getMaxNumCuts() {
4101  return maxNumCuts_;
4102  }
4103 
4104  public static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER = 92;
4105  private boolean onlyAddCutsAtLevelZero_;
4114  public boolean hasOnlyAddCutsAtLevelZero() {
4115  return ((bitField2_ & 0x00000100) != 0);
4116  }
4125  public boolean getOnlyAddCutsAtLevelZero() {
4126  return onlyAddCutsAtLevelZero_;
4127  }
4128 
4129  public static final int ADD_KNAPSACK_CUTS_FIELD_NUMBER = 111;
4130  private boolean addKnapsackCuts_;
4140  public boolean hasAddKnapsackCuts() {
4141  return ((bitField2_ & 0x00000200) != 0);
4142  }
4152  public boolean getAddKnapsackCuts() {
4153  return addKnapsackCuts_;
4154  }
4155 
4156  public static final int ADD_CG_CUTS_FIELD_NUMBER = 117;
4157  private boolean addCgCuts_;
4166  public boolean hasAddCgCuts() {
4167  return ((bitField2_ & 0x00000400) != 0);
4168  }
4177  public boolean getAddCgCuts() {
4178  return addCgCuts_;
4179  }
4180 
4181  public static final int ADD_MIR_CUTS_FIELD_NUMBER = 120;
4182  private boolean addMirCuts_;
4191  public boolean hasAddMirCuts() {
4192  return ((bitField2_ & 0x00000800) != 0);
4193  }
4202  public boolean getAddMirCuts() {
4203  return addMirCuts_;
4204  }
4205 
4206  public static final int USE_MIR_ROUNDING_FIELD_NUMBER = 118;
4207  private boolean useMirRounding_;
4217  public boolean hasUseMirRounding() {
4218  return ((bitField2_ & 0x00001000) != 0);
4219  }
4229  public boolean getUseMirRounding() {
4230  return useMirRounding_;
4231  }
4232 
4233  public static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER = 119;
4234  private int maxIntegerRoundingScaling_;
4246  public boolean hasMaxIntegerRoundingScaling() {
4247  return ((bitField2_ & 0x00002000) != 0);
4248  }
4261  return maxIntegerRoundingScaling_;
4262  }
4263 
4264  public static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER = 112;
4265  private boolean addLpConstraintsLazily_;
4276  public boolean hasAddLpConstraintsLazily() {
4277  return ((bitField2_ & 0x00004000) != 0);
4278  }
4289  public boolean getAddLpConstraintsLazily() {
4290  return addLpConstraintsLazily_;
4291  }
4292 
4294  private double minOrthogonalityForLpConstraints_;
4307  return ((bitField2_ & 0x00008000) != 0);
4308  }
4321  return minOrthogonalityForLpConstraints_;
4322  }
4323 
4324  public static final int MAX_INACTIVE_COUNT_FIELD_NUMBER = 121;
4325  private long maxInactiveCount_;
4334  public boolean hasMaxInactiveCount() {
4335  return ((bitField2_ & 0x00010000) != 0);
4336  }
4345  public long getMaxInactiveCount() {
4346  return maxInactiveCount_;
4347  }
4348 
4349  public static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER = 122;
4350  private long constraintRemovalBatchSize_;
4360  return ((bitField2_ & 0x00020000) != 0);
4361  }
4371  return constraintRemovalBatchSize_;
4372  }
4373 
4374  public static final int SEARCH_BRANCHING_FIELD_NUMBER = 82;
4375  private int searchBranching_;
4379  public boolean hasSearchBranching() {
4380  return ((bitField2_ & 0x00040000) != 0);
4381  }
4386  @SuppressWarnings("deprecation")
4388  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
4389  }
4390 
4391  public static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER = 94;
4392  private boolean exploitIntegerLpSolution_;
4403  public boolean hasExploitIntegerLpSolution() {
4404  return ((bitField2_ & 0x00080000) != 0);
4405  }
4416  public boolean getExploitIntegerLpSolution() {
4417  return exploitIntegerLpSolution_;
4418  }
4419 
4420  public static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER = 116;
4421  private boolean exploitAllLpSolution_;
4431  public boolean hasExploitAllLpSolution() {
4432  return ((bitField2_ & 0x00100000) != 0);
4433  }
4443  public boolean getExploitAllLpSolution() {
4444  return exploitAllLpSolution_;
4445  }
4446 
4447  public static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER = 130;
4448  private boolean exploitBestSolution_;
4456  public boolean hasExploitBestSolution() {
4457  return ((bitField2_ & 0x00200000) != 0);
4458  }
4466  public boolean getExploitBestSolution() {
4467  return exploitBestSolution_;
4468  }
4469 
4470  public static final int EXPLOIT_OBJECTIVE_FIELD_NUMBER = 131;
4471  private boolean exploitObjective_;
4480  public boolean hasExploitObjective() {
4481  return ((bitField2_ & 0x00400000) != 0);
4482  }
4491  public boolean getExploitObjective() {
4492  return exploitObjective_;
4493  }
4494 
4495  public static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER = 123;
4496  private long pseudoCostReliabilityThreshold_;
4506  return ((bitField2_ & 0x00800000) != 0);
4507  }
4517  return pseudoCostReliabilityThreshold_;
4518  }
4519 
4520  public static final int OPTIMIZE_WITH_CORE_FIELD_NUMBER = 83;
4521  private boolean optimizeWithCore_;
4532  public boolean hasOptimizeWithCore() {
4533  return ((bitField2_ & 0x01000000) != 0);
4534  }
4545  public boolean getOptimizeWithCore() {
4546  return optimizeWithCore_;
4547  }
4548 
4549  public static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER = 99;
4550  private int binarySearchNumConflicts_;
4561  public boolean hasBinarySearchNumConflicts() {
4562  return ((bitField2_ & 0x02000000) != 0);
4563  }
4575  return binarySearchNumConflicts_;
4576  }
4577 
4578  public static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER = 85;
4579  private boolean optimizeWithMaxHs_;
4592  public boolean hasOptimizeWithMaxHs() {
4593  return ((bitField2_ & 0x04000000) != 0);
4594  }
4607  public boolean getOptimizeWithMaxHs() {
4608  return optimizeWithMaxHs_;
4609  }
4610 
4611  public static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER = 87;
4612  private boolean enumerateAllSolutions_;
4625  public boolean hasEnumerateAllSolutions() {
4626  return ((bitField2_ & 0x08000000) != 0);
4627  }
4640  public boolean getEnumerateAllSolutions() {
4641  return enumerateAllSolutions_;
4642  }
4643 
4645  private boolean fillTightenedDomainsInResponse_;
4658  return ((bitField2_ & 0x10000000) != 0);
4659  }
4672  return fillTightenedDomainsInResponse_;
4673  }
4674 
4675  public static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER = 106;
4676  private boolean instantiateAllVariables_;
4685  public boolean hasInstantiateAllVariables() {
4686  return ((bitField2_ & 0x20000000) != 0);
4687  }
4696  public boolean getInstantiateAllVariables() {
4697  return instantiateAllVariables_;
4698  }
4699 
4701  private boolean autoDetectGreaterThanAtLeastOneOf_;
4713  return ((bitField2_ & 0x40000000) != 0);
4714  }
4726  return autoDetectGreaterThanAtLeastOneOf_;
4727  }
4728 
4729  public static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER = 98;
4730  private boolean stopAfterFirstSolution_;
4738  public boolean hasStopAfterFirstSolution() {
4739  return ((bitField2_ & 0x80000000) != 0);
4740  }
4748  public boolean getStopAfterFirstSolution() {
4749  return stopAfterFirstSolution_;
4750  }
4751 
4752  public static final int NUM_SEARCH_WORKERS_FIELD_NUMBER = 100;
4753  private int numSearchWorkers_;
4762  public boolean hasNumSearchWorkers() {
4763  return ((bitField3_ & 0x00000001) != 0);
4764  }
4773  public int getNumSearchWorkers() {
4774  return numSearchWorkers_;
4775  }
4776 
4777  public static final int INTERLEAVE_SEARCH_FIELD_NUMBER = 136;
4778  private boolean interleaveSearch_;
4789  public boolean hasInterleaveSearch() {
4790  return ((bitField3_ & 0x00000002) != 0);
4791  }
4802  public boolean getInterleaveSearch() {
4803  return interleaveSearch_;
4804  }
4805 
4806  public static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER = 134;
4807  private boolean deterministicParallelSearch_;
4818  return ((bitField3_ & 0x00000004) != 0);
4819  }
4830  return deterministicParallelSearch_;
4831  }
4832 
4833  public static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER = 113;
4834  private boolean shareObjectiveBounds_;
4842  public boolean hasShareObjectiveBounds() {
4843  return ((bitField3_ & 0x00000008) != 0);
4844  }
4852  public boolean getShareObjectiveBounds() {
4853  return shareObjectiveBounds_;
4854  }
4855 
4856  public static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER = 114;
4857  private boolean shareLevelZeroBounds_;
4865  public boolean hasShareLevelZeroBounds() {
4866  return ((bitField3_ & 0x00000010) != 0);
4867  }
4875  public boolean getShareLevelZeroBounds() {
4876  return shareLevelZeroBounds_;
4877  }
4878 
4879  public static final int USE_LNS_ONLY_FIELD_NUMBER = 101;
4880  private boolean useLnsOnly_;
4888  public boolean hasUseLnsOnly() {
4889  return ((bitField3_ & 0x00000020) != 0);
4890  }
4898  public boolean getUseLnsOnly() {
4899  return useLnsOnly_;
4900  }
4901 
4902  public static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER = 105;
4903  private boolean lnsFocusOnDecisionVariables_;
4908  return ((bitField3_ & 0x00000040) != 0);
4909  }
4914  return lnsFocusOnDecisionVariables_;
4915  }
4916 
4917  public static final int USE_RINS_LNS_FIELD_NUMBER = 129;
4918  private boolean useRinsLns_;
4926  public boolean hasUseRinsLns() {
4927  return ((bitField3_ & 0x00000080) != 0);
4928  }
4936  public boolean getUseRinsLns() {
4937  return useRinsLns_;
4938  }
4939 
4940  public static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER = 137;
4941  private boolean diversifyLnsParams_;
4949  public boolean hasDiversifyLnsParams() {
4950  return ((bitField3_ & 0x00000100) != 0);
4951  }
4959  public boolean getDiversifyLnsParams() {
4960  return diversifyLnsParams_;
4961  }
4962 
4963  public static final int RANDOMIZE_SEARCH_FIELD_NUMBER = 103;
4964  private boolean randomizeSearch_;
4972  public boolean hasRandomizeSearch() {
4973  return ((bitField3_ & 0x00000200) != 0);
4974  }
4982  public boolean getRandomizeSearch() {
4983  return randomizeSearch_;
4984  }
4985 
4986  public static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER = 104;
4987  private long searchRandomizationTolerance_;
5002  return ((bitField3_ & 0x00000400) != 0);
5003  }
5018  return searchRandomizationTolerance_;
5019  }
5020 
5021  public static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER = 108;
5022  private boolean useOptionalVariables_;
5032  public boolean hasUseOptionalVariables() {
5033  return ((bitField3_ & 0x00000800) != 0);
5034  }
5044  public boolean getUseOptionalVariables() {
5045  return useOptionalVariables_;
5046  }
5047 
5048  public static final int USE_EXACT_LP_REASON_FIELD_NUMBER = 109;
5049  private boolean useExactLpReason_;
5060  public boolean hasUseExactLpReason() {
5061  return ((bitField3_ & 0x00001000) != 0);
5062  }
5073  public boolean getUseExactLpReason() {
5074  return useExactLpReason_;
5075  }
5076 
5077  public static final int USE_BRANCHING_IN_LP_FIELD_NUMBER = 139;
5078  private boolean useBranchingInLp_;
5088  public boolean hasUseBranchingInLp() {
5089  return ((bitField3_ & 0x00002000) != 0);
5090  }
5100  public boolean getUseBranchingInLp() {
5101  return useBranchingInLp_;
5102  }
5103 
5104  public static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER = 133;
5105  private boolean useCombinedNoOverlap_;
5115  public boolean hasUseCombinedNoOverlap() {
5116  return ((bitField3_ & 0x00004000) != 0);
5117  }
5127  public boolean getUseCombinedNoOverlap() {
5128  return useCombinedNoOverlap_;
5129  }
5130 
5131  public static final int CATCH_SIGINT_SIGNAL_FIELD_NUMBER = 135;
5132  private boolean catchSigintSignal_;
5142  public boolean hasCatchSigintSignal() {
5143  return ((bitField3_ & 0x00008000) != 0);
5144  }
5154  public boolean getCatchSigintSignal() {
5155  return catchSigintSignal_;
5156  }
5157 
5158  public static final int MIP_MAX_BOUND_FIELD_NUMBER = 124;
5159  private double mipMaxBound_;
5169  public boolean hasMipMaxBound() {
5170  return ((bitField3_ & 0x00010000) != 0);
5171  }
5181  public double getMipMaxBound() {
5182  return mipMaxBound_;
5183  }
5184 
5185  public static final int MIP_VAR_SCALING_FIELD_NUMBER = 125;
5186  private double mipVarScaling_;
5196  public boolean hasMipVarScaling() {
5197  return ((bitField3_ & 0x00020000) != 0);
5198  }
5208  public double getMipVarScaling() {
5209  return mipVarScaling_;
5210  }
5211 
5212  public static final int MIP_WANTED_PRECISION_FIELD_NUMBER = 126;
5213  private double mipWantedPrecision_;
5229  public boolean hasMipWantedPrecision() {
5230  return ((bitField3_ & 0x00040000) != 0);
5231  }
5247  public double getMipWantedPrecision() {
5248  return mipWantedPrecision_;
5249  }
5250 
5251  public static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER = 127;
5252  private int mipMaxActivityExponent_;
5266  public boolean hasMipMaxActivityExponent() {
5267  return ((bitField3_ & 0x00080000) != 0);
5268  }
5283  return mipMaxActivityExponent_;
5284  }
5285 
5286  public static final int MIP_CHECK_PRECISION_FIELD_NUMBER = 128;
5287  private double mipCheckPrecision_;
5298  public boolean hasMipCheckPrecision() {
5299  return ((bitField3_ & 0x00100000) != 0);
5300  }
5311  public double getMipCheckPrecision() {
5312  return mipCheckPrecision_;
5313  }
5314 
5315  private byte memoizedIsInitialized = -1;
5316  @java.lang.Override
5317  public final boolean isInitialized() {
5318  byte isInitialized = memoizedIsInitialized;
5319  if (isInitialized == 1) return true;
5320  if (isInitialized == 0) return false;
5321 
5322  memoizedIsInitialized = 1;
5323  return true;
5324  }
5325 
5326  @java.lang.Override
5327  public void writeTo(com.google.protobuf.CodedOutputStream output)
5328  throws java.io.IOException {
5329  if (((bitField0_ & 0x00000001) != 0)) {
5330  output.writeEnum(1, preferredVariableOrder_);
5331  }
5332  if (((bitField0_ & 0x00000002) != 0)) {
5333  output.writeEnum(2, initialPolarity_);
5334  }
5335  if (((bitField0_ & 0x00000100) != 0)) {
5336  output.writeEnum(4, minimizationAlgorithm_);
5337  }
5338  if (((bitField0_ & 0x00000800) != 0)) {
5339  output.writeInt32(11, clauseCleanupPeriod_);
5340  }
5341  if (((bitField0_ & 0x00001000) != 0)) {
5342  output.writeInt32(13, clauseCleanupTarget_);
5343  }
5344  if (((bitField0_ & 0x00100000) != 0)) {
5345  output.writeDouble(15, variableActivityDecay_);
5346  }
5347  if (((bitField0_ & 0x00200000) != 0)) {
5348  output.writeDouble(16, maxVariableActivityValue_);
5349  }
5350  if (((bitField0_ & 0x02000000) != 0)) {
5351  output.writeDouble(17, clauseActivityDecay_);
5352  }
5353  if (((bitField0_ & 0x04000000) != 0)) {
5354  output.writeDouble(18, maxClauseActivityValue_);
5355  }
5356  if (((bitField0_ & 0x00400000) != 0)) {
5357  output.writeDouble(22, glucoseMaxDecay_);
5358  }
5359  if (((bitField0_ & 0x00800000) != 0)) {
5360  output.writeDouble(23, glucoseDecayIncrement_);
5361  }
5362  if (((bitField0_ & 0x01000000) != 0)) {
5363  output.writeInt32(24, glucoseDecayIncrementPeriod_);
5364  }
5365  if (((bitField0_ & 0x10000000) != 0)) {
5366  output.writeInt32(30, restartPeriod_);
5367  }
5368  if (((bitField1_ & 0x00000400) != 0)) {
5369  output.writeInt32(31, randomSeed_);
5370  }
5371  if (((bitField0_ & 0x00000010) != 0)) {
5372  output.writeDouble(32, randomBranchesRatio_);
5373  }
5374  if (((bitField1_ & 0x00000200) != 0)) {
5375  output.writeBool(33, treatBinaryClausesSeparately_);
5376  }
5377  if (((bitField0_ & 0x00000200) != 0)) {
5378  output.writeEnum(34, binaryMinimizationAlgorithm_);
5379  }
5380  if (((bitField1_ & 0x04000000) != 0)) {
5381  output.writeBool(35, useOptimizationHints_);
5382  }
5383  if (((bitField1_ & 0x00000020) != 0)) {
5384  output.writeDouble(36, maxTimeInSeconds_);
5385  }
5386  if (((bitField1_ & 0x00000080) != 0)) {
5387  output.writeInt64(37, maxNumberOfConflicts_);
5388  }
5389  if (((bitField1_ & 0x00000100) != 0)) {
5390  output.writeInt64(40, maxMemoryInMb_);
5391  }
5392  if (((bitField1_ & 0x00000800) != 0)) {
5393  output.writeBool(41, logSearchProgress_);
5394  }
5395  if (((bitField1_ & 0x00001000) != 0)) {
5396  output.writeBool(43, usePbResolution_);
5397  }
5398  if (((bitField0_ & 0x00000004) != 0)) {
5399  output.writeBool(44, usePhaseSaving_);
5400  }
5401  if (((bitField0_ & 0x00000008) != 0)) {
5402  output.writeDouble(45, randomPolarityRatio_);
5403  }
5404  if (((bitField0_ & 0x00010000) != 0)) {
5405  output.writeInt32(46, pbCleanupIncrement_);
5406  }
5407  if (((bitField0_ & 0x00020000) != 0)) {
5408  output.writeDouble(47, pbCleanupRatio_);
5409  }
5410  if (((bitField1_ & 0x00002000) != 0)) {
5411  output.writeBool(48, minimizeReductionDuringPbResolution_);
5412  }
5413  if (((bitField1_ & 0x00004000) != 0)) {
5414  output.writeBool(49, countAssumptionLevelsInLbd_);
5415  }
5416  if (((bitField1_ & 0x08000000) != 0)) {
5417  output.writeBool(50, minimizeCore_);
5418  }
5419  if (((bitField1_ & 0x40000000) != 0)) {
5420  output.writeEnum(51, maxSatAssumptionOrder_);
5421  }
5422  if (((bitField1_ & 0x80000000) != 0)) {
5423  output.writeBool(52, maxSatReverseAssumptionOrder_);
5424  }
5425  if (((bitField2_ & 0x00000001) != 0)) {
5426  output.writeEnum(53, maxSatStratification_);
5427  }
5428  if (((bitField1_ & 0x00008000) != 0)) {
5429  output.writeInt32(54, presolveBveThreshold_);
5430  }
5431  if (((bitField1_ & 0x00010000) != 0)) {
5432  output.writeInt32(55, presolveBveClauseWeight_);
5433  }
5434  if (((bitField0_ & 0x00000400) != 0)) {
5435  output.writeBool(56, subsumptionDuringConflictAnalysis_);
5436  }
5437  if (((bitField1_ & 0x00020000) != 0)) {
5438  output.writeDouble(57, presolveProbingDeterministicTimeLimit_);
5439  }
5440  if (((bitField0_ & 0x00002000) != 0)) {
5441  output.writeEnum(58, clauseCleanupProtection_);
5442  }
5443  if (((bitField0_ & 0x00004000) != 0)) {
5444  output.writeInt32(59, clauseCleanupLbdBound_);
5445  }
5446  if (((bitField0_ & 0x00008000) != 0)) {
5447  output.writeEnum(60, clauseCleanupOrdering_);
5448  }
5449  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5450  output.writeEnum(61, restartAlgorithms_.get(i));
5451  }
5452  if (((bitField0_ & 0x20000000) != 0)) {
5453  output.writeInt32(62, restartRunningWindowSize_);
5454  }
5455  if (((bitField0_ & 0x40000000) != 0)) {
5456  output.writeDouble(63, restartDlAverageRatio_);
5457  }
5458  if (((bitField1_ & 0x00000001) != 0)) {
5459  output.writeBool(64, useBlockingRestart_);
5460  }
5461  if (((bitField1_ & 0x00000002) != 0)) {
5462  output.writeInt32(65, blockingRestartWindowSize_);
5463  }
5464  if (((bitField1_ & 0x00000004) != 0)) {
5465  output.writeDouble(66, blockingRestartMultiplier_);
5466  }
5467  if (((bitField1_ & 0x00000040) != 0)) {
5468  output.writeDouble(67, maxDeterministicTime_);
5469  }
5470  if (((bitField1_ & 0x00000008) != 0)) {
5471  output.writeInt32(68, numConflictsBeforeStrategyChanges_);
5472  }
5473  if (((bitField1_ & 0x00000010) != 0)) {
5474  output.writeDouble(69, strategyChangeIncreaseRatio_);
5475  }
5476  if (((bitField0_ & 0x08000000) != 0)) {
5477  com.google.protobuf.GeneratedMessageV3.writeString(output, 70, defaultRestartAlgorithms_);
5478  }
5479  if (((bitField0_ & 0x80000000) != 0)) {
5480  output.writeDouble(71, restartLbdAverageRatio_);
5481  }
5482  if (((bitField1_ & 0x00080000) != 0)) {
5483  output.writeBool(72, presolveUseBva_);
5484  }
5485  if (((bitField1_ & 0x00100000) != 0)) {
5486  output.writeInt32(73, presolveBvaThreshold_);
5487  }
5488  if (((bitField2_ & 0x00000002) != 0)) {
5489  output.writeBool(74, usePrecedencesInDisjunctiveConstraint_);
5490  }
5491  if (((bitField0_ & 0x00000020) != 0)) {
5492  output.writeBool(75, useErwaHeuristic_);
5493  }
5494  if (((bitField0_ & 0x00000040) != 0)) {
5495  output.writeDouble(76, initialVariablesActivity_);
5496  }
5497  if (((bitField0_ & 0x00000080) != 0)) {
5498  output.writeBool(77, alsoBumpVariablesInConflictReasons_);
5499  }
5500  if (((bitField2_ & 0x00000004) != 0)) {
5501  output.writeBool(78, useOverloadCheckerInCumulativeConstraint_);
5502  }
5503  if (((bitField2_ & 0x00000008) != 0)) {
5504  output.writeBool(79, useTimetableEdgeFindingInCumulativeConstraint_);
5505  }
5506  if (((bitField2_ & 0x00000010) != 0)) {
5507  output.writeBool(80, useDisjunctiveConstraintInCumulativeConstraint_);
5508  }
5509  if (((bitField2_ & 0x00040000) != 0)) {
5510  output.writeEnum(82, searchBranching_);
5511  }
5512  if (((bitField2_ & 0x01000000) != 0)) {
5513  output.writeBool(83, optimizeWithCore_);
5514  }
5515  if (((bitField1_ & 0x10000000) != 0)) {
5516  output.writeBool(84, findMultipleCores_);
5517  }
5518  if (((bitField2_ & 0x04000000) != 0)) {
5519  output.writeBool(85, optimizeWithMaxHs_);
5520  }
5521  if (((bitField1_ & 0x00400000) != 0)) {
5522  output.writeBool(86, cpModelPresolve_);
5523  }
5524  if (((bitField2_ & 0x08000000) != 0)) {
5525  output.writeBool(87, enumerateAllSolutions_);
5526  }
5527  if (((bitField1_ & 0x00040000) != 0)) {
5528  output.writeBool(88, presolveBlockedClause_);
5529  }
5530  if (((bitField1_ & 0x20000000) != 0)) {
5531  output.writeBool(89, coverOptimization_);
5532  }
5533  if (((bitField2_ & 0x00000020) != 0)) {
5534  output.writeInt32(90, linearizationLevel_);
5535  }
5536  if (((bitField2_ & 0x00000080) != 0)) {
5537  output.writeInt32(91, maxNumCuts_);
5538  }
5539  if (((bitField2_ & 0x00000100) != 0)) {
5540  output.writeBool(92, onlyAddCutsAtLevelZero_);
5541  }
5542  if (((bitField1_ & 0x01000000) != 0)) {
5543  output.writeBool(93, cpModelUseSatPresolve_);
5544  }
5545  if (((bitField2_ & 0x00080000) != 0)) {
5546  output.writeBool(94, exploitIntegerLpSolution_);
5547  }
5548  if (((bitField2_ & 0x40000000) != 0)) {
5549  output.writeBool(95, autoDetectGreaterThanAtLeastOneOf_);
5550  }
5551  if (((bitField0_ & 0x00040000) != 0)) {
5552  output.writeInt32(96, minimizeWithPropagationRestartPeriod_);
5553  }
5554  if (((bitField0_ & 0x00080000) != 0)) {
5555  output.writeInt32(97, minimizeWithPropagationNumDecisions_);
5556  }
5557  if (((bitField2_ & 0x80000000) != 0)) {
5558  output.writeBool(98, stopAfterFirstSolution_);
5559  }
5560  if (((bitField2_ & 0x02000000) != 0)) {
5561  output.writeInt32(99, binarySearchNumConflicts_);
5562  }
5563  if (((bitField3_ & 0x00000001) != 0)) {
5564  output.writeInt32(100, numSearchWorkers_);
5565  }
5566  if (((bitField3_ & 0x00000020) != 0)) {
5567  output.writeBool(101, useLnsOnly_);
5568  }
5569  if (((bitField3_ & 0x00000200) != 0)) {
5570  output.writeBool(103, randomizeSearch_);
5571  }
5572  if (((bitField3_ & 0x00000400) != 0)) {
5573  output.writeInt64(104, searchRandomizationTolerance_);
5574  }
5575  if (((bitField3_ & 0x00000040) != 0)) {
5576  output.writeBool(105, lnsFocusOnDecisionVariables_);
5577  }
5578  if (((bitField2_ & 0x20000000) != 0)) {
5579  output.writeBool(106, instantiateAllVariables_);
5580  }
5581  if (((bitField2_ & 0x00000040) != 0)) {
5582  output.writeInt32(107, booleanEncodingLevel_);
5583  }
5584  if (((bitField3_ & 0x00000800) != 0)) {
5585  output.writeBool(108, useOptionalVariables_);
5586  }
5587  if (((bitField3_ & 0x00001000) != 0)) {
5588  output.writeBool(109, useExactLpReason_);
5589  }
5590  if (((bitField1_ & 0x00800000) != 0)) {
5591  output.writeInt32(110, cpModelProbingLevel_);
5592  }
5593  if (((bitField2_ & 0x00000200) != 0)) {
5594  output.writeBool(111, addKnapsackCuts_);
5595  }
5596  if (((bitField2_ & 0x00004000) != 0)) {
5597  output.writeBool(112, addLpConstraintsLazily_);
5598  }
5599  if (((bitField3_ & 0x00000008) != 0)) {
5600  output.writeBool(113, shareObjectiveBounds_);
5601  }
5602  if (((bitField3_ & 0x00000010) != 0)) {
5603  output.writeBool(114, shareLevelZeroBounds_);
5604  }
5605  if (((bitField2_ & 0x00008000) != 0)) {
5606  output.writeDouble(115, minOrthogonalityForLpConstraints_);
5607  }
5608  if (((bitField2_ & 0x00100000) != 0)) {
5609  output.writeBool(116, exploitAllLpSolution_);
5610  }
5611  if (((bitField2_ & 0x00000400) != 0)) {
5612  output.writeBool(117, addCgCuts_);
5613  }
5614  if (((bitField2_ & 0x00001000) != 0)) {
5615  output.writeBool(118, useMirRounding_);
5616  }
5617  if (((bitField2_ & 0x00002000) != 0)) {
5618  output.writeInt32(119, maxIntegerRoundingScaling_);
5619  }
5620  if (((bitField2_ & 0x00000800) != 0)) {
5621  output.writeBool(120, addMirCuts_);
5622  }
5623  if (((bitField2_ & 0x00010000) != 0)) {
5624  output.writeInt64(121, maxInactiveCount_);
5625  }
5626  if (((bitField2_ & 0x00020000) != 0)) {
5627  output.writeInt64(122, constraintRemovalBatchSize_);
5628  }
5629  if (((bitField2_ & 0x00800000) != 0)) {
5630  output.writeInt64(123, pseudoCostReliabilityThreshold_);
5631  }
5632  if (((bitField3_ & 0x00010000) != 0)) {
5633  output.writeDouble(124, mipMaxBound_);
5634  }
5635  if (((bitField3_ & 0x00020000) != 0)) {
5636  output.writeDouble(125, mipVarScaling_);
5637  }
5638  if (((bitField3_ & 0x00040000) != 0)) {
5639  output.writeDouble(126, mipWantedPrecision_);
5640  }
5641  if (((bitField3_ & 0x00080000) != 0)) {
5642  output.writeInt32(127, mipMaxActivityExponent_);
5643  }
5644  if (((bitField3_ & 0x00100000) != 0)) {
5645  output.writeDouble(128, mipCheckPrecision_);
5646  }
5647  if (((bitField3_ & 0x00000080) != 0)) {
5648  output.writeBool(129, useRinsLns_);
5649  }
5650  if (((bitField2_ & 0x00200000) != 0)) {
5651  output.writeBool(130, exploitBestSolution_);
5652  }
5653  if (((bitField2_ & 0x00400000) != 0)) {
5654  output.writeBool(131, exploitObjective_);
5655  }
5656  if (((bitField2_ & 0x10000000) != 0)) {
5657  output.writeBool(132, fillTightenedDomainsInResponse_);
5658  }
5659  if (((bitField3_ & 0x00004000) != 0)) {
5660  output.writeBool(133, useCombinedNoOverlap_);
5661  }
5662  if (((bitField3_ & 0x00000004) != 0)) {
5663  output.writeBool(134, deterministicParallelSearch_);
5664  }
5665  if (((bitField3_ & 0x00008000) != 0)) {
5666  output.writeBool(135, catchSigintSignal_);
5667  }
5668  if (((bitField3_ & 0x00000002) != 0)) {
5669  output.writeBool(136, interleaveSearch_);
5670  }
5671  if (((bitField3_ & 0x00000100) != 0)) {
5672  output.writeBool(137, diversifyLnsParams_);
5673  }
5674  if (((bitField1_ & 0x00200000) != 0)) {
5675  output.writeInt32(138, maxPresolveIterations_);
5676  }
5677  if (((bitField3_ & 0x00002000) != 0)) {
5678  output.writeBool(139, useBranchingInLp_);
5679  }
5680  if (((bitField1_ & 0x02000000) != 0)) {
5681  output.writeBool(140, expandElementConstraints_);
5682  }
5683  unknownFields.writeTo(output);
5684  }
5685 
5686  @java.lang.Override
5687  public int getSerializedSize() {
5688  int size = memoizedSize;
5689  if (size != -1) return size;
5690 
5691  size = 0;
5692  if (((bitField0_ & 0x00000001) != 0)) {
5693  size += com.google.protobuf.CodedOutputStream
5694  .computeEnumSize(1, preferredVariableOrder_);
5695  }
5696  if (((bitField0_ & 0x00000002) != 0)) {
5697  size += com.google.protobuf.CodedOutputStream
5698  .computeEnumSize(2, initialPolarity_);
5699  }
5700  if (((bitField0_ & 0x00000100) != 0)) {
5701  size += com.google.protobuf.CodedOutputStream
5702  .computeEnumSize(4, minimizationAlgorithm_);
5703  }
5704  if (((bitField0_ & 0x00000800) != 0)) {
5705  size += com.google.protobuf.CodedOutputStream
5706  .computeInt32Size(11, clauseCleanupPeriod_);
5707  }
5708  if (((bitField0_ & 0x00001000) != 0)) {
5709  size += com.google.protobuf.CodedOutputStream
5710  .computeInt32Size(13, clauseCleanupTarget_);
5711  }
5712  if (((bitField0_ & 0x00100000) != 0)) {
5713  size += com.google.protobuf.CodedOutputStream
5714  .computeDoubleSize(15, variableActivityDecay_);
5715  }
5716  if (((bitField0_ & 0x00200000) != 0)) {
5717  size += com.google.protobuf.CodedOutputStream
5718  .computeDoubleSize(16, maxVariableActivityValue_);
5719  }
5720  if (((bitField0_ & 0x02000000) != 0)) {
5721  size += com.google.protobuf.CodedOutputStream
5722  .computeDoubleSize(17, clauseActivityDecay_);
5723  }
5724  if (((bitField0_ & 0x04000000) != 0)) {
5725  size += com.google.protobuf.CodedOutputStream
5726  .computeDoubleSize(18, maxClauseActivityValue_);
5727  }
5728  if (((bitField0_ & 0x00400000) != 0)) {
5729  size += com.google.protobuf.CodedOutputStream
5730  .computeDoubleSize(22, glucoseMaxDecay_);
5731  }
5732  if (((bitField0_ & 0x00800000) != 0)) {
5733  size += com.google.protobuf.CodedOutputStream
5734  .computeDoubleSize(23, glucoseDecayIncrement_);
5735  }
5736  if (((bitField0_ & 0x01000000) != 0)) {
5737  size += com.google.protobuf.CodedOutputStream
5738  .computeInt32Size(24, glucoseDecayIncrementPeriod_);
5739  }
5740  if (((bitField0_ & 0x10000000) != 0)) {
5741  size += com.google.protobuf.CodedOutputStream
5742  .computeInt32Size(30, restartPeriod_);
5743  }
5744  if (((bitField1_ & 0x00000400) != 0)) {
5745  size += com.google.protobuf.CodedOutputStream
5746  .computeInt32Size(31, randomSeed_);
5747  }
5748  if (((bitField0_ & 0x00000010) != 0)) {
5749  size += com.google.protobuf.CodedOutputStream
5750  .computeDoubleSize(32, randomBranchesRatio_);
5751  }
5752  if (((bitField1_ & 0x00000200) != 0)) {
5753  size += com.google.protobuf.CodedOutputStream
5754  .computeBoolSize(33, treatBinaryClausesSeparately_);
5755  }
5756  if (((bitField0_ & 0x00000200) != 0)) {
5757  size += com.google.protobuf.CodedOutputStream
5758  .computeEnumSize(34, binaryMinimizationAlgorithm_);
5759  }
5760  if (((bitField1_ & 0x04000000) != 0)) {
5761  size += com.google.protobuf.CodedOutputStream
5762  .computeBoolSize(35, useOptimizationHints_);
5763  }
5764  if (((bitField1_ & 0x00000020) != 0)) {
5765  size += com.google.protobuf.CodedOutputStream
5766  .computeDoubleSize(36, maxTimeInSeconds_);
5767  }
5768  if (((bitField1_ & 0x00000080) != 0)) {
5769  size += com.google.protobuf.CodedOutputStream
5770  .computeInt64Size(37, maxNumberOfConflicts_);
5771  }
5772  if (((bitField1_ & 0x00000100) != 0)) {
5773  size += com.google.protobuf.CodedOutputStream
5774  .computeInt64Size(40, maxMemoryInMb_);
5775  }
5776  if (((bitField1_ & 0x00000800) != 0)) {
5777  size += com.google.protobuf.CodedOutputStream
5778  .computeBoolSize(41, logSearchProgress_);
5779  }
5780  if (((bitField1_ & 0x00001000) != 0)) {
5781  size += com.google.protobuf.CodedOutputStream
5782  .computeBoolSize(43, usePbResolution_);
5783  }
5784  if (((bitField0_ & 0x00000004) != 0)) {
5785  size += com.google.protobuf.CodedOutputStream
5786  .computeBoolSize(44, usePhaseSaving_);
5787  }
5788  if (((bitField0_ & 0x00000008) != 0)) {
5789  size += com.google.protobuf.CodedOutputStream
5790  .computeDoubleSize(45, randomPolarityRatio_);
5791  }
5792  if (((bitField0_ & 0x00010000) != 0)) {
5793  size += com.google.protobuf.CodedOutputStream
5794  .computeInt32Size(46, pbCleanupIncrement_);
5795  }
5796  if (((bitField0_ & 0x00020000) != 0)) {
5797  size += com.google.protobuf.CodedOutputStream
5798  .computeDoubleSize(47, pbCleanupRatio_);
5799  }
5800  if (((bitField1_ & 0x00002000) != 0)) {
5801  size += com.google.protobuf.CodedOutputStream
5802  .computeBoolSize(48, minimizeReductionDuringPbResolution_);
5803  }
5804  if (((bitField1_ & 0x00004000) != 0)) {
5805  size += com.google.protobuf.CodedOutputStream
5806  .computeBoolSize(49, countAssumptionLevelsInLbd_);
5807  }
5808  if (((bitField1_ & 0x08000000) != 0)) {
5809  size += com.google.protobuf.CodedOutputStream
5810  .computeBoolSize(50, minimizeCore_);
5811  }
5812  if (((bitField1_ & 0x40000000) != 0)) {
5813  size += com.google.protobuf.CodedOutputStream
5814  .computeEnumSize(51, maxSatAssumptionOrder_);
5815  }
5816  if (((bitField1_ & 0x80000000) != 0)) {
5817  size += com.google.protobuf.CodedOutputStream
5818  .computeBoolSize(52, maxSatReverseAssumptionOrder_);
5819  }
5820  if (((bitField2_ & 0x00000001) != 0)) {
5821  size += com.google.protobuf.CodedOutputStream
5822  .computeEnumSize(53, maxSatStratification_);
5823  }
5824  if (((bitField1_ & 0x00008000) != 0)) {
5825  size += com.google.protobuf.CodedOutputStream
5826  .computeInt32Size(54, presolveBveThreshold_);
5827  }
5828  if (((bitField1_ & 0x00010000) != 0)) {
5829  size += com.google.protobuf.CodedOutputStream
5830  .computeInt32Size(55, presolveBveClauseWeight_);
5831  }
5832  if (((bitField0_ & 0x00000400) != 0)) {
5833  size += com.google.protobuf.CodedOutputStream
5834  .computeBoolSize(56, subsumptionDuringConflictAnalysis_);
5835  }
5836  if (((bitField1_ & 0x00020000) != 0)) {
5837  size += com.google.protobuf.CodedOutputStream
5838  .computeDoubleSize(57, presolveProbingDeterministicTimeLimit_);
5839  }
5840  if (((bitField0_ & 0x00002000) != 0)) {
5841  size += com.google.protobuf.CodedOutputStream
5842  .computeEnumSize(58, clauseCleanupProtection_);
5843  }
5844  if (((bitField0_ & 0x00004000) != 0)) {
5845  size += com.google.protobuf.CodedOutputStream
5846  .computeInt32Size(59, clauseCleanupLbdBound_);
5847  }
5848  if (((bitField0_ & 0x00008000) != 0)) {
5849  size += com.google.protobuf.CodedOutputStream
5850  .computeEnumSize(60, clauseCleanupOrdering_);
5851  }
5852  {
5853  int dataSize = 0;
5854  for (int i = 0; i < restartAlgorithms_.size(); i++) {
5855  dataSize += com.google.protobuf.CodedOutputStream
5856  .computeEnumSizeNoTag(restartAlgorithms_.get(i));
5857  }
5858  size += dataSize;
5859  size += 2 * restartAlgorithms_.size();
5860  }
5861  if (((bitField0_ & 0x20000000) != 0)) {
5862  size += com.google.protobuf.CodedOutputStream
5863  .computeInt32Size(62, restartRunningWindowSize_);
5864  }
5865  if (((bitField0_ & 0x40000000) != 0)) {
5866  size += com.google.protobuf.CodedOutputStream
5867  .computeDoubleSize(63, restartDlAverageRatio_);
5868  }
5869  if (((bitField1_ & 0x00000001) != 0)) {
5870  size += com.google.protobuf.CodedOutputStream
5871  .computeBoolSize(64, useBlockingRestart_);
5872  }
5873  if (((bitField1_ & 0x00000002) != 0)) {
5874  size += com.google.protobuf.CodedOutputStream
5875  .computeInt32Size(65, blockingRestartWindowSize_);
5876  }
5877  if (((bitField1_ & 0x00000004) != 0)) {
5878  size += com.google.protobuf.CodedOutputStream
5879  .computeDoubleSize(66, blockingRestartMultiplier_);
5880  }
5881  if (((bitField1_ & 0x00000040) != 0)) {
5882  size += com.google.protobuf.CodedOutputStream
5883  .computeDoubleSize(67, maxDeterministicTime_);
5884  }
5885  if (((bitField1_ & 0x00000008) != 0)) {
5886  size += com.google.protobuf.CodedOutputStream
5887  .computeInt32Size(68, numConflictsBeforeStrategyChanges_);
5888  }
5889  if (((bitField1_ & 0x00000010) != 0)) {
5890  size += com.google.protobuf.CodedOutputStream
5891  .computeDoubleSize(69, strategyChangeIncreaseRatio_);
5892  }
5893  if (((bitField0_ & 0x08000000) != 0)) {
5894  size += com.google.protobuf.GeneratedMessageV3.computeStringSize(70, defaultRestartAlgorithms_);
5895  }
5896  if (((bitField0_ & 0x80000000) != 0)) {
5897  size += com.google.protobuf.CodedOutputStream
5898  .computeDoubleSize(71, restartLbdAverageRatio_);
5899  }
5900  if (((bitField1_ & 0x00080000) != 0)) {
5901  size += com.google.protobuf.CodedOutputStream
5902  .computeBoolSize(72, presolveUseBva_);
5903  }
5904  if (((bitField1_ & 0x00100000) != 0)) {
5905  size += com.google.protobuf.CodedOutputStream
5906  .computeInt32Size(73, presolveBvaThreshold_);
5907  }
5908  if (((bitField2_ & 0x00000002) != 0)) {
5909  size += com.google.protobuf.CodedOutputStream
5910  .computeBoolSize(74, usePrecedencesInDisjunctiveConstraint_);
5911  }
5912  if (((bitField0_ & 0x00000020) != 0)) {
5913  size += com.google.protobuf.CodedOutputStream
5914  .computeBoolSize(75, useErwaHeuristic_);
5915  }
5916  if (((bitField0_ & 0x00000040) != 0)) {
5917  size += com.google.protobuf.CodedOutputStream
5918  .computeDoubleSize(76, initialVariablesActivity_);
5919  }
5920  if (((bitField0_ & 0x00000080) != 0)) {
5921  size += com.google.protobuf.CodedOutputStream
5922  .computeBoolSize(77, alsoBumpVariablesInConflictReasons_);
5923  }
5924  if (((bitField2_ & 0x00000004) != 0)) {
5925  size += com.google.protobuf.CodedOutputStream
5926  .computeBoolSize(78, useOverloadCheckerInCumulativeConstraint_);
5927  }
5928  if (((bitField2_ & 0x00000008) != 0)) {
5929  size += com.google.protobuf.CodedOutputStream
5930  .computeBoolSize(79, useTimetableEdgeFindingInCumulativeConstraint_);
5931  }
5932  if (((bitField2_ & 0x00000010) != 0)) {
5933  size += com.google.protobuf.CodedOutputStream
5934  .computeBoolSize(80, useDisjunctiveConstraintInCumulativeConstraint_);
5935  }
5936  if (((bitField2_ & 0x00040000) != 0)) {
5937  size += com.google.protobuf.CodedOutputStream
5938  .computeEnumSize(82, searchBranching_);
5939  }
5940  if (((bitField2_ & 0x01000000) != 0)) {
5941  size += com.google.protobuf.CodedOutputStream
5942  .computeBoolSize(83, optimizeWithCore_);
5943  }
5944  if (((bitField1_ & 0x10000000) != 0)) {
5945  size += com.google.protobuf.CodedOutputStream
5946  .computeBoolSize(84, findMultipleCores_);
5947  }
5948  if (((bitField2_ & 0x04000000) != 0)) {
5949  size += com.google.protobuf.CodedOutputStream
5950  .computeBoolSize(85, optimizeWithMaxHs_);
5951  }
5952  if (((bitField1_ & 0x00400000) != 0)) {
5953  size += com.google.protobuf.CodedOutputStream
5954  .computeBoolSize(86, cpModelPresolve_);
5955  }
5956  if (((bitField2_ & 0x08000000) != 0)) {
5957  size += com.google.protobuf.CodedOutputStream
5958  .computeBoolSize(87, enumerateAllSolutions_);
5959  }
5960  if (((bitField1_ & 0x00040000) != 0)) {
5961  size += com.google.protobuf.CodedOutputStream
5962  .computeBoolSize(88, presolveBlockedClause_);
5963  }
5964  if (((bitField1_ & 0x20000000) != 0)) {
5965  size += com.google.protobuf.CodedOutputStream
5966  .computeBoolSize(89, coverOptimization_);
5967  }
5968  if (((bitField2_ & 0x00000020) != 0)) {
5969  size += com.google.protobuf.CodedOutputStream
5970  .computeInt32Size(90, linearizationLevel_);
5971  }
5972  if (((bitField2_ & 0x00000080) != 0)) {
5973  size += com.google.protobuf.CodedOutputStream
5974  .computeInt32Size(91, maxNumCuts_);
5975  }
5976  if (((bitField2_ & 0x00000100) != 0)) {
5977  size += com.google.protobuf.CodedOutputStream
5978  .computeBoolSize(92, onlyAddCutsAtLevelZero_);
5979  }
5980  if (((bitField1_ & 0x01000000) != 0)) {
5981  size += com.google.protobuf.CodedOutputStream
5982  .computeBoolSize(93, cpModelUseSatPresolve_);
5983  }
5984  if (((bitField2_ & 0x00080000) != 0)) {
5985  size += com.google.protobuf.CodedOutputStream
5986  .computeBoolSize(94, exploitIntegerLpSolution_);
5987  }
5988  if (((bitField2_ & 0x40000000) != 0)) {
5989  size += com.google.protobuf.CodedOutputStream
5990  .computeBoolSize(95, autoDetectGreaterThanAtLeastOneOf_);
5991  }
5992  if (((bitField0_ & 0x00040000) != 0)) {
5993  size += com.google.protobuf.CodedOutputStream
5994  .computeInt32Size(96, minimizeWithPropagationRestartPeriod_);
5995  }
5996  if (((bitField0_ & 0x00080000) != 0)) {
5997  size += com.google.protobuf.CodedOutputStream
5998  .computeInt32Size(97, minimizeWithPropagationNumDecisions_);
5999  }
6000  if (((bitField2_ & 0x80000000) != 0)) {
6001  size += com.google.protobuf.CodedOutputStream
6002  .computeBoolSize(98, stopAfterFirstSolution_);
6003  }
6004  if (((bitField2_ & 0x02000000) != 0)) {
6005  size += com.google.protobuf.CodedOutputStream
6006  .computeInt32Size(99, binarySearchNumConflicts_);
6007  }
6008  if (((bitField3_ & 0x00000001) != 0)) {
6009  size += com.google.protobuf.CodedOutputStream
6010  .computeInt32Size(100, numSearchWorkers_);
6011  }
6012  if (((bitField3_ & 0x00000020) != 0)) {
6013  size += com.google.protobuf.CodedOutputStream
6014  .computeBoolSize(101, useLnsOnly_);
6015  }
6016  if (((bitField3_ & 0x00000200) != 0)) {
6017  size += com.google.protobuf.CodedOutputStream
6018  .computeBoolSize(103, randomizeSearch_);
6019  }
6020  if (((bitField3_ & 0x00000400) != 0)) {
6021  size += com.google.protobuf.CodedOutputStream
6022  .computeInt64Size(104, searchRandomizationTolerance_);
6023  }
6024  if (((bitField3_ & 0x00000040) != 0)) {
6025  size += com.google.protobuf.CodedOutputStream
6026  .computeBoolSize(105, lnsFocusOnDecisionVariables_);
6027  }
6028  if (((bitField2_ & 0x20000000) != 0)) {
6029  size += com.google.protobuf.CodedOutputStream
6030  .computeBoolSize(106, instantiateAllVariables_);
6031  }
6032  if (((bitField2_ & 0x00000040) != 0)) {
6033  size += com.google.protobuf.CodedOutputStream
6034  .computeInt32Size(107, booleanEncodingLevel_);
6035  }
6036  if (((bitField3_ & 0x00000800) != 0)) {
6037  size += com.google.protobuf.CodedOutputStream
6038  .computeBoolSize(108, useOptionalVariables_);
6039  }
6040  if (((bitField3_ & 0x00001000) != 0)) {
6041  size += com.google.protobuf.CodedOutputStream
6042  .computeBoolSize(109, useExactLpReason_);
6043  }
6044  if (((bitField1_ & 0x00800000) != 0)) {
6045  size += com.google.protobuf.CodedOutputStream
6046  .computeInt32Size(110, cpModelProbingLevel_);
6047  }
6048  if (((bitField2_ & 0x00000200) != 0)) {
6049  size += com.google.protobuf.CodedOutputStream
6050  .computeBoolSize(111, addKnapsackCuts_);
6051  }
6052  if (((bitField2_ & 0x00004000) != 0)) {
6053  size += com.google.protobuf.CodedOutputStream
6054  .computeBoolSize(112, addLpConstraintsLazily_);
6055  }
6056  if (((bitField3_ & 0x00000008) != 0)) {
6057  size += com.google.protobuf.CodedOutputStream
6058  .computeBoolSize(113, shareObjectiveBounds_);
6059  }
6060  if (((bitField3_ & 0x00000010) != 0)) {
6061  size += com.google.protobuf.CodedOutputStream
6062  .computeBoolSize(114, shareLevelZeroBounds_);
6063  }
6064  if (((bitField2_ & 0x00008000) != 0)) {
6065  size += com.google.protobuf.CodedOutputStream
6066  .computeDoubleSize(115, minOrthogonalityForLpConstraints_);
6067  }
6068  if (((bitField2_ & 0x00100000) != 0)) {
6069  size += com.google.protobuf.CodedOutputStream
6070  .computeBoolSize(116, exploitAllLpSolution_);
6071  }
6072  if (((bitField2_ & 0x00000400) != 0)) {
6073  size += com.google.protobuf.CodedOutputStream
6074  .computeBoolSize(117, addCgCuts_);
6075  }
6076  if (((bitField2_ & 0x00001000) != 0)) {
6077  size += com.google.protobuf.CodedOutputStream
6078  .computeBoolSize(118, useMirRounding_);
6079  }
6080  if (((bitField2_ & 0x00002000) != 0)) {
6081  size += com.google.protobuf.CodedOutputStream
6082  .computeInt32Size(119, maxIntegerRoundingScaling_);
6083  }
6084  if (((bitField2_ & 0x00000800) != 0)) {
6085  size += com.google.protobuf.CodedOutputStream
6086  .computeBoolSize(120, addMirCuts_);
6087  }
6088  if (((bitField2_ & 0x00010000) != 0)) {
6089  size += com.google.protobuf.CodedOutputStream
6090  .computeInt64Size(121, maxInactiveCount_);
6091  }
6092  if (((bitField2_ & 0x00020000) != 0)) {
6093  size += com.google.protobuf.CodedOutputStream
6094  .computeInt64Size(122, constraintRemovalBatchSize_);
6095  }
6096  if (((bitField2_ & 0x00800000) != 0)) {
6097  size += com.google.protobuf.CodedOutputStream
6098  .computeInt64Size(123, pseudoCostReliabilityThreshold_);
6099  }
6100  if (((bitField3_ & 0x00010000) != 0)) {
6101  size += com.google.protobuf.CodedOutputStream
6102  .computeDoubleSize(124, mipMaxBound_);
6103  }
6104  if (((bitField3_ & 0x00020000) != 0)) {
6105  size += com.google.protobuf.CodedOutputStream
6106  .computeDoubleSize(125, mipVarScaling_);
6107  }
6108  if (((bitField3_ & 0x00040000) != 0)) {
6109  size += com.google.protobuf.CodedOutputStream
6110  .computeDoubleSize(126, mipWantedPrecision_);
6111  }
6112  if (((bitField3_ & 0x00080000) != 0)) {
6113  size += com.google.protobuf.CodedOutputStream
6114  .computeInt32Size(127, mipMaxActivityExponent_);
6115  }
6116  if (((bitField3_ & 0x00100000) != 0)) {
6117  size += com.google.protobuf.CodedOutputStream
6118  .computeDoubleSize(128, mipCheckPrecision_);
6119  }
6120  if (((bitField3_ & 0x00000080) != 0)) {
6121  size += com.google.protobuf.CodedOutputStream
6122  .computeBoolSize(129, useRinsLns_);
6123  }
6124  if (((bitField2_ & 0x00200000) != 0)) {
6125  size += com.google.protobuf.CodedOutputStream
6126  .computeBoolSize(130, exploitBestSolution_);
6127  }
6128  if (((bitField2_ & 0x00400000) != 0)) {
6129  size += com.google.protobuf.CodedOutputStream
6130  .computeBoolSize(131, exploitObjective_);
6131  }
6132  if (((bitField2_ & 0x10000000) != 0)) {
6133  size += com.google.protobuf.CodedOutputStream
6134  .computeBoolSize(132, fillTightenedDomainsInResponse_);
6135  }
6136  if (((bitField3_ & 0x00004000) != 0)) {
6137  size += com.google.protobuf.CodedOutputStream
6138  .computeBoolSize(133, useCombinedNoOverlap_);
6139  }
6140  if (((bitField3_ & 0x00000004) != 0)) {
6141  size += com.google.protobuf.CodedOutputStream
6142  .computeBoolSize(134, deterministicParallelSearch_);
6143  }
6144  if (((bitField3_ & 0x00008000) != 0)) {
6145  size += com.google.protobuf.CodedOutputStream
6146  .computeBoolSize(135, catchSigintSignal_);
6147  }
6148  if (((bitField3_ & 0x00000002) != 0)) {
6149  size += com.google.protobuf.CodedOutputStream
6150  .computeBoolSize(136, interleaveSearch_);
6151  }
6152  if (((bitField3_ & 0x00000100) != 0)) {
6153  size += com.google.protobuf.CodedOutputStream
6154  .computeBoolSize(137, diversifyLnsParams_);
6155  }
6156  if (((bitField1_ & 0x00200000) != 0)) {
6157  size += com.google.protobuf.CodedOutputStream
6158  .computeInt32Size(138, maxPresolveIterations_);
6159  }
6160  if (((bitField3_ & 0x00002000) != 0)) {
6161  size += com.google.protobuf.CodedOutputStream
6162  .computeBoolSize(139, useBranchingInLp_);
6163  }
6164  if (((bitField1_ & 0x02000000) != 0)) {
6165  size += com.google.protobuf.CodedOutputStream
6166  .computeBoolSize(140, expandElementConstraints_);
6167  }
6168  size += unknownFields.getSerializedSize();
6169  memoizedSize = size;
6170  return size;
6171  }
6172 
6173  @java.lang.Override
6174  public boolean equals(final java.lang.Object obj) {
6175  if (obj == this) {
6176  return true;
6177  }
6178  if (!(obj instanceof com.google.ortools.sat.SatParameters)) {
6179  return super.equals(obj);
6180  }
6182 
6183  if (hasPreferredVariableOrder() != other.hasPreferredVariableOrder()) return false;
6184  if (hasPreferredVariableOrder()) {
6185  if (preferredVariableOrder_ != other.preferredVariableOrder_) return false;
6186  }
6187  if (hasInitialPolarity() != other.hasInitialPolarity()) return false;
6188  if (hasInitialPolarity()) {
6189  if (initialPolarity_ != other.initialPolarity_) return false;
6190  }
6191  if (hasUsePhaseSaving() != other.hasUsePhaseSaving()) return false;
6192  if (hasUsePhaseSaving()) {
6193  if (getUsePhaseSaving()
6194  != other.getUsePhaseSaving()) return false;
6195  }
6196  if (hasRandomPolarityRatio() != other.hasRandomPolarityRatio()) return false;
6197  if (hasRandomPolarityRatio()) {
6198  if (java.lang.Double.doubleToLongBits(getRandomPolarityRatio())
6199  != java.lang.Double.doubleToLongBits(
6200  other.getRandomPolarityRatio())) return false;
6201  }
6202  if (hasRandomBranchesRatio() != other.hasRandomBranchesRatio()) return false;
6203  if (hasRandomBranchesRatio()) {
6204  if (java.lang.Double.doubleToLongBits(getRandomBranchesRatio())
6205  != java.lang.Double.doubleToLongBits(
6206  other.getRandomBranchesRatio())) return false;
6207  }
6208  if (hasUseErwaHeuristic() != other.hasUseErwaHeuristic()) return false;
6209  if (hasUseErwaHeuristic()) {
6210  if (getUseErwaHeuristic()
6211  != other.getUseErwaHeuristic()) return false;
6212  }
6213  if (hasInitialVariablesActivity() != other.hasInitialVariablesActivity()) return false;
6215  if (java.lang.Double.doubleToLongBits(getInitialVariablesActivity())
6216  != java.lang.Double.doubleToLongBits(
6217  other.getInitialVariablesActivity())) return false;
6218  }
6219  if (hasAlsoBumpVariablesInConflictReasons() != other.hasAlsoBumpVariablesInConflictReasons()) return false;
6222  != other.getAlsoBumpVariablesInConflictReasons()) return false;
6223  }
6224  if (hasMinimizationAlgorithm() != other.hasMinimizationAlgorithm()) return false;
6225  if (hasMinimizationAlgorithm()) {
6226  if (minimizationAlgorithm_ != other.minimizationAlgorithm_) return false;
6227  }
6228  if (hasBinaryMinimizationAlgorithm() != other.hasBinaryMinimizationAlgorithm()) return false;
6230  if (binaryMinimizationAlgorithm_ != other.binaryMinimizationAlgorithm_) return false;
6231  }
6232  if (hasSubsumptionDuringConflictAnalysis() != other.hasSubsumptionDuringConflictAnalysis()) return false;
6235  != other.getSubsumptionDuringConflictAnalysis()) return false;
6236  }
6237  if (hasClauseCleanupPeriod() != other.hasClauseCleanupPeriod()) return false;
6238  if (hasClauseCleanupPeriod()) {
6240  != other.getClauseCleanupPeriod()) return false;
6241  }
6242  if (hasClauseCleanupTarget() != other.hasClauseCleanupTarget()) return false;
6243  if (hasClauseCleanupTarget()) {
6245  != other.getClauseCleanupTarget()) return false;
6246  }
6247  if (hasClauseCleanupProtection() != other.hasClauseCleanupProtection()) return false;
6249  if (clauseCleanupProtection_ != other.clauseCleanupProtection_) return false;
6250  }
6251  if (hasClauseCleanupLbdBound() != other.hasClauseCleanupLbdBound()) return false;
6252  if (hasClauseCleanupLbdBound()) {
6254  != other.getClauseCleanupLbdBound()) return false;
6255  }
6256  if (hasClauseCleanupOrdering() != other.hasClauseCleanupOrdering()) return false;
6257  if (hasClauseCleanupOrdering()) {
6258  if (clauseCleanupOrdering_ != other.clauseCleanupOrdering_) return false;
6259  }
6260  if (hasPbCleanupIncrement() != other.hasPbCleanupIncrement()) return false;
6261  if (hasPbCleanupIncrement()) {
6262  if (getPbCleanupIncrement()
6263  != other.getPbCleanupIncrement()) return false;
6264  }
6265  if (hasPbCleanupRatio() != other.hasPbCleanupRatio()) return false;
6266  if (hasPbCleanupRatio()) {
6267  if (java.lang.Double.doubleToLongBits(getPbCleanupRatio())
6268  != java.lang.Double.doubleToLongBits(
6269  other.getPbCleanupRatio())) return false;
6270  }
6271  if (hasMinimizeWithPropagationRestartPeriod() != other.hasMinimizeWithPropagationRestartPeriod()) return false;
6274  != other.getMinimizeWithPropagationRestartPeriod()) return false;
6275  }
6276  if (hasMinimizeWithPropagationNumDecisions() != other.hasMinimizeWithPropagationNumDecisions()) return false;
6279  != other.getMinimizeWithPropagationNumDecisions()) return false;
6280  }
6281  if (hasVariableActivityDecay() != other.hasVariableActivityDecay()) return false;
6282  if (hasVariableActivityDecay()) {
6283  if (java.lang.Double.doubleToLongBits(getVariableActivityDecay())
6284  != java.lang.Double.doubleToLongBits(
6285  other.getVariableActivityDecay())) return false;
6286  }
6287  if (hasMaxVariableActivityValue() != other.hasMaxVariableActivityValue()) return false;
6289  if (java.lang.Double.doubleToLongBits(getMaxVariableActivityValue())
6290  != java.lang.Double.doubleToLongBits(
6291  other.getMaxVariableActivityValue())) return false;
6292  }
6293  if (hasGlucoseMaxDecay() != other.hasGlucoseMaxDecay()) return false;
6294  if (hasGlucoseMaxDecay()) {
6295  if (java.lang.Double.doubleToLongBits(getGlucoseMaxDecay())
6296  != java.lang.Double.doubleToLongBits(
6297  other.getGlucoseMaxDecay())) return false;
6298  }
6299  if (hasGlucoseDecayIncrement() != other.hasGlucoseDecayIncrement()) return false;
6300  if (hasGlucoseDecayIncrement()) {
6301  if (java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement())
6302  != java.lang.Double.doubleToLongBits(
6303  other.getGlucoseDecayIncrement())) return false;
6304  }
6305  if (hasGlucoseDecayIncrementPeriod() != other.hasGlucoseDecayIncrementPeriod()) return false;
6308  != other.getGlucoseDecayIncrementPeriod()) return false;
6309  }
6310  if (hasClauseActivityDecay() != other.hasClauseActivityDecay()) return false;
6311  if (hasClauseActivityDecay()) {
6312  if (java.lang.Double.doubleToLongBits(getClauseActivityDecay())
6313  != java.lang.Double.doubleToLongBits(
6314  other.getClauseActivityDecay())) return false;
6315  }
6316  if (hasMaxClauseActivityValue() != other.hasMaxClauseActivityValue()) return false;
6317  if (hasMaxClauseActivityValue()) {
6318  if (java.lang.Double.doubleToLongBits(getMaxClauseActivityValue())
6319  != java.lang.Double.doubleToLongBits(
6320  other.getMaxClauseActivityValue())) return false;
6321  }
6322  if (!restartAlgorithms_.equals(other.restartAlgorithms_)) return false;
6323  if (hasDefaultRestartAlgorithms() != other.hasDefaultRestartAlgorithms()) return false;
6326  .equals(other.getDefaultRestartAlgorithms())) return false;
6327  }
6328  if (hasRestartPeriod() != other.hasRestartPeriod()) return false;
6329  if (hasRestartPeriod()) {
6330  if (getRestartPeriod()
6331  != other.getRestartPeriod()) return false;
6332  }
6333  if (hasRestartRunningWindowSize() != other.hasRestartRunningWindowSize()) return false;
6336  != other.getRestartRunningWindowSize()) return false;
6337  }
6338  if (hasRestartDlAverageRatio() != other.hasRestartDlAverageRatio()) return false;
6339  if (hasRestartDlAverageRatio()) {
6340  if (java.lang.Double.doubleToLongBits(getRestartDlAverageRatio())
6341  != java.lang.Double.doubleToLongBits(
6342  other.getRestartDlAverageRatio())) return false;
6343  }
6344  if (hasRestartLbdAverageRatio() != other.hasRestartLbdAverageRatio()) return false;
6345  if (hasRestartLbdAverageRatio()) {
6346  if (java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio())
6347  != java.lang.Double.doubleToLongBits(
6348  other.getRestartLbdAverageRatio())) return false;
6349  }
6350  if (hasUseBlockingRestart() != other.hasUseBlockingRestart()) return false;
6351  if (hasUseBlockingRestart()) {
6352  if (getUseBlockingRestart()
6353  != other.getUseBlockingRestart()) return false;
6354  }
6355  if (hasBlockingRestartWindowSize() != other.hasBlockingRestartWindowSize()) return false;
6358  != other.getBlockingRestartWindowSize()) return false;
6359  }
6360  if (hasBlockingRestartMultiplier() != other.hasBlockingRestartMultiplier()) return false;
6362  if (java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier())
6363  != java.lang.Double.doubleToLongBits(
6364  other.getBlockingRestartMultiplier())) return false;
6365  }
6366  if (hasNumConflictsBeforeStrategyChanges() != other.hasNumConflictsBeforeStrategyChanges()) return false;
6369  != other.getNumConflictsBeforeStrategyChanges()) return false;
6370  }
6371  if (hasStrategyChangeIncreaseRatio() != other.hasStrategyChangeIncreaseRatio()) return false;
6373  if (java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio())
6374  != java.lang.Double.doubleToLongBits(
6375  other.getStrategyChangeIncreaseRatio())) return false;
6376  }
6377  if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
6378  if (hasMaxTimeInSeconds()) {
6379  if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
6380  != java.lang.Double.doubleToLongBits(
6381  other.getMaxTimeInSeconds())) return false;
6382  }
6383  if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
6384  if (hasMaxDeterministicTime()) {
6385  if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
6386  != java.lang.Double.doubleToLongBits(
6387  other.getMaxDeterministicTime())) return false;
6388  }
6389  if (hasMaxNumberOfConflicts() != other.hasMaxNumberOfConflicts()) return false;
6390  if (hasMaxNumberOfConflicts()) {
6392  != other.getMaxNumberOfConflicts()) return false;
6393  }
6394  if (hasMaxMemoryInMb() != other.hasMaxMemoryInMb()) return false;
6395  if (hasMaxMemoryInMb()) {
6396  if (getMaxMemoryInMb()
6397  != other.getMaxMemoryInMb()) return false;
6398  }
6399  if (hasTreatBinaryClausesSeparately() != other.hasTreatBinaryClausesSeparately()) return false;
6402  != other.getTreatBinaryClausesSeparately()) return false;
6403  }
6404  if (hasRandomSeed() != other.hasRandomSeed()) return false;
6405  if (hasRandomSeed()) {
6406  if (getRandomSeed()
6407  != other.getRandomSeed()) return false;
6408  }
6409  if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
6410  if (hasLogSearchProgress()) {
6411  if (getLogSearchProgress()
6412  != other.getLogSearchProgress()) return false;
6413  }
6414  if (hasUsePbResolution() != other.hasUsePbResolution()) return false;
6415  if (hasUsePbResolution()) {
6416  if (getUsePbResolution()
6417  != other.getUsePbResolution()) return false;
6418  }
6419  if (hasMinimizeReductionDuringPbResolution() != other.hasMinimizeReductionDuringPbResolution()) return false;
6422  != other.getMinimizeReductionDuringPbResolution()) return false;
6423  }
6424  if (hasCountAssumptionLevelsInLbd() != other.hasCountAssumptionLevelsInLbd()) return false;
6427  != other.getCountAssumptionLevelsInLbd()) return false;
6428  }
6429  if (hasPresolveBveThreshold() != other.hasPresolveBveThreshold()) return false;
6430  if (hasPresolveBveThreshold()) {
6432  != other.getPresolveBveThreshold()) return false;
6433  }
6434  if (hasPresolveBveClauseWeight() != other.hasPresolveBveClauseWeight()) return false;
6437  != other.getPresolveBveClauseWeight()) return false;
6438  }
6439  if (hasPresolveProbingDeterministicTimeLimit() != other.hasPresolveProbingDeterministicTimeLimit()) return false;
6441  if (java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit())
6442  != java.lang.Double.doubleToLongBits(
6443  other.getPresolveProbingDeterministicTimeLimit())) return false;
6444  }
6445  if (hasPresolveBlockedClause() != other.hasPresolveBlockedClause()) return false;
6446  if (hasPresolveBlockedClause()) {
6448  != other.getPresolveBlockedClause()) return false;
6449  }
6450  if (hasPresolveUseBva() != other.hasPresolveUseBva()) return false;
6451  if (hasPresolveUseBva()) {
6452  if (getPresolveUseBva()
6453  != other.getPresolveUseBva()) return false;
6454  }
6455  if (hasPresolveBvaThreshold() != other.hasPresolveBvaThreshold()) return false;
6456  if (hasPresolveBvaThreshold()) {
6458  != other.getPresolveBvaThreshold()) return false;
6459  }
6460  if (hasMaxPresolveIterations() != other.hasMaxPresolveIterations()) return false;
6461  if (hasMaxPresolveIterations()) {
6463  != other.getMaxPresolveIterations()) return false;
6464  }
6465  if (hasCpModelPresolve() != other.hasCpModelPresolve()) return false;
6466  if (hasCpModelPresolve()) {
6467  if (getCpModelPresolve()
6468  != other.getCpModelPresolve()) return false;
6469  }
6470  if (hasCpModelProbingLevel() != other.hasCpModelProbingLevel()) return false;
6471  if (hasCpModelProbingLevel()) {
6473  != other.getCpModelProbingLevel()) return false;
6474  }
6475  if (hasCpModelUseSatPresolve() != other.hasCpModelUseSatPresolve()) return false;
6476  if (hasCpModelUseSatPresolve()) {
6478  != other.getCpModelUseSatPresolve()) return false;
6479  }
6480  if (hasExpandElementConstraints() != other.hasExpandElementConstraints()) return false;
6483  != other.getExpandElementConstraints()) return false;
6484  }
6485  if (hasUseOptimizationHints() != other.hasUseOptimizationHints()) return false;
6486  if (hasUseOptimizationHints()) {
6488  != other.getUseOptimizationHints()) return false;
6489  }
6490  if (hasMinimizeCore() != other.hasMinimizeCore()) return false;
6491  if (hasMinimizeCore()) {
6492  if (getMinimizeCore()
6493  != other.getMinimizeCore()) return false;
6494  }
6495  if (hasFindMultipleCores() != other.hasFindMultipleCores()) return false;
6496  if (hasFindMultipleCores()) {
6497  if (getFindMultipleCores()
6498  != other.getFindMultipleCores()) return false;
6499  }
6500  if (hasCoverOptimization() != other.hasCoverOptimization()) return false;
6501  if (hasCoverOptimization()) {
6502  if (getCoverOptimization()
6503  != other.getCoverOptimization()) return false;
6504  }
6505  if (hasMaxSatAssumptionOrder() != other.hasMaxSatAssumptionOrder()) return false;
6506  if (hasMaxSatAssumptionOrder()) {
6507  if (maxSatAssumptionOrder_ != other.maxSatAssumptionOrder_) return false;
6508  }
6509  if (hasMaxSatReverseAssumptionOrder() != other.hasMaxSatReverseAssumptionOrder()) return false;
6512  != other.getMaxSatReverseAssumptionOrder()) return false;
6513  }
6514  if (hasMaxSatStratification() != other.hasMaxSatStratification()) return false;
6515  if (hasMaxSatStratification()) {
6516  if (maxSatStratification_ != other.maxSatStratification_) return false;
6517  }
6518  if (hasUsePrecedencesInDisjunctiveConstraint() != other.hasUsePrecedencesInDisjunctiveConstraint()) return false;
6521  != other.getUsePrecedencesInDisjunctiveConstraint()) return false;
6522  }
6523  if (hasUseOverloadCheckerInCumulativeConstraint() != other.hasUseOverloadCheckerInCumulativeConstraint()) return false;
6526  != other.getUseOverloadCheckerInCumulativeConstraint()) return false;
6527  }
6528  if (hasUseTimetableEdgeFindingInCumulativeConstraint() != other.hasUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6531  != other.getUseTimetableEdgeFindingInCumulativeConstraint()) return false;
6532  }
6533  if (hasUseDisjunctiveConstraintInCumulativeConstraint() != other.hasUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6536  != other.getUseDisjunctiveConstraintInCumulativeConstraint()) return false;
6537  }
6538  if (hasLinearizationLevel() != other.hasLinearizationLevel()) return false;
6539  if (hasLinearizationLevel()) {
6540  if (getLinearizationLevel()
6541  != other.getLinearizationLevel()) return false;
6542  }
6543  if (hasBooleanEncodingLevel() != other.hasBooleanEncodingLevel()) return false;
6544  if (hasBooleanEncodingLevel()) {
6546  != other.getBooleanEncodingLevel()) return false;
6547  }
6548  if (hasMaxNumCuts() != other.hasMaxNumCuts()) return false;
6549  if (hasMaxNumCuts()) {
6550  if (getMaxNumCuts()
6551  != other.getMaxNumCuts()) return false;
6552  }
6553  if (hasOnlyAddCutsAtLevelZero() != other.hasOnlyAddCutsAtLevelZero()) return false;
6554  if (hasOnlyAddCutsAtLevelZero()) {
6556  != other.getOnlyAddCutsAtLevelZero()) return false;
6557  }
6558  if (hasAddKnapsackCuts() != other.hasAddKnapsackCuts()) return false;
6559  if (hasAddKnapsackCuts()) {
6560  if (getAddKnapsackCuts()
6561  != other.getAddKnapsackCuts()) return false;
6562  }
6563  if (hasAddCgCuts() != other.hasAddCgCuts()) return false;
6564  if (hasAddCgCuts()) {
6565  if (getAddCgCuts()
6566  != other.getAddCgCuts()) return false;
6567  }
6568  if (hasAddMirCuts() != other.hasAddMirCuts()) return false;
6569  if (hasAddMirCuts()) {
6570  if (getAddMirCuts()
6571  != other.getAddMirCuts()) return false;
6572  }
6573  if (hasUseMirRounding() != other.hasUseMirRounding()) return false;
6574  if (hasUseMirRounding()) {
6575  if (getUseMirRounding()
6576  != other.getUseMirRounding()) return false;
6577  }
6578  if (hasMaxIntegerRoundingScaling() != other.hasMaxIntegerRoundingScaling()) return false;
6581  != other.getMaxIntegerRoundingScaling()) return false;
6582  }
6583  if (hasAddLpConstraintsLazily() != other.hasAddLpConstraintsLazily()) return false;
6584  if (hasAddLpConstraintsLazily()) {
6586  != other.getAddLpConstraintsLazily()) return false;
6587  }
6588  if (hasMinOrthogonalityForLpConstraints() != other.hasMinOrthogonalityForLpConstraints()) return false;
6590  if (java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints())
6591  != java.lang.Double.doubleToLongBits(
6592  other.getMinOrthogonalityForLpConstraints())) return false;
6593  }
6594  if (hasMaxInactiveCount() != other.hasMaxInactiveCount()) return false;
6595  if (hasMaxInactiveCount()) {
6596  if (getMaxInactiveCount()
6597  != other.getMaxInactiveCount()) return false;
6598  }
6599  if (hasConstraintRemovalBatchSize() != other.hasConstraintRemovalBatchSize()) return false;
6602  != other.getConstraintRemovalBatchSize()) return false;
6603  }
6604  if (hasSearchBranching() != other.hasSearchBranching()) return false;
6605  if (hasSearchBranching()) {
6606  if (searchBranching_ != other.searchBranching_) return false;
6607  }
6608  if (hasExploitIntegerLpSolution() != other.hasExploitIntegerLpSolution()) return false;
6611  != other.getExploitIntegerLpSolution()) return false;
6612  }
6613  if (hasExploitAllLpSolution() != other.hasExploitAllLpSolution()) return false;
6614  if (hasExploitAllLpSolution()) {
6616  != other.getExploitAllLpSolution()) return false;
6617  }
6618  if (hasExploitBestSolution() != other.hasExploitBestSolution()) return false;
6619  if (hasExploitBestSolution()) {
6621  != other.getExploitBestSolution()) return false;
6622  }
6623  if (hasExploitObjective() != other.hasExploitObjective()) return false;
6624  if (hasExploitObjective()) {
6625  if (getExploitObjective()
6626  != other.getExploitObjective()) return false;
6627  }
6628  if (hasPseudoCostReliabilityThreshold() != other.hasPseudoCostReliabilityThreshold()) return false;
6631  != other.getPseudoCostReliabilityThreshold()) return false;
6632  }
6633  if (hasOptimizeWithCore() != other.hasOptimizeWithCore()) return false;
6634  if (hasOptimizeWithCore()) {
6635  if (getOptimizeWithCore()
6636  != other.getOptimizeWithCore()) return false;
6637  }
6638  if (hasBinarySearchNumConflicts() != other.hasBinarySearchNumConflicts()) return false;
6641  != other.getBinarySearchNumConflicts()) return false;
6642  }
6643  if (hasOptimizeWithMaxHs() != other.hasOptimizeWithMaxHs()) return false;
6644  if (hasOptimizeWithMaxHs()) {
6645  if (getOptimizeWithMaxHs()
6646  != other.getOptimizeWithMaxHs()) return false;
6647  }
6648  if (hasEnumerateAllSolutions() != other.hasEnumerateAllSolutions()) return false;
6649  if (hasEnumerateAllSolutions()) {
6651  != other.getEnumerateAllSolutions()) return false;
6652  }
6653  if (hasFillTightenedDomainsInResponse() != other.hasFillTightenedDomainsInResponse()) return false;
6656  != other.getFillTightenedDomainsInResponse()) return false;
6657  }
6658  if (hasInstantiateAllVariables() != other.hasInstantiateAllVariables()) return false;
6661  != other.getInstantiateAllVariables()) return false;
6662  }
6663  if (hasAutoDetectGreaterThanAtLeastOneOf() != other.hasAutoDetectGreaterThanAtLeastOneOf()) return false;
6666  != other.getAutoDetectGreaterThanAtLeastOneOf()) return false;
6667  }
6668  if (hasStopAfterFirstSolution() != other.hasStopAfterFirstSolution()) return false;
6669  if (hasStopAfterFirstSolution()) {
6671  != other.getStopAfterFirstSolution()) return false;
6672  }
6673  if (hasNumSearchWorkers() != other.hasNumSearchWorkers()) return false;
6674  if (hasNumSearchWorkers()) {
6675  if (getNumSearchWorkers()
6676  != other.getNumSearchWorkers()) return false;
6677  }
6678  if (hasInterleaveSearch() != other.hasInterleaveSearch()) return false;
6679  if (hasInterleaveSearch()) {
6680  if (getInterleaveSearch()
6681  != other.getInterleaveSearch()) return false;
6682  }
6683  if (hasDeterministicParallelSearch() != other.hasDeterministicParallelSearch()) return false;
6686  != other.getDeterministicParallelSearch()) return false;
6687  }
6688  if (hasShareObjectiveBounds() != other.hasShareObjectiveBounds()) return false;
6689  if (hasShareObjectiveBounds()) {
6691  != other.getShareObjectiveBounds()) return false;
6692  }
6693  if (hasShareLevelZeroBounds() != other.hasShareLevelZeroBounds()) return false;
6694  if (hasShareLevelZeroBounds()) {
6696  != other.getShareLevelZeroBounds()) return false;
6697  }
6698  if (hasUseLnsOnly() != other.hasUseLnsOnly()) return false;
6699  if (hasUseLnsOnly()) {
6700  if (getUseLnsOnly()
6701  != other.getUseLnsOnly()) return false;
6702  }
6703  if (hasLnsFocusOnDecisionVariables() != other.hasLnsFocusOnDecisionVariables()) return false;
6706  != other.getLnsFocusOnDecisionVariables()) return false;
6707  }
6708  if (hasUseRinsLns() != other.hasUseRinsLns()) return false;
6709  if (hasUseRinsLns()) {
6710  if (getUseRinsLns()
6711  != other.getUseRinsLns()) return false;
6712  }
6713  if (hasDiversifyLnsParams() != other.hasDiversifyLnsParams()) return false;
6714  if (hasDiversifyLnsParams()) {
6715  if (getDiversifyLnsParams()
6716  != other.getDiversifyLnsParams()) return false;
6717  }
6718  if (hasRandomizeSearch() != other.hasRandomizeSearch()) return false;
6719  if (hasRandomizeSearch()) {
6720  if (getRandomizeSearch()
6721  != other.getRandomizeSearch()) return false;
6722  }
6723  if (hasSearchRandomizationTolerance() != other.hasSearchRandomizationTolerance()) return false;
6726  != other.getSearchRandomizationTolerance()) return false;
6727  }
6728  if (hasUseOptionalVariables() != other.hasUseOptionalVariables()) return false;
6729  if (hasUseOptionalVariables()) {
6731  != other.getUseOptionalVariables()) return false;
6732  }
6733  if (hasUseExactLpReason() != other.hasUseExactLpReason()) return false;
6734  if (hasUseExactLpReason()) {
6735  if (getUseExactLpReason()
6736  != other.getUseExactLpReason()) return false;
6737  }
6738  if (hasUseBranchingInLp() != other.hasUseBranchingInLp()) return false;
6739  if (hasUseBranchingInLp()) {
6740  if (getUseBranchingInLp()
6741  != other.getUseBranchingInLp()) return false;
6742  }
6743  if (hasUseCombinedNoOverlap() != other.hasUseCombinedNoOverlap()) return false;
6744  if (hasUseCombinedNoOverlap()) {
6746  != other.getUseCombinedNoOverlap()) return false;
6747  }
6748  if (hasCatchSigintSignal() != other.hasCatchSigintSignal()) return false;
6749  if (hasCatchSigintSignal()) {
6750  if (getCatchSigintSignal()
6751  != other.getCatchSigintSignal()) return false;
6752  }
6753  if (hasMipMaxBound() != other.hasMipMaxBound()) return false;
6754  if (hasMipMaxBound()) {
6755  if (java.lang.Double.doubleToLongBits(getMipMaxBound())
6756  != java.lang.Double.doubleToLongBits(
6757  other.getMipMaxBound())) return false;
6758  }
6759  if (hasMipVarScaling() != other.hasMipVarScaling()) return false;
6760  if (hasMipVarScaling()) {
6761  if (java.lang.Double.doubleToLongBits(getMipVarScaling())
6762  != java.lang.Double.doubleToLongBits(
6763  other.getMipVarScaling())) return false;
6764  }
6765  if (hasMipWantedPrecision() != other.hasMipWantedPrecision()) return false;
6766  if (hasMipWantedPrecision()) {
6767  if (java.lang.Double.doubleToLongBits(getMipWantedPrecision())
6768  != java.lang.Double.doubleToLongBits(
6769  other.getMipWantedPrecision())) return false;
6770  }
6771  if (hasMipMaxActivityExponent() != other.hasMipMaxActivityExponent()) return false;
6772  if (hasMipMaxActivityExponent()) {
6774  != other.getMipMaxActivityExponent()) return false;
6775  }
6776  if (hasMipCheckPrecision() != other.hasMipCheckPrecision()) return false;
6777  if (hasMipCheckPrecision()) {
6778  if (java.lang.Double.doubleToLongBits(getMipCheckPrecision())
6779  != java.lang.Double.doubleToLongBits(
6780  other.getMipCheckPrecision())) return false;
6781  }
6782  if (!unknownFields.equals(other.unknownFields)) return false;
6783  return true;
6784  }
6785 
6786  @java.lang.Override
6787  public int hashCode() {
6788  if (memoizedHashCode != 0) {
6789  return memoizedHashCode;
6790  }
6791  int hash = 41;
6792  hash = (19 * hash) + getDescriptor().hashCode();
6793  if (hasPreferredVariableOrder()) {
6794  hash = (37 * hash) + PREFERRED_VARIABLE_ORDER_FIELD_NUMBER;
6795  hash = (53 * hash) + preferredVariableOrder_;
6796  }
6797  if (hasInitialPolarity()) {
6798  hash = (37 * hash) + INITIAL_POLARITY_FIELD_NUMBER;
6799  hash = (53 * hash) + initialPolarity_;
6800  }
6801  if (hasUsePhaseSaving()) {
6802  hash = (37 * hash) + USE_PHASE_SAVING_FIELD_NUMBER;
6803  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6804  getUsePhaseSaving());
6805  }
6806  if (hasRandomPolarityRatio()) {
6807  hash = (37 * hash) + RANDOM_POLARITY_RATIO_FIELD_NUMBER;
6808  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6809  java.lang.Double.doubleToLongBits(getRandomPolarityRatio()));
6810  }
6811  if (hasRandomBranchesRatio()) {
6812  hash = (37 * hash) + RANDOM_BRANCHES_RATIO_FIELD_NUMBER;
6813  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6814  java.lang.Double.doubleToLongBits(getRandomBranchesRatio()));
6815  }
6816  if (hasUseErwaHeuristic()) {
6817  hash = (37 * hash) + USE_ERWA_HEURISTIC_FIELD_NUMBER;
6818  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6820  }
6822  hash = (37 * hash) + INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER;
6823  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6824  java.lang.Double.doubleToLongBits(getInitialVariablesActivity()));
6825  }
6828  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6830  }
6831  if (hasMinimizationAlgorithm()) {
6832  hash = (37 * hash) + MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6833  hash = (53 * hash) + minimizationAlgorithm_;
6834  }
6836  hash = (37 * hash) + BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER;
6837  hash = (53 * hash) + binaryMinimizationAlgorithm_;
6838  }
6841  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6843  }
6844  if (hasClauseCleanupPeriod()) {
6845  hash = (37 * hash) + CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER;
6846  hash = (53 * hash) + getClauseCleanupPeriod();
6847  }
6848  if (hasClauseCleanupTarget()) {
6849  hash = (37 * hash) + CLAUSE_CLEANUP_TARGET_FIELD_NUMBER;
6850  hash = (53 * hash) + getClauseCleanupTarget();
6851  }
6853  hash = (37 * hash) + CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER;
6854  hash = (53 * hash) + clauseCleanupProtection_;
6855  }
6856  if (hasClauseCleanupLbdBound()) {
6857  hash = (37 * hash) + CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER;
6858  hash = (53 * hash) + getClauseCleanupLbdBound();
6859  }
6860  if (hasClauseCleanupOrdering()) {
6861  hash = (37 * hash) + CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER;
6862  hash = (53 * hash) + clauseCleanupOrdering_;
6863  }
6864  if (hasPbCleanupIncrement()) {
6865  hash = (37 * hash) + PB_CLEANUP_INCREMENT_FIELD_NUMBER;
6866  hash = (53 * hash) + getPbCleanupIncrement();
6867  }
6868  if (hasPbCleanupRatio()) {
6869  hash = (37 * hash) + PB_CLEANUP_RATIO_FIELD_NUMBER;
6870  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6871  java.lang.Double.doubleToLongBits(getPbCleanupRatio()));
6872  }
6875  hash = (53 * hash) + getMinimizeWithPropagationRestartPeriod();
6876  }
6879  hash = (53 * hash) + getMinimizeWithPropagationNumDecisions();
6880  }
6881  if (hasVariableActivityDecay()) {
6882  hash = (37 * hash) + VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER;
6883  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6884  java.lang.Double.doubleToLongBits(getVariableActivityDecay()));
6885  }
6887  hash = (37 * hash) + MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER;
6888  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6889  java.lang.Double.doubleToLongBits(getMaxVariableActivityValue()));
6890  }
6891  if (hasGlucoseMaxDecay()) {
6892  hash = (37 * hash) + GLUCOSE_MAX_DECAY_FIELD_NUMBER;
6893  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6894  java.lang.Double.doubleToLongBits(getGlucoseMaxDecay()));
6895  }
6896  if (hasGlucoseDecayIncrement()) {
6897  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER;
6898  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6899  java.lang.Double.doubleToLongBits(getGlucoseDecayIncrement()));
6900  }
6902  hash = (37 * hash) + GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER;
6903  hash = (53 * hash) + getGlucoseDecayIncrementPeriod();
6904  }
6905  if (hasClauseActivityDecay()) {
6906  hash = (37 * hash) + CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER;
6907  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6908  java.lang.Double.doubleToLongBits(getClauseActivityDecay()));
6909  }
6910  if (hasMaxClauseActivityValue()) {
6911  hash = (37 * hash) + MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER;
6912  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6913  java.lang.Double.doubleToLongBits(getMaxClauseActivityValue()));
6914  }
6915  if (getRestartAlgorithmsCount() > 0) {
6916  hash = (37 * hash) + RESTART_ALGORITHMS_FIELD_NUMBER;
6917  hash = (53 * hash) + restartAlgorithms_.hashCode();
6918  }
6920  hash = (37 * hash) + DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER;
6921  hash = (53 * hash) + getDefaultRestartAlgorithms().hashCode();
6922  }
6923  if (hasRestartPeriod()) {
6924  hash = (37 * hash) + RESTART_PERIOD_FIELD_NUMBER;
6925  hash = (53 * hash) + getRestartPeriod();
6926  }
6928  hash = (37 * hash) + RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER;
6929  hash = (53 * hash) + getRestartRunningWindowSize();
6930  }
6931  if (hasRestartDlAverageRatio()) {
6932  hash = (37 * hash) + RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER;
6933  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6934  java.lang.Double.doubleToLongBits(getRestartDlAverageRatio()));
6935  }
6936  if (hasRestartLbdAverageRatio()) {
6937  hash = (37 * hash) + RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER;
6938  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6939  java.lang.Double.doubleToLongBits(getRestartLbdAverageRatio()));
6940  }
6941  if (hasUseBlockingRestart()) {
6942  hash = (37 * hash) + USE_BLOCKING_RESTART_FIELD_NUMBER;
6943  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6945  }
6947  hash = (37 * hash) + BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER;
6948  hash = (53 * hash) + getBlockingRestartWindowSize();
6949  }
6951  hash = (37 * hash) + BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER;
6952  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6953  java.lang.Double.doubleToLongBits(getBlockingRestartMultiplier()));
6954  }
6957  hash = (53 * hash) + getNumConflictsBeforeStrategyChanges();
6958  }
6960  hash = (37 * hash) + STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER;
6961  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6962  java.lang.Double.doubleToLongBits(getStrategyChangeIncreaseRatio()));
6963  }
6964  if (hasMaxTimeInSeconds()) {
6965  hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
6966  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6967  java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
6968  }
6969  if (hasMaxDeterministicTime()) {
6970  hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
6971  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6972  java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
6973  }
6974  if (hasMaxNumberOfConflicts()) {
6975  hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER;
6976  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6978  }
6979  if (hasMaxMemoryInMb()) {
6980  hash = (37 * hash) + MAX_MEMORY_IN_MB_FIELD_NUMBER;
6981  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
6982  getMaxMemoryInMb());
6983  }
6985  hash = (37 * hash) + TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER;
6986  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6988  }
6989  if (hasRandomSeed()) {
6990  hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
6991  hash = (53 * hash) + getRandomSeed();
6992  }
6993  if (hasLogSearchProgress()) {
6994  hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
6995  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
6997  }
6998  if (hasUsePbResolution()) {
6999  hash = (37 * hash) + USE_PB_RESOLUTION_FIELD_NUMBER;
7000  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7001  getUsePbResolution());
7002  }
7005  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7007  }
7009  hash = (37 * hash) + COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER;
7010  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7012  }
7013  if (hasPresolveBveThreshold()) {
7014  hash = (37 * hash) + PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER;
7015  hash = (53 * hash) + getPresolveBveThreshold();
7016  }
7018  hash = (37 * hash) + PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER;
7019  hash = (53 * hash) + getPresolveBveClauseWeight();
7020  }
7023  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7024  java.lang.Double.doubleToLongBits(getPresolveProbingDeterministicTimeLimit()));
7025  }
7026  if (hasPresolveBlockedClause()) {
7027  hash = (37 * hash) + PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER;
7028  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7030  }
7031  if (hasPresolveUseBva()) {
7032  hash = (37 * hash) + PRESOLVE_USE_BVA_FIELD_NUMBER;
7033  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7034  getPresolveUseBva());
7035  }
7036  if (hasPresolveBvaThreshold()) {
7037  hash = (37 * hash) + PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER;
7038  hash = (53 * hash) + getPresolveBvaThreshold();
7039  }
7040  if (hasMaxPresolveIterations()) {
7041  hash = (37 * hash) + MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER;
7042  hash = (53 * hash) + getMaxPresolveIterations();
7043  }
7044  if (hasCpModelPresolve()) {
7045  hash = (37 * hash) + CP_MODEL_PRESOLVE_FIELD_NUMBER;
7046  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7047  getCpModelPresolve());
7048  }
7049  if (hasCpModelProbingLevel()) {
7050  hash = (37 * hash) + CP_MODEL_PROBING_LEVEL_FIELD_NUMBER;
7051  hash = (53 * hash) + getCpModelProbingLevel();
7052  }
7053  if (hasCpModelUseSatPresolve()) {
7054  hash = (37 * hash) + CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER;
7055  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7057  }
7059  hash = (37 * hash) + EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER;
7060  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7062  }
7063  if (hasUseOptimizationHints()) {
7064  hash = (37 * hash) + USE_OPTIMIZATION_HINTS_FIELD_NUMBER;
7065  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7067  }
7068  if (hasMinimizeCore()) {
7069  hash = (37 * hash) + MINIMIZE_CORE_FIELD_NUMBER;
7070  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7071  getMinimizeCore());
7072  }
7073  if (hasFindMultipleCores()) {
7074  hash = (37 * hash) + FIND_MULTIPLE_CORES_FIELD_NUMBER;
7075  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7077  }
7078  if (hasCoverOptimization()) {
7079  hash = (37 * hash) + COVER_OPTIMIZATION_FIELD_NUMBER;
7080  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7082  }
7083  if (hasMaxSatAssumptionOrder()) {
7084  hash = (37 * hash) + MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER;
7085  hash = (53 * hash) + maxSatAssumptionOrder_;
7086  }
7088  hash = (37 * hash) + MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER;
7089  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7091  }
7092  if (hasMaxSatStratification()) {
7093  hash = (37 * hash) + MAX_SAT_STRATIFICATION_FIELD_NUMBER;
7094  hash = (53 * hash) + maxSatStratification_;
7095  }
7098  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7100  }
7103  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7105  }
7108  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7110  }
7113  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7115  }
7116  if (hasLinearizationLevel()) {
7117  hash = (37 * hash) + LINEARIZATION_LEVEL_FIELD_NUMBER;
7118  hash = (53 * hash) + getLinearizationLevel();
7119  }
7120  if (hasBooleanEncodingLevel()) {
7121  hash = (37 * hash) + BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER;
7122  hash = (53 * hash) + getBooleanEncodingLevel();
7123  }
7124  if (hasMaxNumCuts()) {
7125  hash = (37 * hash) + MAX_NUM_CUTS_FIELD_NUMBER;
7126  hash = (53 * hash) + getMaxNumCuts();
7127  }
7128  if (hasOnlyAddCutsAtLevelZero()) {
7129  hash = (37 * hash) + ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER;
7130  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7132  }
7133  if (hasAddKnapsackCuts()) {
7134  hash = (37 * hash) + ADD_KNAPSACK_CUTS_FIELD_NUMBER;
7135  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7136  getAddKnapsackCuts());
7137  }
7138  if (hasAddCgCuts()) {
7139  hash = (37 * hash) + ADD_CG_CUTS_FIELD_NUMBER;
7140  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7141  getAddCgCuts());
7142  }
7143  if (hasAddMirCuts()) {
7144  hash = (37 * hash) + ADD_MIR_CUTS_FIELD_NUMBER;
7145  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7146  getAddMirCuts());
7147  }
7148  if (hasUseMirRounding()) {
7149  hash = (37 * hash) + USE_MIR_ROUNDING_FIELD_NUMBER;
7150  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7151  getUseMirRounding());
7152  }
7154  hash = (37 * hash) + MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER;
7155  hash = (53 * hash) + getMaxIntegerRoundingScaling();
7156  }
7157  if (hasAddLpConstraintsLazily()) {
7158  hash = (37 * hash) + ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER;
7159  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7161  }
7164  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7165  java.lang.Double.doubleToLongBits(getMinOrthogonalityForLpConstraints()));
7166  }
7167  if (hasMaxInactiveCount()) {
7168  hash = (37 * hash) + MAX_INACTIVE_COUNT_FIELD_NUMBER;
7169  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7171  }
7173  hash = (37 * hash) + CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER;
7174  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7176  }
7177  if (hasSearchBranching()) {
7178  hash = (37 * hash) + SEARCH_BRANCHING_FIELD_NUMBER;
7179  hash = (53 * hash) + searchBranching_;
7180  }
7182  hash = (37 * hash) + EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER;
7183  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7185  }
7186  if (hasExploitAllLpSolution()) {
7187  hash = (37 * hash) + EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER;
7188  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7190  }
7191  if (hasExploitBestSolution()) {
7192  hash = (37 * hash) + EXPLOIT_BEST_SOLUTION_FIELD_NUMBER;
7193  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7195  }
7196  if (hasExploitObjective()) {
7197  hash = (37 * hash) + EXPLOIT_OBJECTIVE_FIELD_NUMBER;
7198  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7200  }
7203  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7205  }
7206  if (hasOptimizeWithCore()) {
7207  hash = (37 * hash) + OPTIMIZE_WITH_CORE_FIELD_NUMBER;
7208  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7210  }
7212  hash = (37 * hash) + BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER;
7213  hash = (53 * hash) + getBinarySearchNumConflicts();
7214  }
7215  if (hasOptimizeWithMaxHs()) {
7216  hash = (37 * hash) + OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER;
7217  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7219  }
7220  if (hasEnumerateAllSolutions()) {
7221  hash = (37 * hash) + ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER;
7222  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7224  }
7227  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7229  }
7231  hash = (37 * hash) + INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER;
7232  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7234  }
7237  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7239  }
7240  if (hasStopAfterFirstSolution()) {
7241  hash = (37 * hash) + STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER;
7242  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7244  }
7245  if (hasNumSearchWorkers()) {
7246  hash = (37 * hash) + NUM_SEARCH_WORKERS_FIELD_NUMBER;
7247  hash = (53 * hash) + getNumSearchWorkers();
7248  }
7249  if (hasInterleaveSearch()) {
7250  hash = (37 * hash) + INTERLEAVE_SEARCH_FIELD_NUMBER;
7251  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7253  }
7255  hash = (37 * hash) + DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER;
7256  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7258  }
7259  if (hasShareObjectiveBounds()) {
7260  hash = (37 * hash) + SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER;
7261  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7263  }
7264  if (hasShareLevelZeroBounds()) {
7265  hash = (37 * hash) + SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER;
7266  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7268  }
7269  if (hasUseLnsOnly()) {
7270  hash = (37 * hash) + USE_LNS_ONLY_FIELD_NUMBER;
7271  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7272  getUseLnsOnly());
7273  }
7275  hash = (37 * hash) + LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER;
7276  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7278  }
7279  if (hasUseRinsLns()) {
7280  hash = (37 * hash) + USE_RINS_LNS_FIELD_NUMBER;
7281  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7282  getUseRinsLns());
7283  }
7284  if (hasDiversifyLnsParams()) {
7285  hash = (37 * hash) + DIVERSIFY_LNS_PARAMS_FIELD_NUMBER;
7286  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7288  }
7289  if (hasRandomizeSearch()) {
7290  hash = (37 * hash) + RANDOMIZE_SEARCH_FIELD_NUMBER;
7291  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7292  getRandomizeSearch());
7293  }
7295  hash = (37 * hash) + SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER;
7296  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7298  }
7299  if (hasUseOptionalVariables()) {
7300  hash = (37 * hash) + USE_OPTIONAL_VARIABLES_FIELD_NUMBER;
7301  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7303  }
7304  if (hasUseExactLpReason()) {
7305  hash = (37 * hash) + USE_EXACT_LP_REASON_FIELD_NUMBER;
7306  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7308  }
7309  if (hasUseBranchingInLp()) {
7310  hash = (37 * hash) + USE_BRANCHING_IN_LP_FIELD_NUMBER;
7311  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7313  }
7314  if (hasUseCombinedNoOverlap()) {
7315  hash = (37 * hash) + USE_COMBINED_NO_OVERLAP_FIELD_NUMBER;
7316  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7318  }
7319  if (hasCatchSigintSignal()) {
7320  hash = (37 * hash) + CATCH_SIGINT_SIGNAL_FIELD_NUMBER;
7321  hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
7323  }
7324  if (hasMipMaxBound()) {
7325  hash = (37 * hash) + MIP_MAX_BOUND_FIELD_NUMBER;
7326  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7327  java.lang.Double.doubleToLongBits(getMipMaxBound()));
7328  }
7329  if (hasMipVarScaling()) {
7330  hash = (37 * hash) + MIP_VAR_SCALING_FIELD_NUMBER;
7331  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7332  java.lang.Double.doubleToLongBits(getMipVarScaling()));
7333  }
7334  if (hasMipWantedPrecision()) {
7335  hash = (37 * hash) + MIP_WANTED_PRECISION_FIELD_NUMBER;
7336  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7337  java.lang.Double.doubleToLongBits(getMipWantedPrecision()));
7338  }
7339  if (hasMipMaxActivityExponent()) {
7340  hash = (37 * hash) + MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER;
7341  hash = (53 * hash) + getMipMaxActivityExponent();
7342  }
7343  if (hasMipCheckPrecision()) {
7344  hash = (37 * hash) + MIP_CHECK_PRECISION_FIELD_NUMBER;
7345  hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
7346  java.lang.Double.doubleToLongBits(getMipCheckPrecision()));
7347  }
7348  hash = (29 * hash) + unknownFields.hashCode();
7349  memoizedHashCode = hash;
7350  return hash;
7351  }
7352 
7354  java.nio.ByteBuffer data)
7355  throws com.google.protobuf.InvalidProtocolBufferException {
7356  return PARSER.parseFrom(data);
7357  }
7359  java.nio.ByteBuffer data,
7360  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7361  throws com.google.protobuf.InvalidProtocolBufferException {
7362  return PARSER.parseFrom(data, extensionRegistry);
7363  }
7365  com.google.protobuf.ByteString data)
7366  throws com.google.protobuf.InvalidProtocolBufferException {
7367  return PARSER.parseFrom(data);
7368  }
7370  com.google.protobuf.ByteString data,
7371  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7372  throws com.google.protobuf.InvalidProtocolBufferException {
7373  return PARSER.parseFrom(data, extensionRegistry);
7374  }
7375  public static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
7376  throws com.google.protobuf.InvalidProtocolBufferException {
7377  return PARSER.parseFrom(data);
7378  }
7380  byte[] data,
7381  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7382  throws com.google.protobuf.InvalidProtocolBufferException {
7383  return PARSER.parseFrom(data, extensionRegistry);
7384  }
7385  public static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
7386  throws java.io.IOException {
7387  return com.google.protobuf.GeneratedMessageV3
7388  .parseWithIOException(PARSER, input);
7389  }
7391  java.io.InputStream input,
7392  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7393  throws java.io.IOException {
7394  return com.google.protobuf.GeneratedMessageV3
7395  .parseWithIOException(PARSER, input, extensionRegistry);
7396  }
7397  public static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
7398  throws java.io.IOException {
7399  return com.google.protobuf.GeneratedMessageV3
7400  .parseDelimitedWithIOException(PARSER, input);
7401  }
7403  java.io.InputStream input,
7404  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7405  throws java.io.IOException {
7406  return com.google.protobuf.GeneratedMessageV3
7407  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
7408  }
7410  com.google.protobuf.CodedInputStream input)
7411  throws java.io.IOException {
7412  return com.google.protobuf.GeneratedMessageV3
7413  .parseWithIOException(PARSER, input);
7414  }
7416  com.google.protobuf.CodedInputStream input,
7417  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7418  throws java.io.IOException {
7419  return com.google.protobuf.GeneratedMessageV3
7420  .parseWithIOException(PARSER, input, extensionRegistry);
7421  }
7422 
7423  @java.lang.Override
7424  public Builder newBuilderForType() { return newBuilder(); }
7425  public static Builder newBuilder() {
7426  return DEFAULT_INSTANCE.toBuilder();
7427  }
7428  public static Builder newBuilder(com.google.ortools.sat.SatParameters prototype) {
7429  return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7430  }
7431  @java.lang.Override
7432  public Builder toBuilder() {
7433  return this == DEFAULT_INSTANCE
7434  ? new Builder() : new Builder().mergeFrom(this);
7435  }
7436 
7437  @java.lang.Override
7439  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7440  Builder builder = new Builder(parent);
7441  return builder;
7442  }
7452  public static final class Builder extends
7453  com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
7454  // @@protoc_insertion_point(builder_implements:operations_research.sat.SatParameters)
7455  com.google.ortools.sat.SatParametersOrBuilder {
7456  public static final com.google.protobuf.Descriptors.Descriptor
7458  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7459  }
7460 
7461  @java.lang.Override
7462  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
7464  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_fieldAccessorTable
7465  .ensureFieldAccessorsInitialized(
7467  }
7468 
7469  // Construct using com.google.ortools.sat.SatParameters.newBuilder()
7470  private Builder() {
7471  maybeForceBuilderInitialization();
7472  }
7473 
7474  private Builder(
7475  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
7476  super(parent);
7477  maybeForceBuilderInitialization();
7478  }
7479  private void maybeForceBuilderInitialization() {
7480  if (com.google.protobuf.GeneratedMessageV3
7481  .alwaysUseFieldBuilders) {
7482  }
7483  }
7484  @java.lang.Override
7485  public Builder clear() {
7486  super.clear();
7487  preferredVariableOrder_ = 0;
7488  bitField0_ = (bitField0_ & ~0x00000001);
7489  initialPolarity_ = 1;
7490  bitField0_ = (bitField0_ & ~0x00000002);
7491  usePhaseSaving_ = true;
7492  bitField0_ = (bitField0_ & ~0x00000004);
7493  randomPolarityRatio_ = 0D;
7494  bitField0_ = (bitField0_ & ~0x00000008);
7495  randomBranchesRatio_ = 0D;
7496  bitField0_ = (bitField0_ & ~0x00000010);
7497  useErwaHeuristic_ = false;
7498  bitField0_ = (bitField0_ & ~0x00000020);
7499  initialVariablesActivity_ = 0D;
7500  bitField0_ = (bitField0_ & ~0x00000040);
7501  alsoBumpVariablesInConflictReasons_ = false;
7502  bitField0_ = (bitField0_ & ~0x00000080);
7503  minimizationAlgorithm_ = 2;
7504  bitField0_ = (bitField0_ & ~0x00000100);
7505  binaryMinimizationAlgorithm_ = 1;
7506  bitField0_ = (bitField0_ & ~0x00000200);
7507  subsumptionDuringConflictAnalysis_ = true;
7508  bitField0_ = (bitField0_ & ~0x00000400);
7509  clauseCleanupPeriod_ = 10000;
7510  bitField0_ = (bitField0_ & ~0x00000800);
7511  clauseCleanupTarget_ = 10000;
7512  bitField0_ = (bitField0_ & ~0x00001000);
7513  clauseCleanupProtection_ = 0;
7514  bitField0_ = (bitField0_ & ~0x00002000);
7515  clauseCleanupLbdBound_ = 5;
7516  bitField0_ = (bitField0_ & ~0x00004000);
7517  clauseCleanupOrdering_ = 0;
7518  bitField0_ = (bitField0_ & ~0x00008000);
7519  pbCleanupIncrement_ = 200;
7520  bitField0_ = (bitField0_ & ~0x00010000);
7521  pbCleanupRatio_ = 0.5D;
7522  bitField0_ = (bitField0_ & ~0x00020000);
7523  minimizeWithPropagationRestartPeriod_ = 10;
7524  bitField0_ = (bitField0_ & ~0x00040000);
7525  minimizeWithPropagationNumDecisions_ = 1000;
7526  bitField0_ = (bitField0_ & ~0x00080000);
7527  variableActivityDecay_ = 0.8D;
7528  bitField0_ = (bitField0_ & ~0x00100000);
7529  maxVariableActivityValue_ = 1e+100D;
7530  bitField0_ = (bitField0_ & ~0x00200000);
7531  glucoseMaxDecay_ = 0.95D;
7532  bitField0_ = (bitField0_ & ~0x00400000);
7533  glucoseDecayIncrement_ = 0.01D;
7534  bitField0_ = (bitField0_ & ~0x00800000);
7535  glucoseDecayIncrementPeriod_ = 5000;
7536  bitField0_ = (bitField0_ & ~0x01000000);
7537  clauseActivityDecay_ = 0.999D;
7538  bitField0_ = (bitField0_ & ~0x02000000);
7539  maxClauseActivityValue_ = 1e+20D;
7540  bitField0_ = (bitField0_ & ~0x04000000);
7541  restartAlgorithms_ = java.util.Collections.emptyList();
7542  bitField0_ = (bitField0_ & ~0x08000000);
7543  defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
7544  bitField0_ = (bitField0_ & ~0x10000000);
7545  restartPeriod_ = 50;
7546  bitField0_ = (bitField0_ & ~0x20000000);
7547  restartRunningWindowSize_ = 50;
7548  bitField0_ = (bitField0_ & ~0x40000000);
7549  restartDlAverageRatio_ = 1D;
7550  bitField0_ = (bitField0_ & ~0x80000000);
7551  restartLbdAverageRatio_ = 1D;
7552  bitField1_ = (bitField1_ & ~0x00000001);
7553  useBlockingRestart_ = false;
7554  bitField1_ = (bitField1_ & ~0x00000002);
7555  blockingRestartWindowSize_ = 5000;
7556  bitField1_ = (bitField1_ & ~0x00000004);
7557  blockingRestartMultiplier_ = 1.4D;
7558  bitField1_ = (bitField1_ & ~0x00000008);
7559  numConflictsBeforeStrategyChanges_ = 0;
7560  bitField1_ = (bitField1_ & ~0x00000010);
7561  strategyChangeIncreaseRatio_ = 0D;
7562  bitField1_ = (bitField1_ & ~0x00000020);
7563  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
7564  bitField1_ = (bitField1_ & ~0x00000040);
7565  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
7566  bitField1_ = (bitField1_ & ~0x00000080);
7567  maxNumberOfConflicts_ = 9223372036854775807L;
7568  bitField1_ = (bitField1_ & ~0x00000100);
7569  maxMemoryInMb_ = 10000L;
7570  bitField1_ = (bitField1_ & ~0x00000200);
7571  treatBinaryClausesSeparately_ = true;
7572  bitField1_ = (bitField1_ & ~0x00000400);
7573  randomSeed_ = 1;
7574  bitField1_ = (bitField1_ & ~0x00000800);
7575  logSearchProgress_ = false;
7576  bitField1_ = (bitField1_ & ~0x00001000);
7577  usePbResolution_ = false;
7578  bitField1_ = (bitField1_ & ~0x00002000);
7579  minimizeReductionDuringPbResolution_ = false;
7580  bitField1_ = (bitField1_ & ~0x00004000);
7581  countAssumptionLevelsInLbd_ = true;
7582  bitField1_ = (bitField1_ & ~0x00008000);
7583  presolveBveThreshold_ = 500;
7584  bitField1_ = (bitField1_ & ~0x00010000);
7585  presolveBveClauseWeight_ = 3;
7586  bitField1_ = (bitField1_ & ~0x00020000);
7587  presolveProbingDeterministicTimeLimit_ = 30D;
7588  bitField1_ = (bitField1_ & ~0x00040000);
7589  presolveBlockedClause_ = true;
7590  bitField1_ = (bitField1_ & ~0x00080000);
7591  presolveUseBva_ = true;
7592  bitField1_ = (bitField1_ & ~0x00100000);
7593  presolveBvaThreshold_ = 1;
7594  bitField1_ = (bitField1_ & ~0x00200000);
7595  maxPresolveIterations_ = 3;
7596  bitField1_ = (bitField1_ & ~0x00400000);
7597  cpModelPresolve_ = true;
7598  bitField1_ = (bitField1_ & ~0x00800000);
7599  cpModelProbingLevel_ = 2;
7600  bitField1_ = (bitField1_ & ~0x01000000);
7601  cpModelUseSatPresolve_ = true;
7602  bitField1_ = (bitField1_ & ~0x02000000);
7603  expandElementConstraints_ = true;
7604  bitField1_ = (bitField1_ & ~0x04000000);
7605  useOptimizationHints_ = true;
7606  bitField1_ = (bitField1_ & ~0x08000000);
7607  minimizeCore_ = true;
7608  bitField1_ = (bitField1_ & ~0x10000000);
7609  findMultipleCores_ = true;
7610  bitField1_ = (bitField1_ & ~0x20000000);
7611  coverOptimization_ = true;
7612  bitField1_ = (bitField1_ & ~0x40000000);
7613  maxSatAssumptionOrder_ = 0;
7614  bitField1_ = (bitField1_ & ~0x80000000);
7615  maxSatReverseAssumptionOrder_ = false;
7616  bitField2_ = (bitField2_ & ~0x00000001);
7617  maxSatStratification_ = 1;
7618  bitField2_ = (bitField2_ & ~0x00000002);
7619  usePrecedencesInDisjunctiveConstraint_ = true;
7620  bitField2_ = (bitField2_ & ~0x00000004);
7621  useOverloadCheckerInCumulativeConstraint_ = false;
7622  bitField2_ = (bitField2_ & ~0x00000008);
7623  useTimetableEdgeFindingInCumulativeConstraint_ = false;
7624  bitField2_ = (bitField2_ & ~0x00000010);
7625  useDisjunctiveConstraintInCumulativeConstraint_ = true;
7626  bitField2_ = (bitField2_ & ~0x00000020);
7627  linearizationLevel_ = 1;
7628  bitField2_ = (bitField2_ & ~0x00000040);
7629  booleanEncodingLevel_ = 1;
7630  bitField2_ = (bitField2_ & ~0x00000080);
7631  maxNumCuts_ = 5000;
7632  bitField2_ = (bitField2_ & ~0x00000100);
7633  onlyAddCutsAtLevelZero_ = false;
7634  bitField2_ = (bitField2_ & ~0x00000200);
7635  addKnapsackCuts_ = false;
7636  bitField2_ = (bitField2_ & ~0x00000400);
7637  addCgCuts_ = false;
7638  bitField2_ = (bitField2_ & ~0x00000800);
7639  addMirCuts_ = true;
7640  bitField2_ = (bitField2_ & ~0x00001000);
7641  useMirRounding_ = true;
7642  bitField2_ = (bitField2_ & ~0x00002000);
7643  maxIntegerRoundingScaling_ = 600;
7644  bitField2_ = (bitField2_ & ~0x00004000);
7645  addLpConstraintsLazily_ = true;
7646  bitField2_ = (bitField2_ & ~0x00008000);
7647  minOrthogonalityForLpConstraints_ = 0D;
7648  bitField2_ = (bitField2_ & ~0x00010000);
7649  maxInactiveCount_ = 1000L;
7650  bitField2_ = (bitField2_ & ~0x00020000);
7651  constraintRemovalBatchSize_ = 100L;
7652  bitField2_ = (bitField2_ & ~0x00040000);
7653  searchBranching_ = 0;
7654  bitField2_ = (bitField2_ & ~0x00080000);
7655  exploitIntegerLpSolution_ = true;
7656  bitField2_ = (bitField2_ & ~0x00100000);
7657  exploitAllLpSolution_ = true;
7658  bitField2_ = (bitField2_ & ~0x00200000);
7659  exploitBestSolution_ = false;
7660  bitField2_ = (bitField2_ & ~0x00400000);
7661  exploitObjective_ = true;
7662  bitField2_ = (bitField2_ & ~0x00800000);
7663  pseudoCostReliabilityThreshold_ = 100L;
7664  bitField2_ = (bitField2_ & ~0x01000000);
7665  optimizeWithCore_ = false;
7666  bitField2_ = (bitField2_ & ~0x02000000);
7667  binarySearchNumConflicts_ = -1;
7668  bitField2_ = (bitField2_ & ~0x04000000);
7669  optimizeWithMaxHs_ = false;
7670  bitField2_ = (bitField2_ & ~0x08000000);
7671  enumerateAllSolutions_ = false;
7672  bitField2_ = (bitField2_ & ~0x10000000);
7673  fillTightenedDomainsInResponse_ = false;
7674  bitField2_ = (bitField2_ & ~0x20000000);
7675  instantiateAllVariables_ = true;
7676  bitField2_ = (bitField2_ & ~0x40000000);
7677  autoDetectGreaterThanAtLeastOneOf_ = true;
7678  bitField2_ = (bitField2_ & ~0x80000000);
7679  stopAfterFirstSolution_ = false;
7680  bitField3_ = (bitField3_ & ~0x00000001);
7681  numSearchWorkers_ = 1;
7682  bitField3_ = (bitField3_ & ~0x00000002);
7683  interleaveSearch_ = false;
7684  bitField3_ = (bitField3_ & ~0x00000004);
7685  deterministicParallelSearch_ = false;
7686  bitField3_ = (bitField3_ & ~0x00000008);
7687  shareObjectiveBounds_ = true;
7688  bitField3_ = (bitField3_ & ~0x00000010);
7689  shareLevelZeroBounds_ = true;
7690  bitField3_ = (bitField3_ & ~0x00000020);
7691  useLnsOnly_ = false;
7692  bitField3_ = (bitField3_ & ~0x00000040);
7693  lnsFocusOnDecisionVariables_ = false;
7694  bitField3_ = (bitField3_ & ~0x00000080);
7695  useRinsLns_ = true;
7696  bitField3_ = (bitField3_ & ~0x00000100);
7697  diversifyLnsParams_ = false;
7698  bitField3_ = (bitField3_ & ~0x00000200);
7699  randomizeSearch_ = false;
7700  bitField3_ = (bitField3_ & ~0x00000400);
7701  searchRandomizationTolerance_ = 0L;
7702  bitField3_ = (bitField3_ & ~0x00000800);
7703  useOptionalVariables_ = true;
7704  bitField3_ = (bitField3_ & ~0x00001000);
7705  useExactLpReason_ = true;
7706  bitField3_ = (bitField3_ & ~0x00002000);
7707  useBranchingInLp_ = false;
7708  bitField3_ = (bitField3_ & ~0x00004000);
7709  useCombinedNoOverlap_ = false;
7710  bitField3_ = (bitField3_ & ~0x00008000);
7711  catchSigintSignal_ = true;
7712  bitField3_ = (bitField3_ & ~0x00010000);
7713  mipMaxBound_ = 10000000D;
7714  bitField3_ = (bitField3_ & ~0x00020000);
7715  mipVarScaling_ = 1D;
7716  bitField3_ = (bitField3_ & ~0x00040000);
7717  mipWantedPrecision_ = 1e-06D;
7718  bitField3_ = (bitField3_ & ~0x00080000);
7719  mipMaxActivityExponent_ = 53;
7720  bitField3_ = (bitField3_ & ~0x00100000);
7721  mipCheckPrecision_ = 0.0001D;
7722  bitField3_ = (bitField3_ & ~0x00200000);
7723  return this;
7724  }
7725 
7726  @java.lang.Override
7727  public com.google.protobuf.Descriptors.Descriptor
7729  return com.google.ortools.sat.SatParametersOuterClass.internal_static_operations_research_sat_SatParameters_descriptor;
7730  }
7731 
7732  @java.lang.Override
7735  }
7736 
7737  @java.lang.Override
7740  if (!result.isInitialized()) {
7741  throw newUninitializedMessageException(result);
7742  }
7743  return result;
7744  }
7745 
7746  @java.lang.Override
7749  int from_bitField0_ = bitField0_;
7750  int from_bitField1_ = bitField1_;
7751  int from_bitField2_ = bitField2_;
7752  int from_bitField3_ = bitField3_;
7753  int to_bitField0_ = 0;
7754  int to_bitField1_ = 0;
7755  int to_bitField2_ = 0;
7756  int to_bitField3_ = 0;
7757  if (((from_bitField0_ & 0x00000001) != 0)) {
7758  to_bitField0_ |= 0x00000001;
7759  }
7760  result.preferredVariableOrder_ = preferredVariableOrder_;
7761  if (((from_bitField0_ & 0x00000002) != 0)) {
7762  to_bitField0_ |= 0x00000002;
7763  }
7764  result.initialPolarity_ = initialPolarity_;
7765  if (((from_bitField0_ & 0x00000004) != 0)) {
7766  to_bitField0_ |= 0x00000004;
7767  }
7768  result.usePhaseSaving_ = usePhaseSaving_;
7769  if (((from_bitField0_ & 0x00000008) != 0)) {
7770  result.randomPolarityRatio_ = randomPolarityRatio_;
7771  to_bitField0_ |= 0x00000008;
7772  }
7773  if (((from_bitField0_ & 0x00000010) != 0)) {
7774  result.randomBranchesRatio_ = randomBranchesRatio_;
7775  to_bitField0_ |= 0x00000010;
7776  }
7777  if (((from_bitField0_ & 0x00000020) != 0)) {
7778  result.useErwaHeuristic_ = useErwaHeuristic_;
7779  to_bitField0_ |= 0x00000020;
7780  }
7781  if (((from_bitField0_ & 0x00000040) != 0)) {
7782  result.initialVariablesActivity_ = initialVariablesActivity_;
7783  to_bitField0_ |= 0x00000040;
7784  }
7785  if (((from_bitField0_ & 0x00000080) != 0)) {
7786  result.alsoBumpVariablesInConflictReasons_ = alsoBumpVariablesInConflictReasons_;
7787  to_bitField0_ |= 0x00000080;
7788  }
7789  if (((from_bitField0_ & 0x00000100) != 0)) {
7790  to_bitField0_ |= 0x00000100;
7791  }
7792  result.minimizationAlgorithm_ = minimizationAlgorithm_;
7793  if (((from_bitField0_ & 0x00000200) != 0)) {
7794  to_bitField0_ |= 0x00000200;
7795  }
7796  result.binaryMinimizationAlgorithm_ = binaryMinimizationAlgorithm_;
7797  if (((from_bitField0_ & 0x00000400) != 0)) {
7798  to_bitField0_ |= 0x00000400;
7799  }
7800  result.subsumptionDuringConflictAnalysis_ = subsumptionDuringConflictAnalysis_;
7801  if (((from_bitField0_ & 0x00000800) != 0)) {
7802  to_bitField0_ |= 0x00000800;
7803  }
7804  result.clauseCleanupPeriod_ = clauseCleanupPeriod_;
7805  if (((from_bitField0_ & 0x00001000) != 0)) {
7806  to_bitField0_ |= 0x00001000;
7807  }
7808  result.clauseCleanupTarget_ = clauseCleanupTarget_;
7809  if (((from_bitField0_ & 0x00002000) != 0)) {
7810  to_bitField0_ |= 0x00002000;
7811  }
7812  result.clauseCleanupProtection_ = clauseCleanupProtection_;
7813  if (((from_bitField0_ & 0x00004000) != 0)) {
7814  to_bitField0_ |= 0x00004000;
7815  }
7816  result.clauseCleanupLbdBound_ = clauseCleanupLbdBound_;
7817  if (((from_bitField0_ & 0x00008000) != 0)) {
7818  to_bitField0_ |= 0x00008000;
7819  }
7820  result.clauseCleanupOrdering_ = clauseCleanupOrdering_;
7821  if (((from_bitField0_ & 0x00010000) != 0)) {
7822  to_bitField0_ |= 0x00010000;
7823  }
7824  result.pbCleanupIncrement_ = pbCleanupIncrement_;
7825  if (((from_bitField0_ & 0x00020000) != 0)) {
7826  to_bitField0_ |= 0x00020000;
7827  }
7828  result.pbCleanupRatio_ = pbCleanupRatio_;
7829  if (((from_bitField0_ & 0x00040000) != 0)) {
7830  to_bitField0_ |= 0x00040000;
7831  }
7832  result.minimizeWithPropagationRestartPeriod_ = minimizeWithPropagationRestartPeriod_;
7833  if (((from_bitField0_ & 0x00080000) != 0)) {
7834  to_bitField0_ |= 0x00080000;
7835  }
7836  result.minimizeWithPropagationNumDecisions_ = minimizeWithPropagationNumDecisions_;
7837  if (((from_bitField0_ & 0x00100000) != 0)) {
7838  to_bitField0_ |= 0x00100000;
7839  }
7840  result.variableActivityDecay_ = variableActivityDecay_;
7841  if (((from_bitField0_ & 0x00200000) != 0)) {
7842  to_bitField0_ |= 0x00200000;
7843  }
7844  result.maxVariableActivityValue_ = maxVariableActivityValue_;
7845  if (((from_bitField0_ & 0x00400000) != 0)) {
7846  to_bitField0_ |= 0x00400000;
7847  }
7848  result.glucoseMaxDecay_ = glucoseMaxDecay_;
7849  if (((from_bitField0_ & 0x00800000) != 0)) {
7850  to_bitField0_ |= 0x00800000;
7851  }
7852  result.glucoseDecayIncrement_ = glucoseDecayIncrement_;
7853  if (((from_bitField0_ & 0x01000000) != 0)) {
7854  to_bitField0_ |= 0x01000000;
7855  }
7856  result.glucoseDecayIncrementPeriod_ = glucoseDecayIncrementPeriod_;
7857  if (((from_bitField0_ & 0x02000000) != 0)) {
7858  to_bitField0_ |= 0x02000000;
7859  }
7860  result.clauseActivityDecay_ = clauseActivityDecay_;
7861  if (((from_bitField0_ & 0x04000000) != 0)) {
7862  to_bitField0_ |= 0x04000000;
7863  }
7864  result.maxClauseActivityValue_ = maxClauseActivityValue_;
7865  if (((bitField0_ & 0x08000000) != 0)) {
7866  restartAlgorithms_ = java.util.Collections.unmodifiableList(restartAlgorithms_);
7867  bitField0_ = (bitField0_ & ~0x08000000);
7868  }
7869  result.restartAlgorithms_ = restartAlgorithms_;
7870  if (((from_bitField0_ & 0x10000000) != 0)) {
7871  to_bitField0_ |= 0x08000000;
7872  }
7873  result.defaultRestartAlgorithms_ = defaultRestartAlgorithms_;
7874  if (((from_bitField0_ & 0x20000000) != 0)) {
7875  to_bitField0_ |= 0x10000000;
7876  }
7877  result.restartPeriod_ = restartPeriod_;
7878  if (((from_bitField0_ & 0x40000000) != 0)) {
7879  to_bitField0_ |= 0x20000000;
7880  }
7881  result.restartRunningWindowSize_ = restartRunningWindowSize_;
7882  if (((from_bitField0_ & 0x80000000) != 0)) {
7883  to_bitField0_ |= 0x40000000;
7884  }
7885  result.restartDlAverageRatio_ = restartDlAverageRatio_;
7886  if (((from_bitField1_ & 0x00000001) != 0)) {
7887  to_bitField0_ |= 0x80000000;
7888  }
7889  result.restartLbdAverageRatio_ = restartLbdAverageRatio_;
7890  if (((from_bitField1_ & 0x00000002) != 0)) {
7891  result.useBlockingRestart_ = useBlockingRestart_;
7892  to_bitField1_ |= 0x00000001;
7893  }
7894  if (((from_bitField1_ & 0x00000004) != 0)) {
7895  to_bitField1_ |= 0x00000002;
7896  }
7897  result.blockingRestartWindowSize_ = blockingRestartWindowSize_;
7898  if (((from_bitField1_ & 0x00000008) != 0)) {
7899  to_bitField1_ |= 0x00000004;
7900  }
7901  result.blockingRestartMultiplier_ = blockingRestartMultiplier_;
7902  if (((from_bitField1_ & 0x00000010) != 0)) {
7903  result.numConflictsBeforeStrategyChanges_ = numConflictsBeforeStrategyChanges_;
7904  to_bitField1_ |= 0x00000008;
7905  }
7906  if (((from_bitField1_ & 0x00000020) != 0)) {
7907  result.strategyChangeIncreaseRatio_ = strategyChangeIncreaseRatio_;
7908  to_bitField1_ |= 0x00000010;
7909  }
7910  if (((from_bitField1_ & 0x00000040) != 0)) {
7911  to_bitField1_ |= 0x00000020;
7912  }
7913  result.maxTimeInSeconds_ = maxTimeInSeconds_;
7914  if (((from_bitField1_ & 0x00000080) != 0)) {
7915  to_bitField1_ |= 0x00000040;
7916  }
7917  result.maxDeterministicTime_ = maxDeterministicTime_;
7918  if (((from_bitField1_ & 0x00000100) != 0)) {
7919  to_bitField1_ |= 0x00000080;
7920  }
7921  result.maxNumberOfConflicts_ = maxNumberOfConflicts_;
7922  if (((from_bitField1_ & 0x00000200) != 0)) {
7923  to_bitField1_ |= 0x00000100;
7924  }
7925  result.maxMemoryInMb_ = maxMemoryInMb_;
7926  if (((from_bitField1_ & 0x00000400) != 0)) {
7927  to_bitField1_ |= 0x00000200;
7928  }
7929  result.treatBinaryClausesSeparately_ = treatBinaryClausesSeparately_;
7930  if (((from_bitField1_ & 0x00000800) != 0)) {
7931  to_bitField1_ |= 0x00000400;
7932  }
7933  result.randomSeed_ = randomSeed_;
7934  if (((from_bitField1_ & 0x00001000) != 0)) {
7935  result.logSearchProgress_ = logSearchProgress_;
7936  to_bitField1_ |= 0x00000800;
7937  }
7938  if (((from_bitField1_ & 0x00002000) != 0)) {
7939  result.usePbResolution_ = usePbResolution_;
7940  to_bitField1_ |= 0x00001000;
7941  }
7942  if (((from_bitField1_ & 0x00004000) != 0)) {
7943  result.minimizeReductionDuringPbResolution_ = minimizeReductionDuringPbResolution_;
7944  to_bitField1_ |= 0x00002000;
7945  }
7946  if (((from_bitField1_ & 0x00008000) != 0)) {
7947  to_bitField1_ |= 0x00004000;
7948  }
7949  result.countAssumptionLevelsInLbd_ = countAssumptionLevelsInLbd_;
7950  if (((from_bitField1_ & 0x00010000) != 0)) {
7951  to_bitField1_ |= 0x00008000;
7952  }
7953  result.presolveBveThreshold_ = presolveBveThreshold_;
7954  if (((from_bitField1_ & 0x00020000) != 0)) {
7955  to_bitField1_ |= 0x00010000;
7956  }
7957  result.presolveBveClauseWeight_ = presolveBveClauseWeight_;
7958  if (((from_bitField1_ & 0x00040000) != 0)) {
7959  to_bitField1_ |= 0x00020000;
7960  }
7961  result.presolveProbingDeterministicTimeLimit_ = presolveProbingDeterministicTimeLimit_;
7962  if (((from_bitField1_ & 0x00080000) != 0)) {
7963  to_bitField1_ |= 0x00040000;
7964  }
7965  result.presolveBlockedClause_ = presolveBlockedClause_;
7966  if (((from_bitField1_ & 0x00100000) != 0)) {
7967  to_bitField1_ |= 0x00080000;
7968  }
7969  result.presolveUseBva_ = presolveUseBva_;
7970  if (((from_bitField1_ & 0x00200000) != 0)) {
7971  to_bitField1_ |= 0x00100000;
7972  }
7973  result.presolveBvaThreshold_ = presolveBvaThreshold_;
7974  if (((from_bitField1_ & 0x00400000) != 0)) {
7975  to_bitField1_ |= 0x00200000;
7976  }
7977  result.maxPresolveIterations_ = maxPresolveIterations_;
7978  if (((from_bitField1_ & 0x00800000) != 0)) {
7979  to_bitField1_ |= 0x00400000;
7980  }
7981  result.cpModelPresolve_ = cpModelPresolve_;
7982  if (((from_bitField1_ & 0x01000000) != 0)) {
7983  to_bitField1_ |= 0x00800000;
7984  }
7985  result.cpModelProbingLevel_ = cpModelProbingLevel_;
7986  if (((from_bitField1_ & 0x02000000) != 0)) {
7987  to_bitField1_ |= 0x01000000;
7988  }
7989  result.cpModelUseSatPresolve_ = cpModelUseSatPresolve_;
7990  if (((from_bitField1_ & 0x04000000) != 0)) {
7991  to_bitField1_ |= 0x02000000;
7992  }
7993  result.expandElementConstraints_ = expandElementConstraints_;
7994  if (((from_bitField1_ & 0x08000000) != 0)) {
7995  to_bitField1_ |= 0x04000000;
7996  }
7997  result.useOptimizationHints_ = useOptimizationHints_;
7998  if (((from_bitField1_ & 0x10000000) != 0)) {
7999  to_bitField1_ |= 0x08000000;
8000  }
8001  result.minimizeCore_ = minimizeCore_;
8002  if (((from_bitField1_ & 0x20000000) != 0)) {
8003  to_bitField1_ |= 0x10000000;
8004  }
8005  result.findMultipleCores_ = findMultipleCores_;
8006  if (((from_bitField1_ & 0x40000000) != 0)) {
8007  to_bitField1_ |= 0x20000000;
8008  }
8009  result.coverOptimization_ = coverOptimization_;
8010  if (((from_bitField1_ & 0x80000000) != 0)) {
8011  to_bitField1_ |= 0x40000000;
8012  }
8013  result.maxSatAssumptionOrder_ = maxSatAssumptionOrder_;
8014  if (((from_bitField2_ & 0x00000001) != 0)) {
8015  result.maxSatReverseAssumptionOrder_ = maxSatReverseAssumptionOrder_;
8016  to_bitField1_ |= 0x80000000;
8017  }
8018  if (((from_bitField2_ & 0x00000002) != 0)) {
8019  to_bitField2_ |= 0x00000001;
8020  }
8021  result.maxSatStratification_ = maxSatStratification_;
8022  if (((from_bitField2_ & 0x00000004) != 0)) {
8023  to_bitField2_ |= 0x00000002;
8024  }
8025  result.usePrecedencesInDisjunctiveConstraint_ = usePrecedencesInDisjunctiveConstraint_;
8026  if (((from_bitField2_ & 0x00000008) != 0)) {
8027  result.useOverloadCheckerInCumulativeConstraint_ = useOverloadCheckerInCumulativeConstraint_;
8028  to_bitField2_ |= 0x00000004;
8029  }
8030  if (((from_bitField2_ & 0x00000010) != 0)) {
8031  result.useTimetableEdgeFindingInCumulativeConstraint_ = useTimetableEdgeFindingInCumulativeConstraint_;
8032  to_bitField2_ |= 0x00000008;
8033  }
8034  if (((from_bitField2_ & 0x00000020) != 0)) {
8035  to_bitField2_ |= 0x00000010;
8036  }
8037  result.useDisjunctiveConstraintInCumulativeConstraint_ = useDisjunctiveConstraintInCumulativeConstraint_;
8038  if (((from_bitField2_ & 0x00000040) != 0)) {
8039  to_bitField2_ |= 0x00000020;
8040  }
8041  result.linearizationLevel_ = linearizationLevel_;
8042  if (((from_bitField2_ & 0x00000080) != 0)) {
8043  to_bitField2_ |= 0x00000040;
8044  }
8045  result.booleanEncodingLevel_ = booleanEncodingLevel_;
8046  if (((from_bitField2_ & 0x00000100) != 0)) {
8047  to_bitField2_ |= 0x00000080;
8048  }
8049  result.maxNumCuts_ = maxNumCuts_;
8050  if (((from_bitField2_ & 0x00000200) != 0)) {
8051  result.onlyAddCutsAtLevelZero_ = onlyAddCutsAtLevelZero_;
8052  to_bitField2_ |= 0x00000100;
8053  }
8054  if (((from_bitField2_ & 0x00000400) != 0)) {
8055  result.addKnapsackCuts_ = addKnapsackCuts_;
8056  to_bitField2_ |= 0x00000200;
8057  }
8058  if (((from_bitField2_ & 0x00000800) != 0)) {
8059  result.addCgCuts_ = addCgCuts_;
8060  to_bitField2_ |= 0x00000400;
8061  }
8062  if (((from_bitField2_ & 0x00001000) != 0)) {
8063  to_bitField2_ |= 0x00000800;
8064  }
8065  result.addMirCuts_ = addMirCuts_;
8066  if (((from_bitField2_ & 0x00002000) != 0)) {
8067  to_bitField2_ |= 0x00001000;
8068  }
8069  result.useMirRounding_ = useMirRounding_;
8070  if (((from_bitField2_ & 0x00004000) != 0)) {
8071  to_bitField2_ |= 0x00002000;
8072  }
8073  result.maxIntegerRoundingScaling_ = maxIntegerRoundingScaling_;
8074  if (((from_bitField2_ & 0x00008000) != 0)) {
8075  to_bitField2_ |= 0x00004000;
8076  }
8077  result.addLpConstraintsLazily_ = addLpConstraintsLazily_;
8078  if (((from_bitField2_ & 0x00010000) != 0)) {
8079  result.minOrthogonalityForLpConstraints_ = minOrthogonalityForLpConstraints_;
8080  to_bitField2_ |= 0x00008000;
8081  }
8082  if (((from_bitField2_ & 0x00020000) != 0)) {
8083  to_bitField2_ |= 0x00010000;
8084  }
8085  result.maxInactiveCount_ = maxInactiveCount_;
8086  if (((from_bitField2_ & 0x00040000) != 0)) {
8087  to_bitField2_ |= 0x00020000;
8088  }
8089  result.constraintRemovalBatchSize_ = constraintRemovalBatchSize_;
8090  if (((from_bitField2_ & 0x00080000) != 0)) {
8091  to_bitField2_ |= 0x00040000;
8092  }
8093  result.searchBranching_ = searchBranching_;
8094  if (((from_bitField2_ & 0x00100000) != 0)) {
8095  to_bitField2_ |= 0x00080000;
8096  }
8097  result.exploitIntegerLpSolution_ = exploitIntegerLpSolution_;
8098  if (((from_bitField2_ & 0x00200000) != 0)) {
8099  to_bitField2_ |= 0x00100000;
8100  }
8101  result.exploitAllLpSolution_ = exploitAllLpSolution_;
8102  if (((from_bitField2_ & 0x00400000) != 0)) {
8103  result.exploitBestSolution_ = exploitBestSolution_;
8104  to_bitField2_ |= 0x00200000;
8105  }
8106  if (((from_bitField2_ & 0x00800000) != 0)) {
8107  to_bitField2_ |= 0x00400000;
8108  }
8109  result.exploitObjective_ = exploitObjective_;
8110  if (((from_bitField2_ & 0x01000000) != 0)) {
8111  to_bitField2_ |= 0x00800000;
8112  }
8113  result.pseudoCostReliabilityThreshold_ = pseudoCostReliabilityThreshold_;
8114  if (((from_bitField2_ & 0x02000000) != 0)) {
8115  result.optimizeWithCore_ = optimizeWithCore_;
8116  to_bitField2_ |= 0x01000000;
8117  }
8118  if (((from_bitField2_ & 0x04000000) != 0)) {
8119  to_bitField2_ |= 0x02000000;
8120  }
8121  result.binarySearchNumConflicts_ = binarySearchNumConflicts_;
8122  if (((from_bitField2_ & 0x08000000) != 0)) {
8123  result.optimizeWithMaxHs_ = optimizeWithMaxHs_;
8124  to_bitField2_ |= 0x04000000;
8125  }
8126  if (((from_bitField2_ & 0x10000000) != 0)) {
8127  result.enumerateAllSolutions_ = enumerateAllSolutions_;
8128  to_bitField2_ |= 0x08000000;
8129  }
8130  if (((from_bitField2_ & 0x20000000) != 0)) {
8131  result.fillTightenedDomainsInResponse_ = fillTightenedDomainsInResponse_;
8132  to_bitField2_ |= 0x10000000;
8133  }
8134  if (((from_bitField2_ & 0x40000000) != 0)) {
8135  to_bitField2_ |= 0x20000000;
8136  }
8137  result.instantiateAllVariables_ = instantiateAllVariables_;
8138  if (((from_bitField2_ & 0x80000000) != 0)) {
8139  to_bitField2_ |= 0x40000000;
8140  }
8141  result.autoDetectGreaterThanAtLeastOneOf_ = autoDetectGreaterThanAtLeastOneOf_;
8142  if (((from_bitField3_ & 0x00000001) != 0)) {
8143  result.stopAfterFirstSolution_ = stopAfterFirstSolution_;
8144  to_bitField2_ |= 0x80000000;
8145  }
8146  if (((from_bitField3_ & 0x00000002) != 0)) {
8147  to_bitField3_ |= 0x00000001;
8148  }
8149  result.numSearchWorkers_ = numSearchWorkers_;
8150  if (((from_bitField3_ & 0x00000004) != 0)) {
8151  result.interleaveSearch_ = interleaveSearch_;
8152  to_bitField3_ |= 0x00000002;
8153  }
8154  if (((from_bitField3_ & 0x00000008) != 0)) {
8155  result.deterministicParallelSearch_ = deterministicParallelSearch_;
8156  to_bitField3_ |= 0x00000004;
8157  }
8158  if (((from_bitField3_ & 0x00000010) != 0)) {
8159  to_bitField3_ |= 0x00000008;
8160  }
8161  result.shareObjectiveBounds_ = shareObjectiveBounds_;
8162  if (((from_bitField3_ & 0x00000020) != 0)) {
8163  to_bitField3_ |= 0x00000010;
8164  }
8165  result.shareLevelZeroBounds_ = shareLevelZeroBounds_;
8166  if (((from_bitField3_ & 0x00000040) != 0)) {
8167  result.useLnsOnly_ = useLnsOnly_;
8168  to_bitField3_ |= 0x00000020;
8169  }
8170  if (((from_bitField3_ & 0x00000080) != 0)) {
8171  result.lnsFocusOnDecisionVariables_ = lnsFocusOnDecisionVariables_;
8172  to_bitField3_ |= 0x00000040;
8173  }
8174  if (((from_bitField3_ & 0x00000100) != 0)) {
8175  to_bitField3_ |= 0x00000080;
8176  }
8177  result.useRinsLns_ = useRinsLns_;
8178  if (((from_bitField3_ & 0x00000200) != 0)) {
8179  result.diversifyLnsParams_ = diversifyLnsParams_;
8180  to_bitField3_ |= 0x00000100;
8181  }
8182  if (((from_bitField3_ & 0x00000400) != 0)) {
8183  result.randomizeSearch_ = randomizeSearch_;
8184  to_bitField3_ |= 0x00000200;
8185  }
8186  if (((from_bitField3_ & 0x00000800) != 0)) {
8187  result.searchRandomizationTolerance_ = searchRandomizationTolerance_;
8188  to_bitField3_ |= 0x00000400;
8189  }
8190  if (((from_bitField3_ & 0x00001000) != 0)) {
8191  to_bitField3_ |= 0x00000800;
8192  }
8193  result.useOptionalVariables_ = useOptionalVariables_;
8194  if (((from_bitField3_ & 0x00002000) != 0)) {
8195  to_bitField3_ |= 0x00001000;
8196  }
8197  result.useExactLpReason_ = useExactLpReason_;
8198  if (((from_bitField3_ & 0x00004000) != 0)) {
8199  result.useBranchingInLp_ = useBranchingInLp_;
8200  to_bitField3_ |= 0x00002000;
8201  }
8202  if (((from_bitField3_ & 0x00008000) != 0)) {
8203  result.useCombinedNoOverlap_ = useCombinedNoOverlap_;
8204  to_bitField3_ |= 0x00004000;
8205  }
8206  if (((from_bitField3_ & 0x00010000) != 0)) {
8207  to_bitField3_ |= 0x00008000;
8208  }
8209  result.catchSigintSignal_ = catchSigintSignal_;
8210  if (((from_bitField3_ & 0x00020000) != 0)) {
8211  to_bitField3_ |= 0x00010000;
8212  }
8213  result.mipMaxBound_ = mipMaxBound_;
8214  if (((from_bitField3_ & 0x00040000) != 0)) {
8215  to_bitField3_ |= 0x00020000;
8216  }
8217  result.mipVarScaling_ = mipVarScaling_;
8218  if (((from_bitField3_ & 0x00080000) != 0)) {
8219  to_bitField3_ |= 0x00040000;
8220  }
8221  result.mipWantedPrecision_ = mipWantedPrecision_;
8222  if (((from_bitField3_ & 0x00100000) != 0)) {
8223  to_bitField3_ |= 0x00080000;
8224  }
8225  result.mipMaxActivityExponent_ = mipMaxActivityExponent_;
8226  if (((from_bitField3_ & 0x00200000) != 0)) {
8227  to_bitField3_ |= 0x00100000;
8228  }
8229  result.mipCheckPrecision_ = mipCheckPrecision_;
8230  result.bitField0_ = to_bitField0_;
8231  result.bitField1_ = to_bitField1_;
8232  result.bitField2_ = to_bitField2_;
8233  result.bitField3_ = to_bitField3_;
8234  onBuilt();
8235  return result;
8236  }
8237 
8238  @java.lang.Override
8239  public Builder clone() {
8240  return super.clone();
8241  }
8242  @java.lang.Override
8244  com.google.protobuf.Descriptors.FieldDescriptor field,
8245  java.lang.Object value) {
8246  return super.setField(field, value);
8247  }
8248  @java.lang.Override
8250  com.google.protobuf.Descriptors.FieldDescriptor field) {
8251  return super.clearField(field);
8252  }
8253  @java.lang.Override
8255  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
8256  return super.clearOneof(oneof);
8257  }
8258  @java.lang.Override
8260  com.google.protobuf.Descriptors.FieldDescriptor field,
8261  int index, java.lang.Object value) {
8262  return super.setRepeatedField(field, index, value);
8263  }
8264  @java.lang.Override
8266  com.google.protobuf.Descriptors.FieldDescriptor field,
8267  java.lang.Object value) {
8268  return super.addRepeatedField(field, value);
8269  }
8270  @java.lang.Override
8271  public Builder mergeFrom(com.google.protobuf.Message other) {
8272  if (other instanceof com.google.ortools.sat.SatParameters) {
8273  return mergeFrom((com.google.ortools.sat.SatParameters)other);
8274  } else {
8275  super.mergeFrom(other);
8276  return this;
8277  }
8278  }
8279 
8281  if (other == com.google.ortools.sat.SatParameters.getDefaultInstance()) return this;
8282  if (other.hasPreferredVariableOrder()) {
8283  setPreferredVariableOrder(other.getPreferredVariableOrder());
8284  }
8285  if (other.hasInitialPolarity()) {
8286  setInitialPolarity(other.getInitialPolarity());
8287  }
8288  if (other.hasUsePhaseSaving()) {
8289  setUsePhaseSaving(other.getUsePhaseSaving());
8290  }
8291  if (other.hasRandomPolarityRatio()) {
8292  setRandomPolarityRatio(other.getRandomPolarityRatio());
8293  }
8294  if (other.hasRandomBranchesRatio()) {
8295  setRandomBranchesRatio(other.getRandomBranchesRatio());
8296  }
8297  if (other.hasUseErwaHeuristic()) {
8298  setUseErwaHeuristic(other.getUseErwaHeuristic());
8299  }
8300  if (other.hasInitialVariablesActivity()) {
8301  setInitialVariablesActivity(other.getInitialVariablesActivity());
8302  }
8303  if (other.hasAlsoBumpVariablesInConflictReasons()) {
8304  setAlsoBumpVariablesInConflictReasons(other.getAlsoBumpVariablesInConflictReasons());
8305  }
8306  if (other.hasMinimizationAlgorithm()) {
8307  setMinimizationAlgorithm(other.getMinimizationAlgorithm());
8308  }
8309  if (other.hasBinaryMinimizationAlgorithm()) {
8310  setBinaryMinimizationAlgorithm(other.getBinaryMinimizationAlgorithm());
8311  }
8312  if (other.hasSubsumptionDuringConflictAnalysis()) {
8313  setSubsumptionDuringConflictAnalysis(other.getSubsumptionDuringConflictAnalysis());
8314  }
8315  if (other.hasClauseCleanupPeriod()) {
8316  setClauseCleanupPeriod(other.getClauseCleanupPeriod());
8317  }
8318  if (other.hasClauseCleanupTarget()) {
8319  setClauseCleanupTarget(other.getClauseCleanupTarget());
8320  }
8321  if (other.hasClauseCleanupProtection()) {
8322  setClauseCleanupProtection(other.getClauseCleanupProtection());
8323  }
8324  if (other.hasClauseCleanupLbdBound()) {
8325  setClauseCleanupLbdBound(other.getClauseCleanupLbdBound());
8326  }
8327  if (other.hasClauseCleanupOrdering()) {
8328  setClauseCleanupOrdering(other.getClauseCleanupOrdering());
8329  }
8330  if (other.hasPbCleanupIncrement()) {
8331  setPbCleanupIncrement(other.getPbCleanupIncrement());
8332  }
8333  if (other.hasPbCleanupRatio()) {
8334  setPbCleanupRatio(other.getPbCleanupRatio());
8335  }
8336  if (other.hasMinimizeWithPropagationRestartPeriod()) {
8337  setMinimizeWithPropagationRestartPeriod(other.getMinimizeWithPropagationRestartPeriod());
8338  }
8339  if (other.hasMinimizeWithPropagationNumDecisions()) {
8340  setMinimizeWithPropagationNumDecisions(other.getMinimizeWithPropagationNumDecisions());
8341  }
8342  if (other.hasVariableActivityDecay()) {
8343  setVariableActivityDecay(other.getVariableActivityDecay());
8344  }
8345  if (other.hasMaxVariableActivityValue()) {
8346  setMaxVariableActivityValue(other.getMaxVariableActivityValue());
8347  }
8348  if (other.hasGlucoseMaxDecay()) {
8349  setGlucoseMaxDecay(other.getGlucoseMaxDecay());
8350  }
8351  if (other.hasGlucoseDecayIncrement()) {
8352  setGlucoseDecayIncrement(other.getGlucoseDecayIncrement());
8353  }
8354  if (other.hasGlucoseDecayIncrementPeriod()) {
8355  setGlucoseDecayIncrementPeriod(other.getGlucoseDecayIncrementPeriod());
8356  }
8357  if (other.hasClauseActivityDecay()) {
8358  setClauseActivityDecay(other.getClauseActivityDecay());
8359  }
8360  if (other.hasMaxClauseActivityValue()) {
8361  setMaxClauseActivityValue(other.getMaxClauseActivityValue());
8362  }
8363  if (!other.restartAlgorithms_.isEmpty()) {
8364  if (restartAlgorithms_.isEmpty()) {
8365  restartAlgorithms_ = other.restartAlgorithms_;
8366  bitField0_ = (bitField0_ & ~0x08000000);
8367  } else {
8368  ensureRestartAlgorithmsIsMutable();
8369  restartAlgorithms_.addAll(other.restartAlgorithms_);
8370  }
8371  onChanged();
8372  }
8373  if (other.hasDefaultRestartAlgorithms()) {
8374  bitField0_ |= 0x10000000;
8375  defaultRestartAlgorithms_ = other.defaultRestartAlgorithms_;
8376  onChanged();
8377  }
8378  if (other.hasRestartPeriod()) {
8379  setRestartPeriod(other.getRestartPeriod());
8380  }
8381  if (other.hasRestartRunningWindowSize()) {
8382  setRestartRunningWindowSize(other.getRestartRunningWindowSize());
8383  }
8384  if (other.hasRestartDlAverageRatio()) {
8385  setRestartDlAverageRatio(other.getRestartDlAverageRatio());
8386  }
8387  if (other.hasRestartLbdAverageRatio()) {
8388  setRestartLbdAverageRatio(other.getRestartLbdAverageRatio());
8389  }
8390  if (other.hasUseBlockingRestart()) {
8391  setUseBlockingRestart(other.getUseBlockingRestart());
8392  }
8393  if (other.hasBlockingRestartWindowSize()) {
8394  setBlockingRestartWindowSize(other.getBlockingRestartWindowSize());
8395  }
8396  if (other.hasBlockingRestartMultiplier()) {
8397  setBlockingRestartMultiplier(other.getBlockingRestartMultiplier());
8398  }
8399  if (other.hasNumConflictsBeforeStrategyChanges()) {
8400  setNumConflictsBeforeStrategyChanges(other.getNumConflictsBeforeStrategyChanges());
8401  }
8402  if (other.hasStrategyChangeIncreaseRatio()) {
8403  setStrategyChangeIncreaseRatio(other.getStrategyChangeIncreaseRatio());
8404  }
8405  if (other.hasMaxTimeInSeconds()) {
8406  setMaxTimeInSeconds(other.getMaxTimeInSeconds());
8407  }
8408  if (other.hasMaxDeterministicTime()) {
8409  setMaxDeterministicTime(other.getMaxDeterministicTime());
8410  }
8411  if (other.hasMaxNumberOfConflicts()) {
8412  setMaxNumberOfConflicts(other.getMaxNumberOfConflicts());
8413  }
8414  if (other.hasMaxMemoryInMb()) {
8415  setMaxMemoryInMb(other.getMaxMemoryInMb());
8416  }
8417  if (other.hasTreatBinaryClausesSeparately()) {
8418  setTreatBinaryClausesSeparately(other.getTreatBinaryClausesSeparately());
8419  }
8420  if (other.hasRandomSeed()) {
8421  setRandomSeed(other.getRandomSeed());
8422  }
8423  if (other.hasLogSearchProgress()) {
8424  setLogSearchProgress(other.getLogSearchProgress());
8425  }
8426  if (other.hasUsePbResolution()) {
8427  setUsePbResolution(other.getUsePbResolution());
8428  }
8429  if (other.hasMinimizeReductionDuringPbResolution()) {
8430  setMinimizeReductionDuringPbResolution(other.getMinimizeReductionDuringPbResolution());
8431  }
8432  if (other.hasCountAssumptionLevelsInLbd()) {
8433  setCountAssumptionLevelsInLbd(other.getCountAssumptionLevelsInLbd());
8434  }
8435  if (other.hasPresolveBveThreshold()) {
8436  setPresolveBveThreshold(other.getPresolveBveThreshold());
8437  }
8438  if (other.hasPresolveBveClauseWeight()) {
8439  setPresolveBveClauseWeight(other.getPresolveBveClauseWeight());
8440  }
8441  if (other.hasPresolveProbingDeterministicTimeLimit()) {
8442  setPresolveProbingDeterministicTimeLimit(other.getPresolveProbingDeterministicTimeLimit());
8443  }
8444  if (other.hasPresolveBlockedClause()) {
8445  setPresolveBlockedClause(other.getPresolveBlockedClause());
8446  }
8447  if (other.hasPresolveUseBva()) {
8448  setPresolveUseBva(other.getPresolveUseBva());
8449  }
8450  if (other.hasPresolveBvaThreshold()) {
8451  setPresolveBvaThreshold(other.getPresolveBvaThreshold());
8452  }
8453  if (other.hasMaxPresolveIterations()) {
8454  setMaxPresolveIterations(other.getMaxPresolveIterations());
8455  }
8456  if (other.hasCpModelPresolve()) {
8457  setCpModelPresolve(other.getCpModelPresolve());
8458  }
8459  if (other.hasCpModelProbingLevel()) {
8460  setCpModelProbingLevel(other.getCpModelProbingLevel());
8461  }
8462  if (other.hasCpModelUseSatPresolve()) {
8463  setCpModelUseSatPresolve(other.getCpModelUseSatPresolve());
8464  }
8465  if (other.hasExpandElementConstraints()) {
8466  setExpandElementConstraints(other.getExpandElementConstraints());
8467  }
8468  if (other.hasUseOptimizationHints()) {
8469  setUseOptimizationHints(other.getUseOptimizationHints());
8470  }
8471  if (other.hasMinimizeCore()) {
8472  setMinimizeCore(other.getMinimizeCore());
8473  }
8474  if (other.hasFindMultipleCores()) {
8475  setFindMultipleCores(other.getFindMultipleCores());
8476  }
8477  if (other.hasCoverOptimization()) {
8478  setCoverOptimization(other.getCoverOptimization());
8479  }
8480  if (other.hasMaxSatAssumptionOrder()) {
8481  setMaxSatAssumptionOrder(other.getMaxSatAssumptionOrder());
8482  }
8483  if (other.hasMaxSatReverseAssumptionOrder()) {
8484  setMaxSatReverseAssumptionOrder(other.getMaxSatReverseAssumptionOrder());
8485  }
8486  if (other.hasMaxSatStratification()) {
8487  setMaxSatStratification(other.getMaxSatStratification());
8488  }
8489  if (other.hasUsePrecedencesInDisjunctiveConstraint()) {
8490  setUsePrecedencesInDisjunctiveConstraint(other.getUsePrecedencesInDisjunctiveConstraint());
8491  }
8492  if (other.hasUseOverloadCheckerInCumulativeConstraint()) {
8493  setUseOverloadCheckerInCumulativeConstraint(other.getUseOverloadCheckerInCumulativeConstraint());
8494  }
8495  if (other.hasUseTimetableEdgeFindingInCumulativeConstraint()) {
8496  setUseTimetableEdgeFindingInCumulativeConstraint(other.getUseTimetableEdgeFindingInCumulativeConstraint());
8497  }
8498  if (other.hasUseDisjunctiveConstraintInCumulativeConstraint()) {
8499  setUseDisjunctiveConstraintInCumulativeConstraint(other.getUseDisjunctiveConstraintInCumulativeConstraint());
8500  }
8501  if (other.hasLinearizationLevel()) {
8502  setLinearizationLevel(other.getLinearizationLevel());
8503  }
8504  if (other.hasBooleanEncodingLevel()) {
8505  setBooleanEncodingLevel(other.getBooleanEncodingLevel());
8506  }
8507  if (other.hasMaxNumCuts()) {
8508  setMaxNumCuts(other.getMaxNumCuts());
8509  }
8510  if (other.hasOnlyAddCutsAtLevelZero()) {
8511  setOnlyAddCutsAtLevelZero(other.getOnlyAddCutsAtLevelZero());
8512  }
8513  if (other.hasAddKnapsackCuts()) {
8514  setAddKnapsackCuts(other.getAddKnapsackCuts());
8515  }
8516  if (other.hasAddCgCuts()) {
8517  setAddCgCuts(other.getAddCgCuts());
8518  }
8519  if (other.hasAddMirCuts()) {
8520  setAddMirCuts(other.getAddMirCuts());
8521  }
8522  if (other.hasUseMirRounding()) {
8523  setUseMirRounding(other.getUseMirRounding());
8524  }
8525  if (other.hasMaxIntegerRoundingScaling()) {
8526  setMaxIntegerRoundingScaling(other.getMaxIntegerRoundingScaling());
8527  }
8528  if (other.hasAddLpConstraintsLazily()) {
8529  setAddLpConstraintsLazily(other.getAddLpConstraintsLazily());
8530  }
8531  if (other.hasMinOrthogonalityForLpConstraints()) {
8532  setMinOrthogonalityForLpConstraints(other.getMinOrthogonalityForLpConstraints());
8533  }
8534  if (other.hasMaxInactiveCount()) {
8535  setMaxInactiveCount(other.getMaxInactiveCount());
8536  }
8537  if (other.hasConstraintRemovalBatchSize()) {
8538  setConstraintRemovalBatchSize(other.getConstraintRemovalBatchSize());
8539  }
8540  if (other.hasSearchBranching()) {
8541  setSearchBranching(other.getSearchBranching());
8542  }
8543  if (other.hasExploitIntegerLpSolution()) {
8544  setExploitIntegerLpSolution(other.getExploitIntegerLpSolution());
8545  }
8546  if (other.hasExploitAllLpSolution()) {
8547  setExploitAllLpSolution(other.getExploitAllLpSolution());
8548  }
8549  if (other.hasExploitBestSolution()) {
8550  setExploitBestSolution(other.getExploitBestSolution());
8551  }
8552  if (other.hasExploitObjective()) {
8553  setExploitObjective(other.getExploitObjective());
8554  }
8555  if (other.hasPseudoCostReliabilityThreshold()) {
8556  setPseudoCostReliabilityThreshold(other.getPseudoCostReliabilityThreshold());
8557  }
8558  if (other.hasOptimizeWithCore()) {
8559  setOptimizeWithCore(other.getOptimizeWithCore());
8560  }
8561  if (other.hasBinarySearchNumConflicts()) {
8562  setBinarySearchNumConflicts(other.getBinarySearchNumConflicts());
8563  }
8564  if (other.hasOptimizeWithMaxHs()) {
8565  setOptimizeWithMaxHs(other.getOptimizeWithMaxHs());
8566  }
8567  if (other.hasEnumerateAllSolutions()) {
8568  setEnumerateAllSolutions(other.getEnumerateAllSolutions());
8569  }
8570  if (other.hasFillTightenedDomainsInResponse()) {
8571  setFillTightenedDomainsInResponse(other.getFillTightenedDomainsInResponse());
8572  }
8573  if (other.hasInstantiateAllVariables()) {
8574  setInstantiateAllVariables(other.getInstantiateAllVariables());
8575  }
8576  if (other.hasAutoDetectGreaterThanAtLeastOneOf()) {
8577  setAutoDetectGreaterThanAtLeastOneOf(other.getAutoDetectGreaterThanAtLeastOneOf());
8578  }
8579  if (other.hasStopAfterFirstSolution()) {
8580  setStopAfterFirstSolution(other.getStopAfterFirstSolution());
8581  }
8582  if (other.hasNumSearchWorkers()) {
8583  setNumSearchWorkers(other.getNumSearchWorkers());
8584  }
8585  if (other.hasInterleaveSearch()) {
8586  setInterleaveSearch(other.getInterleaveSearch());
8587  }
8588  if (other.hasDeterministicParallelSearch()) {
8589  setDeterministicParallelSearch(other.getDeterministicParallelSearch());
8590  }
8591  if (other.hasShareObjectiveBounds()) {
8592  setShareObjectiveBounds(other.getShareObjectiveBounds());
8593  }
8594  if (other.hasShareLevelZeroBounds()) {
8595  setShareLevelZeroBounds(other.getShareLevelZeroBounds());
8596  }
8597  if (other.hasUseLnsOnly()) {
8598  setUseLnsOnly(other.getUseLnsOnly());
8599  }
8600  if (other.hasLnsFocusOnDecisionVariables()) {
8601  setLnsFocusOnDecisionVariables(other.getLnsFocusOnDecisionVariables());
8602  }
8603  if (other.hasUseRinsLns()) {
8604  setUseRinsLns(other.getUseRinsLns());
8605  }
8606  if (other.hasDiversifyLnsParams()) {
8607  setDiversifyLnsParams(other.getDiversifyLnsParams());
8608  }
8609  if (other.hasRandomizeSearch()) {
8610  setRandomizeSearch(other.getRandomizeSearch());
8611  }
8612  if (other.hasSearchRandomizationTolerance()) {
8613  setSearchRandomizationTolerance(other.getSearchRandomizationTolerance());
8614  }
8615  if (other.hasUseOptionalVariables()) {
8616  setUseOptionalVariables(other.getUseOptionalVariables());
8617  }
8618  if (other.hasUseExactLpReason()) {
8619  setUseExactLpReason(other.getUseExactLpReason());
8620  }
8621  if (other.hasUseBranchingInLp()) {
8622  setUseBranchingInLp(other.getUseBranchingInLp());
8623  }
8624  if (other.hasUseCombinedNoOverlap()) {
8625  setUseCombinedNoOverlap(other.getUseCombinedNoOverlap());
8626  }
8627  if (other.hasCatchSigintSignal()) {
8628  setCatchSigintSignal(other.getCatchSigintSignal());
8629  }
8630  if (other.hasMipMaxBound()) {
8631  setMipMaxBound(other.getMipMaxBound());
8632  }
8633  if (other.hasMipVarScaling()) {
8634  setMipVarScaling(other.getMipVarScaling());
8635  }
8636  if (other.hasMipWantedPrecision()) {
8637  setMipWantedPrecision(other.getMipWantedPrecision());
8638  }
8639  if (other.hasMipMaxActivityExponent()) {
8640  setMipMaxActivityExponent(other.getMipMaxActivityExponent());
8641  }
8642  if (other.hasMipCheckPrecision()) {
8643  setMipCheckPrecision(other.getMipCheckPrecision());
8644  }
8645  this.mergeUnknownFields(other.unknownFields);
8646  onChanged();
8647  return this;
8648  }
8649 
8650  @java.lang.Override
8651  public final boolean isInitialized() {
8652  return true;
8653  }
8654 
8655  @java.lang.Override
8657  com.google.protobuf.CodedInputStream input,
8658  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8659  throws java.io.IOException {
8660  com.google.ortools.sat.SatParameters parsedMessage = null;
8661  try {
8662  parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8663  } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8664  parsedMessage = (com.google.ortools.sat.SatParameters) e.getUnfinishedMessage();
8665  throw e.unwrapIOException();
8666  } finally {
8667  if (parsedMessage != null) {
8668  mergeFrom(parsedMessage);
8669  }
8670  }
8671  return this;
8672  }
8673  private int bitField0_;
8674  private int bitField1_;
8675  private int bitField2_;
8676  private int bitField3_;
8677 
8678  private int preferredVariableOrder_ = 0;
8682  public boolean hasPreferredVariableOrder() {
8683  return ((bitField0_ & 0x00000001) != 0);
8684  }
8689  @SuppressWarnings("deprecation")
8691  return result == null ? com.google.ortools.sat.SatParameters.VariableOrder.IN_ORDER : result;
8692  }
8697  if (value == null) {
8698  throw new NullPointerException();
8699  }
8700  bitField0_ |= 0x00000001;
8701  preferredVariableOrder_ = value.getNumber();
8702  onChanged();
8703  return this;
8704  }
8709  bitField0_ = (bitField0_ & ~0x00000001);
8710  preferredVariableOrder_ = 0;
8711  onChanged();
8712  return this;
8713  }
8714 
8715  private int initialPolarity_ = 1;
8719  public boolean hasInitialPolarity() {
8720  return ((bitField0_ & 0x00000002) != 0);
8721  }
8726  @SuppressWarnings("deprecation")
8728  return result == null ? com.google.ortools.sat.SatParameters.Polarity.POLARITY_FALSE : result;
8729  }
8734  if (value == null) {
8735  throw new NullPointerException();
8736  }
8737  bitField0_ |= 0x00000002;
8738  initialPolarity_ = value.getNumber();
8739  onChanged();
8740  return this;
8741  }
8746  bitField0_ = (bitField0_ & ~0x00000002);
8747  initialPolarity_ = 1;
8748  onChanged();
8749  return this;
8750  }
8751 
8752  private boolean usePhaseSaving_ = true;
8766  public boolean hasUsePhaseSaving() {
8767  return ((bitField0_ & 0x00000004) != 0);
8768  }
8782  public boolean getUsePhaseSaving() {
8783  return usePhaseSaving_;
8784  }
8798  public Builder setUsePhaseSaving(boolean value) {
8799  bitField0_ |= 0x00000004;
8800  usePhaseSaving_ = value;
8801  onChanged();
8802  return this;
8803  }
8818  bitField0_ = (bitField0_ & ~0x00000004);
8819  usePhaseSaving_ = true;
8820  onChanged();
8821  return this;
8822  }
8823 
8824  private double randomPolarityRatio_ ;
8836  public boolean hasRandomPolarityRatio() {
8837  return ((bitField0_ & 0x00000008) != 0);
8838  }
8850  public double getRandomPolarityRatio() {
8851  return randomPolarityRatio_;
8852  }
8864  public Builder setRandomPolarityRatio(double value) {
8865  bitField0_ |= 0x00000008;
8866  randomPolarityRatio_ = value;
8867  onChanged();
8868  return this;
8869  }
8882  bitField0_ = (bitField0_ & ~0x00000008);
8883  randomPolarityRatio_ = 0D;
8884  onChanged();
8885  return this;
8886  }
8887 
8888  private double randomBranchesRatio_ ;
8898  public boolean hasRandomBranchesRatio() {
8899  return ((bitField0_ & 0x00000010) != 0);
8900  }
8910  public double getRandomBranchesRatio() {
8911  return randomBranchesRatio_;
8912  }
8922  public Builder setRandomBranchesRatio(double value) {
8923  bitField0_ |= 0x00000010;
8924  randomBranchesRatio_ = value;
8925  onChanged();
8926  return this;
8927  }
8938  bitField0_ = (bitField0_ & ~0x00000010);
8939  randomBranchesRatio_ = 0D;
8940  onChanged();
8941  return this;
8942  }
8943 
8944  private boolean useErwaHeuristic_ ;
8954  public boolean hasUseErwaHeuristic() {
8955  return ((bitField0_ & 0x00000020) != 0);
8956  }
8966  public boolean getUseErwaHeuristic() {
8967  return useErwaHeuristic_;
8968  }
8978  public Builder setUseErwaHeuristic(boolean value) {
8979  bitField0_ |= 0x00000020;
8980  useErwaHeuristic_ = value;
8981  onChanged();
8982  return this;
8983  }
8994  bitField0_ = (bitField0_ & ~0x00000020);
8995  useErwaHeuristic_ = false;
8996  onChanged();
8997  return this;
8998  }
8999 
9000  private double initialVariablesActivity_ ;
9013  public boolean hasInitialVariablesActivity() {
9014  return ((bitField0_ & 0x00000040) != 0);
9015  }
9029  return initialVariablesActivity_;
9030  }
9043  public Builder setInitialVariablesActivity(double value) {
9044  bitField0_ |= 0x00000040;
9045  initialVariablesActivity_ = value;
9046  onChanged();
9047  return this;
9048  }
9062  bitField0_ = (bitField0_ & ~0x00000040);
9063  initialVariablesActivity_ = 0D;
9064  onChanged();
9065  return this;
9066  }
9067 
9068  private boolean alsoBumpVariablesInConflictReasons_ ;
9080  return ((bitField0_ & 0x00000080) != 0);
9081  }
9093  return alsoBumpVariablesInConflictReasons_;
9094  }
9106  bitField0_ |= 0x00000080;
9107  alsoBumpVariablesInConflictReasons_ = value;
9108  onChanged();
9109  return this;
9110  }
9122  bitField0_ = (bitField0_ & ~0x00000080);
9123  alsoBumpVariablesInConflictReasons_ = false;
9124  onChanged();
9125  return this;
9126  }
9127 
9128  private int minimizationAlgorithm_ = 2;
9132  public boolean hasMinimizationAlgorithm() {
9133  return ((bitField0_ & 0x00000100) != 0);
9134  }
9139  @SuppressWarnings("deprecation")
9141  return result == null ? com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm.RECURSIVE : result;
9142  }
9147  if (value == null) {
9148  throw new NullPointerException();
9149  }
9150  bitField0_ |= 0x00000100;
9151  minimizationAlgorithm_ = value.getNumber();
9152  onChanged();
9153  return this;
9154  }
9159  bitField0_ = (bitField0_ & ~0x00000100);
9160  minimizationAlgorithm_ = 2;
9161  onChanged();
9162  return this;
9163  }
9164 
9165  private int binaryMinimizationAlgorithm_ = 1;
9170  return ((bitField0_ & 0x00000200) != 0);
9171  }
9176  @SuppressWarnings("deprecation")
9179  }
9184  if (value == null) {
9185  throw new NullPointerException();
9186  }
9187  bitField0_ |= 0x00000200;
9188  binaryMinimizationAlgorithm_ = value.getNumber();
9189  onChanged();
9190  return this;
9191  }
9196  bitField0_ = (bitField0_ & ~0x00000200);
9197  binaryMinimizationAlgorithm_ = 1;
9198  onChanged();
9199  return this;
9200  }
9201 
9202  private boolean subsumptionDuringConflictAnalysis_ = true;
9214  return ((bitField0_ & 0x00000400) != 0);
9215  }
9227  return subsumptionDuringConflictAnalysis_;
9228  }
9240  bitField0_ |= 0x00000400;
9241  subsumptionDuringConflictAnalysis_ = value;
9242  onChanged();
9243  return this;
9244  }
9256  bitField0_ = (bitField0_ & ~0x00000400);
9257  subsumptionDuringConflictAnalysis_ = true;
9258  onChanged();
9259  return this;
9260  }
9261 
9262  private int clauseCleanupPeriod_ = 10000;
9270  public boolean hasClauseCleanupPeriod() {
9271  return ((bitField0_ & 0x00000800) != 0);
9272  }
9280  public int getClauseCleanupPeriod() {
9281  return clauseCleanupPeriod_;
9282  }
9290  public Builder setClauseCleanupPeriod(int value) {
9291  bitField0_ |= 0x00000800;
9292  clauseCleanupPeriod_ = value;
9293  onChanged();
9294  return this;
9295  }
9304  bitField0_ = (bitField0_ & ~0x00000800);
9305  clauseCleanupPeriod_ = 10000;
9306  onChanged();
9307  return this;
9308  }
9309 
9310  private int clauseCleanupTarget_ = 10000;
9319  public boolean hasClauseCleanupTarget() {
9320  return ((bitField0_ & 0x00001000) != 0);
9321  }
9330  public int getClauseCleanupTarget() {
9331  return clauseCleanupTarget_;
9332  }
9341  public Builder setClauseCleanupTarget(int value) {
9342  bitField0_ |= 0x00001000;
9343  clauseCleanupTarget_ = value;
9344  onChanged();
9345  return this;
9346  }
9356  bitField0_ = (bitField0_ & ~0x00001000);
9357  clauseCleanupTarget_ = 10000;
9358  onChanged();
9359  return this;
9360  }
9361 
9362  private int clauseCleanupProtection_ = 0;
9366  public boolean hasClauseCleanupProtection() {
9367  return ((bitField0_ & 0x00002000) != 0);
9368  }
9373  @SuppressWarnings("deprecation")
9375  return result == null ? com.google.ortools.sat.SatParameters.ClauseProtection.PROTECTION_NONE : result;
9376  }
9381  if (value == null) {
9382  throw new NullPointerException();
9383  }
9384  bitField0_ |= 0x00002000;
9385  clauseCleanupProtection_ = value.getNumber();
9386  onChanged();
9387  return this;
9388  }
9393  bitField0_ = (bitField0_ & ~0x00002000);
9394  clauseCleanupProtection_ = 0;
9395  onChanged();
9396  return this;
9397  }
9398 
9399  private int clauseCleanupLbdBound_ = 5;
9408  public boolean hasClauseCleanupLbdBound() {
9409  return ((bitField0_ & 0x00004000) != 0);
9410  }
9420  return clauseCleanupLbdBound_;
9421  }
9430  public Builder setClauseCleanupLbdBound(int value) {
9431  bitField0_ |= 0x00004000;
9432  clauseCleanupLbdBound_ = value;
9433  onChanged();
9434  return this;
9435  }
9445  bitField0_ = (bitField0_ & ~0x00004000);
9446  clauseCleanupLbdBound_ = 5;
9447  onChanged();
9448  return this;
9449  }
9450 
9451  private int clauseCleanupOrdering_ = 0;
9455  public boolean hasClauseCleanupOrdering() {
9456  return ((bitField0_ & 0x00008000) != 0);
9457  }
9462  @SuppressWarnings("deprecation")
9464  return result == null ? com.google.ortools.sat.SatParameters.ClauseOrdering.CLAUSE_ACTIVITY : result;
9465  }
9470  if (value == null) {
9471  throw new NullPointerException();
9472  }
9473  bitField0_ |= 0x00008000;
9474  clauseCleanupOrdering_ = value.getNumber();
9475  onChanged();
9476  return this;
9477  }
9482  bitField0_ = (bitField0_ & ~0x00008000);
9483  clauseCleanupOrdering_ = 0;
9484  onChanged();
9485  return this;
9486  }
9487 
9488  private int pbCleanupIncrement_ = 200;
9496  public boolean hasPbCleanupIncrement() {
9497  return ((bitField0_ & 0x00010000) != 0);
9498  }
9506  public int getPbCleanupIncrement() {
9507  return pbCleanupIncrement_;
9508  }
9516  public Builder setPbCleanupIncrement(int value) {
9517  bitField0_ |= 0x00010000;
9518  pbCleanupIncrement_ = value;
9519  onChanged();
9520  return this;
9521  }
9530  bitField0_ = (bitField0_ & ~0x00010000);
9531  pbCleanupIncrement_ = 200;
9532  onChanged();
9533  return this;
9534  }
9535 
9536  private double pbCleanupRatio_ = 0.5D;
9540  public boolean hasPbCleanupRatio() {
9541  return ((bitField0_ & 0x00020000) != 0);
9542  }
9546  public double getPbCleanupRatio() {
9547  return pbCleanupRatio_;
9548  }
9552  public Builder setPbCleanupRatio(double value) {
9553  bitField0_ |= 0x00020000;
9554  pbCleanupRatio_ = value;
9555  onChanged();
9556  return this;
9557  }
9562  bitField0_ = (bitField0_ & ~0x00020000);
9563  pbCleanupRatio_ = 0.5D;
9564  onChanged();
9565  return this;
9566  }
9567 
9568  private int minimizeWithPropagationRestartPeriod_ = 10;
9587  return ((bitField0_ & 0x00040000) != 0);
9588  }
9607  return minimizeWithPropagationRestartPeriod_;
9608  }
9627  bitField0_ |= 0x00040000;
9628  minimizeWithPropagationRestartPeriod_ = value;
9629  onChanged();
9630  return this;
9631  }
9650  bitField0_ = (bitField0_ & ~0x00040000);
9651  minimizeWithPropagationRestartPeriod_ = 10;
9652  onChanged();
9653  return this;
9654  }
9655 
9656  private int minimizeWithPropagationNumDecisions_ = 1000;
9661  return ((bitField0_ & 0x00080000) != 0);
9662  }
9667  return minimizeWithPropagationNumDecisions_;
9668  }
9673  bitField0_ |= 0x00080000;
9674  minimizeWithPropagationNumDecisions_ = value;
9675  onChanged();
9676  return this;
9677  }
9682  bitField0_ = (bitField0_ & ~0x00080000);
9683  minimizeWithPropagationNumDecisions_ = 1000;
9684  onChanged();
9685  return this;
9686  }
9687 
9688  private double variableActivityDecay_ = 0.8D;
9702  public boolean hasVariableActivityDecay() {
9703  return ((bitField0_ & 0x00100000) != 0);
9704  }
9718  public double getVariableActivityDecay() {
9719  return variableActivityDecay_;
9720  }
9734  public Builder setVariableActivityDecay(double value) {
9735  bitField0_ |= 0x00100000;
9736  variableActivityDecay_ = value;
9737  onChanged();
9738  return this;
9739  }
9754  bitField0_ = (bitField0_ & ~0x00100000);
9755  variableActivityDecay_ = 0.8D;
9756  onChanged();
9757  return this;
9758  }
9759 
9760  private double maxVariableActivityValue_ = 1e+100D;
9764  public boolean hasMaxVariableActivityValue() {
9765  return ((bitField0_ & 0x00200000) != 0);
9766  }
9771  return maxVariableActivityValue_;
9772  }
9776  public Builder setMaxVariableActivityValue(double value) {
9777  bitField0_ |= 0x00200000;
9778  maxVariableActivityValue_ = value;
9779  onChanged();
9780  return this;
9781  }
9786  bitField0_ = (bitField0_ & ~0x00200000);
9787  maxVariableActivityValue_ = 1e+100D;
9788  onChanged();
9789  return this;
9790  }
9791 
9792  private double glucoseMaxDecay_ = 0.95D;
9803  public boolean hasGlucoseMaxDecay() {
9804  return ((bitField0_ & 0x00400000) != 0);
9805  }
9816  public double getGlucoseMaxDecay() {
9817  return glucoseMaxDecay_;
9818  }
9829  public Builder setGlucoseMaxDecay(double value) {
9830  bitField0_ |= 0x00400000;
9831  glucoseMaxDecay_ = value;
9832  onChanged();
9833  return this;
9834  }
9846  bitField0_ = (bitField0_ & ~0x00400000);
9847  glucoseMaxDecay_ = 0.95D;
9848  onChanged();
9849  return this;
9850  }
9851 
9852  private double glucoseDecayIncrement_ = 0.01D;
9856  public boolean hasGlucoseDecayIncrement() {
9857  return ((bitField0_ & 0x00800000) != 0);
9858  }
9862  public double getGlucoseDecayIncrement() {
9863  return glucoseDecayIncrement_;
9864  }
9868  public Builder setGlucoseDecayIncrement(double value) {
9869  bitField0_ |= 0x00800000;
9870  glucoseDecayIncrement_ = value;
9871  onChanged();
9872  return this;
9873  }
9878  bitField0_ = (bitField0_ & ~0x00800000);
9879  glucoseDecayIncrement_ = 0.01D;
9880  onChanged();
9881  return this;
9882  }
9883 
9884  private int glucoseDecayIncrementPeriod_ = 5000;
9889  return ((bitField0_ & 0x01000000) != 0);
9890  }
9895  return glucoseDecayIncrementPeriod_;
9896  }
9901  bitField0_ |= 0x01000000;
9902  glucoseDecayIncrementPeriod_ = value;
9903  onChanged();
9904  return this;
9905  }
9910  bitField0_ = (bitField0_ & ~0x01000000);
9911  glucoseDecayIncrementPeriod_ = 5000;
9912  onChanged();
9913  return this;
9914  }
9915 
9916  private double clauseActivityDecay_ = 0.999D;
9924  public boolean hasClauseActivityDecay() {
9925  return ((bitField0_ & 0x02000000) != 0);
9926  }
9934  public double getClauseActivityDecay() {
9935  return clauseActivityDecay_;
9936  }
9944  public Builder setClauseActivityDecay(double value) {
9945  bitField0_ |= 0x02000000;
9946  clauseActivityDecay_ = value;
9947  onChanged();
9948  return this;
9949  }
9958  bitField0_ = (bitField0_ & ~0x02000000);
9959  clauseActivityDecay_ = 0.999D;
9960  onChanged();
9961  return this;
9962  }
9963 
9964  private double maxClauseActivityValue_ = 1e+20D;
9968  public boolean hasMaxClauseActivityValue() {
9969  return ((bitField0_ & 0x04000000) != 0);
9970  }
9974  public double getMaxClauseActivityValue() {
9975  return maxClauseActivityValue_;
9976  }
9980  public Builder setMaxClauseActivityValue(double value) {
9981  bitField0_ |= 0x04000000;
9982  maxClauseActivityValue_ = value;
9983  onChanged();
9984  return this;
9985  }
9990  bitField0_ = (bitField0_ & ~0x04000000);
9991  maxClauseActivityValue_ = 1e+20D;
9992  onChanged();
9993  return this;
9994  }
9995 
9996  private java.util.List<java.lang.Integer> restartAlgorithms_ =
9997  java.util.Collections.emptyList();
9998  private void ensureRestartAlgorithmsIsMutable() {
9999  if (!((bitField0_ & 0x08000000) != 0)) {
10000  restartAlgorithms_ = new java.util.ArrayList<java.lang.Integer>(restartAlgorithms_);
10001  bitField0_ |= 0x08000000;
10002  }
10003  }
10019  return new com.google.protobuf.Internal.ListAdapter<
10020  java.lang.Integer, com.google.ortools.sat.SatParameters.RestartAlgorithm>(restartAlgorithms_, restartAlgorithms_converter_);
10021  }
10037  return restartAlgorithms_.size();
10038  }
10054  return restartAlgorithms_converter_.convert(restartAlgorithms_.get(index));
10055  }
10071  int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value) {
10072  if (value == null) {
10073  throw new NullPointerException();
10074  }
10075  ensureRestartAlgorithmsIsMutable();
10076  restartAlgorithms_.set(index, value.getNumber());
10077  onChanged();
10078  return this;
10079  }
10095  if (value == null) {
10096  throw new NullPointerException();
10097  }
10098  ensureRestartAlgorithmsIsMutable();
10099  restartAlgorithms_.add(value.getNumber());
10100  onChanged();
10101  return this;
10102  }
10118  java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm> values) {
10119  ensureRestartAlgorithmsIsMutable();
10120  for (com.google.ortools.sat.SatParameters.RestartAlgorithm value : values) {
10121  restartAlgorithms_.add(value.getNumber());
10122  }
10123  onChanged();
10124  return this;
10125  }
10141  restartAlgorithms_ = java.util.Collections.emptyList();
10142  bitField0_ = (bitField0_ & ~0x08000000);
10143  onChanged();
10144  return this;
10145  }
10146 
10147  private java.lang.Object defaultRestartAlgorithms_ = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,DL_MOVING_AVERAGE_RESTART";
10151  public boolean hasDefaultRestartAlgorithms() {
10152  return ((bitField0_ & 0x10000000) != 0);
10153  }
10157  public java.lang.String getDefaultRestartAlgorithms() {
10158  java.lang.Object ref = defaultRestartAlgorithms_;
10159  if (!(ref instanceof java.lang.String)) {
10160  com.google.protobuf.ByteString bs =
10161  (com.google.protobuf.ByteString) ref;
10162  java.lang.String s = bs.toStringUtf8();
10163  if (bs.isValidUtf8()) {
10164  defaultRestartAlgorithms_ = s;
10165  }
10166  return s;
10167  } else {
10168  return (java.lang.String) ref;
10169  }
10170  }
10174  public com.google.protobuf.ByteString
10176  java.lang.Object ref = defaultRestartAlgorithms_;
10177  if (ref instanceof String) {
10178  com.google.protobuf.ByteString b =
10179  com.google.protobuf.ByteString.copyFromUtf8(
10180  (java.lang.String) ref);
10181  defaultRestartAlgorithms_ = b;
10182  return b;
10183  } else {
10184  return (com.google.protobuf.ByteString) ref;
10185  }
10186  }
10191  java.lang.String value) {
10192  if (value == null) {
10193  throw new NullPointerException();
10194  }
10195  bitField0_ |= 0x10000000;
10196  defaultRestartAlgorithms_ = value;
10197  onChanged();
10198  return this;
10199  }
10204  bitField0_ = (bitField0_ & ~0x10000000);
10205  defaultRestartAlgorithms_ = getDefaultInstance().getDefaultRestartAlgorithms();
10206  onChanged();
10207  return this;
10208  }
10213  com.google.protobuf.ByteString value) {
10214  if (value == null) {
10215  throw new NullPointerException();
10216  }
10217  bitField0_ |= 0x10000000;
10218  defaultRestartAlgorithms_ = value;
10219  onChanged();
10220  return this;
10221  }
10222 
10223  private int restartPeriod_ = 50;
10232  public boolean hasRestartPeriod() {
10233  return ((bitField0_ & 0x20000000) != 0);
10234  }
10243  public int getRestartPeriod() {
10244  return restartPeriod_;
10245  }
10254  public Builder setRestartPeriod(int value) {
10255  bitField0_ |= 0x20000000;
10256  restartPeriod_ = value;
10257  onChanged();
10258  return this;
10259  }
10269  bitField0_ = (bitField0_ & ~0x20000000);
10270  restartPeriod_ = 50;
10271  onChanged();
10272  return this;
10273  }
10274 
10275  private int restartRunningWindowSize_ = 50;
10283  public boolean hasRestartRunningWindowSize() {
10284  return ((bitField0_ & 0x40000000) != 0);
10285  }
10294  return restartRunningWindowSize_;
10295  }
10304  bitField0_ |= 0x40000000;
10305  restartRunningWindowSize_ = value;
10306  onChanged();
10307  return this;
10308  }
10317  bitField0_ = (bitField0_ & ~0x40000000);
10318  restartRunningWindowSize_ = 50;
10319  onChanged();
10320  return this;
10321  }
10322 
10323  private double restartDlAverageRatio_ = 1D;
10332  public boolean hasRestartDlAverageRatio() {
10333  return ((bitField0_ & 0x80000000) != 0);
10334  }
10343  public double getRestartDlAverageRatio() {
10344  return restartDlAverageRatio_;
10345  }
10354  public Builder setRestartDlAverageRatio(double value) {
10355  bitField0_ |= 0x80000000;
10356  restartDlAverageRatio_ = value;
10357  onChanged();
10358  return this;
10359  }
10369  bitField0_ = (bitField0_ & ~0x80000000);
10370  restartDlAverageRatio_ = 1D;
10371  onChanged();
10372  return this;
10373  }
10374 
10375  private double restartLbdAverageRatio_ = 1D;
10379  public boolean hasRestartLbdAverageRatio() {
10380  return ((bitField1_ & 0x00000001) != 0);
10381  }
10385  public double getRestartLbdAverageRatio() {
10386  return restartLbdAverageRatio_;
10387  }
10391  public Builder setRestartLbdAverageRatio(double value) {
10392  bitField1_ |= 0x00000001;
10393  restartLbdAverageRatio_ = value;
10394  onChanged();
10395  return this;
10396  }
10401  bitField1_ = (bitField1_ & ~0x00000001);
10402  restartLbdAverageRatio_ = 1D;
10403  onChanged();
10404  return this;
10405  }
10406 
10407  private boolean useBlockingRestart_ ;
10417  public boolean hasUseBlockingRestart() {
10418  return ((bitField1_ & 0x00000002) != 0);
10419  }
10429  public boolean getUseBlockingRestart() {
10430  return useBlockingRestart_;
10431  }
10441  public Builder setUseBlockingRestart(boolean value) {
10442  bitField1_ |= 0x00000002;
10443  useBlockingRestart_ = value;
10444  onChanged();
10445  return this;
10446  }
10457  bitField1_ = (bitField1_ & ~0x00000002);
10458  useBlockingRestart_ = false;
10459  onChanged();
10460  return this;
10461  }
10462 
10463  private int blockingRestartWindowSize_ = 5000;
10467  public boolean hasBlockingRestartWindowSize() {
10468  return ((bitField1_ & 0x00000004) != 0);
10469  }
10474  return blockingRestartWindowSize_;
10475  }
10480  bitField1_ |= 0x00000004;
10481  blockingRestartWindowSize_ = value;
10482  onChanged();
10483  return this;
10484  }
10489  bitField1_ = (bitField1_ & ~0x00000004);
10490  blockingRestartWindowSize_ = 5000;
10491  onChanged();
10492  return this;
10493  }
10494 
10495  private double blockingRestartMultiplier_ = 1.4D;
10499  public boolean hasBlockingRestartMultiplier() {
10500  return ((bitField1_ & 0x00000008) != 0);
10501  }
10506  return blockingRestartMultiplier_;
10507  }
10511  public Builder setBlockingRestartMultiplier(double value) {
10512  bitField1_ |= 0x00000008;
10513  blockingRestartMultiplier_ = value;
10514  onChanged();
10515  return this;
10516  }
10521  bitField1_ = (bitField1_ & ~0x00000008);
10522  blockingRestartMultiplier_ = 1.4D;
10523  onChanged();
10524  return this;
10525  }
10526 
10527  private int numConflictsBeforeStrategyChanges_ ;
10538  return ((bitField1_ & 0x00000010) != 0);
10539  }
10550  return numConflictsBeforeStrategyChanges_;
10551  }
10562  bitField1_ |= 0x00000010;
10563  numConflictsBeforeStrategyChanges_ = value;
10564  onChanged();
10565  return this;
10566  }
10577  bitField1_ = (bitField1_ & ~0x00000010);
10578  numConflictsBeforeStrategyChanges_ = 0;
10579  onChanged();
10580  return this;
10581  }
10582 
10583  private double strategyChangeIncreaseRatio_ ;
10593  return ((bitField1_ & 0x00000020) != 0);
10594  }
10604  return strategyChangeIncreaseRatio_;
10605  }
10615  bitField1_ |= 0x00000020;
10616  strategyChangeIncreaseRatio_ = value;
10617  onChanged();
10618  return this;
10619  }
10629  bitField1_ = (bitField1_ & ~0x00000020);
10630  strategyChangeIncreaseRatio_ = 0D;
10631  onChanged();
10632  return this;
10633  }
10634 
10635  private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10645  public boolean hasMaxTimeInSeconds() {
10646  return ((bitField1_ & 0x00000040) != 0);
10647  }
10657  public double getMaxTimeInSeconds() {
10658  return maxTimeInSeconds_;
10659  }
10669  public Builder setMaxTimeInSeconds(double value) {
10670  bitField1_ |= 0x00000040;
10671  maxTimeInSeconds_ = value;
10672  onChanged();
10673  return this;
10674  }
10685  bitField1_ = (bitField1_ & ~0x00000040);
10686  maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
10687  onChanged();
10688  return this;
10689  }
10690 
10691  private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10703  public boolean hasMaxDeterministicTime() {
10704  return ((bitField1_ & 0x00000080) != 0);
10705  }
10717  public double getMaxDeterministicTime() {
10718  return maxDeterministicTime_;
10719  }
10731  public Builder setMaxDeterministicTime(double value) {
10732  bitField1_ |= 0x00000080;
10733  maxDeterministicTime_ = value;
10734  onChanged();
10735  return this;
10736  }
10749  bitField1_ = (bitField1_ & ~0x00000080);
10750  maxDeterministicTime_ = Double.POSITIVE_INFINITY;
10751  onChanged();
10752  return this;
10753  }
10754 
10755  private long maxNumberOfConflicts_ = 9223372036854775807L;
10768  public boolean hasMaxNumberOfConflicts() {
10769  return ((bitField1_ & 0x00000100) != 0);
10770  }
10783  public long getMaxNumberOfConflicts() {
10784  return maxNumberOfConflicts_;
10785  }
10798  public Builder setMaxNumberOfConflicts(long value) {
10799  bitField1_ |= 0x00000100;
10800  maxNumberOfConflicts_ = value;
10801  onChanged();
10802  return this;
10803  }
10817  bitField1_ = (bitField1_ & ~0x00000100);
10818  maxNumberOfConflicts_ = 9223372036854775807L;
10819  onChanged();
10820  return this;
10821  }
10822 
10823  private long maxMemoryInMb_ = 10000L;
10834  public boolean hasMaxMemoryInMb() {
10835  return ((bitField1_ & 0x00000200) != 0);
10836  }
10847  public long getMaxMemoryInMb() {
10848  return maxMemoryInMb_;
10849  }
10860  public Builder setMaxMemoryInMb(long value) {
10861  bitField1_ |= 0x00000200;
10862  maxMemoryInMb_ = value;
10863  onChanged();
10864  return this;
10865  }
10877  bitField1_ = (bitField1_ & ~0x00000200);
10878  maxMemoryInMb_ = 10000L;
10879  onChanged();
10880  return this;
10881  }
10882 
10883  private boolean treatBinaryClausesSeparately_ = true;
10894  return ((bitField1_ & 0x00000400) != 0);
10895  }
10906  return treatBinaryClausesSeparately_;
10907  }
10918  bitField1_ |= 0x00000400;
10919  treatBinaryClausesSeparately_ = value;
10920  onChanged();
10921  return this;
10922  }
10933  bitField1_ = (bitField1_ & ~0x00000400);
10934  treatBinaryClausesSeparately_ = true;
10935  onChanged();
10936  return this;
10937  }
10938 
10939  private int randomSeed_ = 1;
10952  public boolean hasRandomSeed() {
10953  return ((bitField1_ & 0x00000800) != 0);
10954  }
10967  public int getRandomSeed() {
10968  return randomSeed_;
10969  }
10982  public Builder setRandomSeed(int value) {
10983  bitField1_ |= 0x00000800;
10984  randomSeed_ = value;
10985  onChanged();
10986  return this;
10987  }
11001  bitField1_ = (bitField1_ & ~0x00000800);
11002  randomSeed_ = 1;
11003  onChanged();
11004  return this;
11005  }
11006 
11007  private boolean logSearchProgress_ ;
11015  public boolean hasLogSearchProgress() {
11016  return ((bitField1_ & 0x00001000) != 0);
11017  }
11025  public boolean getLogSearchProgress() {
11026  return logSearchProgress_;
11027  }
11035  public Builder setLogSearchProgress(boolean value) {
11036  bitField1_ |= 0x00001000;
11037  logSearchProgress_ = value;
11038  onChanged();
11039  return this;
11040  }
11049  bitField1_ = (bitField1_ & ~0x00001000);
11050  logSearchProgress_ = false;
11051  onChanged();
11052  return this;
11053  }
11054 
11055  private boolean usePbResolution_ ;
11066  public boolean hasUsePbResolution() {
11067  return ((bitField1_ & 0x00002000) != 0);
11068  }
11079  public boolean getUsePbResolution() {
11080  return usePbResolution_;
11081  }
11092  public Builder setUsePbResolution(boolean value) {
11093  bitField1_ |= 0x00002000;
11094  usePbResolution_ = value;
11095  onChanged();
11096  return this;
11097  }
11109  bitField1_ = (bitField1_ & ~0x00002000);
11110  usePbResolution_ = false;
11111  onChanged();
11112  return this;
11113  }
11114 
11115  private boolean minimizeReductionDuringPbResolution_ ;
11127  return ((bitField1_ & 0x00004000) != 0);
11128  }
11140  return minimizeReductionDuringPbResolution_;
11141  }
11153  bitField1_ |= 0x00004000;
11154  minimizeReductionDuringPbResolution_ = value;
11155  onChanged();
11156  return this;
11157  }
11169  bitField1_ = (bitField1_ & ~0x00004000);
11170  minimizeReductionDuringPbResolution_ = false;
11171  onChanged();
11172  return this;
11173  }
11174 
11175  private boolean countAssumptionLevelsInLbd_ = true;
11191  return ((bitField1_ & 0x00008000) != 0);
11192  }
11208  return countAssumptionLevelsInLbd_;
11209  }
11224  public Builder setCountAssumptionLevelsInLbd(boolean value) {
11225  bitField1_ |= 0x00008000;
11226  countAssumptionLevelsInLbd_ = value;
11227  onChanged();
11228  return this;
11229  }
11245  bitField1_ = (bitField1_ & ~0x00008000);
11246  countAssumptionLevelsInLbd_ = true;
11247  onChanged();
11248  return this;
11249  }
11250 
11251  private int presolveBveThreshold_ = 500;
11261  public boolean hasPresolveBveThreshold() {
11262  return ((bitField1_ & 0x00010000) != 0);
11263  }
11274  return presolveBveThreshold_;
11275  }
11285  public Builder setPresolveBveThreshold(int value) {
11286  bitField1_ |= 0x00010000;
11287  presolveBveThreshold_ = value;
11288  onChanged();
11289  return this;
11290  }
11301  bitField1_ = (bitField1_ & ~0x00010000);
11302  presolveBveThreshold_ = 500;
11303  onChanged();
11304  return this;
11305  }
11306 
11307  private int presolveBveClauseWeight_ = 3;
11316  public boolean hasPresolveBveClauseWeight() {
11317  return ((bitField1_ & 0x00020000) != 0);
11318  }
11328  return presolveBveClauseWeight_;
11329  }
11339  bitField1_ |= 0x00020000;
11340  presolveBveClauseWeight_ = value;
11341  onChanged();
11342  return this;
11343  }
11353  bitField1_ = (bitField1_ & ~0x00020000);
11354  presolveBveClauseWeight_ = 3;
11355  onChanged();
11356  return this;
11357  }
11358 
11359  private double presolveProbingDeterministicTimeLimit_ = 30D;
11369  return ((bitField1_ & 0x00040000) != 0);
11370  }
11380  return presolveProbingDeterministicTimeLimit_;
11381  }
11391  bitField1_ |= 0x00040000;
11392  presolveProbingDeterministicTimeLimit_ = value;
11393  onChanged();
11394  return this;
11395  }
11405  bitField1_ = (bitField1_ & ~0x00040000);
11406  presolveProbingDeterministicTimeLimit_ = 30D;
11407  onChanged();
11408  return this;
11409  }
11410 
11411  private boolean presolveBlockedClause_ = true;
11420  public boolean hasPresolveBlockedClause() {
11421  return ((bitField1_ & 0x00080000) != 0);
11422  }
11431  public boolean getPresolveBlockedClause() {
11432  return presolveBlockedClause_;
11433  }
11442  public Builder setPresolveBlockedClause(boolean value) {
11443  bitField1_ |= 0x00080000;
11444  presolveBlockedClause_ = value;
11445  onChanged();
11446  return this;
11447  }
11457  bitField1_ = (bitField1_ & ~0x00080000);
11458  presolveBlockedClause_ = true;
11459  onChanged();
11460  return this;
11461  }
11462 
11463  private boolean presolveUseBva_ = true;
11471  public boolean hasPresolveUseBva() {
11472  return ((bitField1_ & 0x00100000) != 0);
11473  }
11481  public boolean getPresolveUseBva() {
11482  return presolveUseBva_;
11483  }
11491  public Builder setPresolveUseBva(boolean value) {
11492  bitField1_ |= 0x00100000;
11493  presolveUseBva_ = value;
11494  onChanged();
11495  return this;
11496  }
11505  bitField1_ = (bitField1_ & ~0x00100000);
11506  presolveUseBva_ = true;
11507  onChanged();
11508  return this;
11509  }
11510 
11511  private int presolveBvaThreshold_ = 1;
11522  public boolean hasPresolveBvaThreshold() {
11523  return ((bitField1_ & 0x00200000) != 0);
11524  }
11536  return presolveBvaThreshold_;
11537  }
11548  public Builder setPresolveBvaThreshold(int value) {
11549  bitField1_ |= 0x00200000;
11550  presolveBvaThreshold_ = value;
11551  onChanged();
11552  return this;
11553  }
11565  bitField1_ = (bitField1_ & ~0x00200000);
11566  presolveBvaThreshold_ = 1;
11567  onChanged();
11568  return this;
11569  }
11570 
11571  private int maxPresolveIterations_ = 3;
11581  public boolean hasMaxPresolveIterations() {
11582  return ((bitField1_ & 0x00400000) != 0);
11583  }
11594  return maxPresolveIterations_;
11595  }
11605  public Builder setMaxPresolveIterations(int value) {
11606  bitField1_ |= 0x00400000;
11607  maxPresolveIterations_ = value;
11608  onChanged();
11609  return this;
11610  }
11621  bitField1_ = (bitField1_ & ~0x00400000);
11622  maxPresolveIterations_ = 3;
11623  onChanged();
11624  return this;
11625  }
11626 
11627  private boolean cpModelPresolve_ = true;
11635  public boolean hasCpModelPresolve() {
11636  return ((bitField1_ & 0x00800000) != 0);
11637  }
11645  public boolean getCpModelPresolve() {
11646  return cpModelPresolve_;
11647  }
11655  public Builder setCpModelPresolve(boolean value) {
11656  bitField1_ |= 0x00800000;
11657  cpModelPresolve_ = value;
11658  onChanged();
11659  return this;
11660  }
11669  bitField1_ = (bitField1_ & ~0x00800000);
11670  cpModelPresolve_ = true;
11671  onChanged();
11672  return this;
11673  }
11674 
11675  private int cpModelProbingLevel_ = 2;
11683  public boolean hasCpModelProbingLevel() {
11684  return ((bitField1_ & 0x01000000) != 0);
11685  }
11693  public int getCpModelProbingLevel() {
11694  return cpModelProbingLevel_;
11695  }
11703  public Builder setCpModelProbingLevel(int value) {
11704  bitField1_ |= 0x01000000;
11705  cpModelProbingLevel_ = value;
11706  onChanged();
11707  return this;
11708  }
11717  bitField1_ = (bitField1_ & ~0x01000000);
11718  cpModelProbingLevel_ = 2;
11719  onChanged();
11720  return this;
11721  }
11722 
11723  private boolean cpModelUseSatPresolve_ = true;
11731  public boolean hasCpModelUseSatPresolve() {
11732  return ((bitField1_ & 0x02000000) != 0);
11733  }
11741  public boolean getCpModelUseSatPresolve() {
11742  return cpModelUseSatPresolve_;
11743  }
11751  public Builder setCpModelUseSatPresolve(boolean value) {
11752  bitField1_ |= 0x02000000;
11753  cpModelUseSatPresolve_ = value;
11754  onChanged();
11755  return this;
11756  }
11765  bitField1_ = (bitField1_ & ~0x02000000);
11766  cpModelUseSatPresolve_ = true;
11767  onChanged();
11768  return this;
11769  }
11770 
11771  private boolean expandElementConstraints_ = true;
11780  public boolean hasExpandElementConstraints() {
11781  return ((bitField1_ & 0x04000000) != 0);
11782  }
11791  public boolean getExpandElementConstraints() {
11792  return expandElementConstraints_;
11793  }
11802  public Builder setExpandElementConstraints(boolean value) {
11803  bitField1_ |= 0x04000000;
11804  expandElementConstraints_ = value;
11805  onChanged();
11806  return this;
11807  }
11817  bitField1_ = (bitField1_ & ~0x04000000);
11818  expandElementConstraints_ = true;
11819  onChanged();
11820  return this;
11821  }
11822 
11823  private boolean useOptimizationHints_ = true;
11834  public boolean hasUseOptimizationHints() {
11835  return ((bitField1_ & 0x08000000) != 0);
11836  }
11847  public boolean getUseOptimizationHints() {
11848  return useOptimizationHints_;
11849  }
11860  public Builder setUseOptimizationHints(boolean value) {
11861  bitField1_ |= 0x08000000;
11862  useOptimizationHints_ = value;
11863  onChanged();
11864  return this;
11865  }
11877  bitField1_ = (bitField1_ & ~0x08000000);
11878  useOptimizationHints_ = true;
11879  onChanged();
11880  return this;
11881  }
11882 
11883  private boolean minimizeCore_ = true;
11891  public boolean hasMinimizeCore() {
11892  return ((bitField1_ & 0x10000000) != 0);
11893  }
11901  public boolean getMinimizeCore() {
11902  return minimizeCore_;
11903  }
11911  public Builder setMinimizeCore(boolean value) {
11912  bitField1_ |= 0x10000000;
11913  minimizeCore_ = value;
11914  onChanged();
11915  return this;
11916  }
11925  bitField1_ = (bitField1_ & ~0x10000000);
11926  minimizeCore_ = true;
11927  onChanged();
11928  return this;
11929  }
11930 
11931  private boolean findMultipleCores_ = true;
11940  public boolean hasFindMultipleCores() {
11941  return ((bitField1_ & 0x20000000) != 0);
11942  }
11951  public boolean getFindMultipleCores() {
11952  return findMultipleCores_;
11953  }
11962  public Builder setFindMultipleCores(boolean value) {
11963  bitField1_ |= 0x20000000;
11964  findMultipleCores_ = value;
11965  onChanged();
11966  return this;
11967  }
11977  bitField1_ = (bitField1_ & ~0x20000000);
11978  findMultipleCores_ = true;
11979  onChanged();
11980  return this;
11981  }
11982 
11983  private boolean coverOptimization_ = true;
11992  public boolean hasCoverOptimization() {
11993  return ((bitField1_ & 0x40000000) != 0);
11994  }
12003  public boolean getCoverOptimization() {
12004  return coverOptimization_;
12005  }
12014  public Builder setCoverOptimization(boolean value) {
12015  bitField1_ |= 0x40000000;
12016  coverOptimization_ = value;
12017  onChanged();
12018  return this;
12019  }
12029  bitField1_ = (bitField1_ & ~0x40000000);
12030  coverOptimization_ = true;
12031  onChanged();
12032  return this;
12033  }
12034 
12035  private int maxSatAssumptionOrder_ = 0;
12039  public boolean hasMaxSatAssumptionOrder() {
12040  return ((bitField1_ & 0x80000000) != 0);
12041  }
12046  @SuppressWarnings("deprecation")
12049  }
12054  if (value == null) {
12055  throw new NullPointerException();
12056  }
12057  bitField1_ |= 0x80000000;
12058  maxSatAssumptionOrder_ = value.getNumber();
12059  onChanged();
12060  return this;
12061  }
12066  bitField1_ = (bitField1_ & ~0x80000000);
12067  maxSatAssumptionOrder_ = 0;
12068  onChanged();
12069  return this;
12070  }
12071 
12072  private boolean maxSatReverseAssumptionOrder_ ;
12082  return ((bitField2_ & 0x00000001) != 0);
12083  }
12093  return maxSatReverseAssumptionOrder_;
12094  }
12104  bitField2_ |= 0x00000001;
12105  maxSatReverseAssumptionOrder_ = value;
12106  onChanged();
12107  return this;
12108  }
12118  bitField2_ = (bitField2_ & ~0x00000001);
12119  maxSatReverseAssumptionOrder_ = false;
12120  onChanged();
12121  return this;
12122  }
12123 
12124  private int maxSatStratification_ = 1;
12128  public boolean hasMaxSatStratification() {
12129  return ((bitField2_ & 0x00000002) != 0);
12130  }
12135  @SuppressWarnings("deprecation")
12138  }
12143  if (value == null) {
12144  throw new NullPointerException();
12145  }
12146  bitField2_ |= 0x00000002;
12147  maxSatStratification_ = value.getNumber();
12148  onChanged();
12149  return this;
12150  }
12155  bitField2_ = (bitField2_ & ~0x00000002);
12156  maxSatStratification_ = 1;
12157  onChanged();
12158  return this;
12159  }
12160 
12161  private boolean usePrecedencesInDisjunctiveConstraint_ = true;
12177  return ((bitField2_ & 0x00000004) != 0);
12178  }
12194  return usePrecedencesInDisjunctiveConstraint_;
12195  }
12211  bitField2_ |= 0x00000004;
12212  usePrecedencesInDisjunctiveConstraint_ = value;
12213  onChanged();
12214  return this;
12215  }
12231  bitField2_ = (bitField2_ & ~0x00000004);
12232  usePrecedencesInDisjunctiveConstraint_ = true;
12233  onChanged();
12234  return this;
12235  }
12236 
12237  private boolean useOverloadCheckerInCumulativeConstraint_ ;
12251  return ((bitField2_ & 0x00000008) != 0);
12252  }
12266  return useOverloadCheckerInCumulativeConstraint_;
12267  }
12281  bitField2_ |= 0x00000008;
12282  useOverloadCheckerInCumulativeConstraint_ = value;
12283  onChanged();
12284  return this;
12285  }
12299  bitField2_ = (bitField2_ & ~0x00000008);
12300  useOverloadCheckerInCumulativeConstraint_ = false;
12301  onChanged();
12302  return this;
12303  }
12304 
12305  private boolean useTimetableEdgeFindingInCumulativeConstraint_ ;
12319  return ((bitField2_ & 0x00000010) != 0);
12320  }
12334  return useTimetableEdgeFindingInCumulativeConstraint_;
12335  }
12349  bitField2_ |= 0x00000010;
12350  useTimetableEdgeFindingInCumulativeConstraint_ = value;
12351  onChanged();
12352  return this;
12353  }
12367  bitField2_ = (bitField2_ & ~0x00000010);
12368  useTimetableEdgeFindingInCumulativeConstraint_ = false;
12369  onChanged();
12370  return this;
12371  }
12372 
12373  private boolean useDisjunctiveConstraintInCumulativeConstraint_ = true;
12389  return ((bitField2_ & 0x00000020) != 0);
12390  }
12406  return useDisjunctiveConstraintInCumulativeConstraint_;
12407  }
12423  bitField2_ |= 0x00000020;
12424  useDisjunctiveConstraintInCumulativeConstraint_ = value;
12425  onChanged();
12426  return this;
12427  }
12443  bitField2_ = (bitField2_ & ~0x00000020);
12444  useDisjunctiveConstraintInCumulativeConstraint_ = true;
12445  onChanged();
12446  return this;
12447  }
12448 
12449  private int linearizationLevel_ = 1;
12460  public boolean hasLinearizationLevel() {
12461  return ((bitField2_ & 0x00000040) != 0);
12462  }
12473  public int getLinearizationLevel() {
12474  return linearizationLevel_;
12475  }
12486  public Builder setLinearizationLevel(int value) {
12487  bitField2_ |= 0x00000040;
12488  linearizationLevel_ = value;
12489  onChanged();
12490  return this;
12491  }
12503  bitField2_ = (bitField2_ & ~0x00000040);
12504  linearizationLevel_ = 1;
12505  onChanged();
12506  return this;
12507  }
12508 
12509  private int booleanEncodingLevel_ = 1;
12518  public boolean hasBooleanEncodingLevel() {
12519  return ((bitField2_ & 0x00000080) != 0);
12520  }
12530  return booleanEncodingLevel_;
12531  }
12540  public Builder setBooleanEncodingLevel(int value) {
12541  bitField2_ |= 0x00000080;
12542  booleanEncodingLevel_ = value;
12543  onChanged();
12544  return this;
12545  }
12555  bitField2_ = (bitField2_ & ~0x00000080);
12556  booleanEncodingLevel_ = 1;
12557  onChanged();
12558  return this;
12559  }
12560 
12561  private int maxNumCuts_ = 5000;
12572  public boolean hasMaxNumCuts() {
12573  return ((bitField2_ & 0x00000100) != 0);
12574  }
12585  public int getMaxNumCuts() {
12586  return maxNumCuts_;
12587  }
12598  public Builder setMaxNumCuts(int value) {
12599  bitField2_ |= 0x00000100;
12600  maxNumCuts_ = value;
12601  onChanged();
12602  return this;
12603  }
12615  bitField2_ = (bitField2_ & ~0x00000100);
12616  maxNumCuts_ = 5000;
12617  onChanged();
12618  return this;
12619  }
12620 
12621  private boolean onlyAddCutsAtLevelZero_ ;
12630  public boolean hasOnlyAddCutsAtLevelZero() {
12631  return ((bitField2_ & 0x00000200) != 0);
12632  }
12641  public boolean getOnlyAddCutsAtLevelZero() {
12642  return onlyAddCutsAtLevelZero_;
12643  }
12652  public Builder setOnlyAddCutsAtLevelZero(boolean value) {
12653  bitField2_ |= 0x00000200;
12654  onlyAddCutsAtLevelZero_ = value;
12655  onChanged();
12656  return this;
12657  }
12667  bitField2_ = (bitField2_ & ~0x00000200);
12668  onlyAddCutsAtLevelZero_ = false;
12669  onChanged();
12670  return this;
12671  }
12672 
12673  private boolean addKnapsackCuts_ ;
12683  public boolean hasAddKnapsackCuts() {
12684  return ((bitField2_ & 0x00000400) != 0);
12685  }
12695  public boolean getAddKnapsackCuts() {
12696  return addKnapsackCuts_;
12697  }
12707  public Builder setAddKnapsackCuts(boolean value) {
12708  bitField2_ |= 0x00000400;
12709  addKnapsackCuts_ = value;
12710  onChanged();
12711  return this;
12712  }
12723  bitField2_ = (bitField2_ & ~0x00000400);
12724  addKnapsackCuts_ = false;
12725  onChanged();
12726  return this;
12727  }
12728 
12729  private boolean addCgCuts_ ;
12738  public boolean hasAddCgCuts() {
12739  return ((bitField2_ & 0x00000800) != 0);
12740  }
12749  public boolean getAddCgCuts() {
12750  return addCgCuts_;
12751  }
12760  public Builder setAddCgCuts(boolean value) {
12761  bitField2_ |= 0x00000800;
12762  addCgCuts_ = value;
12763  onChanged();
12764  return this;
12765  }
12775  bitField2_ = (bitField2_ & ~0x00000800);
12776  addCgCuts_ = false;
12777  onChanged();
12778  return this;
12779  }
12780 
12781  private boolean addMirCuts_ = true;
12790  public boolean hasAddMirCuts() {
12791  return ((bitField2_ & 0x00001000) != 0);
12792  }
12801  public boolean getAddMirCuts() {
12802  return addMirCuts_;
12803  }
12812  public Builder setAddMirCuts(boolean value) {
12813  bitField2_ |= 0x00001000;
12814  addMirCuts_ = value;
12815  onChanged();
12816  return this;
12817  }
12827  bitField2_ = (bitField2_ & ~0x00001000);
12828  addMirCuts_ = true;
12829  onChanged();
12830  return this;
12831  }
12832 
12833  private boolean useMirRounding_ = true;
12843  public boolean hasUseMirRounding() {
12844  return ((bitField2_ & 0x00002000) != 0);
12845  }
12855  public boolean getUseMirRounding() {
12856  return useMirRounding_;
12857  }
12867  public Builder setUseMirRounding(boolean value) {
12868  bitField2_ |= 0x00002000;
12869  useMirRounding_ = value;
12870  onChanged();
12871  return this;
12872  }
12883  bitField2_ = (bitField2_ & ~0x00002000);
12884  useMirRounding_ = true;
12885  onChanged();
12886  return this;
12887  }
12888 
12889  private int maxIntegerRoundingScaling_ = 600;
12901  public boolean hasMaxIntegerRoundingScaling() {
12902  return ((bitField2_ & 0x00004000) != 0);
12903  }
12916  return maxIntegerRoundingScaling_;
12917  }
12930  bitField2_ |= 0x00004000;
12931  maxIntegerRoundingScaling_ = value;
12932  onChanged();
12933  return this;
12934  }
12947  bitField2_ = (bitField2_ & ~0x00004000);
12948  maxIntegerRoundingScaling_ = 600;
12949  onChanged();
12950  return this;
12951  }
12952 
12953  private boolean addLpConstraintsLazily_ = true;
12964  public boolean hasAddLpConstraintsLazily() {
12965  return ((bitField2_ & 0x00008000) != 0);
12966  }
12977  public boolean getAddLpConstraintsLazily() {
12978  return addLpConstraintsLazily_;
12979  }
12990  public Builder setAddLpConstraintsLazily(boolean value) {
12991  bitField2_ |= 0x00008000;
12992  addLpConstraintsLazily_ = value;
12993  onChanged();
12994  return this;
12995  }
13007  bitField2_ = (bitField2_ & ~0x00008000);
13008  addLpConstraintsLazily_ = true;
13009  onChanged();
13010  return this;
13011  }
13012 
13013  private double minOrthogonalityForLpConstraints_ ;
13026  return ((bitField2_ & 0x00010000) != 0);
13027  }
13040  return minOrthogonalityForLpConstraints_;
13041  }
13054  bitField2_ |= 0x00010000;
13055  minOrthogonalityForLpConstraints_ = value;
13056  onChanged();
13057  return this;
13058  }
13071  bitField2_ = (bitField2_ & ~0x00010000);
13072  minOrthogonalityForLpConstraints_ = 0D;
13073  onChanged();
13074  return this;
13075  }
13076 
13077  private long maxInactiveCount_ = 1000L;
13086  public boolean hasMaxInactiveCount() {
13087  return ((bitField2_ & 0x00020000) != 0);
13088  }
13097  public long getMaxInactiveCount() {
13098  return maxInactiveCount_;
13099  }
13108  public Builder setMaxInactiveCount(long value) {
13109  bitField2_ |= 0x00020000;
13110  maxInactiveCount_ = value;
13111  onChanged();
13112  return this;
13113  }
13123  bitField2_ = (bitField2_ & ~0x00020000);
13124  maxInactiveCount_ = 1000L;
13125  onChanged();
13126  return this;
13127  }
13128 
13129  private long constraintRemovalBatchSize_ = 100L;
13139  return ((bitField2_ & 0x00040000) != 0);
13140  }
13150  return constraintRemovalBatchSize_;
13151  }
13161  bitField2_ |= 0x00040000;
13162  constraintRemovalBatchSize_ = value;
13163  onChanged();
13164  return this;
13165  }
13175  bitField2_ = (bitField2_ & ~0x00040000);
13176  constraintRemovalBatchSize_ = 100L;
13177  onChanged();
13178  return this;
13179  }
13180 
13181  private int searchBranching_ = 0;
13185  public boolean hasSearchBranching() {
13186  return ((bitField2_ & 0x00080000) != 0);
13187  }
13192  @SuppressWarnings("deprecation")
13194  return result == null ? com.google.ortools.sat.SatParameters.SearchBranching.AUTOMATIC_SEARCH : result;
13195  }
13200  if (value == null) {
13201  throw new NullPointerException();
13202  }
13203  bitField2_ |= 0x00080000;
13204  searchBranching_ = value.getNumber();
13205  onChanged();
13206  return this;
13207  }
13212  bitField2_ = (bitField2_ & ~0x00080000);
13213  searchBranching_ = 0;
13214  onChanged();
13215  return this;
13216  }
13217 
13218  private boolean exploitIntegerLpSolution_ = true;
13229  public boolean hasExploitIntegerLpSolution() {
13230  return ((bitField2_ & 0x00100000) != 0);
13231  }
13242  public boolean getExploitIntegerLpSolution() {
13243  return exploitIntegerLpSolution_;
13244  }
13255  public Builder setExploitIntegerLpSolution(boolean value) {
13256  bitField2_ |= 0x00100000;
13257  exploitIntegerLpSolution_ = value;
13258  onChanged();
13259  return this;
13260  }
13272  bitField2_ = (bitField2_ & ~0x00100000);
13273  exploitIntegerLpSolution_ = true;
13274  onChanged();
13275  return this;
13276  }
13277 
13278  private boolean exploitAllLpSolution_ = true;
13288  public boolean hasExploitAllLpSolution() {
13289  return ((bitField2_ & 0x00200000) != 0);
13290  }
13300  public boolean getExploitAllLpSolution() {
13301  return exploitAllLpSolution_;
13302  }
13312  public Builder setExploitAllLpSolution(boolean value) {
13313  bitField2_ |= 0x00200000;
13314  exploitAllLpSolution_ = value;
13315  onChanged();
13316  return this;
13317  }
13328  bitField2_ = (bitField2_ & ~0x00200000);
13329  exploitAllLpSolution_ = true;
13330  onChanged();
13331  return this;
13332  }
13333 
13334  private boolean exploitBestSolution_ ;
13342  public boolean hasExploitBestSolution() {
13343  return ((bitField2_ & 0x00400000) != 0);
13344  }
13352  public boolean getExploitBestSolution() {
13353  return exploitBestSolution_;
13354  }
13362  public Builder setExploitBestSolution(boolean value) {
13363  bitField2_ |= 0x00400000;
13364  exploitBestSolution_ = value;
13365  onChanged();
13366  return this;
13367  }
13376  bitField2_ = (bitField2_ & ~0x00400000);
13377  exploitBestSolution_ = false;
13378  onChanged();
13379  return this;
13380  }
13381 
13382  private boolean exploitObjective_ = true;
13391  public boolean hasExploitObjective() {
13392  return ((bitField2_ & 0x00800000) != 0);
13393  }
13402  public boolean getExploitObjective() {
13403  return exploitObjective_;
13404  }
13413  public Builder setExploitObjective(boolean value) {
13414  bitField2_ |= 0x00800000;
13415  exploitObjective_ = value;
13416  onChanged();
13417  return this;
13418  }
13428  bitField2_ = (bitField2_ & ~0x00800000);
13429  exploitObjective_ = true;
13430  onChanged();
13431  return this;
13432  }
13433 
13434  private long pseudoCostReliabilityThreshold_ = 100L;
13444  return ((bitField2_ & 0x01000000) != 0);
13445  }
13455  return pseudoCostReliabilityThreshold_;
13456  }
13466  bitField2_ |= 0x01000000;
13467  pseudoCostReliabilityThreshold_ = value;
13468  onChanged();
13469  return this;
13470  }
13480  bitField2_ = (bitField2_ & ~0x01000000);
13481  pseudoCostReliabilityThreshold_ = 100L;
13482  onChanged();
13483  return this;
13484  }
13485 
13486  private boolean optimizeWithCore_ ;
13497  public boolean hasOptimizeWithCore() {
13498  return ((bitField2_ & 0x02000000) != 0);
13499  }
13510  public boolean getOptimizeWithCore() {
13511  return optimizeWithCore_;
13512  }
13523  public Builder setOptimizeWithCore(boolean value) {
13524  bitField2_ |= 0x02000000;
13525  optimizeWithCore_ = value;
13526  onChanged();
13527  return this;
13528  }
13540  bitField2_ = (bitField2_ & ~0x02000000);
13541  optimizeWithCore_ = false;
13542  onChanged();
13543  return this;
13544  }
13545 
13546  private int binarySearchNumConflicts_ = -1;
13557  public boolean hasBinarySearchNumConflicts() {
13558  return ((bitField2_ & 0x04000000) != 0);
13559  }
13571  return binarySearchNumConflicts_;
13572  }
13584  bitField2_ |= 0x04000000;
13585  binarySearchNumConflicts_ = value;
13586  onChanged();
13587  return this;
13588  }
13600  bitField2_ = (bitField2_ & ~0x04000000);
13601  binarySearchNumConflicts_ = -1;
13602  onChanged();
13603  return this;
13604  }
13605 
13606  private boolean optimizeWithMaxHs_ ;
13619  public boolean hasOptimizeWithMaxHs() {
13620  return ((bitField2_ & 0x08000000) != 0);
13621  }
13634  public boolean getOptimizeWithMaxHs() {
13635  return optimizeWithMaxHs_;
13636  }
13649  public Builder setOptimizeWithMaxHs(boolean value) {
13650  bitField2_ |= 0x08000000;
13651  optimizeWithMaxHs_ = value;
13652  onChanged();
13653  return this;
13654  }
13668  bitField2_ = (bitField2_ & ~0x08000000);
13669  optimizeWithMaxHs_ = false;
13670  onChanged();
13671  return this;
13672  }
13673 
13674  private boolean enumerateAllSolutions_ ;
13687  public boolean hasEnumerateAllSolutions() {
13688  return ((bitField2_ & 0x10000000) != 0);
13689  }
13702  public boolean getEnumerateAllSolutions() {
13703  return enumerateAllSolutions_;
13704  }
13717  public Builder setEnumerateAllSolutions(boolean value) {
13718  bitField2_ |= 0x10000000;
13719  enumerateAllSolutions_ = value;
13720  onChanged();
13721  return this;
13722  }
13736  bitField2_ = (bitField2_ & ~0x10000000);
13737  enumerateAllSolutions_ = false;
13738  onChanged();
13739  return this;
13740  }
13741 
13742  private boolean fillTightenedDomainsInResponse_ ;
13755  return ((bitField2_ & 0x20000000) != 0);
13756  }
13769  return fillTightenedDomainsInResponse_;
13770  }
13783  bitField2_ |= 0x20000000;
13784  fillTightenedDomainsInResponse_ = value;
13785  onChanged();
13786  return this;
13787  }
13800  bitField2_ = (bitField2_ & ~0x20000000);
13801  fillTightenedDomainsInResponse_ = false;
13802  onChanged();
13803  return this;
13804  }
13805 
13806  private boolean instantiateAllVariables_ = true;
13815  public boolean hasInstantiateAllVariables() {
13816  return ((bitField2_ & 0x40000000) != 0);
13817  }
13826  public boolean getInstantiateAllVariables() {
13827  return instantiateAllVariables_;
13828  }
13837  public Builder setInstantiateAllVariables(boolean value) {
13838  bitField2_ |= 0x40000000;
13839  instantiateAllVariables_ = value;
13840  onChanged();
13841  return this;
13842  }
13852  bitField2_ = (bitField2_ & ~0x40000000);
13853  instantiateAllVariables_ = true;
13854  onChanged();
13855  return this;
13856  }
13857 
13858  private boolean autoDetectGreaterThanAtLeastOneOf_ = true;
13870  return ((bitField2_ & 0x80000000) != 0);
13871  }
13883  return autoDetectGreaterThanAtLeastOneOf_;
13884  }
13896  bitField2_ |= 0x80000000;
13897  autoDetectGreaterThanAtLeastOneOf_ = value;
13898  onChanged();
13899  return this;
13900  }
13912  bitField2_ = (bitField2_ & ~0x80000000);
13913  autoDetectGreaterThanAtLeastOneOf_ = true;
13914  onChanged();
13915  return this;
13916  }
13917 
13918  private boolean stopAfterFirstSolution_ ;
13926  public boolean hasStopAfterFirstSolution() {
13927  return ((bitField3_ & 0x00000001) != 0);
13928  }
13936  public boolean getStopAfterFirstSolution() {
13937  return stopAfterFirstSolution_;
13938  }
13946  public Builder setStopAfterFirstSolution(boolean value) {
13947  bitField3_ |= 0x00000001;
13948  stopAfterFirstSolution_ = value;
13949  onChanged();
13950  return this;
13951  }
13960  bitField3_ = (bitField3_ & ~0x00000001);
13961  stopAfterFirstSolution_ = false;
13962  onChanged();
13963  return this;
13964  }
13965 
13966  private int numSearchWorkers_ = 1;
13975  public boolean hasNumSearchWorkers() {
13976  return ((bitField3_ & 0x00000002) != 0);
13977  }
13986  public int getNumSearchWorkers() {
13987  return numSearchWorkers_;
13988  }
13997  public Builder setNumSearchWorkers(int value) {
13998  bitField3_ |= 0x00000002;
13999  numSearchWorkers_ = value;
14000  onChanged();
14001  return this;
14002  }
14012  bitField3_ = (bitField3_ & ~0x00000002);
14013  numSearchWorkers_ = 1;
14014  onChanged();
14015  return this;
14016  }
14017 
14018  private boolean interleaveSearch_ ;
14029  public boolean hasInterleaveSearch() {
14030  return ((bitField3_ & 0x00000004) != 0);
14031  }
14042  public boolean getInterleaveSearch() {
14043  return interleaveSearch_;
14044  }
14055  public Builder setInterleaveSearch(boolean value) {
14056  bitField3_ |= 0x00000004;
14057  interleaveSearch_ = value;
14058  onChanged();
14059  return this;
14060  }
14072  bitField3_ = (bitField3_ & ~0x00000004);
14073  interleaveSearch_ = false;
14074  onChanged();
14075  return this;
14076  }
14077 
14078  private boolean deterministicParallelSearch_ ;
14089  return ((bitField3_ & 0x00000008) != 0);
14090  }
14101  return deterministicParallelSearch_;
14102  }
14112  public Builder setDeterministicParallelSearch(boolean value) {
14113  bitField3_ |= 0x00000008;
14114  deterministicParallelSearch_ = value;
14115  onChanged();
14116  return this;
14117  }
14128  bitField3_ = (bitField3_ & ~0x00000008);
14129  deterministicParallelSearch_ = false;
14130  onChanged();
14131  return this;
14132  }
14133 
14134  private boolean shareObjectiveBounds_ = true;
14142  public boolean hasShareObjectiveBounds() {
14143  return ((bitField3_ & 0x00000010) != 0);
14144  }
14152  public boolean getShareObjectiveBounds() {
14153  return shareObjectiveBounds_;
14154  }
14162  public Builder setShareObjectiveBounds(boolean value) {
14163  bitField3_ |= 0x00000010;
14164  shareObjectiveBounds_ = value;
14165  onChanged();
14166  return this;
14167  }
14176  bitField3_ = (bitField3_ & ~0x00000010);
14177  shareObjectiveBounds_ = true;
14178  onChanged();
14179  return this;
14180  }
14181 
14182  private boolean shareLevelZeroBounds_ = true;
14190  public boolean hasShareLevelZeroBounds() {
14191  return ((bitField3_ & 0x00000020) != 0);
14192  }
14200  public boolean getShareLevelZeroBounds() {
14201  return shareLevelZeroBounds_;
14202  }
14210  public Builder setShareLevelZeroBounds(boolean value) {
14211  bitField3_ |= 0x00000020;
14212  shareLevelZeroBounds_ = value;
14213  onChanged();
14214  return this;
14215  }
14224  bitField3_ = (bitField3_ & ~0x00000020);
14225  shareLevelZeroBounds_ = true;
14226  onChanged();
14227  return this;
14228  }
14229 
14230  private boolean useLnsOnly_ ;
14238  public boolean hasUseLnsOnly() {
14239  return ((bitField3_ & 0x00000040) != 0);
14240  }
14248  public boolean getUseLnsOnly() {
14249  return useLnsOnly_;
14250  }
14258  public Builder setUseLnsOnly(boolean value) {
14259  bitField3_ |= 0x00000040;
14260  useLnsOnly_ = value;
14261  onChanged();
14262  return this;
14263  }
14272  bitField3_ = (bitField3_ & ~0x00000040);
14273  useLnsOnly_ = false;
14274  onChanged();
14275  return this;
14276  }
14277 
14278  private boolean lnsFocusOnDecisionVariables_ ;
14283  return ((bitField3_ & 0x00000080) != 0);
14284  }
14289  return lnsFocusOnDecisionVariables_;
14290  }
14294  public Builder setLnsFocusOnDecisionVariables(boolean value) {
14295  bitField3_ |= 0x00000080;
14296  lnsFocusOnDecisionVariables_ = value;
14297  onChanged();
14298  return this;
14299  }
14304  bitField3_ = (bitField3_ & ~0x00000080);
14305  lnsFocusOnDecisionVariables_ = false;
14306  onChanged();
14307  return this;
14308  }
14309 
14310  private boolean useRinsLns_ = true;
14318  public boolean hasUseRinsLns() {
14319  return ((bitField3_ & 0x00000100) != 0);
14320  }
14328  public boolean getUseRinsLns() {
14329  return useRinsLns_;
14330  }
14338  public Builder setUseRinsLns(boolean value) {
14339  bitField3_ |= 0x00000100;
14340  useRinsLns_ = value;
14341  onChanged();
14342  return this;
14343  }
14352  bitField3_ = (bitField3_ & ~0x00000100);
14353  useRinsLns_ = true;
14354  onChanged();
14355  return this;
14356  }
14357 
14358  private boolean diversifyLnsParams_ ;
14366  public boolean hasDiversifyLnsParams() {
14367  return ((bitField3_ & 0x00000200) != 0);
14368  }
14376  public boolean getDiversifyLnsParams() {
14377  return diversifyLnsParams_;
14378  }
14386  public Builder setDiversifyLnsParams(boolean value) {
14387  bitField3_ |= 0x00000200;
14388  diversifyLnsParams_ = value;
14389  onChanged();
14390  return this;
14391  }
14400  bitField3_ = (bitField3_ & ~0x00000200);
14401  diversifyLnsParams_ = false;
14402  onChanged();
14403  return this;
14404  }
14405 
14406  private boolean randomizeSearch_ ;
14414  public boolean hasRandomizeSearch() {
14415  return ((bitField3_ & 0x00000400) != 0);
14416  }
14424  public boolean getRandomizeSearch() {
14425  return randomizeSearch_;
14426  }
14434  public Builder setRandomizeSearch(boolean value) {
14435  bitField3_ |= 0x00000400;
14436  randomizeSearch_ = value;
14437  onChanged();
14438  return this;
14439  }
14448  bitField3_ = (bitField3_ & ~0x00000400);
14449  randomizeSearch_ = false;
14450  onChanged();
14451  return this;
14452  }
14453 
14454  private long searchRandomizationTolerance_ ;
14469  return ((bitField3_ & 0x00000800) != 0);
14470  }
14485  return searchRandomizationTolerance_;
14486  }
14501  bitField3_ |= 0x00000800;
14502  searchRandomizationTolerance_ = value;
14503  onChanged();
14504  return this;
14505  }
14520  bitField3_ = (bitField3_ & ~0x00000800);
14521  searchRandomizationTolerance_ = 0L;
14522  onChanged();
14523  return this;
14524  }
14525 
14526  private boolean useOptionalVariables_ = true;
14536  public boolean hasUseOptionalVariables() {
14537  return ((bitField3_ & 0x00001000) != 0);
14538  }
14548  public boolean getUseOptionalVariables() {
14549  return useOptionalVariables_;
14550  }
14560  public Builder setUseOptionalVariables(boolean value) {
14561  bitField3_ |= 0x00001000;
14562  useOptionalVariables_ = value;
14563  onChanged();
14564  return this;
14565  }
14576  bitField3_ = (bitField3_ & ~0x00001000);
14577  useOptionalVariables_ = true;
14578  onChanged();
14579  return this;
14580  }
14581 
14582  private boolean useExactLpReason_ = true;
14593  public boolean hasUseExactLpReason() {
14594  return ((bitField3_ & 0x00002000) != 0);
14595  }
14606  public boolean getUseExactLpReason() {
14607  return useExactLpReason_;
14608  }
14619  public Builder setUseExactLpReason(boolean value) {
14620  bitField3_ |= 0x00002000;
14621  useExactLpReason_ = value;
14622  onChanged();
14623  return this;
14624  }
14636  bitField3_ = (bitField3_ & ~0x00002000);
14637  useExactLpReason_ = true;
14638  onChanged();
14639  return this;
14640  }
14641 
14642  private boolean useBranchingInLp_ ;
14652  public boolean hasUseBranchingInLp() {
14653  return ((bitField3_ & 0x00004000) != 0);
14654  }
14664  public boolean getUseBranchingInLp() {
14665  return useBranchingInLp_;
14666  }
14676  public Builder setUseBranchingInLp(boolean value) {
14677  bitField3_ |= 0x00004000;
14678  useBranchingInLp_ = value;
14679  onChanged();
14680  return this;
14681  }
14692  bitField3_ = (bitField3_ & ~0x00004000);
14693  useBranchingInLp_ = false;
14694  onChanged();
14695  return this;
14696  }
14697 
14698  private boolean useCombinedNoOverlap_ ;
14708  public boolean hasUseCombinedNoOverlap() {
14709  return ((bitField3_ & 0x00008000) != 0);
14710  }
14720  public boolean getUseCombinedNoOverlap() {
14721  return useCombinedNoOverlap_;
14722  }
14732  public Builder setUseCombinedNoOverlap(boolean value) {
14733  bitField3_ |= 0x00008000;
14734  useCombinedNoOverlap_ = value;
14735  onChanged();
14736  return this;
14737  }
14748  bitField3_ = (bitField3_ & ~0x00008000);
14749  useCombinedNoOverlap_ = false;
14750  onChanged();
14751  return this;
14752  }
14753 
14754  private boolean catchSigintSignal_ = true;
14764  public boolean hasCatchSigintSignal() {
14765  return ((bitField3_ & 0x00010000) != 0);
14766  }
14776  public boolean getCatchSigintSignal() {
14777  return catchSigintSignal_;
14778  }
14788  public Builder setCatchSigintSignal(boolean value) {
14789  bitField3_ |= 0x00010000;
14790  catchSigintSignal_ = value;
14791  onChanged();
14792  return this;
14793  }
14804  bitField3_ = (bitField3_ & ~0x00010000);
14805  catchSigintSignal_ = true;
14806  onChanged();
14807  return this;
14808  }
14809 
14810  private double mipMaxBound_ = 10000000D;
14820  public boolean hasMipMaxBound() {
14821  return ((bitField3_ & 0x00020000) != 0);
14822  }
14832  public double getMipMaxBound() {
14833  return mipMaxBound_;
14834  }
14844  public Builder setMipMaxBound(double value) {
14845  bitField3_ |= 0x00020000;
14846  mipMaxBound_ = value;
14847  onChanged();
14848  return this;
14849  }
14860  bitField3_ = (bitField3_ & ~0x00020000);
14861  mipMaxBound_ = 10000000D;
14862  onChanged();
14863  return this;
14864  }
14865 
14866  private double mipVarScaling_ = 1D;
14876  public boolean hasMipVarScaling() {
14877  return ((bitField3_ & 0x00040000) != 0);
14878  }
14888  public double getMipVarScaling() {
14889  return mipVarScaling_;
14890  }
14900  public Builder setMipVarScaling(double value) {
14901  bitField3_ |= 0x00040000;
14902  mipVarScaling_ = value;
14903  onChanged();
14904  return this;
14905  }
14916  bitField3_ = (bitField3_ & ~0x00040000);
14917  mipVarScaling_ = 1D;
14918  onChanged();
14919  return this;
14920  }
14921 
14922  private double mipWantedPrecision_ = 1e-06D;
14938  public boolean hasMipWantedPrecision() {
14939  return ((bitField3_ & 0x00080000) != 0);
14940  }
14956  public double getMipWantedPrecision() {
14957  return mipWantedPrecision_;
14958  }
14974  public Builder setMipWantedPrecision(double value) {
14975  bitField3_ |= 0x00080000;
14976  mipWantedPrecision_ = value;
14977  onChanged();
14978  return this;
14979  }
14996  bitField3_ = (bitField3_ & ~0x00080000);
14997  mipWantedPrecision_ = 1e-06D;
14998  onChanged();
14999  return this;
15000  }
15001 
15002  private int mipMaxActivityExponent_ = 53;
15016  public boolean hasMipMaxActivityExponent() {
15017  return ((bitField3_ & 0x00100000) != 0);
15018  }
15033  return mipMaxActivityExponent_;
15034  }
15049  bitField3_ |= 0x00100000;
15050  mipMaxActivityExponent_ = value;
15051  onChanged();
15052  return this;
15053  }
15068  bitField3_ = (bitField3_ & ~0x00100000);
15069  mipMaxActivityExponent_ = 53;
15070  onChanged();
15071  return this;
15072  }
15073 
15074  private double mipCheckPrecision_ = 0.0001D;
15085  public boolean hasMipCheckPrecision() {
15086  return ((bitField3_ & 0x00200000) != 0);
15087  }
15098  public double getMipCheckPrecision() {
15099  return mipCheckPrecision_;
15100  }
15111  public Builder setMipCheckPrecision(double value) {
15112  bitField3_ |= 0x00200000;
15113  mipCheckPrecision_ = value;
15114  onChanged();
15115  return this;
15116  }
15128  bitField3_ = (bitField3_ & ~0x00200000);
15129  mipCheckPrecision_ = 0.0001D;
15130  onChanged();
15131  return this;
15132  }
15133  @java.lang.Override
15135  final com.google.protobuf.UnknownFieldSet unknownFields) {
15136  return super.setUnknownFields(unknownFields);
15137  }
15138 
15139  @java.lang.Override
15141  final com.google.protobuf.UnknownFieldSet unknownFields) {
15142  return super.mergeUnknownFields(unknownFields);
15143  }
15144 
15145 
15146  // @@protoc_insertion_point(builder_scope:operations_research.sat.SatParameters)
15147  }
15148 
15149  // @@protoc_insertion_point(class_scope:operations_research.sat.SatParameters)
15150  private static final com.google.ortools.sat.SatParameters DEFAULT_INSTANCE;
15151  static {
15152  DEFAULT_INSTANCE = new com.google.ortools.sat.SatParameters();
15153  }
15154 
15156  return DEFAULT_INSTANCE;
15157  }
15158 
15159  @java.lang.Deprecated public static final com.google.protobuf.Parser<SatParameters>
15160  PARSER = new com.google.protobuf.AbstractParser<SatParameters>() {
15161  @java.lang.Override
15162  public SatParameters parsePartialFrom(
15163  com.google.protobuf.CodedInputStream input,
15164  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15165  throws com.google.protobuf.InvalidProtocolBufferException {
15166  return new SatParameters(input, extensionRegistry);
15167  }
15168  };
15169 
15170  public static com.google.protobuf.Parser<SatParameters> parser() {
15171  return PARSER;
15172  }
15173 
15174  @java.lang.Override
15175  public com.google.protobuf.Parser<SatParameters> getParserForType() {
15176  return PARSER;
15177  }
15178 
15179  @java.lang.Override
15181  return DEFAULT_INSTANCE;
15182  }
15183 
15184 }
15185 
.lang.Override Builder newBuilderForType()
static com.google.protobuf.Internal.EnumLiteMap< ConflictMinimizationAlgorithm > internalGetValueMap()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder setGlucoseDecayIncrementPeriod(int value)
optional int32 glucose_decay_increment_period = 24 [default = 5000];
Builder clearBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
.lang.Deprecated static BinaryMinizationAlgorithm valueOf(int value)
static final int RANDOM_POLARITY_RATIO_FIELD_NUMBER
.lang.Override final boolean isInitialized()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data)
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int STOP_AFTER_FIRST_SOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< BinaryMinizationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
Builder setMinimizationAlgorithm(com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm value)
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int CP_MODEL_PROBING_LEVEL_FIELD_NUMBER
static final int USE_OPTIONAL_VARIABLES_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder clearMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder clearMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int ADD_LP_CONSTRAINTS_LAZILY_FIELD_NUMBER
.lang.Override Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
static final int DETERMINISTIC_PARALLEL_SEARCH_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setMinimizeWithPropagationNumDecisions(int value)
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< RestartAlgorithm > internalGetValueMap()
static final int EXPLOIT_INTEGER_LP_SOLUTION_FIELD_NUMBER
static final int CLAUSE_CLEANUP_PERIOD_FIELD_NUMBER
static final int DIVERSIFY_LNS_PARAMS_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Deprecated static MaxSatAssumptionOrder valueOf(int value)
static ConflictMinimizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
static final int CONSTRAINT_REMOVAL_BATCH_SIZE_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int INSTANTIATE_ALL_VARIABLES_FIELD_NUMBER
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setMaxSatStratification(com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm value)
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder clearPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
EXPERIMENTAL_BINARY_MINIMIZATION
EXPERIMENTAL_BINARY_MINIMIZATION = 3;
.lang.Override Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
static SearchBranching valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Deprecated static VariableOrder valueOf(int value)
static final int NUM_CONFLICTS_BEFORE_STRATEGY_CHANGES_FIELD_NUMBER
static MaxSatAssumptionOrder forNumber(int value)
.lang.Deprecated static ClauseOrdering valueOf(int value)
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
boolean hasMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data)
static VariableOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override com.google.ortools.sat.SatParameters getDefaultInstanceForType()
static final int MAX_CLAUSE_ACTIVITY_VALUE_FIELD_NUMBER
static ClauseProtection valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final int MAX_VARIABLE_ACTIVITY_VALUE_FIELD_NUMBER
static final int RESTART_LBD_AVERAGE_RATIO_FIELD_NUMBER
static ClauseOrdering valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int PRESOLVE_PROBING_DETERMINISTIC_TIME_LIMIT_FIELD_NUMBER
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override Builder mergeFrom(com.google.protobuf.Message other)
Builder setMaxSatAssumptionOrder(com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder value)
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPbCleanupRatio(double value)
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int USE_PRECEDENCES_IN_DISJUNCTIVE_CONSTRAINT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
Builder setGlucoseDecayIncrement(double value)
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setSubsumptionDuringConflictAnalysis(boolean value)
.lang.Deprecated static ClauseProtection valueOf(int value)
static final int MINIMIZATION_ALGORITHM_FIELD_NUMBER
Builder setFillTightenedDomainsInResponse(boolean value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input)
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int USE_TIMETABLE_EDGE_FINDING_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int LNS_FOCUS_ON_DECISION_VARIABLES_FIELD_NUMBER
Builder clearMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static final int MAX_SAT_STRATIFICATION_FIELD_NUMBER
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
.lang.Override void writeTo(com.google.protobuf.CodedOutputStream output)
Builder setMaxClauseActivityValue(double value)
optional double max_clause_activity_value = 18 [default = 1e+20];
Builder setLnsFocusOnDecisionVariables(boolean value)
optional bool lns_focus_on_decision_variables = 105 [default = false];
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int PRESOLVE_BLOCKED_CLAUSE_FIELD_NUMBER
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int PSEUDO_COST_RELIABILITY_THRESHOLD_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder clearMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
Builder clearGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
int getGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static final int ENUMERATE_ALL_SOLUTIONS_FIELD_NUMBER
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
Builder setMinimizeReductionDuringPbResolution(boolean value)
boolean hasClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
Builder setSearchBranching(com.google.ortools.sat.SatParameters.SearchBranching value)
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final int INITIAL_VARIABLES_ACTIVITY_FIELD_NUMBER
static final int PRESOLVE_BVE_CLAUSE_WEIGHT_FIELD_NUMBER
Builder setUseOverloadCheckerInCumulativeConstraint(boolean value)
static final int AUTO_DETECT_GREATER_THAN_AT_LEAST_ONE_OF_FIELD_NUMBER
static final int USE_COMBINED_NO_OVERLAP_FIELD_NUMBER
Builder clearGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setRestartAlgorithms(int index, com.google.ortools.sat.SatParameters.RestartAlgorithm value)
.lang.Override boolean equals(final java.lang.Object obj)
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static ConflictMinimizationAlgorithm forNumber(int value)
Builder clearSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
boolean hasDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.CodedInputStream input)
.lang.Override Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int PRESOLVE_BVE_THRESHOLD_FIELD_NUMBER
static final int USE_OVERLOAD_CHECKER_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static BinaryMinizationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.VariableOrder getPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int FILL_TIGHTENED_DOMAINS_IN_RESPONSE_FIELD_NUMBER
static final int CLAUSE_ACTIVITY_DECAY_FIELD_NUMBER
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
com.google.ortools.sat.SatParameters.SearchBranching getSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
.lang.Override final boolean isInitialized()
static Polarity valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static MaxSatStratificationAlgorithm forNumber(int value)
int getMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
double getBlockingRestartMultiplier()
optional double blocking_restart_multiplier = 66 [default = 1.4];
static com.google.protobuf.Internal.EnumLiteMap< MaxSatStratificationAlgorithm > internalGetValueMap()
com.google.ortools.sat.SatParameters.ClauseProtection getClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
double getMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
.lang.Override com.google.ortools.sat.SatParameters buildPartial()
static com.google.protobuf.Internal.EnumLiteMap< ClauseProtection > internalGetValueMap()
.lang.Override Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
boolean hasMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data)
static com.google.ortools.sat.SatParameters parseFrom(java.io.InputStream input)
int getBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int MINIMIZE_WITH_PROPAGATION_NUM_DECISIONS_FIELD_NUMBER
static final int PREFERRED_VARIABLE_ORDER_FIELD_NUMBER
.lang.Override Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
static final int CP_MODEL_USE_SAT_PRESOLVE_FIELD_NUMBER
static MaxSatAssumptionOrder valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
.lang.Override Builder toBuilder()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
com.google.ortools.sat.SatParameters.ClauseOrdering getClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
.lang.Override final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static com.google.protobuf.Parser< SatParameters > parser()
static final int SHARE_OBJECTIVE_BOUNDS_FIELD_NUMBER
BINARY_MINIMIZATION_WITH_REACHABILITY
BINARY_MINIMIZATION_WITH_REACHABILITY = 2;
static RestartAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
Builder clearBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
.lang.Deprecated static Polarity valueOf(int value)
Builder setBlockingRestartWindowSize(int value)
optional int32 blocking_restart_window_size = 65 [default = 5000];
static MaxSatStratificationAlgorithm valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static final int VARIABLE_ACTIVITY_DECAY_FIELD_NUMBER
static final int USE_OPTIMIZATION_HINTS_FIELD_NUMBER
Builder addRestartAlgorithms(com.google.ortools.sat.SatParameters.RestartAlgorithm value)
Builder setDefaultRestartAlgorithmsBytes(com.google.protobuf.ByteString value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static Builder newBuilder(com.google.ortools.sat.SatParameters prototype)
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int STRATEGY_CHANGE_INCREASE_RATIO_FIELD_NUMBER
boolean hasMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
static com.google.ortools.sat.SatParameters parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Override com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
static final int BINARY_SEARCH_NUM_CONFLICTS_FIELD_NUMBER
boolean hasBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
.lang.Override Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
boolean hasPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
static final int SEARCH_RANDOMIZATION_TOLERANCE_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
boolean hasLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
boolean hasGlucoseDecayIncrementPeriod()
optional int32 glucose_decay_increment_period = 24 [default = 5000];
static BinaryMinizationAlgorithm forNumber(int value)
static final int RANDOM_BRANCHES_RATIO_FIELD_NUMBER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static com.google.protobuf.Internal.EnumLiteMap< VariableOrder > internalGetValueMap()
static final int PB_CLEANUP_INCREMENT_FIELD_NUMBER
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int CLAUSE_CLEANUP_PROTECTION_FIELD_NUMBER
.lang.Override final com.google.protobuf.UnknownFieldSet getUnknownFields()
static com.google.ortools.sat.SatParameters parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
.lang.Deprecated static RestartAlgorithm valueOf(int value)
.lang.Override com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static final int BINARY_MINIMIZATION_ALGORITHM_FIELD_NUMBER
static final int BLOCKING_RESTART_WINDOW_SIZE_FIELD_NUMBER
Builder setUsePrecedencesInDisjunctiveConstraint(boolean value)
.lang.Override final Builder mergeUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields)
static final int MINIMIZE_WITH_PROPAGATION_RESTART_PERIOD_FIELD_NUMBER
.lang.Override java.lang.Object newInstance(UnusedPrivateParameter unused)
static final int EXPAND_ELEMENT_CONSTRAINTS_FIELD_NUMBER
Builder clearMinimizeWithPropagationNumDecisions()
optional int32 minimize_with_propagation_num_decisions = 97 [default = 1000];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
com.google.protobuf.ByteString getDefaultRestartAlgorithmsBytes()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int MIP_MAX_ACTIVITY_EXPONENT_FIELD_NUMBER
.lang.Override com.google.ortools.sat.SatParameters build()
Builder setUseDisjunctiveConstraintInCumulativeConstraint(boolean value)
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int OPTIMIZE_WITH_MAX_HS_FIELD_NUMBER
boolean hasMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
Builder setPreferredVariableOrder(com.google.ortools.sat.SatParameters.VariableOrder value)
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int MIN_ORTHOGONALITY_FOR_LP_CONSTRAINTS_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< SearchBranching > internalGetValueMap()
static final int MIP_WANTED_PRECISION_FIELD_NUMBER
static final int EXPLOIT_BEST_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters getDefaultInstance()
static final int COUNT_ASSUMPTION_LEVELS_IN_LBD_FIELD_NUMBER
Builder setBinaryMinimizationAlgorithm(com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm value)
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
static final int SUBSUMPTION_DURING_CONFLICT_ANALYSIS_FIELD_NUMBER
static final int MAX_SAT_ASSUMPTION_ORDER_FIELD_NUMBER
static final int PRESOLVE_BVA_THRESHOLD_FIELD_NUMBER
boolean hasPreferredVariableOrder()
optional .operations_research.sat.SatParameters.VariableOrder preferred_variable_order = 1 [default =...
static final int RESTART_DL_AVERAGE_RATIO_FIELD_NUMBER
static final int SHARE_LEVEL_ZERO_BOUNDS_FIELD_NUMBER
static final int BOOLEAN_ENCODING_LEVEL_FIELD_NUMBER
.lang.Deprecated static ConflictMinimizationAlgorithm valueOf(int value)
java.lang.String getDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
.lang.Override com.google.protobuf.Parser< SatParameters > getParserForType()
static final int MINIMIZE_REDUCTION_DURING_PB_RESOLUTION_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< Polarity > internalGetValueMap()
Builder clearClauseCleanupOrdering()
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setInitialPolarity(com.google.ortools.sat.SatParameters.Polarity value)
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder setAlsoBumpVariablesInConflictReasons(boolean value)
static final int ONLY_ADD_CUTS_AT_LEVEL_ZERO_FIELD_NUMBER
static final int MAX_PRESOLVE_ITERATIONS_FIELD_NUMBER
static final int CLAUSE_CLEANUP_TARGET_FIELD_NUMBER
Builder setBlockingRestartMultiplier(double value)
optional double blocking_restart_multiplier = 66 [default = 1.4];
com.google.ortools.sat.SatParameters.MaxSatStratificationAlgorithm getMaxSatStratification()
optional .operations_research.sat.SatParameters.MaxSatStratificationAlgorithm max_sat_stratification ...
boolean hasGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
Builder setMaxVariableActivityValue(double value)
optional double max_variable_activity_value = 16 [default = 1e+100];
static final int MAX_NUMBER_OF_CONFLICTS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int GLUCOSE_DECAY_INCREMENT_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
Builder clearMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
java.util.List< com.google.ortools.sat.SatParameters.RestartAlgorithm > getRestartAlgorithmsList()
Builder clearClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
boolean getLnsFocusOnDecisionVariables()
optional bool lns_focus_on_decision_variables = 105 [default = false];
static final int CLAUSE_CLEANUP_ORDERING_FIELD_NUMBER
.lang.Deprecated static MaxSatStratificationAlgorithm valueOf(int value)
Builder mergeFrom(com.google.ortools.sat.SatParameters other)
Builder setClauseCleanupOrdering(com.google.ortools.sat.SatParameters.ClauseOrdering value)
optional .operations_research.sat.SatParameters.ClauseOrdering clause_cleanup_ordering = 60 [default ...
Builder setPresolveProbingDeterministicTimeLimit(double value)
.lang.Override Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
Builder clearRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getGlucoseDecayIncrement()
optional double glucose_decay_increment = 23 [default = 0.01];
boolean hasSearchBranching()
optional .operations_research.sat.SatParameters.SearchBranching search_branching = 82 [default = AUTO...
double getMaxClauseActivityValue()
optional double max_clause_activity_value = 18 [default = 1e+20];
static final int TREAT_BINARY_CLAUSES_SEPARATELY_FIELD_NUMBER
static final int CLAUSE_CLEANUP_LBD_BOUND_FIELD_NUMBER
Builder setAutoDetectGreaterThanAtLeastOneOf(boolean value)
static com.google.protobuf.Internal.EnumLiteMap< ClauseOrdering > internalGetValueMap()
com.google.ortools.sat.SatParameters.BinaryMinizationAlgorithm getBinaryMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.BinaryMinizationAlgorithm binary_minimization_algorit...
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
static final int MAX_INTEGER_ROUNDING_SCALING_FIELD_NUMBER
static final int BLOCKING_RESTART_MULTIPLIER_FIELD_NUMBER
static final int RESTART_RUNNING_WINDOW_SIZE_FIELD_NUMBER
.lang.Deprecated static SearchBranching valueOf(int value)
.lang.Deprecated static final com.google.protobuf.Parser< SatParameters > PARSER
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
Builder setDefaultRestartAlgorithms(java.lang.String value)
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
com.google.ortools.sat.SatParameters.RestartAlgorithm getRestartAlgorithms(int index)
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION
BINARY_MINIMIZATION_FIRST_WITH_TRANSITIVE_REDUCTION = 4;
boolean hasBlockingRestartWindowSize()
optional int32 blocking_restart_window_size = 65 [default = 5000];
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static final int USE_BLOCKING_RESTART_FIELD_NUMBER
com.google.ortools.sat.SatParameters.ConflictMinimizationAlgorithm getMinimizationAlgorithm()
optional .operations_research.sat.SatParameters.ConflictMinimizationAlgorithm minimization_algorithm ...
boolean hasRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
double getPbCleanupRatio()
optional double pb_cleanup_ratio = 47 [default = 0.5];
double getRestartLbdAverageRatio()
optional double restart_lbd_average_ratio = 71 [default = 1];
static final int ALSO_BUMP_VARIABLES_IN_CONFLICT_REASONS_FIELD_NUMBER
static final int MAX_SAT_REVERSE_ASSUMPTION_ORDER_FIELD_NUMBER
com.google.ortools.sat.SatParameters.Polarity getInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
boolean hasClauseCleanupProtection()
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
static final int EXPLOIT_ALL_LP_SOLUTION_FIELD_NUMBER
static com.google.ortools.sat.SatParameters parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
Builder setClauseCleanupProtection(com.google.ortools.sat.SatParameters.ClauseProtection value)
optional .operations_research.sat.SatParameters.ClauseProtection clause_cleanup_protection = 58 [defa...
Builder clearDefaultRestartAlgorithms()
optional string default_restart_algorithms = 70 [default = "LUBY_RESTART,LBD_MOVING_AVERAGE_RESTART,...
static final int USE_DISJUNCTIVE_CONSTRAINT_IN_CUMULATIVE_CONSTRAINT_FIELD_NUMBER
static final int DEFAULT_RESTART_ALGORITHMS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
Builder clearInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
static final int GLUCOSE_DECAY_INCREMENT_PERIOD_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< MaxSatAssumptionOrder > internalGetValueMap()
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
boolean hasInitialPolarity()
optional .operations_research.sat.SatParameters.Polarity initial_polarity = 2 [default = POLARITY_FAL...
Builder addAllRestartAlgorithms(java.lang.Iterable<? extends com.google.ortools.sat.SatParameters.RestartAlgorithm > values)
Builder setUseTimetableEdgeFindingInCumulativeConstraint(boolean value)
boolean hasMaxVariableActivityValue()
optional double max_variable_activity_value = 16 [default = 1e+100];
com.google.ortools.sat.SatParameters.MaxSatAssumptionOrder getMaxSatAssumptionOrder()
optional .operations_research.sat.SatParameters.MaxSatAssumptionOrder max_sat_assumption_order = 51 [...
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
Builder setRestartLbdAverageRatio(double value)
optional double restart_lbd_average_ratio = 71 [default = 1];