Google OR-Tools v9.9
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
BopParameters.java
Go to the documentation of this file.
1// Generated by the protocol buffer compiler. DO NOT EDIT!
2// source: ortools/bop/bop_parameters.proto
3
4// Protobuf Java Version: 3.25.3
5package com.google.ortools.bop;
6
17public final class BopParameters extends
18 com.google.protobuf.GeneratedMessageV3 implements
19 // @@protoc_insertion_point(message_implements:operations_research.bop.BopParameters)
21private static final long serialVersionUID = 0L;
22 // Use BopParameters.newBuilder() to construct.
23 private BopParameters(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
24 super(builder);
25 }
26 private BopParameters() {
27 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
28 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
29 lpMaxDeterministicTime_ = 1D;
30 relativeGapLimit_ = 0.0001D;
31 maxNumDecisionsInLs_ = 4;
32 maxNumBrokenConstraintsInLs_ = 2147483647;
33 computeEstimatedImpact_ = true;
34 useRandomLns_ = true;
35 randomSeed_ = 8;
36 numRelaxedVars_ = 10;
37 maxNumberOfConflictsInRandomLns_ = 2500;
38 numRandomLnsTries_ = 1;
39 maxNumberOfBacktracksInLs_ = 100000000L;
40 useLpLns_ = true;
41 useSatToChooseLnsNeighbourhood_ = true;
42 maxNumberOfConflictsForQuickCheck_ = 10;
43 maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
44 maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
45 useTranspositionTableInLs_ = true;
46 useLearnedBinaryClausesInLp_ = true;
47 numberOfSolvers_ = 1;
48 synchronizationType_ = 0;
49 solverOptimizerSets_ = java.util.Collections.emptyList();
50 defaultSolverOptimizerSets_ = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } ";
51 decomposerNumVariablesThreshold_ = 50;
52 numBopSolversUsedByDecomposition_ = 1;
53 guidedSatConflictsChunk_ = 1000;
54 }
55
56 @java.lang.Override
57 @SuppressWarnings({"unused"})
58 protected java.lang.Object newInstance(
59 UnusedPrivateParameter unused) {
60 return new BopParameters();
61 }
62
63 public static final com.google.protobuf.Descriptors.Descriptor
65 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_descriptor;
66 }
67
68 @java.lang.Override
69 protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
71 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_fieldAccessorTable
72 .ensureFieldAccessorsInitialized(
73 com.google.ortools.bop.BopParameters.class, com.google.ortools.bop.BopParameters.Builder.class);
74 }
75
86 implements com.google.protobuf.ProtocolMessageEnum {
136 ;
137
152 public static final int NO_SYNCHRONIZATION_VALUE = 0;
168 public static final int SYNCHRONIZE_ALL_VALUE = 1;
186 public static final int SYNCHRONIZE_ON_RIGHT_VALUE = 2;
187
188
189 public final int getNumber() {
190 return value;
191 }
192
198 @java.lang.Deprecated
199 public static ThreadSynchronizationType valueOf(int value) {
200 return forNumber(value);
201 }
202
207 public static ThreadSynchronizationType forNumber(int value) {
208 switch (value) {
209 case 0: return NO_SYNCHRONIZATION;
210 case 1: return SYNCHRONIZE_ALL;
211 case 2: return SYNCHRONIZE_ON_RIGHT;
212 default: return null;
213 }
214 }
215
216 public static com.google.protobuf.Internal.EnumLiteMap<ThreadSynchronizationType>
218 return internalValueMap;
219 }
220 private static final com.google.protobuf.Internal.EnumLiteMap<
221 ThreadSynchronizationType> internalValueMap =
222 new com.google.protobuf.Internal.EnumLiteMap<ThreadSynchronizationType>() {
223 public ThreadSynchronizationType findValueByNumber(int number) {
225 }
226 };
227
228 public final com.google.protobuf.Descriptors.EnumValueDescriptor
230 return getDescriptor().getValues().get(ordinal());
231 }
232 public final com.google.protobuf.Descriptors.EnumDescriptor
234 return getDescriptor();
235 }
236 public static final com.google.protobuf.Descriptors.EnumDescriptor
238 return com.google.ortools.bop.BopParameters.getDescriptor().getEnumTypes().get(0);
239 }
240
241 private static final ThreadSynchronizationType[] VALUES = values();
242
244 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
245 if (desc.getType() != getDescriptor()) {
246 throw new java.lang.IllegalArgumentException(
247 "EnumValueDescriptor is not for this type.");
248 }
249 return VALUES[desc.getIndex()];
250 }
251
252 private final int value;
253
254 private ThreadSynchronizationType(int value) {
255 this.value = value;
256 }
257
258 // @@protoc_insertion_point(enum_scope:operations_research.bop.BopParameters.ThreadSynchronizationType)
259 }
260
261 private int bitField0_;
262 private int bitField1_;
263 public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 1;
264 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
274 @java.lang.Override
275 public boolean hasMaxTimeInSeconds() {
276 return ((bitField0_ & 0x00000001) != 0);
277 }
287 @java.lang.Override
288 public double getMaxTimeInSeconds() {
289 return maxTimeInSeconds_;
290 }
291
292 public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 27;
293 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
306 @java.lang.Override
307 public boolean hasMaxDeterministicTime() {
308 return ((bitField0_ & 0x00000002) != 0);
309 }
322 @java.lang.Override
323 public double getMaxDeterministicTime() {
324 return maxDeterministicTime_;
325 }
326
327 public static final int LP_MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 37;
328 private double lpMaxDeterministicTime_ = 1D;
339 @java.lang.Override
340 public boolean hasLpMaxDeterministicTime() {
341 return ((bitField0_ & 0x00000004) != 0);
342 }
353 @java.lang.Override
355 return lpMaxDeterministicTime_;
356 }
357
359 private int maxNumberOfConsecutiveFailingOptimizerCalls_ = 0;
372 @java.lang.Override
374 return ((bitField0_ & 0x00000008) != 0);
375 }
388 @java.lang.Override
390 return maxNumberOfConsecutiveFailingOptimizerCalls_;
391 }
392
393 public static final int RELATIVE_GAP_LIMIT_FIELD_NUMBER = 28;
394 private double relativeGapLimit_ = 0.0001D;
407 @java.lang.Override
408 public boolean hasRelativeGapLimit() {
409 return ((bitField0_ & 0x00000010) != 0);
410 }
423 @java.lang.Override
424 public double getRelativeGapLimit() {
425 return relativeGapLimit_;
426 }
427
428 public static final int MAX_NUM_DECISIONS_IN_LS_FIELD_NUMBER = 2;
429 private int maxNumDecisionsInLs_ = 4;
439 @java.lang.Override
440 public boolean hasMaxNumDecisionsInLs() {
441 return ((bitField0_ & 0x00000020) != 0);
442 }
452 @java.lang.Override
454 return maxNumDecisionsInLs_;
455 }
456
458 private int maxNumBrokenConstraintsInLs_ = 2147483647;
469 @java.lang.Override
471 return ((bitField0_ & 0x00000040) != 0);
472 }
483 @java.lang.Override
485 return maxNumBrokenConstraintsInLs_;
486 }
487
488 public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 14;
489 private boolean logSearchProgress_ = false;
498 @java.lang.Override
499 public boolean hasLogSearchProgress() {
500 return ((bitField0_ & 0x00000080) != 0);
501 }
510 @java.lang.Override
511 public boolean getLogSearchProgress() {
512 return logSearchProgress_;
513 }
514
515 public static final int COMPUTE_ESTIMATED_IMPACT_FIELD_NUMBER = 3;
516 private boolean computeEstimatedImpact_ = true;
525 @java.lang.Override
526 public boolean hasComputeEstimatedImpact() {
527 return ((bitField0_ & 0x00000100) != 0);
528 }
537 @java.lang.Override
538 public boolean getComputeEstimatedImpact() {
539 return computeEstimatedImpact_;
540 }
541
542 public static final int PRUNE_SEARCH_TREE_FIELD_NUMBER = 4;
543 private boolean pruneSearchTree_ = false;
552 @java.lang.Override
553 public boolean hasPruneSearchTree() {
554 return ((bitField0_ & 0x00000200) != 0);
555 }
564 @java.lang.Override
565 public boolean getPruneSearchTree() {
566 return pruneSearchTree_;
567 }
568
570 private boolean sortConstraintsByNumTerms_ = false;
580 @java.lang.Override
582 return ((bitField0_ & 0x00000400) != 0);
583 }
593 @java.lang.Override
595 return sortConstraintsByNumTerms_;
596 }
597
598 public static final int USE_RANDOM_LNS_FIELD_NUMBER = 6;
599 private boolean useRandomLns_ = true;
608 @java.lang.Override
609 public boolean hasUseRandomLns() {
610 return ((bitField0_ & 0x00000800) != 0);
611 }
620 @java.lang.Override
621 public boolean getUseRandomLns() {
622 return useRandomLns_;
623 }
624
625 public static final int RANDOM_SEED_FIELD_NUMBER = 7;
626 private int randomSeed_ = 8;
639 @java.lang.Override
640 public boolean hasRandomSeed() {
641 return ((bitField0_ & 0x00001000) != 0);
642 }
655 @java.lang.Override
656 public int getRandomSeed() {
657 return randomSeed_;
658 }
659
660 public static final int NUM_RELAXED_VARS_FIELD_NUMBER = 8;
661 private int numRelaxedVars_ = 10;
670 @java.lang.Override
671 public boolean hasNumRelaxedVars() {
672 return ((bitField0_ & 0x00002000) != 0);
673 }
682 @java.lang.Override
683 public int getNumRelaxedVars() {
684 return numRelaxedVars_;
685 }
686
688 private int maxNumberOfConflictsInRandomLns_ = 2500;
698 @java.lang.Override
700 return ((bitField0_ & 0x00004000) != 0);
701 }
711 @java.lang.Override
713 return maxNumberOfConflictsInRandomLns_;
714 }
715
716 public static final int NUM_RANDOM_LNS_TRIES_FIELD_NUMBER = 10;
717 private int numRandomLnsTries_ = 1;
726 @java.lang.Override
727 public boolean hasNumRandomLnsTries() {
728 return ((bitField0_ & 0x00008000) != 0);
729 }
738 @java.lang.Override
739 public int getNumRandomLnsTries() {
740 return numRandomLnsTries_;
741 }
742
744 private long maxNumberOfBacktracksInLs_ = 100000000L;
754 @java.lang.Override
756 return ((bitField0_ & 0x00010000) != 0);
757 }
767 @java.lang.Override
769 return maxNumberOfBacktracksInLs_;
770 }
771
772 public static final int USE_LP_LNS_FIELD_NUMBER = 12;
773 private boolean useLpLns_ = true;
782 @java.lang.Override
783 public boolean hasUseLpLns() {
784 return ((bitField0_ & 0x00020000) != 0);
785 }
794 @java.lang.Override
795 public boolean getUseLpLns() {
796 return useLpLns_;
797 }
798
800 private boolean useSatToChooseLnsNeighbourhood_ = true;
809 @java.lang.Override
811 return ((bitField0_ & 0x00040000) != 0);
812 }
821 @java.lang.Override
823 return useSatToChooseLnsNeighbourhood_;
824 }
825
827 private int maxNumberOfConflictsForQuickCheck_ = 10;
837 @java.lang.Override
839 return ((bitField0_ & 0x00080000) != 0);
840 }
850 @java.lang.Override
852 return maxNumberOfConflictsForQuickCheck_;
853 }
854
855 public static final int USE_SYMMETRY_FIELD_NUMBER = 17;
856 private boolean useSymmetry_ = false;
869 @java.lang.Override
870 public boolean hasUseSymmetry() {
871 return ((bitField0_ & 0x00100000) != 0);
872 }
885 @java.lang.Override
886 public boolean getUseSymmetry() {
887 return useSymmetry_;
888 }
889
891 private boolean exploitSymmetryInSatFirstSolution_ = false;
904 @java.lang.Override
906 return ((bitField0_ & 0x00200000) != 0);
907 }
920 @java.lang.Override
922 return exploitSymmetryInSatFirstSolution_;
923 }
924
926 private int maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
935 @java.lang.Override
937 return ((bitField0_ & 0x00400000) != 0);
938 }
947 @java.lang.Override
949 return maxNumberOfConflictsInRandomSolutionGeneration_;
950 }
951
953 private long maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
965 @java.lang.Override
967 return ((bitField0_ & 0x00800000) != 0);
968 }
980 @java.lang.Override
982 return maxNumberOfExploredAssignmentsPerTryInLs_;
983 }
984
985 public static final int USE_TRANSPOSITION_TABLE_IN_LS_FIELD_NUMBER = 22;
986 private boolean useTranspositionTableInLs_ = true;
998 @java.lang.Override
1000 return ((bitField0_ & 0x01000000) != 0);
1001 }
1013 @java.lang.Override
1015 return useTranspositionTableInLs_;
1016 }
1017
1019 private boolean usePotentialOneFlipRepairsInLs_ = false;
1030 @java.lang.Override
1032 return ((bitField0_ & 0x02000000) != 0);
1033 }
1044 @java.lang.Override
1046 return usePotentialOneFlipRepairsInLs_;
1047 }
1048
1050 private boolean useLearnedBinaryClausesInLp_ = true;
1059 @java.lang.Override
1061 return ((bitField0_ & 0x04000000) != 0);
1062 }
1071 @java.lang.Override
1073 return useLearnedBinaryClausesInLp_;
1074 }
1075
1076 public static final int NUMBER_OF_SOLVERS_FIELD_NUMBER = 24;
1077 private int numberOfSolvers_ = 1;
1088 @java.lang.Override
1089 public boolean hasNumberOfSolvers() {
1090 return ((bitField0_ & 0x08000000) != 0);
1091 }
1102 @java.lang.Override
1103 public int getNumberOfSolvers() {
1104 return numberOfSolvers_;
1105 }
1106
1107 public static final int SYNCHRONIZATION_TYPE_FIELD_NUMBER = 25;
1108 private int synchronizationType_ = 0;
1113 @java.lang.Override public boolean hasSynchronizationType() {
1114 return ((bitField0_ & 0x10000000) != 0);
1115 }
1121 com.google.ortools.bop.BopParameters.ThreadSynchronizationType result = com.google.ortools.bop.BopParameters.ThreadSynchronizationType.forNumber(synchronizationType_);
1122 return result == null ? com.google.ortools.bop.BopParameters.ThreadSynchronizationType.NO_SYNCHRONIZATION : result;
1123 }
1124
1125 public static final int SOLVER_OPTIMIZER_SETS_FIELD_NUMBER = 26;
1126 @SuppressWarnings("serial")
1127 private java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> solverOptimizerSets_;
1138 @java.lang.Override
1139 public java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> getSolverOptimizerSetsList() {
1140 return solverOptimizerSets_;
1141 }
1152 @java.lang.Override
1153 public java.util.List<? extends com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>
1155 return solverOptimizerSets_;
1156 }
1167 @java.lang.Override
1169 return solverOptimizerSets_.size();
1170 }
1181 @java.lang.Override
1183 return solverOptimizerSets_.get(index);
1184 }
1195 @java.lang.Override
1197 int index) {
1198 return solverOptimizerSets_.get(index);
1199 }
1200
1202 @SuppressWarnings("serial")
1203 private volatile java.lang.Object defaultSolverOptimizerSets_ = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } ";
1208 @java.lang.Override
1209 public boolean hasDefaultSolverOptimizerSets() {
1210 return ((bitField0_ & 0x20000000) != 0);
1211 }
1216 @java.lang.Override
1217 public java.lang.String getDefaultSolverOptimizerSets() {
1218 java.lang.Object ref = defaultSolverOptimizerSets_;
1219 if (ref instanceof java.lang.String) {
1220 return (java.lang.String) ref;
1221 } else {
1222 com.google.protobuf.ByteString bs =
1223 (com.google.protobuf.ByteString) ref;
1224 java.lang.String s = bs.toStringUtf8();
1225 if (bs.isValidUtf8()) {
1226 defaultSolverOptimizerSets_ = s;
1227 }
1228 return s;
1229 }
1230 }
1235 @java.lang.Override
1236 public com.google.protobuf.ByteString
1237 getDefaultSolverOptimizerSetsBytes() {
1238 java.lang.Object ref = defaultSolverOptimizerSets_;
1239 if (ref instanceof java.lang.String) {
1240 com.google.protobuf.ByteString b =
1241 com.google.protobuf.ByteString.copyFromUtf8(
1242 (java.lang.String) ref);
1243 defaultSolverOptimizerSets_ = b;
1244 return b;
1245 } else {
1246 return (com.google.protobuf.ByteString) ref;
1247 }
1248 }
1249
1250 public static final int USE_LP_STRONG_BRANCHING_FIELD_NUMBER = 29;
1251 private boolean useLpStrongBranching_ = false;
1268 @java.lang.Override
1269 public boolean hasUseLpStrongBranching() {
1270 return ((bitField0_ & 0x40000000) != 0);
1271 }
1288 @java.lang.Override
1289 public boolean getUseLpStrongBranching() {
1290 return useLpStrongBranching_;
1291 }
1292
1293 public static final int DECOMPOSER_NUM_VARIABLES_THRESHOLD_FIELD_NUMBER = 30;
1294 private int decomposerNumVariablesThreshold_ = 50;
1304 @java.lang.Override
1305 public boolean hasDecomposerNumVariablesThreshold() {
1306 return ((bitField0_ & 0x80000000) != 0);
1307 }
1317 @java.lang.Override
1318 public int getDecomposerNumVariablesThreshold() {
1319 return decomposerNumVariablesThreshold_;
1320 }
1321
1322 public static final int NUM_BOP_SOLVERS_USED_BY_DECOMPOSITION_FIELD_NUMBER = 31;
1323 private int numBopSolversUsedByDecomposition_ = 1;
1334 @java.lang.Override
1335 public boolean hasNumBopSolversUsedByDecomposition() {
1336 return ((bitField1_ & 0x00000001) != 0);
1337 }
1348 @java.lang.Override
1349 public int getNumBopSolversUsedByDecomposition() {
1350 return numBopSolversUsedByDecomposition_;
1351 }
1352
1353 public static final int DECOMPOSED_PROBLEM_MIN_TIME_IN_SECONDS_FIELD_NUMBER = 36;
1354 private double decomposedProblemMinTimeInSeconds_ = 0D;
1366 @java.lang.Override
1367 public boolean hasDecomposedProblemMinTimeInSeconds() {
1368 return ((bitField1_ & 0x00000002) != 0);
1369 }
1381 @java.lang.Override
1382 public double getDecomposedProblemMinTimeInSeconds() {
1383 return decomposedProblemMinTimeInSeconds_;
1384 }
1385
1386 public static final int GUIDED_SAT_CONFLICTS_CHUNK_FIELD_NUMBER = 34;
1387 private int guidedSatConflictsChunk_ = 1000;
1398 @java.lang.Override
1399 public boolean hasGuidedSatConflictsChunk() {
1400 return ((bitField1_ & 0x00000004) != 0);
1401 }
1412 @java.lang.Override
1413 public int getGuidedSatConflictsChunk() {
1414 return guidedSatConflictsChunk_;
1415 }
1416
1417 public static final int MAX_LP_SOLVE_FOR_FEASIBILITY_PROBLEMS_FIELD_NUMBER = 41;
1418 private int maxLpSolveForFeasibilityProblems_ = 0;
1430 @java.lang.Override
1431 public boolean hasMaxLpSolveForFeasibilityProblems() {
1432 return ((bitField1_ & 0x00000008) != 0);
1433 }
1445 @java.lang.Override
1446 public int getMaxLpSolveForFeasibilityProblems() {
1447 return maxLpSolveForFeasibilityProblems_;
1448 }
1449
1450 private byte memoizedIsInitialized = -1;
1451 @java.lang.Override
1452 public final boolean isInitialized() {
1453 byte isInitialized = memoizedIsInitialized;
1454 if (isInitialized == 1) return true;
1455 if (isInitialized == 0) return false;
1456
1457 memoizedIsInitialized = 1;
1458 return true;
1459 }
1460
1461 @java.lang.Override
1462 public void writeTo(com.google.protobuf.CodedOutputStream output)
1463 throws java.io.IOException {
1464 if (((bitField0_ & 0x00000001) != 0)) {
1465 output.writeDouble(1, maxTimeInSeconds_);
1466 }
1467 if (((bitField0_ & 0x00000020) != 0)) {
1468 output.writeInt32(2, maxNumDecisionsInLs_);
1469 }
1470 if (((bitField0_ & 0x00000100) != 0)) {
1471 output.writeBool(3, computeEstimatedImpact_);
1472 }
1473 if (((bitField0_ & 0x00000200) != 0)) {
1474 output.writeBool(4, pruneSearchTree_);
1475 }
1476 if (((bitField0_ & 0x00000400) != 0)) {
1477 output.writeBool(5, sortConstraintsByNumTerms_);
1478 }
1479 if (((bitField0_ & 0x00000800) != 0)) {
1480 output.writeBool(6, useRandomLns_);
1481 }
1482 if (((bitField0_ & 0x00001000) != 0)) {
1483 output.writeInt32(7, randomSeed_);
1484 }
1485 if (((bitField0_ & 0x00002000) != 0)) {
1486 output.writeInt32(8, numRelaxedVars_);
1487 }
1488 if (((bitField0_ & 0x00004000) != 0)) {
1489 output.writeInt32(9, maxNumberOfConflictsInRandomLns_);
1490 }
1491 if (((bitField0_ & 0x00008000) != 0)) {
1492 output.writeInt32(10, numRandomLnsTries_);
1493 }
1494 if (((bitField0_ & 0x00010000) != 0)) {
1495 output.writeInt64(11, maxNumberOfBacktracksInLs_);
1496 }
1497 if (((bitField0_ & 0x00020000) != 0)) {
1498 output.writeBool(12, useLpLns_);
1499 }
1500 if (((bitField0_ & 0x00000080) != 0)) {
1501 output.writeBool(14, logSearchProgress_);
1502 }
1503 if (((bitField0_ & 0x00040000) != 0)) {
1504 output.writeBool(15, useSatToChooseLnsNeighbourhood_);
1505 }
1506 if (((bitField0_ & 0x00080000) != 0)) {
1507 output.writeInt32(16, maxNumberOfConflictsForQuickCheck_);
1508 }
1509 if (((bitField0_ & 0x00100000) != 0)) {
1510 output.writeBool(17, useSymmetry_);
1511 }
1512 if (((bitField0_ & 0x00400000) != 0)) {
1513 output.writeInt32(20, maxNumberOfConflictsInRandomSolutionGeneration_);
1514 }
1515 if (((bitField0_ & 0x00800000) != 0)) {
1516 output.writeInt64(21, maxNumberOfExploredAssignmentsPerTryInLs_);
1517 }
1518 if (((bitField0_ & 0x01000000) != 0)) {
1519 output.writeBool(22, useTranspositionTableInLs_);
1520 }
1521 if (((bitField0_ & 0x04000000) != 0)) {
1522 output.writeBool(23, useLearnedBinaryClausesInLp_);
1523 }
1524 if (((bitField0_ & 0x08000000) != 0)) {
1525 output.writeInt32(24, numberOfSolvers_);
1526 }
1527 if (((bitField0_ & 0x10000000) != 0)) {
1528 output.writeEnum(25, synchronizationType_);
1529 }
1530 for (int i = 0; i < solverOptimizerSets_.size(); i++) {
1531 output.writeMessage(26, solverOptimizerSets_.get(i));
1532 }
1533 if (((bitField0_ & 0x00000002) != 0)) {
1534 output.writeDouble(27, maxDeterministicTime_);
1535 }
1536 if (((bitField0_ & 0x00000010) != 0)) {
1537 output.writeDouble(28, relativeGapLimit_);
1538 }
1539 if (((bitField0_ & 0x40000000) != 0)) {
1540 output.writeBool(29, useLpStrongBranching_);
1541 }
1542 if (((bitField0_ & 0x80000000) != 0)) {
1543 output.writeInt32(30, decomposerNumVariablesThreshold_);
1544 }
1545 if (((bitField1_ & 0x00000001) != 0)) {
1546 output.writeInt32(31, numBopSolversUsedByDecomposition_);
1547 }
1548 if (((bitField0_ & 0x20000000) != 0)) {
1549 com.google.protobuf.GeneratedMessageV3.writeString(output, 33, defaultSolverOptimizerSets_);
1550 }
1551 if (((bitField1_ & 0x00000004) != 0)) {
1552 output.writeInt32(34, guidedSatConflictsChunk_);
1553 }
1554 if (((bitField0_ & 0x00000008) != 0)) {
1555 output.writeInt32(35, maxNumberOfConsecutiveFailingOptimizerCalls_);
1556 }
1557 if (((bitField1_ & 0x00000002) != 0)) {
1558 output.writeDouble(36, decomposedProblemMinTimeInSeconds_);
1559 }
1560 if (((bitField0_ & 0x00000004) != 0)) {
1561 output.writeDouble(37, lpMaxDeterministicTime_);
1562 }
1563 if (((bitField0_ & 0x00000040) != 0)) {
1564 output.writeInt32(38, maxNumBrokenConstraintsInLs_);
1565 }
1566 if (((bitField0_ & 0x02000000) != 0)) {
1567 output.writeBool(39, usePotentialOneFlipRepairsInLs_);
1568 }
1569 if (((bitField0_ & 0x00200000) != 0)) {
1570 output.writeBool(40, exploitSymmetryInSatFirstSolution_);
1571 }
1572 if (((bitField1_ & 0x00000008) != 0)) {
1573 output.writeInt32(41, maxLpSolveForFeasibilityProblems_);
1574 }
1575 getUnknownFields().writeTo(output);
1576 }
1577
1578 @java.lang.Override
1579 public int getSerializedSize() {
1580 int size = memoizedSize;
1581 if (size != -1) return size;
1582
1583 size = 0;
1584 if (((bitField0_ & 0x00000001) != 0)) {
1585 size += com.google.protobuf.CodedOutputStream
1586 .computeDoubleSize(1, maxTimeInSeconds_);
1587 }
1588 if (((bitField0_ & 0x00000020) != 0)) {
1589 size += com.google.protobuf.CodedOutputStream
1590 .computeInt32Size(2, maxNumDecisionsInLs_);
1591 }
1592 if (((bitField0_ & 0x00000100) != 0)) {
1593 size += com.google.protobuf.CodedOutputStream
1594 .computeBoolSize(3, computeEstimatedImpact_);
1595 }
1596 if (((bitField0_ & 0x00000200) != 0)) {
1597 size += com.google.protobuf.CodedOutputStream
1598 .computeBoolSize(4, pruneSearchTree_);
1599 }
1600 if (((bitField0_ & 0x00000400) != 0)) {
1601 size += com.google.protobuf.CodedOutputStream
1602 .computeBoolSize(5, sortConstraintsByNumTerms_);
1603 }
1604 if (((bitField0_ & 0x00000800) != 0)) {
1605 size += com.google.protobuf.CodedOutputStream
1606 .computeBoolSize(6, useRandomLns_);
1607 }
1608 if (((bitField0_ & 0x00001000) != 0)) {
1609 size += com.google.protobuf.CodedOutputStream
1610 .computeInt32Size(7, randomSeed_);
1611 }
1612 if (((bitField0_ & 0x00002000) != 0)) {
1613 size += com.google.protobuf.CodedOutputStream
1614 .computeInt32Size(8, numRelaxedVars_);
1615 }
1616 if (((bitField0_ & 0x00004000) != 0)) {
1617 size += com.google.protobuf.CodedOutputStream
1618 .computeInt32Size(9, maxNumberOfConflictsInRandomLns_);
1619 }
1620 if (((bitField0_ & 0x00008000) != 0)) {
1621 size += com.google.protobuf.CodedOutputStream
1622 .computeInt32Size(10, numRandomLnsTries_);
1623 }
1624 if (((bitField0_ & 0x00010000) != 0)) {
1625 size += com.google.protobuf.CodedOutputStream
1626 .computeInt64Size(11, maxNumberOfBacktracksInLs_);
1627 }
1628 if (((bitField0_ & 0x00020000) != 0)) {
1629 size += com.google.protobuf.CodedOutputStream
1630 .computeBoolSize(12, useLpLns_);
1631 }
1632 if (((bitField0_ & 0x00000080) != 0)) {
1633 size += com.google.protobuf.CodedOutputStream
1634 .computeBoolSize(14, logSearchProgress_);
1635 }
1636 if (((bitField0_ & 0x00040000) != 0)) {
1637 size += com.google.protobuf.CodedOutputStream
1638 .computeBoolSize(15, useSatToChooseLnsNeighbourhood_);
1639 }
1640 if (((bitField0_ & 0x00080000) != 0)) {
1641 size += com.google.protobuf.CodedOutputStream
1642 .computeInt32Size(16, maxNumberOfConflictsForQuickCheck_);
1643 }
1644 if (((bitField0_ & 0x00100000) != 0)) {
1645 size += com.google.protobuf.CodedOutputStream
1646 .computeBoolSize(17, useSymmetry_);
1647 }
1648 if (((bitField0_ & 0x00400000) != 0)) {
1649 size += com.google.protobuf.CodedOutputStream
1650 .computeInt32Size(20, maxNumberOfConflictsInRandomSolutionGeneration_);
1651 }
1652 if (((bitField0_ & 0x00800000) != 0)) {
1653 size += com.google.protobuf.CodedOutputStream
1654 .computeInt64Size(21, maxNumberOfExploredAssignmentsPerTryInLs_);
1655 }
1656 if (((bitField0_ & 0x01000000) != 0)) {
1657 size += com.google.protobuf.CodedOutputStream
1658 .computeBoolSize(22, useTranspositionTableInLs_);
1659 }
1660 if (((bitField0_ & 0x04000000) != 0)) {
1661 size += com.google.protobuf.CodedOutputStream
1662 .computeBoolSize(23, useLearnedBinaryClausesInLp_);
1663 }
1664 if (((bitField0_ & 0x08000000) != 0)) {
1665 size += com.google.protobuf.CodedOutputStream
1666 .computeInt32Size(24, numberOfSolvers_);
1667 }
1668 if (((bitField0_ & 0x10000000) != 0)) {
1669 size += com.google.protobuf.CodedOutputStream
1670 .computeEnumSize(25, synchronizationType_);
1671 }
1672 for (int i = 0; i < solverOptimizerSets_.size(); i++) {
1673 size += com.google.protobuf.CodedOutputStream
1674 .computeMessageSize(26, solverOptimizerSets_.get(i));
1675 }
1676 if (((bitField0_ & 0x00000002) != 0)) {
1677 size += com.google.protobuf.CodedOutputStream
1678 .computeDoubleSize(27, maxDeterministicTime_);
1679 }
1680 if (((bitField0_ & 0x00000010) != 0)) {
1681 size += com.google.protobuf.CodedOutputStream
1682 .computeDoubleSize(28, relativeGapLimit_);
1683 }
1684 if (((bitField0_ & 0x40000000) != 0)) {
1685 size += com.google.protobuf.CodedOutputStream
1686 .computeBoolSize(29, useLpStrongBranching_);
1687 }
1688 if (((bitField0_ & 0x80000000) != 0)) {
1689 size += com.google.protobuf.CodedOutputStream
1690 .computeInt32Size(30, decomposerNumVariablesThreshold_);
1691 }
1692 if (((bitField1_ & 0x00000001) != 0)) {
1693 size += com.google.protobuf.CodedOutputStream
1694 .computeInt32Size(31, numBopSolversUsedByDecomposition_);
1695 }
1696 if (((bitField0_ & 0x20000000) != 0)) {
1697 size += com.google.protobuf.GeneratedMessageV3.computeStringSize(33, defaultSolverOptimizerSets_);
1698 }
1699 if (((bitField1_ & 0x00000004) != 0)) {
1700 size += com.google.protobuf.CodedOutputStream
1701 .computeInt32Size(34, guidedSatConflictsChunk_);
1702 }
1703 if (((bitField0_ & 0x00000008) != 0)) {
1704 size += com.google.protobuf.CodedOutputStream
1705 .computeInt32Size(35, maxNumberOfConsecutiveFailingOptimizerCalls_);
1706 }
1707 if (((bitField1_ & 0x00000002) != 0)) {
1708 size += com.google.protobuf.CodedOutputStream
1709 .computeDoubleSize(36, decomposedProblemMinTimeInSeconds_);
1710 }
1711 if (((bitField0_ & 0x00000004) != 0)) {
1712 size += com.google.protobuf.CodedOutputStream
1713 .computeDoubleSize(37, lpMaxDeterministicTime_);
1714 }
1715 if (((bitField0_ & 0x00000040) != 0)) {
1716 size += com.google.protobuf.CodedOutputStream
1717 .computeInt32Size(38, maxNumBrokenConstraintsInLs_);
1718 }
1719 if (((bitField0_ & 0x02000000) != 0)) {
1720 size += com.google.protobuf.CodedOutputStream
1721 .computeBoolSize(39, usePotentialOneFlipRepairsInLs_);
1722 }
1723 if (((bitField0_ & 0x00200000) != 0)) {
1724 size += com.google.protobuf.CodedOutputStream
1725 .computeBoolSize(40, exploitSymmetryInSatFirstSolution_);
1726 }
1727 if (((bitField1_ & 0x00000008) != 0)) {
1728 size += com.google.protobuf.CodedOutputStream
1729 .computeInt32Size(41, maxLpSolveForFeasibilityProblems_);
1730 }
1731 size += getUnknownFields().getSerializedSize();
1732 memoizedSize = size;
1733 return size;
1734 }
1735
1736 @java.lang.Override
1737 public boolean equals(final java.lang.Object obj) {
1738 if (obj == this) {
1739 return true;
1740 }
1741 if (!(obj instanceof com.google.ortools.bop.BopParameters)) {
1742 return super.equals(obj);
1743 }
1744 com.google.ortools.bop.BopParameters other = (com.google.ortools.bop.BopParameters) obj;
1745
1746 if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
1747 if (hasMaxTimeInSeconds()) {
1748 if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
1749 != java.lang.Double.doubleToLongBits(
1750 other.getMaxTimeInSeconds())) return false;
1751 }
1752 if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
1753 if (hasMaxDeterministicTime()) {
1754 if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
1755 != java.lang.Double.doubleToLongBits(
1756 other.getMaxDeterministicTime())) return false;
1757 }
1758 if (hasLpMaxDeterministicTime() != other.hasLpMaxDeterministicTime()) return false;
1759 if (hasLpMaxDeterministicTime()) {
1760 if (java.lang.Double.doubleToLongBits(getLpMaxDeterministicTime())
1761 != java.lang.Double.doubleToLongBits(
1762 other.getLpMaxDeterministicTime())) return false;
1763 }
1764 if (hasMaxNumberOfConsecutiveFailingOptimizerCalls() != other.hasMaxNumberOfConsecutiveFailingOptimizerCalls()) return false;
1765 if (hasMaxNumberOfConsecutiveFailingOptimizerCalls()) {
1766 if (getMaxNumberOfConsecutiveFailingOptimizerCalls()
1767 != other.getMaxNumberOfConsecutiveFailingOptimizerCalls()) return false;
1768 }
1769 if (hasRelativeGapLimit() != other.hasRelativeGapLimit()) return false;
1770 if (hasRelativeGapLimit()) {
1771 if (java.lang.Double.doubleToLongBits(getRelativeGapLimit())
1772 != java.lang.Double.doubleToLongBits(
1773 other.getRelativeGapLimit())) return false;
1774 }
1775 if (hasMaxNumDecisionsInLs() != other.hasMaxNumDecisionsInLs()) return false;
1776 if (hasMaxNumDecisionsInLs()) {
1777 if (getMaxNumDecisionsInLs()
1778 != other.getMaxNumDecisionsInLs()) return false;
1779 }
1780 if (hasMaxNumBrokenConstraintsInLs() != other.hasMaxNumBrokenConstraintsInLs()) return false;
1781 if (hasMaxNumBrokenConstraintsInLs()) {
1782 if (getMaxNumBrokenConstraintsInLs()
1783 != other.getMaxNumBrokenConstraintsInLs()) return false;
1784 }
1785 if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
1786 if (hasLogSearchProgress()) {
1787 if (getLogSearchProgress()
1788 != other.getLogSearchProgress()) return false;
1789 }
1790 if (hasComputeEstimatedImpact() != other.hasComputeEstimatedImpact()) return false;
1791 if (hasComputeEstimatedImpact()) {
1792 if (getComputeEstimatedImpact()
1793 != other.getComputeEstimatedImpact()) return false;
1794 }
1795 if (hasPruneSearchTree() != other.hasPruneSearchTree()) return false;
1796 if (hasPruneSearchTree()) {
1797 if (getPruneSearchTree()
1798 != other.getPruneSearchTree()) return false;
1799 }
1800 if (hasSortConstraintsByNumTerms() != other.hasSortConstraintsByNumTerms()) return false;
1801 if (hasSortConstraintsByNumTerms()) {
1802 if (getSortConstraintsByNumTerms()
1803 != other.getSortConstraintsByNumTerms()) return false;
1804 }
1805 if (hasUseRandomLns() != other.hasUseRandomLns()) return false;
1806 if (hasUseRandomLns()) {
1807 if (getUseRandomLns()
1808 != other.getUseRandomLns()) return false;
1809 }
1810 if (hasRandomSeed() != other.hasRandomSeed()) return false;
1811 if (hasRandomSeed()) {
1812 if (getRandomSeed()
1813 != other.getRandomSeed()) return false;
1814 }
1815 if (hasNumRelaxedVars() != other.hasNumRelaxedVars()) return false;
1816 if (hasNumRelaxedVars()) {
1817 if (getNumRelaxedVars()
1818 != other.getNumRelaxedVars()) return false;
1819 }
1820 if (hasMaxNumberOfConflictsInRandomLns() != other.hasMaxNumberOfConflictsInRandomLns()) return false;
1821 if (hasMaxNumberOfConflictsInRandomLns()) {
1822 if (getMaxNumberOfConflictsInRandomLns()
1823 != other.getMaxNumberOfConflictsInRandomLns()) return false;
1824 }
1825 if (hasNumRandomLnsTries() != other.hasNumRandomLnsTries()) return false;
1826 if (hasNumRandomLnsTries()) {
1827 if (getNumRandomLnsTries()
1828 != other.getNumRandomLnsTries()) return false;
1829 }
1830 if (hasMaxNumberOfBacktracksInLs() != other.hasMaxNumberOfBacktracksInLs()) return false;
1831 if (hasMaxNumberOfBacktracksInLs()) {
1832 if (getMaxNumberOfBacktracksInLs()
1833 != other.getMaxNumberOfBacktracksInLs()) return false;
1834 }
1835 if (hasUseLpLns() != other.hasUseLpLns()) return false;
1836 if (hasUseLpLns()) {
1837 if (getUseLpLns()
1838 != other.getUseLpLns()) return false;
1839 }
1840 if (hasUseSatToChooseLnsNeighbourhood() != other.hasUseSatToChooseLnsNeighbourhood()) return false;
1841 if (hasUseSatToChooseLnsNeighbourhood()) {
1842 if (getUseSatToChooseLnsNeighbourhood()
1843 != other.getUseSatToChooseLnsNeighbourhood()) return false;
1844 }
1845 if (hasMaxNumberOfConflictsForQuickCheck() != other.hasMaxNumberOfConflictsForQuickCheck()) return false;
1846 if (hasMaxNumberOfConflictsForQuickCheck()) {
1847 if (getMaxNumberOfConflictsForQuickCheck()
1848 != other.getMaxNumberOfConflictsForQuickCheck()) return false;
1849 }
1850 if (hasUseSymmetry() != other.hasUseSymmetry()) return false;
1851 if (hasUseSymmetry()) {
1852 if (getUseSymmetry()
1853 != other.getUseSymmetry()) return false;
1854 }
1855 if (hasExploitSymmetryInSatFirstSolution() != other.hasExploitSymmetryInSatFirstSolution()) return false;
1856 if (hasExploitSymmetryInSatFirstSolution()) {
1857 if (getExploitSymmetryInSatFirstSolution()
1858 != other.getExploitSymmetryInSatFirstSolution()) return false;
1859 }
1860 if (hasMaxNumberOfConflictsInRandomSolutionGeneration() != other.hasMaxNumberOfConflictsInRandomSolutionGeneration()) return false;
1861 if (hasMaxNumberOfConflictsInRandomSolutionGeneration()) {
1862 if (getMaxNumberOfConflictsInRandomSolutionGeneration()
1863 != other.getMaxNumberOfConflictsInRandomSolutionGeneration()) return false;
1864 }
1865 if (hasMaxNumberOfExploredAssignmentsPerTryInLs() != other.hasMaxNumberOfExploredAssignmentsPerTryInLs()) return false;
1866 if (hasMaxNumberOfExploredAssignmentsPerTryInLs()) {
1867 if (getMaxNumberOfExploredAssignmentsPerTryInLs()
1868 != other.getMaxNumberOfExploredAssignmentsPerTryInLs()) return false;
1869 }
1870 if (hasUseTranspositionTableInLs() != other.hasUseTranspositionTableInLs()) return false;
1871 if (hasUseTranspositionTableInLs()) {
1872 if (getUseTranspositionTableInLs()
1873 != other.getUseTranspositionTableInLs()) return false;
1874 }
1875 if (hasUsePotentialOneFlipRepairsInLs() != other.hasUsePotentialOneFlipRepairsInLs()) return false;
1876 if (hasUsePotentialOneFlipRepairsInLs()) {
1877 if (getUsePotentialOneFlipRepairsInLs()
1878 != other.getUsePotentialOneFlipRepairsInLs()) return false;
1879 }
1880 if (hasUseLearnedBinaryClausesInLp() != other.hasUseLearnedBinaryClausesInLp()) return false;
1881 if (hasUseLearnedBinaryClausesInLp()) {
1882 if (getUseLearnedBinaryClausesInLp()
1883 != other.getUseLearnedBinaryClausesInLp()) return false;
1884 }
1885 if (hasNumberOfSolvers() != other.hasNumberOfSolvers()) return false;
1886 if (hasNumberOfSolvers()) {
1887 if (getNumberOfSolvers()
1888 != other.getNumberOfSolvers()) return false;
1889 }
1890 if (hasSynchronizationType() != other.hasSynchronizationType()) return false;
1891 if (hasSynchronizationType()) {
1892 if (synchronizationType_ != other.synchronizationType_) return false;
1893 }
1894 if (!getSolverOptimizerSetsList()
1895 .equals(other.getSolverOptimizerSetsList())) return false;
1896 if (hasDefaultSolverOptimizerSets() != other.hasDefaultSolverOptimizerSets()) return false;
1897 if (hasDefaultSolverOptimizerSets()) {
1898 if (!getDefaultSolverOptimizerSets()
1899 .equals(other.getDefaultSolverOptimizerSets())) return false;
1900 }
1901 if (hasUseLpStrongBranching() != other.hasUseLpStrongBranching()) return false;
1902 if (hasUseLpStrongBranching()) {
1903 if (getUseLpStrongBranching()
1904 != other.getUseLpStrongBranching()) return false;
1905 }
1906 if (hasDecomposerNumVariablesThreshold() != other.hasDecomposerNumVariablesThreshold()) return false;
1907 if (hasDecomposerNumVariablesThreshold()) {
1908 if (getDecomposerNumVariablesThreshold()
1909 != other.getDecomposerNumVariablesThreshold()) return false;
1910 }
1911 if (hasNumBopSolversUsedByDecomposition() != other.hasNumBopSolversUsedByDecomposition()) return false;
1912 if (hasNumBopSolversUsedByDecomposition()) {
1913 if (getNumBopSolversUsedByDecomposition()
1914 != other.getNumBopSolversUsedByDecomposition()) return false;
1915 }
1916 if (hasDecomposedProblemMinTimeInSeconds() != other.hasDecomposedProblemMinTimeInSeconds()) return false;
1917 if (hasDecomposedProblemMinTimeInSeconds()) {
1918 if (java.lang.Double.doubleToLongBits(getDecomposedProblemMinTimeInSeconds())
1919 != java.lang.Double.doubleToLongBits(
1920 other.getDecomposedProblemMinTimeInSeconds())) return false;
1921 }
1922 if (hasGuidedSatConflictsChunk() != other.hasGuidedSatConflictsChunk()) return false;
1923 if (hasGuidedSatConflictsChunk()) {
1924 if (getGuidedSatConflictsChunk()
1925 != other.getGuidedSatConflictsChunk()) return false;
1926 }
1927 if (hasMaxLpSolveForFeasibilityProblems() != other.hasMaxLpSolveForFeasibilityProblems()) return false;
1928 if (hasMaxLpSolveForFeasibilityProblems()) {
1929 if (getMaxLpSolveForFeasibilityProblems()
1930 != other.getMaxLpSolveForFeasibilityProblems()) return false;
1931 }
1932 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
1933 return true;
1934 }
1935
1936 @java.lang.Override
1937 public int hashCode() {
1938 if (memoizedHashCode != 0) {
1939 return memoizedHashCode;
1940 }
1941 int hash = 41;
1942 hash = (19 * hash) + getDescriptor().hashCode();
1943 if (hasMaxTimeInSeconds()) {
1944 hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
1945 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1946 java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
1947 }
1948 if (hasMaxDeterministicTime()) {
1949 hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
1950 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1951 java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
1952 }
1953 if (hasLpMaxDeterministicTime()) {
1954 hash = (37 * hash) + LP_MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
1955 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1956 java.lang.Double.doubleToLongBits(getLpMaxDeterministicTime()));
1957 }
1958 if (hasMaxNumberOfConsecutiveFailingOptimizerCalls()) {
1959 hash = (37 * hash) + MAX_NUMBER_OF_CONSECUTIVE_FAILING_OPTIMIZER_CALLS_FIELD_NUMBER;
1960 hash = (53 * hash) + getMaxNumberOfConsecutiveFailingOptimizerCalls();
1961 }
1962 if (hasRelativeGapLimit()) {
1963 hash = (37 * hash) + RELATIVE_GAP_LIMIT_FIELD_NUMBER;
1964 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1965 java.lang.Double.doubleToLongBits(getRelativeGapLimit()));
1966 }
1967 if (hasMaxNumDecisionsInLs()) {
1968 hash = (37 * hash) + MAX_NUM_DECISIONS_IN_LS_FIELD_NUMBER;
1969 hash = (53 * hash) + getMaxNumDecisionsInLs();
1970 }
1971 if (hasMaxNumBrokenConstraintsInLs()) {
1972 hash = (37 * hash) + MAX_NUM_BROKEN_CONSTRAINTS_IN_LS_FIELD_NUMBER;
1973 hash = (53 * hash) + getMaxNumBrokenConstraintsInLs();
1974 }
1975 if (hasLogSearchProgress()) {
1976 hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
1977 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1978 getLogSearchProgress());
1979 }
1980 if (hasComputeEstimatedImpact()) {
1981 hash = (37 * hash) + COMPUTE_ESTIMATED_IMPACT_FIELD_NUMBER;
1982 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1983 getComputeEstimatedImpact());
1984 }
1985 if (hasPruneSearchTree()) {
1986 hash = (37 * hash) + PRUNE_SEARCH_TREE_FIELD_NUMBER;
1987 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1988 getPruneSearchTree());
1989 }
1990 if (hasSortConstraintsByNumTerms()) {
1991 hash = (37 * hash) + SORT_CONSTRAINTS_BY_NUM_TERMS_FIELD_NUMBER;
1992 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1993 getSortConstraintsByNumTerms());
1994 }
1995 if (hasUseRandomLns()) {
1996 hash = (37 * hash) + USE_RANDOM_LNS_FIELD_NUMBER;
1997 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1998 getUseRandomLns());
1999 }
2000 if (hasRandomSeed()) {
2001 hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
2002 hash = (53 * hash) + getRandomSeed();
2003 }
2004 if (hasNumRelaxedVars()) {
2005 hash = (37 * hash) + NUM_RELAXED_VARS_FIELD_NUMBER;
2006 hash = (53 * hash) + getNumRelaxedVars();
2007 }
2008 if (hasMaxNumberOfConflictsInRandomLns()) {
2009 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_LNS_FIELD_NUMBER;
2010 hash = (53 * hash) + getMaxNumberOfConflictsInRandomLns();
2011 }
2012 if (hasNumRandomLnsTries()) {
2013 hash = (37 * hash) + NUM_RANDOM_LNS_TRIES_FIELD_NUMBER;
2014 hash = (53 * hash) + getNumRandomLnsTries();
2015 }
2016 if (hasMaxNumberOfBacktracksInLs()) {
2017 hash = (37 * hash) + MAX_NUMBER_OF_BACKTRACKS_IN_LS_FIELD_NUMBER;
2018 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
2019 getMaxNumberOfBacktracksInLs());
2020 }
2021 if (hasUseLpLns()) {
2022 hash = (37 * hash) + USE_LP_LNS_FIELD_NUMBER;
2023 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2024 getUseLpLns());
2025 }
2026 if (hasUseSatToChooseLnsNeighbourhood()) {
2027 hash = (37 * hash) + USE_SAT_TO_CHOOSE_LNS_NEIGHBOURHOOD_FIELD_NUMBER;
2028 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2029 getUseSatToChooseLnsNeighbourhood());
2030 }
2031 if (hasMaxNumberOfConflictsForQuickCheck()) {
2032 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FOR_QUICK_CHECK_FIELD_NUMBER;
2033 hash = (53 * hash) + getMaxNumberOfConflictsForQuickCheck();
2034 }
2035 if (hasUseSymmetry()) {
2036 hash = (37 * hash) + USE_SYMMETRY_FIELD_NUMBER;
2037 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2038 getUseSymmetry());
2039 }
2040 if (hasExploitSymmetryInSatFirstSolution()) {
2041 hash = (37 * hash) + EXPLOIT_SYMMETRY_IN_SAT_FIRST_SOLUTION_FIELD_NUMBER;
2042 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2043 getExploitSymmetryInSatFirstSolution());
2044 }
2045 if (hasMaxNumberOfConflictsInRandomSolutionGeneration()) {
2046 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_SOLUTION_GENERATION_FIELD_NUMBER;
2047 hash = (53 * hash) + getMaxNumberOfConflictsInRandomSolutionGeneration();
2048 }
2049 if (hasMaxNumberOfExploredAssignmentsPerTryInLs()) {
2050 hash = (37 * hash) + MAX_NUMBER_OF_EXPLORED_ASSIGNMENTS_PER_TRY_IN_LS_FIELD_NUMBER;
2051 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
2052 getMaxNumberOfExploredAssignmentsPerTryInLs());
2053 }
2054 if (hasUseTranspositionTableInLs()) {
2055 hash = (37 * hash) + USE_TRANSPOSITION_TABLE_IN_LS_FIELD_NUMBER;
2056 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2057 getUseTranspositionTableInLs());
2058 }
2059 if (hasUsePotentialOneFlipRepairsInLs()) {
2060 hash = (37 * hash) + USE_POTENTIAL_ONE_FLIP_REPAIRS_IN_LS_FIELD_NUMBER;
2061 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2062 getUsePotentialOneFlipRepairsInLs());
2063 }
2064 if (hasUseLearnedBinaryClausesInLp()) {
2065 hash = (37 * hash) + USE_LEARNED_BINARY_CLAUSES_IN_LP_FIELD_NUMBER;
2066 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2067 getUseLearnedBinaryClausesInLp());
2068 }
2069 if (hasNumberOfSolvers()) {
2070 hash = (37 * hash) + NUMBER_OF_SOLVERS_FIELD_NUMBER;
2071 hash = (53 * hash) + getNumberOfSolvers();
2072 }
2073 if (hasSynchronizationType()) {
2074 hash = (37 * hash) + SYNCHRONIZATION_TYPE_FIELD_NUMBER;
2075 hash = (53 * hash) + synchronizationType_;
2076 }
2077 if (getSolverOptimizerSetsCount() > 0) {
2078 hash = (37 * hash) + SOLVER_OPTIMIZER_SETS_FIELD_NUMBER;
2079 hash = (53 * hash) + getSolverOptimizerSetsList().hashCode();
2080 }
2081 if (hasDefaultSolverOptimizerSets()) {
2082 hash = (37 * hash) + DEFAULT_SOLVER_OPTIMIZER_SETS_FIELD_NUMBER;
2083 hash = (53 * hash) + getDefaultSolverOptimizerSets().hashCode();
2084 }
2085 if (hasUseLpStrongBranching()) {
2086 hash = (37 * hash) + USE_LP_STRONG_BRANCHING_FIELD_NUMBER;
2087 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2088 getUseLpStrongBranching());
2089 }
2090 if (hasDecomposerNumVariablesThreshold()) {
2091 hash = (37 * hash) + DECOMPOSER_NUM_VARIABLES_THRESHOLD_FIELD_NUMBER;
2092 hash = (53 * hash) + getDecomposerNumVariablesThreshold();
2093 }
2094 if (hasNumBopSolversUsedByDecomposition()) {
2095 hash = (37 * hash) + NUM_BOP_SOLVERS_USED_BY_DECOMPOSITION_FIELD_NUMBER;
2096 hash = (53 * hash) + getNumBopSolversUsedByDecomposition();
2097 }
2098 if (hasDecomposedProblemMinTimeInSeconds()) {
2099 hash = (37 * hash) + DECOMPOSED_PROBLEM_MIN_TIME_IN_SECONDS_FIELD_NUMBER;
2100 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
2101 java.lang.Double.doubleToLongBits(getDecomposedProblemMinTimeInSeconds()));
2102 }
2103 if (hasGuidedSatConflictsChunk()) {
2104 hash = (37 * hash) + GUIDED_SAT_CONFLICTS_CHUNK_FIELD_NUMBER;
2105 hash = (53 * hash) + getGuidedSatConflictsChunk();
2106 }
2107 if (hasMaxLpSolveForFeasibilityProblems()) {
2108 hash = (37 * hash) + MAX_LP_SOLVE_FOR_FEASIBILITY_PROBLEMS_FIELD_NUMBER;
2109 hash = (53 * hash) + getMaxLpSolveForFeasibilityProblems();
2110 }
2111 hash = (29 * hash) + getUnknownFields().hashCode();
2112 memoizedHashCode = hash;
2113 return hash;
2114 }
2115
2116 public static com.google.ortools.bop.BopParameters parseFrom(
2117 java.nio.ByteBuffer data)
2118 throws com.google.protobuf.InvalidProtocolBufferException {
2119 return PARSER.parseFrom(data);
2120 }
2121 public static com.google.ortools.bop.BopParameters parseFrom(
2122 java.nio.ByteBuffer data,
2123 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2124 throws com.google.protobuf.InvalidProtocolBufferException {
2125 return PARSER.parseFrom(data, extensionRegistry);
2126 }
2127 public static com.google.ortools.bop.BopParameters parseFrom(
2128 com.google.protobuf.ByteString data)
2129 throws com.google.protobuf.InvalidProtocolBufferException {
2130 return PARSER.parseFrom(data);
2131 }
2132 public static com.google.ortools.bop.BopParameters parseFrom(
2133 com.google.protobuf.ByteString data,
2134 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2135 throws com.google.protobuf.InvalidProtocolBufferException {
2136 return PARSER.parseFrom(data, extensionRegistry);
2137 }
2138 public static com.google.ortools.bop.BopParameters parseFrom(byte[] data)
2139 throws com.google.protobuf.InvalidProtocolBufferException {
2140 return PARSER.parseFrom(data);
2141 }
2142 public static com.google.ortools.bop.BopParameters parseFrom(
2143 byte[] data,
2144 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2145 throws com.google.protobuf.InvalidProtocolBufferException {
2146 return PARSER.parseFrom(data, extensionRegistry);
2147 }
2148 public static com.google.ortools.bop.BopParameters parseFrom(java.io.InputStream input)
2149 throws java.io.IOException {
2150 return com.google.protobuf.GeneratedMessageV3
2151 .parseWithIOException(PARSER, input);
2152 }
2153 public static com.google.ortools.bop.BopParameters parseFrom(
2154 java.io.InputStream input,
2155 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2156 throws java.io.IOException {
2157 return com.google.protobuf.GeneratedMessageV3
2158 .parseWithIOException(PARSER, input, extensionRegistry);
2159 }
2160
2161 public static com.google.ortools.bop.BopParameters parseDelimitedFrom(java.io.InputStream input)
2162 throws java.io.IOException {
2163 return com.google.protobuf.GeneratedMessageV3
2164 .parseDelimitedWithIOException(PARSER, input);
2165 }
2166
2167 public static com.google.ortools.bop.BopParameters parseDelimitedFrom(
2168 java.io.InputStream input,
2169 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2170 throws java.io.IOException {
2171 return com.google.protobuf.GeneratedMessageV3
2172 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
2173 }
2174 public static com.google.ortools.bop.BopParameters parseFrom(
2175 com.google.protobuf.CodedInputStream input)
2176 throws java.io.IOException {
2177 return com.google.protobuf.GeneratedMessageV3
2178 .parseWithIOException(PARSER, input);
2179 }
2180 public static com.google.ortools.bop.BopParameters parseFrom(
2181 com.google.protobuf.CodedInputStream input,
2182 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2183 throws java.io.IOException {
2184 return com.google.protobuf.GeneratedMessageV3
2185 .parseWithIOException(PARSER, input, extensionRegistry);
2186 }
2187
2188 @java.lang.Override
2189 public Builder newBuilderForType() { return newBuilder(); }
2190 public static Builder newBuilder() {
2191 return DEFAULT_INSTANCE.toBuilder();
2192 }
2193 public static Builder newBuilder(com.google.ortools.bop.BopParameters prototype) {
2194 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
2195 }
2196 @java.lang.Override
2197 public Builder toBuilder() {
2198 return this == DEFAULT_INSTANCE
2199 ? new Builder() : new Builder().mergeFrom(this);
2200 }
2201
2202 @java.lang.Override
2203 protected Builder newBuilderForType(
2204 com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
2205 Builder builder = new Builder(parent);
2206 return builder;
2207 }
2218 public static final class Builder extends
2219 com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
2220 // @@protoc_insertion_point(builder_implements:operations_research.bop.BopParameters)
2221 com.google.ortools.bop.BopParametersOrBuilder {
2222 public static final com.google.protobuf.Descriptors.Descriptor
2223 getDescriptor() {
2224 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_descriptor;
2225 }
2226
2227 @java.lang.Override
2228 protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
2229 internalGetFieldAccessorTable() {
2230 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_fieldAccessorTable
2231 .ensureFieldAccessorsInitialized(
2232 com.google.ortools.bop.BopParameters.class, com.google.ortools.bop.BopParameters.Builder.class);
2233 }
2234
2235 // Construct using com.google.ortools.bop.BopParameters.newBuilder()
2236 private Builder() {
2237
2238 }
2239
2240 private Builder(
2241 com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
2242 super(parent);
2243
2244 }
2245 @java.lang.Override
2246 public Builder clear() {
2247 super.clear();
2248 bitField0_ = 0;
2249 bitField1_ = 0;
2250 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
2251 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
2252 lpMaxDeterministicTime_ = 1D;
2253 maxNumberOfConsecutiveFailingOptimizerCalls_ = 0;
2254 relativeGapLimit_ = 0.0001D;
2255 maxNumDecisionsInLs_ = 4;
2256 maxNumBrokenConstraintsInLs_ = 2147483647;
2257 logSearchProgress_ = false;
2258 computeEstimatedImpact_ = true;
2259 pruneSearchTree_ = false;
2260 sortConstraintsByNumTerms_ = false;
2261 useRandomLns_ = true;
2262 randomSeed_ = 8;
2263 numRelaxedVars_ = 10;
2264 maxNumberOfConflictsInRandomLns_ = 2500;
2265 numRandomLnsTries_ = 1;
2266 maxNumberOfBacktracksInLs_ = 100000000L;
2267 useLpLns_ = true;
2268 useSatToChooseLnsNeighbourhood_ = true;
2269 maxNumberOfConflictsForQuickCheck_ = 10;
2270 useSymmetry_ = false;
2271 exploitSymmetryInSatFirstSolution_ = false;
2272 maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
2273 maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
2274 useTranspositionTableInLs_ = true;
2275 usePotentialOneFlipRepairsInLs_ = false;
2276 useLearnedBinaryClausesInLp_ = true;
2277 numberOfSolvers_ = 1;
2278 synchronizationType_ = 0;
2279 if (solverOptimizerSetsBuilder_ == null) {
2280 solverOptimizerSets_ = java.util.Collections.emptyList();
2281 } else {
2282 solverOptimizerSets_ = null;
2283 solverOptimizerSetsBuilder_.clear();
2284 }
2285 bitField0_ = (bitField0_ & ~0x20000000);
2286 defaultSolverOptimizerSets_ = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } ";
2287 useLpStrongBranching_ = false;
2288 decomposerNumVariablesThreshold_ = 50;
2289 numBopSolversUsedByDecomposition_ = 1;
2290 decomposedProblemMinTimeInSeconds_ = 0D;
2291 guidedSatConflictsChunk_ = 1000;
2292 maxLpSolveForFeasibilityProblems_ = 0;
2293 return this;
2294 }
2295
2296 @java.lang.Override
2297 public com.google.protobuf.Descriptors.Descriptor
2298 getDescriptorForType() {
2299 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_descriptor;
2300 }
2301
2302 @java.lang.Override
2303 public com.google.ortools.bop.BopParameters getDefaultInstanceForType() {
2304 return com.google.ortools.bop.BopParameters.getDefaultInstance();
2305 }
2306
2307 @java.lang.Override
2308 public com.google.ortools.bop.BopParameters build() {
2309 com.google.ortools.bop.BopParameters result = buildPartial();
2310 if (!result.isInitialized()) {
2311 throw newUninitializedMessageException(result);
2312 }
2313 return result;
2314 }
2315
2316 @java.lang.Override
2317 public com.google.ortools.bop.BopParameters buildPartial() {
2318 com.google.ortools.bop.BopParameters result = new com.google.ortools.bop.BopParameters(this);
2319 buildPartialRepeatedFields(result);
2320 if (bitField0_ != 0) { buildPartial0(result); }
2321 if (bitField1_ != 0) { buildPartial1(result); }
2322 onBuilt();
2323 return result;
2324 }
2325
2326 private void buildPartialRepeatedFields(com.google.ortools.bop.BopParameters result) {
2327 if (solverOptimizerSetsBuilder_ == null) {
2328 if (((bitField0_ & 0x20000000) != 0)) {
2329 solverOptimizerSets_ = java.util.Collections.unmodifiableList(solverOptimizerSets_);
2330 bitField0_ = (bitField0_ & ~0x20000000);
2331 }
2332 result.solverOptimizerSets_ = solverOptimizerSets_;
2333 } else {
2334 result.solverOptimizerSets_ = solverOptimizerSetsBuilder_.build();
2335 }
2336 }
2337
2338 private void buildPartial0(com.google.ortools.bop.BopParameters result) {
2339 int from_bitField0_ = bitField0_;
2340 int to_bitField0_ = 0;
2341 if (((from_bitField0_ & 0x00000001) != 0)) {
2342 result.maxTimeInSeconds_ = maxTimeInSeconds_;
2343 to_bitField0_ |= 0x00000001;
2344 }
2345 if (((from_bitField0_ & 0x00000002) != 0)) {
2346 result.maxDeterministicTime_ = maxDeterministicTime_;
2347 to_bitField0_ |= 0x00000002;
2348 }
2349 if (((from_bitField0_ & 0x00000004) != 0)) {
2350 result.lpMaxDeterministicTime_ = lpMaxDeterministicTime_;
2351 to_bitField0_ |= 0x00000004;
2352 }
2353 if (((from_bitField0_ & 0x00000008) != 0)) {
2354 result.maxNumberOfConsecutiveFailingOptimizerCalls_ = maxNumberOfConsecutiveFailingOptimizerCalls_;
2355 to_bitField0_ |= 0x00000008;
2356 }
2357 if (((from_bitField0_ & 0x00000010) != 0)) {
2358 result.relativeGapLimit_ = relativeGapLimit_;
2359 to_bitField0_ |= 0x00000010;
2360 }
2361 if (((from_bitField0_ & 0x00000020) != 0)) {
2362 result.maxNumDecisionsInLs_ = maxNumDecisionsInLs_;
2363 to_bitField0_ |= 0x00000020;
2364 }
2365 if (((from_bitField0_ & 0x00000040) != 0)) {
2366 result.maxNumBrokenConstraintsInLs_ = maxNumBrokenConstraintsInLs_;
2367 to_bitField0_ |= 0x00000040;
2368 }
2369 if (((from_bitField0_ & 0x00000080) != 0)) {
2370 result.logSearchProgress_ = logSearchProgress_;
2371 to_bitField0_ |= 0x00000080;
2372 }
2373 if (((from_bitField0_ & 0x00000100) != 0)) {
2374 result.computeEstimatedImpact_ = computeEstimatedImpact_;
2375 to_bitField0_ |= 0x00000100;
2376 }
2377 if (((from_bitField0_ & 0x00000200) != 0)) {
2378 result.pruneSearchTree_ = pruneSearchTree_;
2379 to_bitField0_ |= 0x00000200;
2380 }
2381 if (((from_bitField0_ & 0x00000400) != 0)) {
2382 result.sortConstraintsByNumTerms_ = sortConstraintsByNumTerms_;
2383 to_bitField0_ |= 0x00000400;
2384 }
2385 if (((from_bitField0_ & 0x00000800) != 0)) {
2386 result.useRandomLns_ = useRandomLns_;
2387 to_bitField0_ |= 0x00000800;
2388 }
2389 if (((from_bitField0_ & 0x00001000) != 0)) {
2390 result.randomSeed_ = randomSeed_;
2391 to_bitField0_ |= 0x00001000;
2392 }
2393 if (((from_bitField0_ & 0x00002000) != 0)) {
2394 result.numRelaxedVars_ = numRelaxedVars_;
2395 to_bitField0_ |= 0x00002000;
2396 }
2397 if (((from_bitField0_ & 0x00004000) != 0)) {
2398 result.maxNumberOfConflictsInRandomLns_ = maxNumberOfConflictsInRandomLns_;
2399 to_bitField0_ |= 0x00004000;
2400 }
2401 if (((from_bitField0_ & 0x00008000) != 0)) {
2402 result.numRandomLnsTries_ = numRandomLnsTries_;
2403 to_bitField0_ |= 0x00008000;
2404 }
2405 if (((from_bitField0_ & 0x00010000) != 0)) {
2406 result.maxNumberOfBacktracksInLs_ = maxNumberOfBacktracksInLs_;
2407 to_bitField0_ |= 0x00010000;
2408 }
2409 if (((from_bitField0_ & 0x00020000) != 0)) {
2410 result.useLpLns_ = useLpLns_;
2411 to_bitField0_ |= 0x00020000;
2412 }
2413 if (((from_bitField0_ & 0x00040000) != 0)) {
2414 result.useSatToChooseLnsNeighbourhood_ = useSatToChooseLnsNeighbourhood_;
2415 to_bitField0_ |= 0x00040000;
2416 }
2417 if (((from_bitField0_ & 0x00080000) != 0)) {
2418 result.maxNumberOfConflictsForQuickCheck_ = maxNumberOfConflictsForQuickCheck_;
2419 to_bitField0_ |= 0x00080000;
2420 }
2421 if (((from_bitField0_ & 0x00100000) != 0)) {
2422 result.useSymmetry_ = useSymmetry_;
2423 to_bitField0_ |= 0x00100000;
2424 }
2425 if (((from_bitField0_ & 0x00200000) != 0)) {
2426 result.exploitSymmetryInSatFirstSolution_ = exploitSymmetryInSatFirstSolution_;
2427 to_bitField0_ |= 0x00200000;
2428 }
2429 if (((from_bitField0_ & 0x00400000) != 0)) {
2430 result.maxNumberOfConflictsInRandomSolutionGeneration_ = maxNumberOfConflictsInRandomSolutionGeneration_;
2431 to_bitField0_ |= 0x00400000;
2432 }
2433 if (((from_bitField0_ & 0x00800000) != 0)) {
2434 result.maxNumberOfExploredAssignmentsPerTryInLs_ = maxNumberOfExploredAssignmentsPerTryInLs_;
2435 to_bitField0_ |= 0x00800000;
2436 }
2437 if (((from_bitField0_ & 0x01000000) != 0)) {
2438 result.useTranspositionTableInLs_ = useTranspositionTableInLs_;
2439 to_bitField0_ |= 0x01000000;
2440 }
2441 if (((from_bitField0_ & 0x02000000) != 0)) {
2442 result.usePotentialOneFlipRepairsInLs_ = usePotentialOneFlipRepairsInLs_;
2443 to_bitField0_ |= 0x02000000;
2444 }
2445 if (((from_bitField0_ & 0x04000000) != 0)) {
2446 result.useLearnedBinaryClausesInLp_ = useLearnedBinaryClausesInLp_;
2447 to_bitField0_ |= 0x04000000;
2448 }
2449 if (((from_bitField0_ & 0x08000000) != 0)) {
2450 result.numberOfSolvers_ = numberOfSolvers_;
2451 to_bitField0_ |= 0x08000000;
2452 }
2453 if (((from_bitField0_ & 0x10000000) != 0)) {
2454 result.synchronizationType_ = synchronizationType_;
2455 to_bitField0_ |= 0x10000000;
2456 }
2457 if (((from_bitField0_ & 0x40000000) != 0)) {
2458 result.defaultSolverOptimizerSets_ = defaultSolverOptimizerSets_;
2459 to_bitField0_ |= 0x20000000;
2460 }
2461 if (((from_bitField0_ & 0x80000000) != 0)) {
2462 result.useLpStrongBranching_ = useLpStrongBranching_;
2463 to_bitField0_ |= 0x40000000;
2464 }
2465 result.bitField0_ |= to_bitField0_;
2466 }
2467
2468 private void buildPartial1(com.google.ortools.bop.BopParameters result) {
2469 int from_bitField1_ = bitField1_;
2470 int to_bitField0_ = 0;
2471 if (((from_bitField1_ & 0x00000001) != 0)) {
2472 result.decomposerNumVariablesThreshold_ = decomposerNumVariablesThreshold_;
2473 to_bitField0_ |= 0x80000000;
2474 }
2475 int to_bitField1_ = 0;
2476 if (((from_bitField1_ & 0x00000002) != 0)) {
2477 result.numBopSolversUsedByDecomposition_ = numBopSolversUsedByDecomposition_;
2478 to_bitField1_ |= 0x00000001;
2479 }
2480 if (((from_bitField1_ & 0x00000004) != 0)) {
2481 result.decomposedProblemMinTimeInSeconds_ = decomposedProblemMinTimeInSeconds_;
2482 to_bitField1_ |= 0x00000002;
2483 }
2484 if (((from_bitField1_ & 0x00000008) != 0)) {
2485 result.guidedSatConflictsChunk_ = guidedSatConflictsChunk_;
2486 to_bitField1_ |= 0x00000004;
2487 }
2488 if (((from_bitField1_ & 0x00000010) != 0)) {
2489 result.maxLpSolveForFeasibilityProblems_ = maxLpSolveForFeasibilityProblems_;
2490 to_bitField1_ |= 0x00000008;
2491 }
2492 result.bitField0_ |= to_bitField0_;
2493 result.bitField1_ |= to_bitField1_;
2494 }
2495
2496 @java.lang.Override
2497 public Builder clone() {
2498 return super.clone();
2499 }
2500 @java.lang.Override
2501 public Builder setField(
2502 com.google.protobuf.Descriptors.FieldDescriptor field,
2503 java.lang.Object value) {
2504 return super.setField(field, value);
2505 }
2506 @java.lang.Override
2507 public Builder clearField(
2508 com.google.protobuf.Descriptors.FieldDescriptor field) {
2509 return super.clearField(field);
2510 }
2511 @java.lang.Override
2512 public Builder clearOneof(
2513 com.google.protobuf.Descriptors.OneofDescriptor oneof) {
2514 return super.clearOneof(oneof);
2515 }
2516 @java.lang.Override
2517 public Builder setRepeatedField(
2518 com.google.protobuf.Descriptors.FieldDescriptor field,
2519 int index, java.lang.Object value) {
2520 return super.setRepeatedField(field, index, value);
2521 }
2522 @java.lang.Override
2523 public Builder addRepeatedField(
2524 com.google.protobuf.Descriptors.FieldDescriptor field,
2525 java.lang.Object value) {
2526 return super.addRepeatedField(field, value);
2527 }
2528 @java.lang.Override
2529 public Builder mergeFrom(com.google.protobuf.Message other) {
2530 if (other instanceof com.google.ortools.bop.BopParameters) {
2531 return mergeFrom((com.google.ortools.bop.BopParameters)other);
2532 } else {
2533 super.mergeFrom(other);
2534 return this;
2535 }
2536 }
2537
2538 public Builder mergeFrom(com.google.ortools.bop.BopParameters other) {
2539 if (other == com.google.ortools.bop.BopParameters.getDefaultInstance()) return this;
2540 if (other.hasMaxTimeInSeconds()) {
2541 setMaxTimeInSeconds(other.getMaxTimeInSeconds());
2542 }
2543 if (other.hasMaxDeterministicTime()) {
2544 setMaxDeterministicTime(other.getMaxDeterministicTime());
2545 }
2546 if (other.hasLpMaxDeterministicTime()) {
2547 setLpMaxDeterministicTime(other.getLpMaxDeterministicTime());
2548 }
2549 if (other.hasMaxNumberOfConsecutiveFailingOptimizerCalls()) {
2550 setMaxNumberOfConsecutiveFailingOptimizerCalls(other.getMaxNumberOfConsecutiveFailingOptimizerCalls());
2551 }
2552 if (other.hasRelativeGapLimit()) {
2553 setRelativeGapLimit(other.getRelativeGapLimit());
2554 }
2555 if (other.hasMaxNumDecisionsInLs()) {
2556 setMaxNumDecisionsInLs(other.getMaxNumDecisionsInLs());
2557 }
2558 if (other.hasMaxNumBrokenConstraintsInLs()) {
2559 setMaxNumBrokenConstraintsInLs(other.getMaxNumBrokenConstraintsInLs());
2560 }
2561 if (other.hasLogSearchProgress()) {
2562 setLogSearchProgress(other.getLogSearchProgress());
2563 }
2564 if (other.hasComputeEstimatedImpact()) {
2565 setComputeEstimatedImpact(other.getComputeEstimatedImpact());
2566 }
2567 if (other.hasPruneSearchTree()) {
2568 setPruneSearchTree(other.getPruneSearchTree());
2569 }
2570 if (other.hasSortConstraintsByNumTerms()) {
2571 setSortConstraintsByNumTerms(other.getSortConstraintsByNumTerms());
2572 }
2573 if (other.hasUseRandomLns()) {
2574 setUseRandomLns(other.getUseRandomLns());
2575 }
2576 if (other.hasRandomSeed()) {
2577 setRandomSeed(other.getRandomSeed());
2578 }
2579 if (other.hasNumRelaxedVars()) {
2580 setNumRelaxedVars(other.getNumRelaxedVars());
2581 }
2582 if (other.hasMaxNumberOfConflictsInRandomLns()) {
2583 setMaxNumberOfConflictsInRandomLns(other.getMaxNumberOfConflictsInRandomLns());
2584 }
2585 if (other.hasNumRandomLnsTries()) {
2586 setNumRandomLnsTries(other.getNumRandomLnsTries());
2587 }
2588 if (other.hasMaxNumberOfBacktracksInLs()) {
2589 setMaxNumberOfBacktracksInLs(other.getMaxNumberOfBacktracksInLs());
2590 }
2591 if (other.hasUseLpLns()) {
2592 setUseLpLns(other.getUseLpLns());
2593 }
2594 if (other.hasUseSatToChooseLnsNeighbourhood()) {
2595 setUseSatToChooseLnsNeighbourhood(other.getUseSatToChooseLnsNeighbourhood());
2596 }
2597 if (other.hasMaxNumberOfConflictsForQuickCheck()) {
2598 setMaxNumberOfConflictsForQuickCheck(other.getMaxNumberOfConflictsForQuickCheck());
2599 }
2600 if (other.hasUseSymmetry()) {
2601 setUseSymmetry(other.getUseSymmetry());
2602 }
2603 if (other.hasExploitSymmetryInSatFirstSolution()) {
2604 setExploitSymmetryInSatFirstSolution(other.getExploitSymmetryInSatFirstSolution());
2605 }
2606 if (other.hasMaxNumberOfConflictsInRandomSolutionGeneration()) {
2607 setMaxNumberOfConflictsInRandomSolutionGeneration(other.getMaxNumberOfConflictsInRandomSolutionGeneration());
2608 }
2609 if (other.hasMaxNumberOfExploredAssignmentsPerTryInLs()) {
2610 setMaxNumberOfExploredAssignmentsPerTryInLs(other.getMaxNumberOfExploredAssignmentsPerTryInLs());
2611 }
2612 if (other.hasUseTranspositionTableInLs()) {
2613 setUseTranspositionTableInLs(other.getUseTranspositionTableInLs());
2614 }
2615 if (other.hasUsePotentialOneFlipRepairsInLs()) {
2616 setUsePotentialOneFlipRepairsInLs(other.getUsePotentialOneFlipRepairsInLs());
2617 }
2618 if (other.hasUseLearnedBinaryClausesInLp()) {
2619 setUseLearnedBinaryClausesInLp(other.getUseLearnedBinaryClausesInLp());
2620 }
2621 if (other.hasNumberOfSolvers()) {
2622 setNumberOfSolvers(other.getNumberOfSolvers());
2623 }
2624 if (other.hasSynchronizationType()) {
2625 setSynchronizationType(other.getSynchronizationType());
2626 }
2627 if (solverOptimizerSetsBuilder_ == null) {
2628 if (!other.solverOptimizerSets_.isEmpty()) {
2629 if (solverOptimizerSets_.isEmpty()) {
2630 solverOptimizerSets_ = other.solverOptimizerSets_;
2631 bitField0_ = (bitField0_ & ~0x20000000);
2632 } else {
2633 ensureSolverOptimizerSetsIsMutable();
2634 solverOptimizerSets_.addAll(other.solverOptimizerSets_);
2635 }
2636 onChanged();
2637 }
2638 } else {
2639 if (!other.solverOptimizerSets_.isEmpty()) {
2640 if (solverOptimizerSetsBuilder_.isEmpty()) {
2641 solverOptimizerSetsBuilder_.dispose();
2642 solverOptimizerSetsBuilder_ = null;
2643 solverOptimizerSets_ = other.solverOptimizerSets_;
2644 bitField0_ = (bitField0_ & ~0x20000000);
2645 solverOptimizerSetsBuilder_ =
2646 com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
2647 getSolverOptimizerSetsFieldBuilder() : null;
2648 } else {
2649 solverOptimizerSetsBuilder_.addAllMessages(other.solverOptimizerSets_);
2650 }
2651 }
2652 }
2653 if (other.hasDefaultSolverOptimizerSets()) {
2654 defaultSolverOptimizerSets_ = other.defaultSolverOptimizerSets_;
2655 bitField0_ |= 0x40000000;
2656 onChanged();
2657 }
2658 if (other.hasUseLpStrongBranching()) {
2659 setUseLpStrongBranching(other.getUseLpStrongBranching());
2660 }
2661 if (other.hasDecomposerNumVariablesThreshold()) {
2662 setDecomposerNumVariablesThreshold(other.getDecomposerNumVariablesThreshold());
2663 }
2664 if (other.hasNumBopSolversUsedByDecomposition()) {
2665 setNumBopSolversUsedByDecomposition(other.getNumBopSolversUsedByDecomposition());
2666 }
2667 if (other.hasDecomposedProblemMinTimeInSeconds()) {
2668 setDecomposedProblemMinTimeInSeconds(other.getDecomposedProblemMinTimeInSeconds());
2669 }
2670 if (other.hasGuidedSatConflictsChunk()) {
2671 setGuidedSatConflictsChunk(other.getGuidedSatConflictsChunk());
2672 }
2673 if (other.hasMaxLpSolveForFeasibilityProblems()) {
2674 setMaxLpSolveForFeasibilityProblems(other.getMaxLpSolveForFeasibilityProblems());
2675 }
2676 this.mergeUnknownFields(other.getUnknownFields());
2677 onChanged();
2678 return this;
2679 }
2680
2681 @java.lang.Override
2682 public final boolean isInitialized() {
2683 return true;
2684 }
2685
2686 @java.lang.Override
2687 public Builder mergeFrom(
2688 com.google.protobuf.CodedInputStream input,
2689 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2690 throws java.io.IOException {
2691 if (extensionRegistry == null) {
2692 throw new java.lang.NullPointerException();
2693 }
2694 try {
2695 boolean done = false;
2696 while (!done) {
2697 int tag = input.readTag();
2698 switch (tag) {
2699 case 0:
2700 done = true;
2701 break;
2702 case 9: {
2703 maxTimeInSeconds_ = input.readDouble();
2704 bitField0_ |= 0x00000001;
2705 break;
2706 } // case 9
2707 case 16: {
2708 maxNumDecisionsInLs_ = input.readInt32();
2709 bitField0_ |= 0x00000020;
2710 break;
2711 } // case 16
2712 case 24: {
2713 computeEstimatedImpact_ = input.readBool();
2714 bitField0_ |= 0x00000100;
2715 break;
2716 } // case 24
2717 case 32: {
2718 pruneSearchTree_ = input.readBool();
2719 bitField0_ |= 0x00000200;
2720 break;
2721 } // case 32
2722 case 40: {
2723 sortConstraintsByNumTerms_ = input.readBool();
2724 bitField0_ |= 0x00000400;
2725 break;
2726 } // case 40
2727 case 48: {
2728 useRandomLns_ = input.readBool();
2729 bitField0_ |= 0x00000800;
2730 break;
2731 } // case 48
2732 case 56: {
2733 randomSeed_ = input.readInt32();
2734 bitField0_ |= 0x00001000;
2735 break;
2736 } // case 56
2737 case 64: {
2738 numRelaxedVars_ = input.readInt32();
2739 bitField0_ |= 0x00002000;
2740 break;
2741 } // case 64
2742 case 72: {
2743 maxNumberOfConflictsInRandomLns_ = input.readInt32();
2744 bitField0_ |= 0x00004000;
2745 break;
2746 } // case 72
2747 case 80: {
2748 numRandomLnsTries_ = input.readInt32();
2749 bitField0_ |= 0x00008000;
2750 break;
2751 } // case 80
2752 case 88: {
2753 maxNumberOfBacktracksInLs_ = input.readInt64();
2754 bitField0_ |= 0x00010000;
2755 break;
2756 } // case 88
2757 case 96: {
2758 useLpLns_ = input.readBool();
2759 bitField0_ |= 0x00020000;
2760 break;
2761 } // case 96
2762 case 112: {
2763 logSearchProgress_ = input.readBool();
2764 bitField0_ |= 0x00000080;
2765 break;
2766 } // case 112
2767 case 120: {
2768 useSatToChooseLnsNeighbourhood_ = input.readBool();
2769 bitField0_ |= 0x00040000;
2770 break;
2771 } // case 120
2772 case 128: {
2773 maxNumberOfConflictsForQuickCheck_ = input.readInt32();
2774 bitField0_ |= 0x00080000;
2775 break;
2776 } // case 128
2777 case 136: {
2778 useSymmetry_ = input.readBool();
2779 bitField0_ |= 0x00100000;
2780 break;
2781 } // case 136
2782 case 160: {
2783 maxNumberOfConflictsInRandomSolutionGeneration_ = input.readInt32();
2784 bitField0_ |= 0x00400000;
2785 break;
2786 } // case 160
2787 case 168: {
2788 maxNumberOfExploredAssignmentsPerTryInLs_ = input.readInt64();
2789 bitField0_ |= 0x00800000;
2790 break;
2791 } // case 168
2792 case 176: {
2793 useTranspositionTableInLs_ = input.readBool();
2794 bitField0_ |= 0x01000000;
2795 break;
2796 } // case 176
2797 case 184: {
2798 useLearnedBinaryClausesInLp_ = input.readBool();
2799 bitField0_ |= 0x04000000;
2800 break;
2801 } // case 184
2802 case 192: {
2803 numberOfSolvers_ = input.readInt32();
2804 bitField0_ |= 0x08000000;
2805 break;
2806 } // case 192
2807 case 200: {
2808 int tmpRaw = input.readEnum();
2809 com.google.ortools.bop.BopParameters.ThreadSynchronizationType tmpValue =
2810 com.google.ortools.bop.BopParameters.ThreadSynchronizationType.forNumber(tmpRaw);
2811 if (tmpValue == null) {
2812 mergeUnknownVarintField(25, tmpRaw);
2813 } else {
2814 synchronizationType_ = tmpRaw;
2815 bitField0_ |= 0x10000000;
2816 }
2817 break;
2818 } // case 200
2819 case 210: {
2820 com.google.ortools.bop.BopSolverOptimizerSet m =
2821 input.readMessage(
2822 com.google.ortools.bop.BopSolverOptimizerSet.PARSER,
2823 extensionRegistry);
2824 if (solverOptimizerSetsBuilder_ == null) {
2825 ensureSolverOptimizerSetsIsMutable();
2826 solverOptimizerSets_.add(m);
2827 } else {
2828 solverOptimizerSetsBuilder_.addMessage(m);
2829 }
2830 break;
2831 } // case 210
2832 case 217: {
2833 maxDeterministicTime_ = input.readDouble();
2834 bitField0_ |= 0x00000002;
2835 break;
2836 } // case 217
2837 case 225: {
2838 relativeGapLimit_ = input.readDouble();
2839 bitField0_ |= 0x00000010;
2840 break;
2841 } // case 225
2842 case 232: {
2843 useLpStrongBranching_ = input.readBool();
2844 bitField0_ |= 0x80000000;
2845 break;
2846 } // case 232
2847 case 240: {
2848 decomposerNumVariablesThreshold_ = input.readInt32();
2849 bitField1_ |= 0x00000001;
2850 break;
2851 } // case 240
2852 case 248: {
2853 numBopSolversUsedByDecomposition_ = input.readInt32();
2854 bitField1_ |= 0x00000002;
2855 break;
2856 } // case 248
2857 case 266: {
2858 defaultSolverOptimizerSets_ = input.readBytes();
2859 bitField0_ |= 0x40000000;
2860 break;
2861 } // case 266
2862 case 272: {
2863 guidedSatConflictsChunk_ = input.readInt32();
2864 bitField1_ |= 0x00000008;
2865 break;
2866 } // case 272
2867 case 280: {
2868 maxNumberOfConsecutiveFailingOptimizerCalls_ = input.readInt32();
2869 bitField0_ |= 0x00000008;
2870 break;
2871 } // case 280
2872 case 289: {
2873 decomposedProblemMinTimeInSeconds_ = input.readDouble();
2874 bitField1_ |= 0x00000004;
2875 break;
2876 } // case 289
2877 case 297: {
2878 lpMaxDeterministicTime_ = input.readDouble();
2879 bitField0_ |= 0x00000004;
2880 break;
2881 } // case 297
2882 case 304: {
2883 maxNumBrokenConstraintsInLs_ = input.readInt32();
2884 bitField0_ |= 0x00000040;
2885 break;
2886 } // case 304
2887 case 312: {
2888 usePotentialOneFlipRepairsInLs_ = input.readBool();
2889 bitField0_ |= 0x02000000;
2890 break;
2891 } // case 312
2892 case 320: {
2893 exploitSymmetryInSatFirstSolution_ = input.readBool();
2894 bitField0_ |= 0x00200000;
2895 break;
2896 } // case 320
2897 case 328: {
2898 maxLpSolveForFeasibilityProblems_ = input.readInt32();
2899 bitField1_ |= 0x00000010;
2900 break;
2901 } // case 328
2902 default: {
2903 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
2904 done = true; // was an endgroup tag
2905 }
2906 break;
2907 } // default:
2908 } // switch (tag)
2909 } // while (!done)
2910 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2911 throw e.unwrapIOException();
2912 } finally {
2913 onChanged();
2914 } // finally
2915 return this;
2916 }
2917 private int bitField0_;
2918 private int bitField1_;
2919
2920 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
2930 @java.lang.Override
2931 public boolean hasMaxTimeInSeconds() {
2932 return ((bitField0_ & 0x00000001) != 0);
2933 }
2943 @java.lang.Override
2944 public double getMaxTimeInSeconds() {
2945 return maxTimeInSeconds_;
2946 }
2957 public Builder setMaxTimeInSeconds(double value) {
2958
2959 maxTimeInSeconds_ = value;
2960 bitField0_ |= 0x00000001;
2961 onChanged();
2962 return this;
2963 }
2973 public Builder clearMaxTimeInSeconds() {
2974 bitField0_ = (bitField0_ & ~0x00000001);
2975 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
2976 onChanged();
2977 return this;
2978 }
2979
2980 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
2993 @java.lang.Override
2994 public boolean hasMaxDeterministicTime() {
2995 return ((bitField0_ & 0x00000002) != 0);
2996 }
3009 @java.lang.Override
3010 public double getMaxDeterministicTime() {
3011 return maxDeterministicTime_;
3012 }
3026 public Builder setMaxDeterministicTime(double value) {
3027
3028 maxDeterministicTime_ = value;
3029 bitField0_ |= 0x00000002;
3030 onChanged();
3031 return this;
3032 }
3045 public Builder clearMaxDeterministicTime() {
3046 bitField0_ = (bitField0_ & ~0x00000002);
3047 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
3048 onChanged();
3049 return this;
3050 }
3051
3052 private double lpMaxDeterministicTime_ = 1D;
3063 @java.lang.Override
3064 public boolean hasLpMaxDeterministicTime() {
3065 return ((bitField0_ & 0x00000004) != 0);
3066 }
3077 @java.lang.Override
3078 public double getLpMaxDeterministicTime() {
3079 return lpMaxDeterministicTime_;
3080 }
3092 public Builder setLpMaxDeterministicTime(double value) {
3093
3094 lpMaxDeterministicTime_ = value;
3095 bitField0_ |= 0x00000004;
3096 onChanged();
3097 return this;
3098 }
3109 public Builder clearLpMaxDeterministicTime() {
3110 bitField0_ = (bitField0_ & ~0x00000004);
3111 lpMaxDeterministicTime_ = 1D;
3112 onChanged();
3113 return this;
3114 }
3115
3116 private int maxNumberOfConsecutiveFailingOptimizerCalls_ ;
3129 @java.lang.Override
3130 public boolean hasMaxNumberOfConsecutiveFailingOptimizerCalls() {
3131 return ((bitField0_ & 0x00000008) != 0);
3132 }
3145 @java.lang.Override
3146 public int getMaxNumberOfConsecutiveFailingOptimizerCalls() {
3147 return maxNumberOfConsecutiveFailingOptimizerCalls_;
3148 }
3162 public Builder setMaxNumberOfConsecutiveFailingOptimizerCalls(int value) {
3163
3164 maxNumberOfConsecutiveFailingOptimizerCalls_ = value;
3165 bitField0_ |= 0x00000008;
3166 onChanged();
3167 return this;
3168 }
3181 public Builder clearMaxNumberOfConsecutiveFailingOptimizerCalls() {
3182 bitField0_ = (bitField0_ & ~0x00000008);
3183 maxNumberOfConsecutiveFailingOptimizerCalls_ = 0;
3184 onChanged();
3185 return this;
3186 }
3187
3188 private double relativeGapLimit_ = 0.0001D;
3201 @java.lang.Override
3202 public boolean hasRelativeGapLimit() {
3203 return ((bitField0_ & 0x00000010) != 0);
3204 }
3217 @java.lang.Override
3218 public double getRelativeGapLimit() {
3219 return relativeGapLimit_;
3220 }
3234 public Builder setRelativeGapLimit(double value) {
3235
3236 relativeGapLimit_ = value;
3237 bitField0_ |= 0x00000010;
3238 onChanged();
3239 return this;
3240 }
3253 public Builder clearRelativeGapLimit() {
3254 bitField0_ = (bitField0_ & ~0x00000010);
3255 relativeGapLimit_ = 0.0001D;
3256 onChanged();
3257 return this;
3258 }
3259
3260 private int maxNumDecisionsInLs_ = 4;
3270 @java.lang.Override
3271 public boolean hasMaxNumDecisionsInLs() {
3272 return ((bitField0_ & 0x00000020) != 0);
3273 }
3283 @java.lang.Override
3284 public int getMaxNumDecisionsInLs() {
3285 return maxNumDecisionsInLs_;
3286 }
3297 public Builder setMaxNumDecisionsInLs(int value) {
3298
3299 maxNumDecisionsInLs_ = value;
3300 bitField0_ |= 0x00000020;
3301 onChanged();
3302 return this;
3303 }
3313 public Builder clearMaxNumDecisionsInLs() {
3314 bitField0_ = (bitField0_ & ~0x00000020);
3315 maxNumDecisionsInLs_ = 4;
3316 onChanged();
3317 return this;
3318 }
3319
3320 private int maxNumBrokenConstraintsInLs_ = 2147483647;
3331 @java.lang.Override
3332 public boolean hasMaxNumBrokenConstraintsInLs() {
3333 return ((bitField0_ & 0x00000040) != 0);
3334 }
3345 @java.lang.Override
3346 public int getMaxNumBrokenConstraintsInLs() {
3347 return maxNumBrokenConstraintsInLs_;
3348 }
3360 public Builder setMaxNumBrokenConstraintsInLs(int value) {
3361
3362 maxNumBrokenConstraintsInLs_ = value;
3363 bitField0_ |= 0x00000040;
3364 onChanged();
3365 return this;
3366 }
3377 public Builder clearMaxNumBrokenConstraintsInLs() {
3378 bitField0_ = (bitField0_ & ~0x00000040);
3379 maxNumBrokenConstraintsInLs_ = 2147483647;
3380 onChanged();
3381 return this;
3382 }
3383
3384 private boolean logSearchProgress_ ;
3393 @java.lang.Override
3394 public boolean hasLogSearchProgress() {
3395 return ((bitField0_ & 0x00000080) != 0);
3396 }
3405 @java.lang.Override
3406 public boolean getLogSearchProgress() {
3407 return logSearchProgress_;
3408 }
3418 public Builder setLogSearchProgress(boolean value) {
3419
3420 logSearchProgress_ = value;
3421 bitField0_ |= 0x00000080;
3422 onChanged();
3423 return this;
3424 }
3433 public Builder clearLogSearchProgress() {
3434 bitField0_ = (bitField0_ & ~0x00000080);
3435 logSearchProgress_ = false;
3436 onChanged();
3437 return this;
3438 }
3439
3440 private boolean computeEstimatedImpact_ = true;
3449 @java.lang.Override
3450 public boolean hasComputeEstimatedImpact() {
3451 return ((bitField0_ & 0x00000100) != 0);
3452 }
3461 @java.lang.Override
3462 public boolean getComputeEstimatedImpact() {
3463 return computeEstimatedImpact_;
3464 }
3474 public Builder setComputeEstimatedImpact(boolean value) {
3475
3476 computeEstimatedImpact_ = value;
3477 bitField0_ |= 0x00000100;
3478 onChanged();
3479 return this;
3480 }
3489 public Builder clearComputeEstimatedImpact() {
3490 bitField0_ = (bitField0_ & ~0x00000100);
3491 computeEstimatedImpact_ = true;
3492 onChanged();
3493 return this;
3494 }
3495
3496 private boolean pruneSearchTree_ ;
3505 @java.lang.Override
3506 public boolean hasPruneSearchTree() {
3507 return ((bitField0_ & 0x00000200) != 0);
3508 }
3517 @java.lang.Override
3518 public boolean getPruneSearchTree() {
3519 return pruneSearchTree_;
3520 }
3530 public Builder setPruneSearchTree(boolean value) {
3531
3532 pruneSearchTree_ = value;
3533 bitField0_ |= 0x00000200;
3534 onChanged();
3535 return this;
3536 }
3545 public Builder clearPruneSearchTree() {
3546 bitField0_ = (bitField0_ & ~0x00000200);
3547 pruneSearchTree_ = false;
3548 onChanged();
3549 return this;
3550 }
3551
3552 private boolean sortConstraintsByNumTerms_ ;
3562 @java.lang.Override
3563 public boolean hasSortConstraintsByNumTerms() {
3564 return ((bitField0_ & 0x00000400) != 0);
3565 }
3575 @java.lang.Override
3576 public boolean getSortConstraintsByNumTerms() {
3577 return sortConstraintsByNumTerms_;
3578 }
3589 public Builder setSortConstraintsByNumTerms(boolean value) {
3590
3591 sortConstraintsByNumTerms_ = value;
3592 bitField0_ |= 0x00000400;
3593 onChanged();
3594 return this;
3595 }
3605 public Builder clearSortConstraintsByNumTerms() {
3606 bitField0_ = (bitField0_ & ~0x00000400);
3607 sortConstraintsByNumTerms_ = false;
3608 onChanged();
3609 return this;
3610 }
3611
3612 private boolean useRandomLns_ = true;
3621 @java.lang.Override
3622 public boolean hasUseRandomLns() {
3623 return ((bitField0_ & 0x00000800) != 0);
3624 }
3633 @java.lang.Override
3634 public boolean getUseRandomLns() {
3635 return useRandomLns_;
3636 }
3646 public Builder setUseRandomLns(boolean value) {
3647
3648 useRandomLns_ = value;
3649 bitField0_ |= 0x00000800;
3650 onChanged();
3651 return this;
3652 }
3661 public Builder clearUseRandomLns() {
3662 bitField0_ = (bitField0_ & ~0x00000800);
3663 useRandomLns_ = true;
3664 onChanged();
3665 return this;
3666 }
3667
3668 private int randomSeed_ = 8;
3681 @java.lang.Override
3682 public boolean hasRandomSeed() {
3683 return ((bitField0_ & 0x00001000) != 0);
3684 }
3697 @java.lang.Override
3698 public int getRandomSeed() {
3699 return randomSeed_;
3700 }
3714 public Builder setRandomSeed(int value) {
3715
3716 randomSeed_ = value;
3717 bitField0_ |= 0x00001000;
3718 onChanged();
3719 return this;
3720 }
3733 public Builder clearRandomSeed() {
3734 bitField0_ = (bitField0_ & ~0x00001000);
3735 randomSeed_ = 8;
3736 onChanged();
3737 return this;
3738 }
3739
3740 private int numRelaxedVars_ = 10;
3749 @java.lang.Override
3750 public boolean hasNumRelaxedVars() {
3751 return ((bitField0_ & 0x00002000) != 0);
3752 }
3761 @java.lang.Override
3762 public int getNumRelaxedVars() {
3763 return numRelaxedVars_;
3764 }
3774 public Builder setNumRelaxedVars(int value) {
3775
3776 numRelaxedVars_ = value;
3777 bitField0_ |= 0x00002000;
3778 onChanged();
3779 return this;
3780 }
3789 public Builder clearNumRelaxedVars() {
3790 bitField0_ = (bitField0_ & ~0x00002000);
3791 numRelaxedVars_ = 10;
3792 onChanged();
3793 return this;
3794 }
3795
3796 private int maxNumberOfConflictsInRandomLns_ = 2500;
3806 @java.lang.Override
3807 public boolean hasMaxNumberOfConflictsInRandomLns() {
3808 return ((bitField0_ & 0x00004000) != 0);
3809 }
3819 @java.lang.Override
3820 public int getMaxNumberOfConflictsInRandomLns() {
3821 return maxNumberOfConflictsInRandomLns_;
3822 }
3833 public Builder setMaxNumberOfConflictsInRandomLns(int value) {
3834
3835 maxNumberOfConflictsInRandomLns_ = value;
3836 bitField0_ |= 0x00004000;
3837 onChanged();
3838 return this;
3839 }
3849 public Builder clearMaxNumberOfConflictsInRandomLns() {
3850 bitField0_ = (bitField0_ & ~0x00004000);
3851 maxNumberOfConflictsInRandomLns_ = 2500;
3852 onChanged();
3853 return this;
3854 }
3855
3856 private int numRandomLnsTries_ = 1;
3865 @java.lang.Override
3866 public boolean hasNumRandomLnsTries() {
3867 return ((bitField0_ & 0x00008000) != 0);
3868 }
3877 @java.lang.Override
3878 public int getNumRandomLnsTries() {
3879 return numRandomLnsTries_;
3880 }
3890 public Builder setNumRandomLnsTries(int value) {
3891
3892 numRandomLnsTries_ = value;
3893 bitField0_ |= 0x00008000;
3894 onChanged();
3895 return this;
3896 }
3905 public Builder clearNumRandomLnsTries() {
3906 bitField0_ = (bitField0_ & ~0x00008000);
3907 numRandomLnsTries_ = 1;
3908 onChanged();
3909 return this;
3910 }
3911
3912 private long maxNumberOfBacktracksInLs_ = 100000000L;
3922 @java.lang.Override
3923 public boolean hasMaxNumberOfBacktracksInLs() {
3924 return ((bitField0_ & 0x00010000) != 0);
3925 }
3935 @java.lang.Override
3936 public long getMaxNumberOfBacktracksInLs() {
3937 return maxNumberOfBacktracksInLs_;
3938 }
3949 public Builder setMaxNumberOfBacktracksInLs(long value) {
3950
3951 maxNumberOfBacktracksInLs_ = value;
3952 bitField0_ |= 0x00010000;
3953 onChanged();
3954 return this;
3955 }
3965 public Builder clearMaxNumberOfBacktracksInLs() {
3966 bitField0_ = (bitField0_ & ~0x00010000);
3967 maxNumberOfBacktracksInLs_ = 100000000L;
3968 onChanged();
3969 return this;
3970 }
3971
3972 private boolean useLpLns_ = true;
3981 @java.lang.Override
3982 public boolean hasUseLpLns() {
3983 return ((bitField0_ & 0x00020000) != 0);
3984 }
3993 @java.lang.Override
3994 public boolean getUseLpLns() {
3995 return useLpLns_;
3996 }
4006 public Builder setUseLpLns(boolean value) {
4007
4008 useLpLns_ = value;
4009 bitField0_ |= 0x00020000;
4010 onChanged();
4011 return this;
4012 }
4021 public Builder clearUseLpLns() {
4022 bitField0_ = (bitField0_ & ~0x00020000);
4023 useLpLns_ = true;
4024 onChanged();
4025 return this;
4026 }
4027
4028 private boolean useSatToChooseLnsNeighbourhood_ = true;
4037 @java.lang.Override
4038 public boolean hasUseSatToChooseLnsNeighbourhood() {
4039 return ((bitField0_ & 0x00040000) != 0);
4040 }
4049 @java.lang.Override
4050 public boolean getUseSatToChooseLnsNeighbourhood() {
4051 return useSatToChooseLnsNeighbourhood_;
4052 }
4062 public Builder setUseSatToChooseLnsNeighbourhood(boolean value) {
4063
4064 useSatToChooseLnsNeighbourhood_ = value;
4065 bitField0_ |= 0x00040000;
4066 onChanged();
4067 return this;
4068 }
4077 public Builder clearUseSatToChooseLnsNeighbourhood() {
4078 bitField0_ = (bitField0_ & ~0x00040000);
4079 useSatToChooseLnsNeighbourhood_ = true;
4080 onChanged();
4081 return this;
4082 }
4083
4084 private int maxNumberOfConflictsForQuickCheck_ = 10;
4094 @java.lang.Override
4095 public boolean hasMaxNumberOfConflictsForQuickCheck() {
4096 return ((bitField0_ & 0x00080000) != 0);
4097 }
4107 @java.lang.Override
4108 public int getMaxNumberOfConflictsForQuickCheck() {
4109 return maxNumberOfConflictsForQuickCheck_;
4110 }
4121 public Builder setMaxNumberOfConflictsForQuickCheck(int value) {
4122
4123 maxNumberOfConflictsForQuickCheck_ = value;
4124 bitField0_ |= 0x00080000;
4125 onChanged();
4126 return this;
4127 }
4137 public Builder clearMaxNumberOfConflictsForQuickCheck() {
4138 bitField0_ = (bitField0_ & ~0x00080000);
4139 maxNumberOfConflictsForQuickCheck_ = 10;
4140 onChanged();
4141 return this;
4142 }
4143
4144 private boolean useSymmetry_ ;
4157 @java.lang.Override
4158 public boolean hasUseSymmetry() {
4159 return ((bitField0_ & 0x00100000) != 0);
4160 }
4173 @java.lang.Override
4174 public boolean getUseSymmetry() {
4175 return useSymmetry_;
4176 }
4190 public Builder setUseSymmetry(boolean value) {
4191
4192 useSymmetry_ = value;
4193 bitField0_ |= 0x00100000;
4194 onChanged();
4195 return this;
4196 }
4209 public Builder clearUseSymmetry() {
4210 bitField0_ = (bitField0_ & ~0x00100000);
4211 useSymmetry_ = false;
4212 onChanged();
4213 return this;
4214 }
4215
4216 private boolean exploitSymmetryInSatFirstSolution_ ;
4229 @java.lang.Override
4230 public boolean hasExploitSymmetryInSatFirstSolution() {
4231 return ((bitField0_ & 0x00200000) != 0);
4232 }
4245 @java.lang.Override
4246 public boolean getExploitSymmetryInSatFirstSolution() {
4247 return exploitSymmetryInSatFirstSolution_;
4248 }
4262 public Builder setExploitSymmetryInSatFirstSolution(boolean value) {
4263
4264 exploitSymmetryInSatFirstSolution_ = value;
4265 bitField0_ |= 0x00200000;
4266 onChanged();
4267 return this;
4268 }
4281 public Builder clearExploitSymmetryInSatFirstSolution() {
4282 bitField0_ = (bitField0_ & ~0x00200000);
4283 exploitSymmetryInSatFirstSolution_ = false;
4284 onChanged();
4285 return this;
4286 }
4287
4288 private int maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
4297 @java.lang.Override
4298 public boolean hasMaxNumberOfConflictsInRandomSolutionGeneration() {
4299 return ((bitField0_ & 0x00400000) != 0);
4300 }
4309 @java.lang.Override
4310 public int getMaxNumberOfConflictsInRandomSolutionGeneration() {
4311 return maxNumberOfConflictsInRandomSolutionGeneration_;
4312 }
4322 public Builder setMaxNumberOfConflictsInRandomSolutionGeneration(int value) {
4323
4324 maxNumberOfConflictsInRandomSolutionGeneration_ = value;
4325 bitField0_ |= 0x00400000;
4326 onChanged();
4327 return this;
4328 }
4337 public Builder clearMaxNumberOfConflictsInRandomSolutionGeneration() {
4338 bitField0_ = (bitField0_ & ~0x00400000);
4339 maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
4340 onChanged();
4341 return this;
4342 }
4343
4344 private long maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
4356 @java.lang.Override
4357 public boolean hasMaxNumberOfExploredAssignmentsPerTryInLs() {
4358 return ((bitField0_ & 0x00800000) != 0);
4359 }
4371 @java.lang.Override
4372 public long getMaxNumberOfExploredAssignmentsPerTryInLs() {
4373 return maxNumberOfExploredAssignmentsPerTryInLs_;
4374 }
4387 public Builder setMaxNumberOfExploredAssignmentsPerTryInLs(long value) {
4388
4389 maxNumberOfExploredAssignmentsPerTryInLs_ = value;
4390 bitField0_ |= 0x00800000;
4391 onChanged();
4392 return this;
4393 }
4405 public Builder clearMaxNumberOfExploredAssignmentsPerTryInLs() {
4406 bitField0_ = (bitField0_ & ~0x00800000);
4407 maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
4408 onChanged();
4409 return this;
4410 }
4411
4412 private boolean useTranspositionTableInLs_ = true;
4424 @java.lang.Override
4425 public boolean hasUseTranspositionTableInLs() {
4426 return ((bitField0_ & 0x01000000) != 0);
4427 }
4439 @java.lang.Override
4440 public boolean getUseTranspositionTableInLs() {
4441 return useTranspositionTableInLs_;
4442 }
4455 public Builder setUseTranspositionTableInLs(boolean value) {
4456
4457 useTranspositionTableInLs_ = value;
4458 bitField0_ |= 0x01000000;
4459 onChanged();
4460 return this;
4461 }
4473 public Builder clearUseTranspositionTableInLs() {
4474 bitField0_ = (bitField0_ & ~0x01000000);
4475 useTranspositionTableInLs_ = true;
4476 onChanged();
4477 return this;
4478 }
4479
4480 private boolean usePotentialOneFlipRepairsInLs_ ;
4491 @java.lang.Override
4492 public boolean hasUsePotentialOneFlipRepairsInLs() {
4493 return ((bitField0_ & 0x02000000) != 0);
4494 }
4505 @java.lang.Override
4506 public boolean getUsePotentialOneFlipRepairsInLs() {
4507 return usePotentialOneFlipRepairsInLs_;
4508 }
4520 public Builder setUsePotentialOneFlipRepairsInLs(boolean value) {
4521
4522 usePotentialOneFlipRepairsInLs_ = value;
4523 bitField0_ |= 0x02000000;
4524 onChanged();
4525 return this;
4526 }
4537 public Builder clearUsePotentialOneFlipRepairsInLs() {
4538 bitField0_ = (bitField0_ & ~0x02000000);
4539 usePotentialOneFlipRepairsInLs_ = false;
4540 onChanged();
4541 return this;
4542 }
4543
4544 private boolean useLearnedBinaryClausesInLp_ = true;
4553 @java.lang.Override
4554 public boolean hasUseLearnedBinaryClausesInLp() {
4555 return ((bitField0_ & 0x04000000) != 0);
4556 }
4565 @java.lang.Override
4566 public boolean getUseLearnedBinaryClausesInLp() {
4567 return useLearnedBinaryClausesInLp_;
4568 }
4578 public Builder setUseLearnedBinaryClausesInLp(boolean value) {
4579
4580 useLearnedBinaryClausesInLp_ = value;
4581 bitField0_ |= 0x04000000;
4582 onChanged();
4583 return this;
4584 }
4593 public Builder clearUseLearnedBinaryClausesInLp() {
4594 bitField0_ = (bitField0_ & ~0x04000000);
4595 useLearnedBinaryClausesInLp_ = true;
4596 onChanged();
4597 return this;
4598 }
4599
4600 private int numberOfSolvers_ = 1;
4611 @java.lang.Override
4612 public boolean hasNumberOfSolvers() {
4613 return ((bitField0_ & 0x08000000) != 0);
4614 }
4625 @java.lang.Override
4626 public int getNumberOfSolvers() {
4627 return numberOfSolvers_;
4628 }
4640 public Builder setNumberOfSolvers(int value) {
4641
4642 numberOfSolvers_ = value;
4643 bitField0_ |= 0x08000000;
4644 onChanged();
4645 return this;
4646 }
4657 public Builder clearNumberOfSolvers() {
4658 bitField0_ = (bitField0_ & ~0x08000000);
4659 numberOfSolvers_ = 1;
4660 onChanged();
4661 return this;
4662 }
4663
4664 private int synchronizationType_ = 0;
4669 @java.lang.Override public boolean hasSynchronizationType() {
4670 return ((bitField0_ & 0x10000000) != 0);
4671 }
4676 @java.lang.Override
4677 public com.google.ortools.bop.BopParameters.ThreadSynchronizationType getSynchronizationType() {
4678 com.google.ortools.bop.BopParameters.ThreadSynchronizationType result = com.google.ortools.bop.BopParameters.ThreadSynchronizationType.forNumber(synchronizationType_);
4679 return result == null ? com.google.ortools.bop.BopParameters.ThreadSynchronizationType.NO_SYNCHRONIZATION : result;
4680 }
4686 public Builder setSynchronizationType(com.google.ortools.bop.BopParameters.ThreadSynchronizationType value) {
4687 if (value == null) {
4688 throw new NullPointerException();
4689 }
4690 bitField0_ |= 0x10000000;
4691 synchronizationType_ = value.getNumber();
4692 onChanged();
4693 return this;
4694 }
4699 public Builder clearSynchronizationType() {
4700 bitField0_ = (bitField0_ & ~0x10000000);
4701 synchronizationType_ = 0;
4702 onChanged();
4703 return this;
4704 }
4705
4706 private java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> solverOptimizerSets_ =
4707 java.util.Collections.emptyList();
4708 private void ensureSolverOptimizerSetsIsMutable() {
4709 if (!((bitField0_ & 0x20000000) != 0)) {
4710 solverOptimizerSets_ = new java.util.ArrayList<com.google.ortools.bop.BopSolverOptimizerSet>(solverOptimizerSets_);
4711 bitField0_ |= 0x20000000;
4712 }
4713 }
4714
4715 private com.google.protobuf.RepeatedFieldBuilderV3<
4716 com.google.ortools.bop.BopSolverOptimizerSet, com.google.ortools.bop.BopSolverOptimizerSet.Builder, com.google.ortools.bop.BopSolverOptimizerSetOrBuilder> solverOptimizerSetsBuilder_;
4717
4728 public java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> getSolverOptimizerSetsList() {
4729 if (solverOptimizerSetsBuilder_ == null) {
4730 return java.util.Collections.unmodifiableList(solverOptimizerSets_);
4731 } else {
4732 return solverOptimizerSetsBuilder_.getMessageList();
4733 }
4734 }
4745 public int getSolverOptimizerSetsCount() {
4746 if (solverOptimizerSetsBuilder_ == null) {
4747 return solverOptimizerSets_.size();
4748 } else {
4749 return solverOptimizerSetsBuilder_.getCount();
4750 }
4751 }
4762 public com.google.ortools.bop.BopSolverOptimizerSet getSolverOptimizerSets(int index) {
4763 if (solverOptimizerSetsBuilder_ == null) {
4764 return solverOptimizerSets_.get(index);
4765 } else {
4766 return solverOptimizerSetsBuilder_.getMessage(index);
4767 }
4768 }
4779 public Builder setSolverOptimizerSets(
4780 int index, com.google.ortools.bop.BopSolverOptimizerSet value) {
4781 if (solverOptimizerSetsBuilder_ == null) {
4782 if (value == null) {
4783 throw new NullPointerException();
4784 }
4785 ensureSolverOptimizerSetsIsMutable();
4786 solverOptimizerSets_.set(index, value);
4787 onChanged();
4788 } else {
4789 solverOptimizerSetsBuilder_.setMessage(index, value);
4790 }
4791 return this;
4792 }
4803 public Builder setSolverOptimizerSets(
4804 int index, com.google.ortools.bop.BopSolverOptimizerSet.Builder builderForValue) {
4805 if (solverOptimizerSetsBuilder_ == null) {
4806 ensureSolverOptimizerSetsIsMutable();
4807 solverOptimizerSets_.set(index, builderForValue.build());
4808 onChanged();
4809 } else {
4810 solverOptimizerSetsBuilder_.setMessage(index, builderForValue.build());
4811 }
4812 return this;
4813 }
4824 public Builder addSolverOptimizerSets(com.google.ortools.bop.BopSolverOptimizerSet value) {
4825 if (solverOptimizerSetsBuilder_ == null) {
4826 if (value == null) {
4827 throw new NullPointerException();
4828 }
4829 ensureSolverOptimizerSetsIsMutable();
4830 solverOptimizerSets_.add(value);
4831 onChanged();
4832 } else {
4833 solverOptimizerSetsBuilder_.addMessage(value);
4834 }
4835 return this;
4836 }
4847 public Builder addSolverOptimizerSets(
4848 int index, com.google.ortools.bop.BopSolverOptimizerSet value) {
4849 if (solverOptimizerSetsBuilder_ == null) {
4850 if (value == null) {
4851 throw new NullPointerException();
4852 }
4853 ensureSolverOptimizerSetsIsMutable();
4854 solverOptimizerSets_.add(index, value);
4855 onChanged();
4856 } else {
4857 solverOptimizerSetsBuilder_.addMessage(index, value);
4858 }
4859 return this;
4860 }
4871 public Builder addSolverOptimizerSets(
4872 com.google.ortools.bop.BopSolverOptimizerSet.Builder builderForValue) {
4873 if (solverOptimizerSetsBuilder_ == null) {
4874 ensureSolverOptimizerSetsIsMutable();
4875 solverOptimizerSets_.add(builderForValue.build());
4876 onChanged();
4877 } else {
4878 solverOptimizerSetsBuilder_.addMessage(builderForValue.build());
4879 }
4880 return this;
4881 }
4892 public Builder addSolverOptimizerSets(
4893 int index, com.google.ortools.bop.BopSolverOptimizerSet.Builder builderForValue) {
4894 if (solverOptimizerSetsBuilder_ == null) {
4895 ensureSolverOptimizerSetsIsMutable();
4896 solverOptimizerSets_.add(index, builderForValue.build());
4897 onChanged();
4898 } else {
4899 solverOptimizerSetsBuilder_.addMessage(index, builderForValue.build());
4900 }
4901 return this;
4902 }
4913 public Builder addAllSolverOptimizerSets(
4914 java.lang.Iterable<? extends com.google.ortools.bop.BopSolverOptimizerSet> values) {
4915 if (solverOptimizerSetsBuilder_ == null) {
4916 ensureSolverOptimizerSetsIsMutable();
4917 com.google.protobuf.AbstractMessageLite.Builder.addAll(
4918 values, solverOptimizerSets_);
4919 onChanged();
4920 } else {
4921 solverOptimizerSetsBuilder_.addAllMessages(values);
4922 }
4923 return this;
4924 }
4935 public Builder clearSolverOptimizerSets() {
4936 if (solverOptimizerSetsBuilder_ == null) {
4937 solverOptimizerSets_ = java.util.Collections.emptyList();
4938 bitField0_ = (bitField0_ & ~0x20000000);
4939 onChanged();
4940 } else {
4941 solverOptimizerSetsBuilder_.clear();
4942 }
4943 return this;
4944 }
4955 public Builder removeSolverOptimizerSets(int index) {
4956 if (solverOptimizerSetsBuilder_ == null) {
4957 ensureSolverOptimizerSetsIsMutable();
4958 solverOptimizerSets_.remove(index);
4959 onChanged();
4960 } else {
4961 solverOptimizerSetsBuilder_.remove(index);
4962 }
4963 return this;
4964 }
4975 public com.google.ortools.bop.BopSolverOptimizerSet.Builder getSolverOptimizerSetsBuilder(
4976 int index) {
4977 return getSolverOptimizerSetsFieldBuilder().getBuilder(index);
4978 }
4989 public com.google.ortools.bop.BopSolverOptimizerSetOrBuilder getSolverOptimizerSetsOrBuilder(
4990 int index) {
4991 if (solverOptimizerSetsBuilder_ == null) {
4992 return solverOptimizerSets_.get(index); } else {
4993 return solverOptimizerSetsBuilder_.getMessageOrBuilder(index);
4994 }
4995 }
5006 public java.util.List<? extends com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>
5007 getSolverOptimizerSetsOrBuilderList() {
5008 if (solverOptimizerSetsBuilder_ != null) {
5009 return solverOptimizerSetsBuilder_.getMessageOrBuilderList();
5010 } else {
5011 return java.util.Collections.unmodifiableList(solverOptimizerSets_);
5012 }
5013 }
5024 public com.google.ortools.bop.BopSolverOptimizerSet.Builder addSolverOptimizerSetsBuilder() {
5025 return getSolverOptimizerSetsFieldBuilder().addBuilder(
5026 com.google.ortools.bop.BopSolverOptimizerSet.getDefaultInstance());
5027 }
5038 public com.google.ortools.bop.BopSolverOptimizerSet.Builder addSolverOptimizerSetsBuilder(
5039 int index) {
5040 return getSolverOptimizerSetsFieldBuilder().addBuilder(
5041 index, com.google.ortools.bop.BopSolverOptimizerSet.getDefaultInstance());
5042 }
5053 public java.util.List<com.google.ortools.bop.BopSolverOptimizerSet.Builder>
5054 getSolverOptimizerSetsBuilderList() {
5055 return getSolverOptimizerSetsFieldBuilder().getBuilderList();
5056 }
5057 private com.google.protobuf.RepeatedFieldBuilderV3<
5058 com.google.ortools.bop.BopSolverOptimizerSet, com.google.ortools.bop.BopSolverOptimizerSet.Builder, com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>
5059 getSolverOptimizerSetsFieldBuilder() {
5060 if (solverOptimizerSetsBuilder_ == null) {
5061 solverOptimizerSetsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
5062 com.google.ortools.bop.BopSolverOptimizerSet, com.google.ortools.bop.BopSolverOptimizerSet.Builder, com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>(
5063 solverOptimizerSets_,
5064 ((bitField0_ & 0x20000000) != 0),
5065 getParentForChildren(),
5066 isClean());
5067 solverOptimizerSets_ = null;
5068 }
5069 return solverOptimizerSetsBuilder_;
5070 }
5071
5072 private java.lang.Object defaultSolverOptimizerSets_ = "methods:{type:LOCAL_SEARCH } methods:{type:RANDOM_FIRST_SOLUTION } methods:{type:LINEAR_RELAXATION } methods:{type:LP_FIRST_SOLUTION } methods:{type:OBJECTIVE_FIRST_SOLUTION } methods:{type:USER_GUIDED_FIRST_SOLUTION } methods:{type:RANDOM_CONSTRAINT_LNS_GUIDED_BY_LP } methods:{type:RANDOM_VARIABLE_LNS_GUIDED_BY_LP } methods:{type:RELATION_GRAPH_LNS } methods:{type:RELATION_GRAPH_LNS_GUIDED_BY_LP } methods:{type:RANDOM_CONSTRAINT_LNS } methods:{type:RANDOM_VARIABLE_LNS } methods:{type:SAT_CORE_BASED } methods:{type:COMPLETE_LNS } ";
5077 public boolean hasDefaultSolverOptimizerSets() {
5078 return ((bitField0_ & 0x40000000) != 0);
5079 }
5084 public java.lang.String getDefaultSolverOptimizerSets() {
5085 java.lang.Object ref = defaultSolverOptimizerSets_;
5086 if (!(ref instanceof java.lang.String)) {
5087 com.google.protobuf.ByteString bs =
5088 (com.google.protobuf.ByteString) ref;
5089 java.lang.String s = bs.toStringUtf8();
5090 if (bs.isValidUtf8()) {
5091 defaultSolverOptimizerSets_ = s;
5092 }
5093 return s;
5094 } else {
5095 return (java.lang.String) ref;
5096 }
5097 }
5102 public com.google.protobuf.ByteString
5103 getDefaultSolverOptimizerSetsBytes() {
5104 java.lang.Object ref = defaultSolverOptimizerSets_;
5105 if (ref instanceof String) {
5106 com.google.protobuf.ByteString b =
5107 com.google.protobuf.ByteString.copyFromUtf8(
5108 (java.lang.String) ref);
5109 defaultSolverOptimizerSets_ = b;
5110 return b;
5111 } else {
5112 return (com.google.protobuf.ByteString) ref;
5113 }
5114 }
5120 public Builder setDefaultSolverOptimizerSets(
5121 java.lang.String value) {
5122 if (value == null) { throw new NullPointerException(); }
5123 defaultSolverOptimizerSets_ = value;
5124 bitField0_ |= 0x40000000;
5125 onChanged();
5126 return this;
5127 }
5132 public Builder clearDefaultSolverOptimizerSets() {
5133 defaultSolverOptimizerSets_ = getDefaultInstance().getDefaultSolverOptimizerSets();
5134 bitField0_ = (bitField0_ & ~0x40000000);
5135 onChanged();
5136 return this;
5137 }
5143 public Builder setDefaultSolverOptimizerSetsBytes(
5144 com.google.protobuf.ByteString value) {
5145 if (value == null) { throw new NullPointerException(); }
5146 defaultSolverOptimizerSets_ = value;
5147 bitField0_ |= 0x40000000;
5148 onChanged();
5149 return this;
5150 }
5151
5152 private boolean useLpStrongBranching_ ;
5169 @java.lang.Override
5170 public boolean hasUseLpStrongBranching() {
5171 return ((bitField0_ & 0x80000000) != 0);
5172 }
5189 @java.lang.Override
5190 public boolean getUseLpStrongBranching() {
5191 return useLpStrongBranching_;
5192 }
5210 public Builder setUseLpStrongBranching(boolean value) {
5211
5212 useLpStrongBranching_ = value;
5213 bitField0_ |= 0x80000000;
5214 onChanged();
5215 return this;
5216 }
5233 public Builder clearUseLpStrongBranching() {
5234 bitField0_ = (bitField0_ & ~0x80000000);
5235 useLpStrongBranching_ = false;
5236 onChanged();
5237 return this;
5238 }
5239
5240 private int decomposerNumVariablesThreshold_ = 50;
5250 @java.lang.Override
5251 public boolean hasDecomposerNumVariablesThreshold() {
5252 return ((bitField1_ & 0x00000001) != 0);
5253 }
5263 @java.lang.Override
5264 public int getDecomposerNumVariablesThreshold() {
5265 return decomposerNumVariablesThreshold_;
5266 }
5277 public Builder setDecomposerNumVariablesThreshold(int value) {
5278
5279 decomposerNumVariablesThreshold_ = value;
5280 bitField1_ |= 0x00000001;
5281 onChanged();
5282 return this;
5283 }
5293 public Builder clearDecomposerNumVariablesThreshold() {
5294 bitField1_ = (bitField1_ & ~0x00000001);
5295 decomposerNumVariablesThreshold_ = 50;
5296 onChanged();
5297 return this;
5298 }
5299
5300 private int numBopSolversUsedByDecomposition_ = 1;
5311 @java.lang.Override
5312 public boolean hasNumBopSolversUsedByDecomposition() {
5313 return ((bitField1_ & 0x00000002) != 0);
5314 }
5325 @java.lang.Override
5326 public int getNumBopSolversUsedByDecomposition() {
5327 return numBopSolversUsedByDecomposition_;
5328 }
5340 public Builder setNumBopSolversUsedByDecomposition(int value) {
5341
5342 numBopSolversUsedByDecomposition_ = value;
5343 bitField1_ |= 0x00000002;
5344 onChanged();
5345 return this;
5346 }
5357 public Builder clearNumBopSolversUsedByDecomposition() {
5358 bitField1_ = (bitField1_ & ~0x00000002);
5359 numBopSolversUsedByDecomposition_ = 1;
5360 onChanged();
5361 return this;
5362 }
5363
5364 private double decomposedProblemMinTimeInSeconds_ ;
5376 @java.lang.Override
5377 public boolean hasDecomposedProblemMinTimeInSeconds() {
5378 return ((bitField1_ & 0x00000004) != 0);
5379 }
5391 @java.lang.Override
5392 public double getDecomposedProblemMinTimeInSeconds() {
5393 return decomposedProblemMinTimeInSeconds_;
5394 }
5407 public Builder setDecomposedProblemMinTimeInSeconds(double value) {
5408
5409 decomposedProblemMinTimeInSeconds_ = value;
5410 bitField1_ |= 0x00000004;
5411 onChanged();
5412 return this;
5413 }
5425 public Builder clearDecomposedProblemMinTimeInSeconds() {
5426 bitField1_ = (bitField1_ & ~0x00000004);
5427 decomposedProblemMinTimeInSeconds_ = 0D;
5428 onChanged();
5429 return this;
5430 }
5431
5432 private int guidedSatConflictsChunk_ = 1000;
5443 @java.lang.Override
5444 public boolean hasGuidedSatConflictsChunk() {
5445 return ((bitField1_ & 0x00000008) != 0);
5446 }
5457 @java.lang.Override
5458 public int getGuidedSatConflictsChunk() {
5459 return guidedSatConflictsChunk_;
5460 }
5472 public Builder setGuidedSatConflictsChunk(int value) {
5473
5474 guidedSatConflictsChunk_ = value;
5475 bitField1_ |= 0x00000008;
5476 onChanged();
5477 return this;
5478 }
5489 public Builder clearGuidedSatConflictsChunk() {
5490 bitField1_ = (bitField1_ & ~0x00000008);
5491 guidedSatConflictsChunk_ = 1000;
5492 onChanged();
5493 return this;
5494 }
5495
5496 private int maxLpSolveForFeasibilityProblems_ ;
5508 @java.lang.Override
5509 public boolean hasMaxLpSolveForFeasibilityProblems() {
5510 return ((bitField1_ & 0x00000010) != 0);
5511 }
5523 @java.lang.Override
5524 public int getMaxLpSolveForFeasibilityProblems() {
5525 return maxLpSolveForFeasibilityProblems_;
5526 }
5539 public Builder setMaxLpSolveForFeasibilityProblems(int value) {
5540
5541 maxLpSolveForFeasibilityProblems_ = value;
5542 bitField1_ |= 0x00000010;
5543 onChanged();
5544 return this;
5545 }
5557 public Builder clearMaxLpSolveForFeasibilityProblems() {
5558 bitField1_ = (bitField1_ & ~0x00000010);
5559 maxLpSolveForFeasibilityProblems_ = 0;
5560 onChanged();
5561 return this;
5562 }
5563 @java.lang.Override
5564 public final Builder setUnknownFields(
5565 final com.google.protobuf.UnknownFieldSet unknownFields) {
5566 return super.setUnknownFields(unknownFields);
5567 }
5568
5569 @java.lang.Override
5570 public final Builder mergeUnknownFields(
5571 final com.google.protobuf.UnknownFieldSet unknownFields) {
5572 return super.mergeUnknownFields(unknownFields);
5573 }
5574
5575
5576 // @@protoc_insertion_point(builder_scope:operations_research.bop.BopParameters)
5577 }
5578
5579 // @@protoc_insertion_point(class_scope:operations_research.bop.BopParameters)
5580 private static final com.google.ortools.bop.BopParameters DEFAULT_INSTANCE;
5581 static {
5582 DEFAULT_INSTANCE = new com.google.ortools.bop.BopParameters();
5583 }
5584
5585 public static com.google.ortools.bop.BopParameters getDefaultInstance() {
5586 return DEFAULT_INSTANCE;
5587 }
5588
5589 @java.lang.Deprecated public static final com.google.protobuf.Parser<BopParameters>
5590 PARSER = new com.google.protobuf.AbstractParser<BopParameters>() {
5591 @java.lang.Override
5592 public BopParameters parsePartialFrom(
5593 com.google.protobuf.CodedInputStream input,
5594 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5595 throws com.google.protobuf.InvalidProtocolBufferException {
5596 Builder builder = newBuilder();
5597 try {
5598 builder.mergeFrom(input, extensionRegistry);
5599 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
5600 throw e.setUnfinishedMessage(builder.buildPartial());
5601 } catch (com.google.protobuf.UninitializedMessageException e) {
5602 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
5603 } catch (java.io.IOException e) {
5604 throw new com.google.protobuf.InvalidProtocolBufferException(e)
5605 .setUnfinishedMessage(builder.buildPartial());
5606 }
5607 return builder.buildPartial();
5608 }
5609 };
5610
5611 public static com.google.protobuf.Parser<BopParameters> parser() {
5612 return PARSER;
5613 }
5614
5615 @java.lang.Override
5616 public com.google.protobuf.Parser<BopParameters> getParserForType() {
5617 return PARSER;
5618 }
5619
5620 @java.lang.Override
5621 public com.google.ortools.bop.BopParameters getDefaultInstanceForType() {
5622 return DEFAULT_INSTANCE;
5623 }
5624
5625}
5626
static final int SORT_CONSTRAINTS_BY_NUM_TERMS_FIELD_NUMBER
static final int MAX_NUMBER_OF_CONFLICTS_FOR_QUICK_CHECK_FIELD_NUMBER
static final int USE_POTENTIAL_ONE_FLIP_REPAIRS_IN_LS_FIELD_NUMBER
static final int MAX_NUMBER_OF_CONSECUTIVE_FAILING_OPTIMIZER_CALLS_FIELD_NUMBER
com.google.ortools.bop.BopSolverOptimizerSet getSolverOptimizerSets(int index)
static final int USE_SAT_TO_CHOOSE_LNS_NEIGHBOURHOOD_FIELD_NUMBER
com.google.ortools.bop.BopSolverOptimizerSetOrBuilder getSolverOptimizerSetsOrBuilder(int index)
static final int DEFAULT_SOLVER_OPTIMIZER_SETS_FIELD_NUMBER
static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER
java.util.List<? extends com.google.ortools.bop.BopSolverOptimizerSetOrBuilder > getSolverOptimizerSetsOrBuilderList()
java.util.List< com.google.ortools.bop.BopSolverOptimizerSet > getSolverOptimizerSetsList()
static final int MAX_NUMBER_OF_BACKTRACKS_IN_LS_FIELD_NUMBER
static final int MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_LNS_FIELD_NUMBER
java.lang.Object newInstance(UnusedPrivateParameter unused)
static final int USE_LEARNED_BINARY_CLAUSES_IN_LP_FIELD_NUMBER
static final int MAX_NUMBER_OF_EXPLORED_ASSIGNMENTS_PER_TRY_IN_LS_FIELD_NUMBER
static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
static final int MAX_NUM_BROKEN_CONSTRAINTS_IN_LS_FIELD_NUMBER
com.google.ortools.bop.BopParameters.ThreadSynchronizationType getSynchronizationType()
static final int LP_MAX_DETERMINISTIC_TIME_FIELD_NUMBER
static final int USE_TRANSPOSITION_TABLE_IN_LS_FIELD_NUMBER
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
static final int MAX_NUM_DECISIONS_IN_LS_FIELD_NUMBER
static final int EXPLOIT_SYMMETRY_IN_SAT_FIRST_SOLUTION_FIELD_NUMBER
static final int MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_SOLUTION_GENERATION_FIELD_NUMBER
static final int COMPUTE_ESTIMATED_IMPACT_FIELD_NUMBER
static com.google.protobuf.Internal.EnumLiteMap< ThreadSynchronizationType > internalGetValueMap()
static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor()
final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor()
final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType()
static ThreadSynchronizationType forNumber(int value)
static ThreadSynchronizationType valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc)
static ThreadSynchronizationType valueOf(int value)