Google OR-Tools v9.11
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: 4.26.1
5package com.google.ortools.bop;
6
17public final class BopParameters extends
18 com.google.protobuf.GeneratedMessage implements
19 // @@protoc_insertion_point(message_implements:operations_research.bop.BopParameters)
21private static final long serialVersionUID = 0L;
22 static {
23 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
24 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
25 /* major= */ 4,
26 /* minor= */ 26,
27 /* patch= */ 1,
28 /* suffix= */ "",
29 BopParameters.class.getName());
30 }
31 // Use BopParameters.newBuilder() to construct.
32 private BopParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
33 super(builder);
34 }
35 private BopParameters() {
36 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
37 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
38 lpMaxDeterministicTime_ = 1D;
39 relativeGapLimit_ = 0.0001D;
40 maxNumDecisionsInLs_ = 4;
41 maxNumBrokenConstraintsInLs_ = 2147483647;
42 computeEstimatedImpact_ = true;
43 useRandomLns_ = true;
44 randomSeed_ = 8;
45 numRelaxedVars_ = 10;
46 maxNumberOfConflictsInRandomLns_ = 2500;
47 numRandomLnsTries_ = 1;
48 maxNumberOfBacktracksInLs_ = 100000000L;
49 useLpLns_ = true;
50 useSatToChooseLnsNeighbourhood_ = true;
51 maxNumberOfConflictsForQuickCheck_ = 10;
52 maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
53 maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
54 useTranspositionTableInLs_ = true;
55 useLearnedBinaryClausesInLp_ = true;
56 numberOfSolvers_ = 1;
57 synchronizationType_ = 0;
58 solverOptimizerSets_ = java.util.Collections.emptyList();
59 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 } ";
60 decomposerNumVariablesThreshold_ = 50;
61 numBopSolversUsedByDecomposition_ = 1;
62 guidedSatConflictsChunk_ = 1000;
63 }
64
65 public static final com.google.protobuf.Descriptors.Descriptor
67 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_descriptor;
68 }
69
70 @java.lang.Override
71 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
73 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_fieldAccessorTable
74 .ensureFieldAccessorsInitialized(
75 com.google.ortools.bop.BopParameters.class, com.google.ortools.bop.BopParameters.Builder.class);
76 }
77
88 implements com.google.protobuf.ProtocolMessageEnum {
138 ;
139
140 static {
141 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
142 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
143 /* major= */ 4,
144 /* minor= */ 26,
145 /* patch= */ 1,
146 /* suffix= */ "",
147 ThreadSynchronizationType.class.getName());
148 }
163 public static final int NO_SYNCHRONIZATION_VALUE = 0;
179 public static final int SYNCHRONIZE_ALL_VALUE = 1;
197 public static final int SYNCHRONIZE_ON_RIGHT_VALUE = 2;
198
199
200 public final int getNumber() {
201 return value;
202 }
203
209 @java.lang.Deprecated
210 public static ThreadSynchronizationType valueOf(int value) {
211 return forNumber(value);
212 }
213
218 public static ThreadSynchronizationType forNumber(int value) {
219 switch (value) {
220 case 0: return NO_SYNCHRONIZATION;
221 case 1: return SYNCHRONIZE_ALL;
222 case 2: return SYNCHRONIZE_ON_RIGHT;
223 default: return null;
224 }
225 }
226
227 public static com.google.protobuf.Internal.EnumLiteMap<ThreadSynchronizationType>
229 return internalValueMap;
230 }
231 private static final com.google.protobuf.Internal.EnumLiteMap<
232 ThreadSynchronizationType> internalValueMap =
233 new com.google.protobuf.Internal.EnumLiteMap<ThreadSynchronizationType>() {
234 public ThreadSynchronizationType findValueByNumber(int number) {
236 }
237 };
238
239 public final com.google.protobuf.Descriptors.EnumValueDescriptor
241 return getDescriptor().getValues().get(ordinal());
242 }
243 public final com.google.protobuf.Descriptors.EnumDescriptor
245 return getDescriptor();
246 }
247 public static final com.google.protobuf.Descriptors.EnumDescriptor
249 return com.google.ortools.bop.BopParameters.getDescriptor().getEnumTypes().get(0);
250 }
251
252 private static final ThreadSynchronizationType[] VALUES = values();
253
255 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
256 if (desc.getType() != getDescriptor()) {
257 throw new java.lang.IllegalArgumentException(
258 "EnumValueDescriptor is not for this type.");
259 }
260 return VALUES[desc.getIndex()];
261 }
262
263 private final int value;
264
265 private ThreadSynchronizationType(int value) {
266 this.value = value;
267 }
268
269 // @@protoc_insertion_point(enum_scope:operations_research.bop.BopParameters.ThreadSynchronizationType)
270 }
271
272 private int bitField0_;
273 private int bitField1_;
274 public static final int MAX_TIME_IN_SECONDS_FIELD_NUMBER = 1;
275 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
285 @java.lang.Override
286 public boolean hasMaxTimeInSeconds() {
287 return ((bitField0_ & 0x00000001) != 0);
288 }
298 @java.lang.Override
299 public double getMaxTimeInSeconds() {
300 return maxTimeInSeconds_;
301 }
302
303 public static final int MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 27;
304 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
317 @java.lang.Override
318 public boolean hasMaxDeterministicTime() {
319 return ((bitField0_ & 0x00000002) != 0);
320 }
333 @java.lang.Override
334 public double getMaxDeterministicTime() {
335 return maxDeterministicTime_;
336 }
337
338 public static final int LP_MAX_DETERMINISTIC_TIME_FIELD_NUMBER = 37;
339 private double lpMaxDeterministicTime_ = 1D;
350 @java.lang.Override
351 public boolean hasLpMaxDeterministicTime() {
352 return ((bitField0_ & 0x00000004) != 0);
353 }
364 @java.lang.Override
366 return lpMaxDeterministicTime_;
367 }
368
370 private int maxNumberOfConsecutiveFailingOptimizerCalls_ = 0;
383 @java.lang.Override
385 return ((bitField0_ & 0x00000008) != 0);
386 }
399 @java.lang.Override
401 return maxNumberOfConsecutiveFailingOptimizerCalls_;
402 }
403
404 public static final int RELATIVE_GAP_LIMIT_FIELD_NUMBER = 28;
405 private double relativeGapLimit_ = 0.0001D;
418 @java.lang.Override
419 public boolean hasRelativeGapLimit() {
420 return ((bitField0_ & 0x00000010) != 0);
421 }
434 @java.lang.Override
435 public double getRelativeGapLimit() {
436 return relativeGapLimit_;
437 }
438
439 public static final int MAX_NUM_DECISIONS_IN_LS_FIELD_NUMBER = 2;
440 private int maxNumDecisionsInLs_ = 4;
450 @java.lang.Override
451 public boolean hasMaxNumDecisionsInLs() {
452 return ((bitField0_ & 0x00000020) != 0);
453 }
463 @java.lang.Override
465 return maxNumDecisionsInLs_;
466 }
467
469 private int maxNumBrokenConstraintsInLs_ = 2147483647;
480 @java.lang.Override
482 return ((bitField0_ & 0x00000040) != 0);
483 }
494 @java.lang.Override
496 return maxNumBrokenConstraintsInLs_;
497 }
498
499 public static final int LOG_SEARCH_PROGRESS_FIELD_NUMBER = 14;
500 private boolean logSearchProgress_ = false;
509 @java.lang.Override
510 public boolean hasLogSearchProgress() {
511 return ((bitField0_ & 0x00000080) != 0);
512 }
521 @java.lang.Override
522 public boolean getLogSearchProgress() {
523 return logSearchProgress_;
524 }
525
526 public static final int COMPUTE_ESTIMATED_IMPACT_FIELD_NUMBER = 3;
527 private boolean computeEstimatedImpact_ = true;
536 @java.lang.Override
537 public boolean hasComputeEstimatedImpact() {
538 return ((bitField0_ & 0x00000100) != 0);
539 }
548 @java.lang.Override
549 public boolean getComputeEstimatedImpact() {
550 return computeEstimatedImpact_;
551 }
552
553 public static final int PRUNE_SEARCH_TREE_FIELD_NUMBER = 4;
554 private boolean pruneSearchTree_ = false;
563 @java.lang.Override
564 public boolean hasPruneSearchTree() {
565 return ((bitField0_ & 0x00000200) != 0);
566 }
575 @java.lang.Override
576 public boolean getPruneSearchTree() {
577 return pruneSearchTree_;
578 }
579
581 private boolean sortConstraintsByNumTerms_ = false;
591 @java.lang.Override
593 return ((bitField0_ & 0x00000400) != 0);
594 }
604 @java.lang.Override
606 return sortConstraintsByNumTerms_;
607 }
608
609 public static final int USE_RANDOM_LNS_FIELD_NUMBER = 6;
610 private boolean useRandomLns_ = true;
619 @java.lang.Override
620 public boolean hasUseRandomLns() {
621 return ((bitField0_ & 0x00000800) != 0);
622 }
631 @java.lang.Override
632 public boolean getUseRandomLns() {
633 return useRandomLns_;
634 }
635
636 public static final int RANDOM_SEED_FIELD_NUMBER = 7;
637 private int randomSeed_ = 8;
650 @java.lang.Override
651 public boolean hasRandomSeed() {
652 return ((bitField0_ & 0x00001000) != 0);
653 }
666 @java.lang.Override
667 public int getRandomSeed() {
668 return randomSeed_;
669 }
670
671 public static final int NUM_RELAXED_VARS_FIELD_NUMBER = 8;
672 private int numRelaxedVars_ = 10;
681 @java.lang.Override
682 public boolean hasNumRelaxedVars() {
683 return ((bitField0_ & 0x00002000) != 0);
684 }
693 @java.lang.Override
694 public int getNumRelaxedVars() {
695 return numRelaxedVars_;
696 }
697
699 private int maxNumberOfConflictsInRandomLns_ = 2500;
709 @java.lang.Override
711 return ((bitField0_ & 0x00004000) != 0);
712 }
722 @java.lang.Override
724 return maxNumberOfConflictsInRandomLns_;
725 }
726
727 public static final int NUM_RANDOM_LNS_TRIES_FIELD_NUMBER = 10;
728 private int numRandomLnsTries_ = 1;
737 @java.lang.Override
738 public boolean hasNumRandomLnsTries() {
739 return ((bitField0_ & 0x00008000) != 0);
740 }
749 @java.lang.Override
750 public int getNumRandomLnsTries() {
751 return numRandomLnsTries_;
752 }
753
755 private long maxNumberOfBacktracksInLs_ = 100000000L;
765 @java.lang.Override
767 return ((bitField0_ & 0x00010000) != 0);
768 }
778 @java.lang.Override
780 return maxNumberOfBacktracksInLs_;
781 }
782
783 public static final int USE_LP_LNS_FIELD_NUMBER = 12;
784 private boolean useLpLns_ = true;
793 @java.lang.Override
794 public boolean hasUseLpLns() {
795 return ((bitField0_ & 0x00020000) != 0);
796 }
805 @java.lang.Override
806 public boolean getUseLpLns() {
807 return useLpLns_;
808 }
809
811 private boolean useSatToChooseLnsNeighbourhood_ = true;
820 @java.lang.Override
822 return ((bitField0_ & 0x00040000) != 0);
823 }
832 @java.lang.Override
834 return useSatToChooseLnsNeighbourhood_;
835 }
836
838 private int maxNumberOfConflictsForQuickCheck_ = 10;
848 @java.lang.Override
850 return ((bitField0_ & 0x00080000) != 0);
851 }
861 @java.lang.Override
863 return maxNumberOfConflictsForQuickCheck_;
864 }
865
866 public static final int USE_SYMMETRY_FIELD_NUMBER = 17;
867 private boolean useSymmetry_ = false;
880 @java.lang.Override
881 public boolean hasUseSymmetry() {
882 return ((bitField0_ & 0x00100000) != 0);
883 }
896 @java.lang.Override
897 public boolean getUseSymmetry() {
898 return useSymmetry_;
899 }
900
902 private boolean exploitSymmetryInSatFirstSolution_ = false;
915 @java.lang.Override
917 return ((bitField0_ & 0x00200000) != 0);
918 }
931 @java.lang.Override
933 return exploitSymmetryInSatFirstSolution_;
934 }
935
937 private int maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
946 @java.lang.Override
948 return ((bitField0_ & 0x00400000) != 0);
949 }
958 @java.lang.Override
960 return maxNumberOfConflictsInRandomSolutionGeneration_;
961 }
962
964 private long maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
976 @java.lang.Override
978 return ((bitField0_ & 0x00800000) != 0);
979 }
991 @java.lang.Override
993 return maxNumberOfExploredAssignmentsPerTryInLs_;
994 }
995
996 public static final int USE_TRANSPOSITION_TABLE_IN_LS_FIELD_NUMBER = 22;
997 private boolean useTranspositionTableInLs_ = true;
1009 @java.lang.Override
1011 return ((bitField0_ & 0x01000000) != 0);
1012 }
1024 @java.lang.Override
1026 return useTranspositionTableInLs_;
1027 }
1028
1030 private boolean usePotentialOneFlipRepairsInLs_ = false;
1041 @java.lang.Override
1043 return ((bitField0_ & 0x02000000) != 0);
1044 }
1055 @java.lang.Override
1057 return usePotentialOneFlipRepairsInLs_;
1058 }
1059
1061 private boolean useLearnedBinaryClausesInLp_ = true;
1070 @java.lang.Override
1072 return ((bitField0_ & 0x04000000) != 0);
1073 }
1082 @java.lang.Override
1084 return useLearnedBinaryClausesInLp_;
1085 }
1086
1087 public static final int NUMBER_OF_SOLVERS_FIELD_NUMBER = 24;
1088 private int numberOfSolvers_ = 1;
1099 @java.lang.Override
1100 public boolean hasNumberOfSolvers() {
1101 return ((bitField0_ & 0x08000000) != 0);
1102 }
1113 @java.lang.Override
1114 public int getNumberOfSolvers() {
1115 return numberOfSolvers_;
1116 }
1117
1118 public static final int SYNCHRONIZATION_TYPE_FIELD_NUMBER = 25;
1119 private int synchronizationType_ = 0;
1124 @java.lang.Override public boolean hasSynchronizationType() {
1125 return ((bitField0_ & 0x10000000) != 0);
1126 }
1132 com.google.ortools.bop.BopParameters.ThreadSynchronizationType result = com.google.ortools.bop.BopParameters.ThreadSynchronizationType.forNumber(synchronizationType_);
1133 return result == null ? com.google.ortools.bop.BopParameters.ThreadSynchronizationType.NO_SYNCHRONIZATION : result;
1134 }
1135
1136 public static final int SOLVER_OPTIMIZER_SETS_FIELD_NUMBER = 26;
1137 @SuppressWarnings("serial")
1138 private java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> solverOptimizerSets_;
1149 @java.lang.Override
1150 public java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> getSolverOptimizerSetsList() {
1151 return solverOptimizerSets_;
1152 }
1163 @java.lang.Override
1164 public java.util.List<? extends com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>
1166 return solverOptimizerSets_;
1167 }
1178 @java.lang.Override
1180 return solverOptimizerSets_.size();
1181 }
1192 @java.lang.Override
1194 return solverOptimizerSets_.get(index);
1195 }
1206 @java.lang.Override
1208 int index) {
1209 return solverOptimizerSets_.get(index);
1210 }
1211
1213 @SuppressWarnings("serial")
1214 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 } ";
1219 @java.lang.Override
1220 public boolean hasDefaultSolverOptimizerSets() {
1221 return ((bitField0_ & 0x20000000) != 0);
1222 }
1227 @java.lang.Override
1228 public java.lang.String getDefaultSolverOptimizerSets() {
1229 java.lang.Object ref = defaultSolverOptimizerSets_;
1230 if (ref instanceof java.lang.String) {
1231 return (java.lang.String) ref;
1232 } else {
1233 com.google.protobuf.ByteString bs =
1234 (com.google.protobuf.ByteString) ref;
1235 java.lang.String s = bs.toStringUtf8();
1236 if (bs.isValidUtf8()) {
1237 defaultSolverOptimizerSets_ = s;
1238 }
1239 return s;
1240 }
1241 }
1246 @java.lang.Override
1247 public com.google.protobuf.ByteString
1248 getDefaultSolverOptimizerSetsBytes() {
1249 java.lang.Object ref = defaultSolverOptimizerSets_;
1250 if (ref instanceof java.lang.String) {
1251 com.google.protobuf.ByteString b =
1252 com.google.protobuf.ByteString.copyFromUtf8(
1253 (java.lang.String) ref);
1254 defaultSolverOptimizerSets_ = b;
1255 return b;
1256 } else {
1257 return (com.google.protobuf.ByteString) ref;
1258 }
1259 }
1260
1261 public static final int USE_LP_STRONG_BRANCHING_FIELD_NUMBER = 29;
1262 private boolean useLpStrongBranching_ = false;
1279 @java.lang.Override
1280 public boolean hasUseLpStrongBranching() {
1281 return ((bitField0_ & 0x40000000) != 0);
1282 }
1299 @java.lang.Override
1300 public boolean getUseLpStrongBranching() {
1301 return useLpStrongBranching_;
1302 }
1303
1304 public static final int DECOMPOSER_NUM_VARIABLES_THRESHOLD_FIELD_NUMBER = 30;
1305 private int decomposerNumVariablesThreshold_ = 50;
1315 @java.lang.Override
1316 public boolean hasDecomposerNumVariablesThreshold() {
1317 return ((bitField0_ & 0x80000000) != 0);
1318 }
1328 @java.lang.Override
1329 public int getDecomposerNumVariablesThreshold() {
1330 return decomposerNumVariablesThreshold_;
1331 }
1332
1333 public static final int NUM_BOP_SOLVERS_USED_BY_DECOMPOSITION_FIELD_NUMBER = 31;
1334 private int numBopSolversUsedByDecomposition_ = 1;
1345 @java.lang.Override
1346 public boolean hasNumBopSolversUsedByDecomposition() {
1347 return ((bitField1_ & 0x00000001) != 0);
1348 }
1359 @java.lang.Override
1360 public int getNumBopSolversUsedByDecomposition() {
1361 return numBopSolversUsedByDecomposition_;
1362 }
1363
1364 public static final int DECOMPOSED_PROBLEM_MIN_TIME_IN_SECONDS_FIELD_NUMBER = 36;
1365 private double decomposedProblemMinTimeInSeconds_ = 0D;
1377 @java.lang.Override
1378 public boolean hasDecomposedProblemMinTimeInSeconds() {
1379 return ((bitField1_ & 0x00000002) != 0);
1380 }
1392 @java.lang.Override
1393 public double getDecomposedProblemMinTimeInSeconds() {
1394 return decomposedProblemMinTimeInSeconds_;
1395 }
1396
1397 public static final int GUIDED_SAT_CONFLICTS_CHUNK_FIELD_NUMBER = 34;
1398 private int guidedSatConflictsChunk_ = 1000;
1409 @java.lang.Override
1410 public boolean hasGuidedSatConflictsChunk() {
1411 return ((bitField1_ & 0x00000004) != 0);
1412 }
1423 @java.lang.Override
1424 public int getGuidedSatConflictsChunk() {
1425 return guidedSatConflictsChunk_;
1426 }
1427
1428 public static final int MAX_LP_SOLVE_FOR_FEASIBILITY_PROBLEMS_FIELD_NUMBER = 41;
1429 private int maxLpSolveForFeasibilityProblems_ = 0;
1441 @java.lang.Override
1442 public boolean hasMaxLpSolveForFeasibilityProblems() {
1443 return ((bitField1_ & 0x00000008) != 0);
1444 }
1456 @java.lang.Override
1457 public int getMaxLpSolveForFeasibilityProblems() {
1458 return maxLpSolveForFeasibilityProblems_;
1459 }
1460
1461 private byte memoizedIsInitialized = -1;
1462 @java.lang.Override
1463 public final boolean isInitialized() {
1464 byte isInitialized = memoizedIsInitialized;
1465 if (isInitialized == 1) return true;
1466 if (isInitialized == 0) return false;
1467
1468 memoizedIsInitialized = 1;
1469 return true;
1470 }
1471
1472 @java.lang.Override
1473 public void writeTo(com.google.protobuf.CodedOutputStream output)
1474 throws java.io.IOException {
1475 if (((bitField0_ & 0x00000001) != 0)) {
1476 output.writeDouble(1, maxTimeInSeconds_);
1477 }
1478 if (((bitField0_ & 0x00000020) != 0)) {
1479 output.writeInt32(2, maxNumDecisionsInLs_);
1480 }
1481 if (((bitField0_ & 0x00000100) != 0)) {
1482 output.writeBool(3, computeEstimatedImpact_);
1483 }
1484 if (((bitField0_ & 0x00000200) != 0)) {
1485 output.writeBool(4, pruneSearchTree_);
1486 }
1487 if (((bitField0_ & 0x00000400) != 0)) {
1488 output.writeBool(5, sortConstraintsByNumTerms_);
1489 }
1490 if (((bitField0_ & 0x00000800) != 0)) {
1491 output.writeBool(6, useRandomLns_);
1492 }
1493 if (((bitField0_ & 0x00001000) != 0)) {
1494 output.writeInt32(7, randomSeed_);
1495 }
1496 if (((bitField0_ & 0x00002000) != 0)) {
1497 output.writeInt32(8, numRelaxedVars_);
1498 }
1499 if (((bitField0_ & 0x00004000) != 0)) {
1500 output.writeInt32(9, maxNumberOfConflictsInRandomLns_);
1501 }
1502 if (((bitField0_ & 0x00008000) != 0)) {
1503 output.writeInt32(10, numRandomLnsTries_);
1504 }
1505 if (((bitField0_ & 0x00010000) != 0)) {
1506 output.writeInt64(11, maxNumberOfBacktracksInLs_);
1507 }
1508 if (((bitField0_ & 0x00020000) != 0)) {
1509 output.writeBool(12, useLpLns_);
1510 }
1511 if (((bitField0_ & 0x00000080) != 0)) {
1512 output.writeBool(14, logSearchProgress_);
1513 }
1514 if (((bitField0_ & 0x00040000) != 0)) {
1515 output.writeBool(15, useSatToChooseLnsNeighbourhood_);
1516 }
1517 if (((bitField0_ & 0x00080000) != 0)) {
1518 output.writeInt32(16, maxNumberOfConflictsForQuickCheck_);
1519 }
1520 if (((bitField0_ & 0x00100000) != 0)) {
1521 output.writeBool(17, useSymmetry_);
1522 }
1523 if (((bitField0_ & 0x00400000) != 0)) {
1524 output.writeInt32(20, maxNumberOfConflictsInRandomSolutionGeneration_);
1525 }
1526 if (((bitField0_ & 0x00800000) != 0)) {
1527 output.writeInt64(21, maxNumberOfExploredAssignmentsPerTryInLs_);
1528 }
1529 if (((bitField0_ & 0x01000000) != 0)) {
1530 output.writeBool(22, useTranspositionTableInLs_);
1531 }
1532 if (((bitField0_ & 0x04000000) != 0)) {
1533 output.writeBool(23, useLearnedBinaryClausesInLp_);
1534 }
1535 if (((bitField0_ & 0x08000000) != 0)) {
1536 output.writeInt32(24, numberOfSolvers_);
1537 }
1538 if (((bitField0_ & 0x10000000) != 0)) {
1539 output.writeEnum(25, synchronizationType_);
1540 }
1541 for (int i = 0; i < solverOptimizerSets_.size(); i++) {
1542 output.writeMessage(26, solverOptimizerSets_.get(i));
1543 }
1544 if (((bitField0_ & 0x00000002) != 0)) {
1545 output.writeDouble(27, maxDeterministicTime_);
1546 }
1547 if (((bitField0_ & 0x00000010) != 0)) {
1548 output.writeDouble(28, relativeGapLimit_);
1549 }
1550 if (((bitField0_ & 0x40000000) != 0)) {
1551 output.writeBool(29, useLpStrongBranching_);
1552 }
1553 if (((bitField0_ & 0x80000000) != 0)) {
1554 output.writeInt32(30, decomposerNumVariablesThreshold_);
1555 }
1556 if (((bitField1_ & 0x00000001) != 0)) {
1557 output.writeInt32(31, numBopSolversUsedByDecomposition_);
1558 }
1559 if (((bitField0_ & 0x20000000) != 0)) {
1560 com.google.protobuf.GeneratedMessage.writeString(output, 33, defaultSolverOptimizerSets_);
1561 }
1562 if (((bitField1_ & 0x00000004) != 0)) {
1563 output.writeInt32(34, guidedSatConflictsChunk_);
1564 }
1565 if (((bitField0_ & 0x00000008) != 0)) {
1566 output.writeInt32(35, maxNumberOfConsecutiveFailingOptimizerCalls_);
1567 }
1568 if (((bitField1_ & 0x00000002) != 0)) {
1569 output.writeDouble(36, decomposedProblemMinTimeInSeconds_);
1570 }
1571 if (((bitField0_ & 0x00000004) != 0)) {
1572 output.writeDouble(37, lpMaxDeterministicTime_);
1573 }
1574 if (((bitField0_ & 0x00000040) != 0)) {
1575 output.writeInt32(38, maxNumBrokenConstraintsInLs_);
1576 }
1577 if (((bitField0_ & 0x02000000) != 0)) {
1578 output.writeBool(39, usePotentialOneFlipRepairsInLs_);
1579 }
1580 if (((bitField0_ & 0x00200000) != 0)) {
1581 output.writeBool(40, exploitSymmetryInSatFirstSolution_);
1582 }
1583 if (((bitField1_ & 0x00000008) != 0)) {
1584 output.writeInt32(41, maxLpSolveForFeasibilityProblems_);
1585 }
1586 getUnknownFields().writeTo(output);
1587 }
1588
1589 @java.lang.Override
1590 public int getSerializedSize() {
1591 int size = memoizedSize;
1592 if (size != -1) return size;
1593
1594 size = 0;
1595 if (((bitField0_ & 0x00000001) != 0)) {
1596 size += com.google.protobuf.CodedOutputStream
1597 .computeDoubleSize(1, maxTimeInSeconds_);
1598 }
1599 if (((bitField0_ & 0x00000020) != 0)) {
1600 size += com.google.protobuf.CodedOutputStream
1601 .computeInt32Size(2, maxNumDecisionsInLs_);
1602 }
1603 if (((bitField0_ & 0x00000100) != 0)) {
1604 size += com.google.protobuf.CodedOutputStream
1605 .computeBoolSize(3, computeEstimatedImpact_);
1606 }
1607 if (((bitField0_ & 0x00000200) != 0)) {
1608 size += com.google.protobuf.CodedOutputStream
1609 .computeBoolSize(4, pruneSearchTree_);
1610 }
1611 if (((bitField0_ & 0x00000400) != 0)) {
1612 size += com.google.protobuf.CodedOutputStream
1613 .computeBoolSize(5, sortConstraintsByNumTerms_);
1614 }
1615 if (((bitField0_ & 0x00000800) != 0)) {
1616 size += com.google.protobuf.CodedOutputStream
1617 .computeBoolSize(6, useRandomLns_);
1618 }
1619 if (((bitField0_ & 0x00001000) != 0)) {
1620 size += com.google.protobuf.CodedOutputStream
1621 .computeInt32Size(7, randomSeed_);
1622 }
1623 if (((bitField0_ & 0x00002000) != 0)) {
1624 size += com.google.protobuf.CodedOutputStream
1625 .computeInt32Size(8, numRelaxedVars_);
1626 }
1627 if (((bitField0_ & 0x00004000) != 0)) {
1628 size += com.google.protobuf.CodedOutputStream
1629 .computeInt32Size(9, maxNumberOfConflictsInRandomLns_);
1630 }
1631 if (((bitField0_ & 0x00008000) != 0)) {
1632 size += com.google.protobuf.CodedOutputStream
1633 .computeInt32Size(10, numRandomLnsTries_);
1634 }
1635 if (((bitField0_ & 0x00010000) != 0)) {
1636 size += com.google.protobuf.CodedOutputStream
1637 .computeInt64Size(11, maxNumberOfBacktracksInLs_);
1638 }
1639 if (((bitField0_ & 0x00020000) != 0)) {
1640 size += com.google.protobuf.CodedOutputStream
1641 .computeBoolSize(12, useLpLns_);
1642 }
1643 if (((bitField0_ & 0x00000080) != 0)) {
1644 size += com.google.protobuf.CodedOutputStream
1645 .computeBoolSize(14, logSearchProgress_);
1646 }
1647 if (((bitField0_ & 0x00040000) != 0)) {
1648 size += com.google.protobuf.CodedOutputStream
1649 .computeBoolSize(15, useSatToChooseLnsNeighbourhood_);
1650 }
1651 if (((bitField0_ & 0x00080000) != 0)) {
1652 size += com.google.protobuf.CodedOutputStream
1653 .computeInt32Size(16, maxNumberOfConflictsForQuickCheck_);
1654 }
1655 if (((bitField0_ & 0x00100000) != 0)) {
1656 size += com.google.protobuf.CodedOutputStream
1657 .computeBoolSize(17, useSymmetry_);
1658 }
1659 if (((bitField0_ & 0x00400000) != 0)) {
1660 size += com.google.protobuf.CodedOutputStream
1661 .computeInt32Size(20, maxNumberOfConflictsInRandomSolutionGeneration_);
1662 }
1663 if (((bitField0_ & 0x00800000) != 0)) {
1664 size += com.google.protobuf.CodedOutputStream
1665 .computeInt64Size(21, maxNumberOfExploredAssignmentsPerTryInLs_);
1666 }
1667 if (((bitField0_ & 0x01000000) != 0)) {
1668 size += com.google.protobuf.CodedOutputStream
1669 .computeBoolSize(22, useTranspositionTableInLs_);
1670 }
1671 if (((bitField0_ & 0x04000000) != 0)) {
1672 size += com.google.protobuf.CodedOutputStream
1673 .computeBoolSize(23, useLearnedBinaryClausesInLp_);
1674 }
1675 if (((bitField0_ & 0x08000000) != 0)) {
1676 size += com.google.protobuf.CodedOutputStream
1677 .computeInt32Size(24, numberOfSolvers_);
1678 }
1679 if (((bitField0_ & 0x10000000) != 0)) {
1680 size += com.google.protobuf.CodedOutputStream
1681 .computeEnumSize(25, synchronizationType_);
1682 }
1683 for (int i = 0; i < solverOptimizerSets_.size(); i++) {
1684 size += com.google.protobuf.CodedOutputStream
1685 .computeMessageSize(26, solverOptimizerSets_.get(i));
1686 }
1687 if (((bitField0_ & 0x00000002) != 0)) {
1688 size += com.google.protobuf.CodedOutputStream
1689 .computeDoubleSize(27, maxDeterministicTime_);
1690 }
1691 if (((bitField0_ & 0x00000010) != 0)) {
1692 size += com.google.protobuf.CodedOutputStream
1693 .computeDoubleSize(28, relativeGapLimit_);
1694 }
1695 if (((bitField0_ & 0x40000000) != 0)) {
1696 size += com.google.protobuf.CodedOutputStream
1697 .computeBoolSize(29, useLpStrongBranching_);
1698 }
1699 if (((bitField0_ & 0x80000000) != 0)) {
1700 size += com.google.protobuf.CodedOutputStream
1701 .computeInt32Size(30, decomposerNumVariablesThreshold_);
1702 }
1703 if (((bitField1_ & 0x00000001) != 0)) {
1704 size += com.google.protobuf.CodedOutputStream
1705 .computeInt32Size(31, numBopSolversUsedByDecomposition_);
1706 }
1707 if (((bitField0_ & 0x20000000) != 0)) {
1708 size += com.google.protobuf.GeneratedMessage.computeStringSize(33, defaultSolverOptimizerSets_);
1709 }
1710 if (((bitField1_ & 0x00000004) != 0)) {
1711 size += com.google.protobuf.CodedOutputStream
1712 .computeInt32Size(34, guidedSatConflictsChunk_);
1713 }
1714 if (((bitField0_ & 0x00000008) != 0)) {
1715 size += com.google.protobuf.CodedOutputStream
1716 .computeInt32Size(35, maxNumberOfConsecutiveFailingOptimizerCalls_);
1717 }
1718 if (((bitField1_ & 0x00000002) != 0)) {
1719 size += com.google.protobuf.CodedOutputStream
1720 .computeDoubleSize(36, decomposedProblemMinTimeInSeconds_);
1721 }
1722 if (((bitField0_ & 0x00000004) != 0)) {
1723 size += com.google.protobuf.CodedOutputStream
1724 .computeDoubleSize(37, lpMaxDeterministicTime_);
1725 }
1726 if (((bitField0_ & 0x00000040) != 0)) {
1727 size += com.google.protobuf.CodedOutputStream
1728 .computeInt32Size(38, maxNumBrokenConstraintsInLs_);
1729 }
1730 if (((bitField0_ & 0x02000000) != 0)) {
1731 size += com.google.protobuf.CodedOutputStream
1732 .computeBoolSize(39, usePotentialOneFlipRepairsInLs_);
1733 }
1734 if (((bitField0_ & 0x00200000) != 0)) {
1735 size += com.google.protobuf.CodedOutputStream
1736 .computeBoolSize(40, exploitSymmetryInSatFirstSolution_);
1737 }
1738 if (((bitField1_ & 0x00000008) != 0)) {
1739 size += com.google.protobuf.CodedOutputStream
1740 .computeInt32Size(41, maxLpSolveForFeasibilityProblems_);
1741 }
1742 size += getUnknownFields().getSerializedSize();
1743 memoizedSize = size;
1744 return size;
1745 }
1746
1747 @java.lang.Override
1748 public boolean equals(final java.lang.Object obj) {
1749 if (obj == this) {
1750 return true;
1751 }
1752 if (!(obj instanceof com.google.ortools.bop.BopParameters)) {
1753 return super.equals(obj);
1754 }
1755 com.google.ortools.bop.BopParameters other = (com.google.ortools.bop.BopParameters) obj;
1756
1757 if (hasMaxTimeInSeconds() != other.hasMaxTimeInSeconds()) return false;
1758 if (hasMaxTimeInSeconds()) {
1759 if (java.lang.Double.doubleToLongBits(getMaxTimeInSeconds())
1760 != java.lang.Double.doubleToLongBits(
1761 other.getMaxTimeInSeconds())) return false;
1762 }
1763 if (hasMaxDeterministicTime() != other.hasMaxDeterministicTime()) return false;
1764 if (hasMaxDeterministicTime()) {
1765 if (java.lang.Double.doubleToLongBits(getMaxDeterministicTime())
1766 != java.lang.Double.doubleToLongBits(
1767 other.getMaxDeterministicTime())) return false;
1768 }
1769 if (hasLpMaxDeterministicTime() != other.hasLpMaxDeterministicTime()) return false;
1770 if (hasLpMaxDeterministicTime()) {
1771 if (java.lang.Double.doubleToLongBits(getLpMaxDeterministicTime())
1772 != java.lang.Double.doubleToLongBits(
1773 other.getLpMaxDeterministicTime())) return false;
1774 }
1775 if (hasMaxNumberOfConsecutiveFailingOptimizerCalls() != other.hasMaxNumberOfConsecutiveFailingOptimizerCalls()) return false;
1776 if (hasMaxNumberOfConsecutiveFailingOptimizerCalls()) {
1777 if (getMaxNumberOfConsecutiveFailingOptimizerCalls()
1778 != other.getMaxNumberOfConsecutiveFailingOptimizerCalls()) return false;
1779 }
1780 if (hasRelativeGapLimit() != other.hasRelativeGapLimit()) return false;
1781 if (hasRelativeGapLimit()) {
1782 if (java.lang.Double.doubleToLongBits(getRelativeGapLimit())
1783 != java.lang.Double.doubleToLongBits(
1784 other.getRelativeGapLimit())) return false;
1785 }
1786 if (hasMaxNumDecisionsInLs() != other.hasMaxNumDecisionsInLs()) return false;
1787 if (hasMaxNumDecisionsInLs()) {
1788 if (getMaxNumDecisionsInLs()
1789 != other.getMaxNumDecisionsInLs()) return false;
1790 }
1791 if (hasMaxNumBrokenConstraintsInLs() != other.hasMaxNumBrokenConstraintsInLs()) return false;
1792 if (hasMaxNumBrokenConstraintsInLs()) {
1793 if (getMaxNumBrokenConstraintsInLs()
1794 != other.getMaxNumBrokenConstraintsInLs()) return false;
1795 }
1796 if (hasLogSearchProgress() != other.hasLogSearchProgress()) return false;
1797 if (hasLogSearchProgress()) {
1798 if (getLogSearchProgress()
1799 != other.getLogSearchProgress()) return false;
1800 }
1801 if (hasComputeEstimatedImpact() != other.hasComputeEstimatedImpact()) return false;
1802 if (hasComputeEstimatedImpact()) {
1803 if (getComputeEstimatedImpact()
1804 != other.getComputeEstimatedImpact()) return false;
1805 }
1806 if (hasPruneSearchTree() != other.hasPruneSearchTree()) return false;
1807 if (hasPruneSearchTree()) {
1808 if (getPruneSearchTree()
1809 != other.getPruneSearchTree()) return false;
1810 }
1811 if (hasSortConstraintsByNumTerms() != other.hasSortConstraintsByNumTerms()) return false;
1812 if (hasSortConstraintsByNumTerms()) {
1813 if (getSortConstraintsByNumTerms()
1814 != other.getSortConstraintsByNumTerms()) return false;
1815 }
1816 if (hasUseRandomLns() != other.hasUseRandomLns()) return false;
1817 if (hasUseRandomLns()) {
1818 if (getUseRandomLns()
1819 != other.getUseRandomLns()) return false;
1820 }
1821 if (hasRandomSeed() != other.hasRandomSeed()) return false;
1822 if (hasRandomSeed()) {
1823 if (getRandomSeed()
1824 != other.getRandomSeed()) return false;
1825 }
1826 if (hasNumRelaxedVars() != other.hasNumRelaxedVars()) return false;
1827 if (hasNumRelaxedVars()) {
1828 if (getNumRelaxedVars()
1829 != other.getNumRelaxedVars()) return false;
1830 }
1831 if (hasMaxNumberOfConflictsInRandomLns() != other.hasMaxNumberOfConflictsInRandomLns()) return false;
1832 if (hasMaxNumberOfConflictsInRandomLns()) {
1833 if (getMaxNumberOfConflictsInRandomLns()
1834 != other.getMaxNumberOfConflictsInRandomLns()) return false;
1835 }
1836 if (hasNumRandomLnsTries() != other.hasNumRandomLnsTries()) return false;
1837 if (hasNumRandomLnsTries()) {
1838 if (getNumRandomLnsTries()
1839 != other.getNumRandomLnsTries()) return false;
1840 }
1841 if (hasMaxNumberOfBacktracksInLs() != other.hasMaxNumberOfBacktracksInLs()) return false;
1842 if (hasMaxNumberOfBacktracksInLs()) {
1843 if (getMaxNumberOfBacktracksInLs()
1844 != other.getMaxNumberOfBacktracksInLs()) return false;
1845 }
1846 if (hasUseLpLns() != other.hasUseLpLns()) return false;
1847 if (hasUseLpLns()) {
1848 if (getUseLpLns()
1849 != other.getUseLpLns()) return false;
1850 }
1851 if (hasUseSatToChooseLnsNeighbourhood() != other.hasUseSatToChooseLnsNeighbourhood()) return false;
1852 if (hasUseSatToChooseLnsNeighbourhood()) {
1853 if (getUseSatToChooseLnsNeighbourhood()
1854 != other.getUseSatToChooseLnsNeighbourhood()) return false;
1855 }
1856 if (hasMaxNumberOfConflictsForQuickCheck() != other.hasMaxNumberOfConflictsForQuickCheck()) return false;
1857 if (hasMaxNumberOfConflictsForQuickCheck()) {
1858 if (getMaxNumberOfConflictsForQuickCheck()
1859 != other.getMaxNumberOfConflictsForQuickCheck()) return false;
1860 }
1861 if (hasUseSymmetry() != other.hasUseSymmetry()) return false;
1862 if (hasUseSymmetry()) {
1863 if (getUseSymmetry()
1864 != other.getUseSymmetry()) return false;
1865 }
1866 if (hasExploitSymmetryInSatFirstSolution() != other.hasExploitSymmetryInSatFirstSolution()) return false;
1867 if (hasExploitSymmetryInSatFirstSolution()) {
1868 if (getExploitSymmetryInSatFirstSolution()
1869 != other.getExploitSymmetryInSatFirstSolution()) return false;
1870 }
1871 if (hasMaxNumberOfConflictsInRandomSolutionGeneration() != other.hasMaxNumberOfConflictsInRandomSolutionGeneration()) return false;
1872 if (hasMaxNumberOfConflictsInRandomSolutionGeneration()) {
1873 if (getMaxNumberOfConflictsInRandomSolutionGeneration()
1874 != other.getMaxNumberOfConflictsInRandomSolutionGeneration()) return false;
1875 }
1876 if (hasMaxNumberOfExploredAssignmentsPerTryInLs() != other.hasMaxNumberOfExploredAssignmentsPerTryInLs()) return false;
1877 if (hasMaxNumberOfExploredAssignmentsPerTryInLs()) {
1878 if (getMaxNumberOfExploredAssignmentsPerTryInLs()
1879 != other.getMaxNumberOfExploredAssignmentsPerTryInLs()) return false;
1880 }
1881 if (hasUseTranspositionTableInLs() != other.hasUseTranspositionTableInLs()) return false;
1882 if (hasUseTranspositionTableInLs()) {
1883 if (getUseTranspositionTableInLs()
1884 != other.getUseTranspositionTableInLs()) return false;
1885 }
1886 if (hasUsePotentialOneFlipRepairsInLs() != other.hasUsePotentialOneFlipRepairsInLs()) return false;
1887 if (hasUsePotentialOneFlipRepairsInLs()) {
1888 if (getUsePotentialOneFlipRepairsInLs()
1889 != other.getUsePotentialOneFlipRepairsInLs()) return false;
1890 }
1891 if (hasUseLearnedBinaryClausesInLp() != other.hasUseLearnedBinaryClausesInLp()) return false;
1892 if (hasUseLearnedBinaryClausesInLp()) {
1893 if (getUseLearnedBinaryClausesInLp()
1894 != other.getUseLearnedBinaryClausesInLp()) return false;
1895 }
1896 if (hasNumberOfSolvers() != other.hasNumberOfSolvers()) return false;
1897 if (hasNumberOfSolvers()) {
1898 if (getNumberOfSolvers()
1899 != other.getNumberOfSolvers()) return false;
1900 }
1901 if (hasSynchronizationType() != other.hasSynchronizationType()) return false;
1902 if (hasSynchronizationType()) {
1903 if (synchronizationType_ != other.synchronizationType_) return false;
1904 }
1905 if (!getSolverOptimizerSetsList()
1906 .equals(other.getSolverOptimizerSetsList())) return false;
1907 if (hasDefaultSolverOptimizerSets() != other.hasDefaultSolverOptimizerSets()) return false;
1908 if (hasDefaultSolverOptimizerSets()) {
1909 if (!getDefaultSolverOptimizerSets()
1910 .equals(other.getDefaultSolverOptimizerSets())) return false;
1911 }
1912 if (hasUseLpStrongBranching() != other.hasUseLpStrongBranching()) return false;
1913 if (hasUseLpStrongBranching()) {
1914 if (getUseLpStrongBranching()
1915 != other.getUseLpStrongBranching()) return false;
1916 }
1917 if (hasDecomposerNumVariablesThreshold() != other.hasDecomposerNumVariablesThreshold()) return false;
1918 if (hasDecomposerNumVariablesThreshold()) {
1919 if (getDecomposerNumVariablesThreshold()
1920 != other.getDecomposerNumVariablesThreshold()) return false;
1921 }
1922 if (hasNumBopSolversUsedByDecomposition() != other.hasNumBopSolversUsedByDecomposition()) return false;
1923 if (hasNumBopSolversUsedByDecomposition()) {
1924 if (getNumBopSolversUsedByDecomposition()
1925 != other.getNumBopSolversUsedByDecomposition()) return false;
1926 }
1927 if (hasDecomposedProblemMinTimeInSeconds() != other.hasDecomposedProblemMinTimeInSeconds()) return false;
1928 if (hasDecomposedProblemMinTimeInSeconds()) {
1929 if (java.lang.Double.doubleToLongBits(getDecomposedProblemMinTimeInSeconds())
1930 != java.lang.Double.doubleToLongBits(
1931 other.getDecomposedProblemMinTimeInSeconds())) return false;
1932 }
1933 if (hasGuidedSatConflictsChunk() != other.hasGuidedSatConflictsChunk()) return false;
1934 if (hasGuidedSatConflictsChunk()) {
1935 if (getGuidedSatConflictsChunk()
1936 != other.getGuidedSatConflictsChunk()) return false;
1937 }
1938 if (hasMaxLpSolveForFeasibilityProblems() != other.hasMaxLpSolveForFeasibilityProblems()) return false;
1939 if (hasMaxLpSolveForFeasibilityProblems()) {
1940 if (getMaxLpSolveForFeasibilityProblems()
1941 != other.getMaxLpSolveForFeasibilityProblems()) return false;
1942 }
1943 if (!getUnknownFields().equals(other.getUnknownFields())) return false;
1944 return true;
1945 }
1946
1947 @java.lang.Override
1948 public int hashCode() {
1949 if (memoizedHashCode != 0) {
1950 return memoizedHashCode;
1951 }
1952 int hash = 41;
1953 hash = (19 * hash) + getDescriptor().hashCode();
1954 if (hasMaxTimeInSeconds()) {
1955 hash = (37 * hash) + MAX_TIME_IN_SECONDS_FIELD_NUMBER;
1956 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1957 java.lang.Double.doubleToLongBits(getMaxTimeInSeconds()));
1958 }
1959 if (hasMaxDeterministicTime()) {
1960 hash = (37 * hash) + MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
1961 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1962 java.lang.Double.doubleToLongBits(getMaxDeterministicTime()));
1963 }
1964 if (hasLpMaxDeterministicTime()) {
1965 hash = (37 * hash) + LP_MAX_DETERMINISTIC_TIME_FIELD_NUMBER;
1966 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1967 java.lang.Double.doubleToLongBits(getLpMaxDeterministicTime()));
1968 }
1969 if (hasMaxNumberOfConsecutiveFailingOptimizerCalls()) {
1970 hash = (37 * hash) + MAX_NUMBER_OF_CONSECUTIVE_FAILING_OPTIMIZER_CALLS_FIELD_NUMBER;
1971 hash = (53 * hash) + getMaxNumberOfConsecutiveFailingOptimizerCalls();
1972 }
1973 if (hasRelativeGapLimit()) {
1974 hash = (37 * hash) + RELATIVE_GAP_LIMIT_FIELD_NUMBER;
1975 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
1976 java.lang.Double.doubleToLongBits(getRelativeGapLimit()));
1977 }
1978 if (hasMaxNumDecisionsInLs()) {
1979 hash = (37 * hash) + MAX_NUM_DECISIONS_IN_LS_FIELD_NUMBER;
1980 hash = (53 * hash) + getMaxNumDecisionsInLs();
1981 }
1982 if (hasMaxNumBrokenConstraintsInLs()) {
1983 hash = (37 * hash) + MAX_NUM_BROKEN_CONSTRAINTS_IN_LS_FIELD_NUMBER;
1984 hash = (53 * hash) + getMaxNumBrokenConstraintsInLs();
1985 }
1986 if (hasLogSearchProgress()) {
1987 hash = (37 * hash) + LOG_SEARCH_PROGRESS_FIELD_NUMBER;
1988 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1989 getLogSearchProgress());
1990 }
1991 if (hasComputeEstimatedImpact()) {
1992 hash = (37 * hash) + COMPUTE_ESTIMATED_IMPACT_FIELD_NUMBER;
1993 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1994 getComputeEstimatedImpact());
1995 }
1996 if (hasPruneSearchTree()) {
1997 hash = (37 * hash) + PRUNE_SEARCH_TREE_FIELD_NUMBER;
1998 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
1999 getPruneSearchTree());
2000 }
2001 if (hasSortConstraintsByNumTerms()) {
2002 hash = (37 * hash) + SORT_CONSTRAINTS_BY_NUM_TERMS_FIELD_NUMBER;
2003 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2004 getSortConstraintsByNumTerms());
2005 }
2006 if (hasUseRandomLns()) {
2007 hash = (37 * hash) + USE_RANDOM_LNS_FIELD_NUMBER;
2008 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2009 getUseRandomLns());
2010 }
2011 if (hasRandomSeed()) {
2012 hash = (37 * hash) + RANDOM_SEED_FIELD_NUMBER;
2013 hash = (53 * hash) + getRandomSeed();
2014 }
2015 if (hasNumRelaxedVars()) {
2016 hash = (37 * hash) + NUM_RELAXED_VARS_FIELD_NUMBER;
2017 hash = (53 * hash) + getNumRelaxedVars();
2018 }
2019 if (hasMaxNumberOfConflictsInRandomLns()) {
2020 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_LNS_FIELD_NUMBER;
2021 hash = (53 * hash) + getMaxNumberOfConflictsInRandomLns();
2022 }
2023 if (hasNumRandomLnsTries()) {
2024 hash = (37 * hash) + NUM_RANDOM_LNS_TRIES_FIELD_NUMBER;
2025 hash = (53 * hash) + getNumRandomLnsTries();
2026 }
2027 if (hasMaxNumberOfBacktracksInLs()) {
2028 hash = (37 * hash) + MAX_NUMBER_OF_BACKTRACKS_IN_LS_FIELD_NUMBER;
2029 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
2030 getMaxNumberOfBacktracksInLs());
2031 }
2032 if (hasUseLpLns()) {
2033 hash = (37 * hash) + USE_LP_LNS_FIELD_NUMBER;
2034 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2035 getUseLpLns());
2036 }
2037 if (hasUseSatToChooseLnsNeighbourhood()) {
2038 hash = (37 * hash) + USE_SAT_TO_CHOOSE_LNS_NEIGHBOURHOOD_FIELD_NUMBER;
2039 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2040 getUseSatToChooseLnsNeighbourhood());
2041 }
2042 if (hasMaxNumberOfConflictsForQuickCheck()) {
2043 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_FOR_QUICK_CHECK_FIELD_NUMBER;
2044 hash = (53 * hash) + getMaxNumberOfConflictsForQuickCheck();
2045 }
2046 if (hasUseSymmetry()) {
2047 hash = (37 * hash) + USE_SYMMETRY_FIELD_NUMBER;
2048 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2049 getUseSymmetry());
2050 }
2051 if (hasExploitSymmetryInSatFirstSolution()) {
2052 hash = (37 * hash) + EXPLOIT_SYMMETRY_IN_SAT_FIRST_SOLUTION_FIELD_NUMBER;
2053 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2054 getExploitSymmetryInSatFirstSolution());
2055 }
2056 if (hasMaxNumberOfConflictsInRandomSolutionGeneration()) {
2057 hash = (37 * hash) + MAX_NUMBER_OF_CONFLICTS_IN_RANDOM_SOLUTION_GENERATION_FIELD_NUMBER;
2058 hash = (53 * hash) + getMaxNumberOfConflictsInRandomSolutionGeneration();
2059 }
2060 if (hasMaxNumberOfExploredAssignmentsPerTryInLs()) {
2061 hash = (37 * hash) + MAX_NUMBER_OF_EXPLORED_ASSIGNMENTS_PER_TRY_IN_LS_FIELD_NUMBER;
2062 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
2063 getMaxNumberOfExploredAssignmentsPerTryInLs());
2064 }
2065 if (hasUseTranspositionTableInLs()) {
2066 hash = (37 * hash) + USE_TRANSPOSITION_TABLE_IN_LS_FIELD_NUMBER;
2067 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2068 getUseTranspositionTableInLs());
2069 }
2070 if (hasUsePotentialOneFlipRepairsInLs()) {
2071 hash = (37 * hash) + USE_POTENTIAL_ONE_FLIP_REPAIRS_IN_LS_FIELD_NUMBER;
2072 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2073 getUsePotentialOneFlipRepairsInLs());
2074 }
2075 if (hasUseLearnedBinaryClausesInLp()) {
2076 hash = (37 * hash) + USE_LEARNED_BINARY_CLAUSES_IN_LP_FIELD_NUMBER;
2077 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2078 getUseLearnedBinaryClausesInLp());
2079 }
2080 if (hasNumberOfSolvers()) {
2081 hash = (37 * hash) + NUMBER_OF_SOLVERS_FIELD_NUMBER;
2082 hash = (53 * hash) + getNumberOfSolvers();
2083 }
2084 if (hasSynchronizationType()) {
2085 hash = (37 * hash) + SYNCHRONIZATION_TYPE_FIELD_NUMBER;
2086 hash = (53 * hash) + synchronizationType_;
2087 }
2088 if (getSolverOptimizerSetsCount() > 0) {
2089 hash = (37 * hash) + SOLVER_OPTIMIZER_SETS_FIELD_NUMBER;
2090 hash = (53 * hash) + getSolverOptimizerSetsList().hashCode();
2091 }
2092 if (hasDefaultSolverOptimizerSets()) {
2093 hash = (37 * hash) + DEFAULT_SOLVER_OPTIMIZER_SETS_FIELD_NUMBER;
2094 hash = (53 * hash) + getDefaultSolverOptimizerSets().hashCode();
2095 }
2096 if (hasUseLpStrongBranching()) {
2097 hash = (37 * hash) + USE_LP_STRONG_BRANCHING_FIELD_NUMBER;
2098 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
2099 getUseLpStrongBranching());
2100 }
2101 if (hasDecomposerNumVariablesThreshold()) {
2102 hash = (37 * hash) + DECOMPOSER_NUM_VARIABLES_THRESHOLD_FIELD_NUMBER;
2103 hash = (53 * hash) + getDecomposerNumVariablesThreshold();
2104 }
2105 if (hasNumBopSolversUsedByDecomposition()) {
2106 hash = (37 * hash) + NUM_BOP_SOLVERS_USED_BY_DECOMPOSITION_FIELD_NUMBER;
2107 hash = (53 * hash) + getNumBopSolversUsedByDecomposition();
2108 }
2109 if (hasDecomposedProblemMinTimeInSeconds()) {
2110 hash = (37 * hash) + DECOMPOSED_PROBLEM_MIN_TIME_IN_SECONDS_FIELD_NUMBER;
2111 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
2112 java.lang.Double.doubleToLongBits(getDecomposedProblemMinTimeInSeconds()));
2113 }
2114 if (hasGuidedSatConflictsChunk()) {
2115 hash = (37 * hash) + GUIDED_SAT_CONFLICTS_CHUNK_FIELD_NUMBER;
2116 hash = (53 * hash) + getGuidedSatConflictsChunk();
2117 }
2118 if (hasMaxLpSolveForFeasibilityProblems()) {
2119 hash = (37 * hash) + MAX_LP_SOLVE_FOR_FEASIBILITY_PROBLEMS_FIELD_NUMBER;
2120 hash = (53 * hash) + getMaxLpSolveForFeasibilityProblems();
2121 }
2122 hash = (29 * hash) + getUnknownFields().hashCode();
2123 memoizedHashCode = hash;
2124 return hash;
2125 }
2126
2127 public static com.google.ortools.bop.BopParameters parseFrom(
2128 java.nio.ByteBuffer data)
2129 throws com.google.protobuf.InvalidProtocolBufferException {
2130 return PARSER.parseFrom(data);
2131 }
2132 public static com.google.ortools.bop.BopParameters parseFrom(
2133 java.nio.ByteBuffer 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(
2139 com.google.protobuf.ByteString data)
2140 throws com.google.protobuf.InvalidProtocolBufferException {
2141 return PARSER.parseFrom(data);
2142 }
2143 public static com.google.ortools.bop.BopParameters parseFrom(
2144 com.google.protobuf.ByteString data,
2145 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2146 throws com.google.protobuf.InvalidProtocolBufferException {
2147 return PARSER.parseFrom(data, extensionRegistry);
2148 }
2149 public static com.google.ortools.bop.BopParameters parseFrom(byte[] data)
2150 throws com.google.protobuf.InvalidProtocolBufferException {
2151 return PARSER.parseFrom(data);
2152 }
2153 public static com.google.ortools.bop.BopParameters parseFrom(
2154 byte[] data,
2155 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2156 throws com.google.protobuf.InvalidProtocolBufferException {
2157 return PARSER.parseFrom(data, extensionRegistry);
2158 }
2159 public static com.google.ortools.bop.BopParameters parseFrom(java.io.InputStream input)
2160 throws java.io.IOException {
2161 return com.google.protobuf.GeneratedMessage
2162 .parseWithIOException(PARSER, input);
2163 }
2164 public static com.google.ortools.bop.BopParameters parseFrom(
2165 java.io.InputStream input,
2166 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2167 throws java.io.IOException {
2168 return com.google.protobuf.GeneratedMessage
2169 .parseWithIOException(PARSER, input, extensionRegistry);
2170 }
2171
2172 public static com.google.ortools.bop.BopParameters parseDelimitedFrom(java.io.InputStream input)
2173 throws java.io.IOException {
2174 return com.google.protobuf.GeneratedMessage
2175 .parseDelimitedWithIOException(PARSER, input);
2176 }
2177
2178 public static com.google.ortools.bop.BopParameters parseDelimitedFrom(
2179 java.io.InputStream input,
2180 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2181 throws java.io.IOException {
2182 return com.google.protobuf.GeneratedMessage
2183 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
2184 }
2185 public static com.google.ortools.bop.BopParameters parseFrom(
2186 com.google.protobuf.CodedInputStream input)
2187 throws java.io.IOException {
2188 return com.google.protobuf.GeneratedMessage
2189 .parseWithIOException(PARSER, input);
2190 }
2191 public static com.google.ortools.bop.BopParameters parseFrom(
2192 com.google.protobuf.CodedInputStream input,
2193 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2194 throws java.io.IOException {
2195 return com.google.protobuf.GeneratedMessage
2196 .parseWithIOException(PARSER, input, extensionRegistry);
2197 }
2198
2199 @java.lang.Override
2200 public Builder newBuilderForType() { return newBuilder(); }
2201 public static Builder newBuilder() {
2202 return DEFAULT_INSTANCE.toBuilder();
2203 }
2204 public static Builder newBuilder(com.google.ortools.bop.BopParameters prototype) {
2205 return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
2206 }
2207 @java.lang.Override
2208 public Builder toBuilder() {
2209 return this == DEFAULT_INSTANCE
2210 ? new Builder() : new Builder().mergeFrom(this);
2211 }
2212
2213 @java.lang.Override
2214 protected Builder newBuilderForType(
2215 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
2216 Builder builder = new Builder(parent);
2217 return builder;
2218 }
2229 public static final class Builder extends
2230 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
2231 // @@protoc_insertion_point(builder_implements:operations_research.bop.BopParameters)
2232 com.google.ortools.bop.BopParametersOrBuilder {
2233 public static final com.google.protobuf.Descriptors.Descriptor
2234 getDescriptor() {
2235 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_descriptor;
2236 }
2237
2238 @java.lang.Override
2239 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
2240 internalGetFieldAccessorTable() {
2241 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_fieldAccessorTable
2242 .ensureFieldAccessorsInitialized(
2243 com.google.ortools.bop.BopParameters.class, com.google.ortools.bop.BopParameters.Builder.class);
2244 }
2245
2246 // Construct using com.google.ortools.bop.BopParameters.newBuilder()
2247 private Builder() {
2248
2249 }
2250
2251 private Builder(
2252 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
2253 super(parent);
2254
2255 }
2256 @java.lang.Override
2257 public Builder clear() {
2258 super.clear();
2259 bitField0_ = 0;
2260 bitField1_ = 0;
2261 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
2262 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
2263 lpMaxDeterministicTime_ = 1D;
2264 maxNumberOfConsecutiveFailingOptimizerCalls_ = 0;
2265 relativeGapLimit_ = 0.0001D;
2266 maxNumDecisionsInLs_ = 4;
2267 maxNumBrokenConstraintsInLs_ = 2147483647;
2268 logSearchProgress_ = false;
2269 computeEstimatedImpact_ = true;
2270 pruneSearchTree_ = false;
2271 sortConstraintsByNumTerms_ = false;
2272 useRandomLns_ = true;
2273 randomSeed_ = 8;
2274 numRelaxedVars_ = 10;
2275 maxNumberOfConflictsInRandomLns_ = 2500;
2276 numRandomLnsTries_ = 1;
2277 maxNumberOfBacktracksInLs_ = 100000000L;
2278 useLpLns_ = true;
2279 useSatToChooseLnsNeighbourhood_ = true;
2280 maxNumberOfConflictsForQuickCheck_ = 10;
2281 useSymmetry_ = false;
2282 exploitSymmetryInSatFirstSolution_ = false;
2283 maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
2284 maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
2285 useTranspositionTableInLs_ = true;
2286 usePotentialOneFlipRepairsInLs_ = false;
2287 useLearnedBinaryClausesInLp_ = true;
2288 numberOfSolvers_ = 1;
2289 synchronizationType_ = 0;
2290 if (solverOptimizerSetsBuilder_ == null) {
2291 solverOptimizerSets_ = java.util.Collections.emptyList();
2292 } else {
2293 solverOptimizerSets_ = null;
2294 solverOptimizerSetsBuilder_.clear();
2295 }
2296 bitField0_ = (bitField0_ & ~0x20000000);
2297 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 } ";
2298 useLpStrongBranching_ = false;
2299 decomposerNumVariablesThreshold_ = 50;
2300 numBopSolversUsedByDecomposition_ = 1;
2301 decomposedProblemMinTimeInSeconds_ = 0D;
2302 guidedSatConflictsChunk_ = 1000;
2303 maxLpSolveForFeasibilityProblems_ = 0;
2304 return this;
2305 }
2306
2307 @java.lang.Override
2308 public com.google.protobuf.Descriptors.Descriptor
2309 getDescriptorForType() {
2310 return com.google.ortools.bop.BopParametersOuterClass.internal_static_operations_research_bop_BopParameters_descriptor;
2311 }
2312
2313 @java.lang.Override
2314 public com.google.ortools.bop.BopParameters getDefaultInstanceForType() {
2315 return com.google.ortools.bop.BopParameters.getDefaultInstance();
2316 }
2317
2318 @java.lang.Override
2319 public com.google.ortools.bop.BopParameters build() {
2320 com.google.ortools.bop.BopParameters result = buildPartial();
2321 if (!result.isInitialized()) {
2322 throw newUninitializedMessageException(result);
2323 }
2324 return result;
2325 }
2326
2327 @java.lang.Override
2328 public com.google.ortools.bop.BopParameters buildPartial() {
2329 com.google.ortools.bop.BopParameters result = new com.google.ortools.bop.BopParameters(this);
2330 buildPartialRepeatedFields(result);
2331 if (bitField0_ != 0) { buildPartial0(result); }
2332 if (bitField1_ != 0) { buildPartial1(result); }
2333 onBuilt();
2334 return result;
2335 }
2336
2337 private void buildPartialRepeatedFields(com.google.ortools.bop.BopParameters result) {
2338 if (solverOptimizerSetsBuilder_ == null) {
2339 if (((bitField0_ & 0x20000000) != 0)) {
2340 solverOptimizerSets_ = java.util.Collections.unmodifiableList(solverOptimizerSets_);
2341 bitField0_ = (bitField0_ & ~0x20000000);
2342 }
2343 result.solverOptimizerSets_ = solverOptimizerSets_;
2344 } else {
2345 result.solverOptimizerSets_ = solverOptimizerSetsBuilder_.build();
2346 }
2347 }
2348
2349 private void buildPartial0(com.google.ortools.bop.BopParameters result) {
2350 int from_bitField0_ = bitField0_;
2351 int to_bitField0_ = 0;
2352 if (((from_bitField0_ & 0x00000001) != 0)) {
2353 result.maxTimeInSeconds_ = maxTimeInSeconds_;
2354 to_bitField0_ |= 0x00000001;
2355 }
2356 if (((from_bitField0_ & 0x00000002) != 0)) {
2357 result.maxDeterministicTime_ = maxDeterministicTime_;
2358 to_bitField0_ |= 0x00000002;
2359 }
2360 if (((from_bitField0_ & 0x00000004) != 0)) {
2361 result.lpMaxDeterministicTime_ = lpMaxDeterministicTime_;
2362 to_bitField0_ |= 0x00000004;
2363 }
2364 if (((from_bitField0_ & 0x00000008) != 0)) {
2365 result.maxNumberOfConsecutiveFailingOptimizerCalls_ = maxNumberOfConsecutiveFailingOptimizerCalls_;
2366 to_bitField0_ |= 0x00000008;
2367 }
2368 if (((from_bitField0_ & 0x00000010) != 0)) {
2369 result.relativeGapLimit_ = relativeGapLimit_;
2370 to_bitField0_ |= 0x00000010;
2371 }
2372 if (((from_bitField0_ & 0x00000020) != 0)) {
2373 result.maxNumDecisionsInLs_ = maxNumDecisionsInLs_;
2374 to_bitField0_ |= 0x00000020;
2375 }
2376 if (((from_bitField0_ & 0x00000040) != 0)) {
2377 result.maxNumBrokenConstraintsInLs_ = maxNumBrokenConstraintsInLs_;
2378 to_bitField0_ |= 0x00000040;
2379 }
2380 if (((from_bitField0_ & 0x00000080) != 0)) {
2381 result.logSearchProgress_ = logSearchProgress_;
2382 to_bitField0_ |= 0x00000080;
2383 }
2384 if (((from_bitField0_ & 0x00000100) != 0)) {
2385 result.computeEstimatedImpact_ = computeEstimatedImpact_;
2386 to_bitField0_ |= 0x00000100;
2387 }
2388 if (((from_bitField0_ & 0x00000200) != 0)) {
2389 result.pruneSearchTree_ = pruneSearchTree_;
2390 to_bitField0_ |= 0x00000200;
2391 }
2392 if (((from_bitField0_ & 0x00000400) != 0)) {
2393 result.sortConstraintsByNumTerms_ = sortConstraintsByNumTerms_;
2394 to_bitField0_ |= 0x00000400;
2395 }
2396 if (((from_bitField0_ & 0x00000800) != 0)) {
2397 result.useRandomLns_ = useRandomLns_;
2398 to_bitField0_ |= 0x00000800;
2399 }
2400 if (((from_bitField0_ & 0x00001000) != 0)) {
2401 result.randomSeed_ = randomSeed_;
2402 to_bitField0_ |= 0x00001000;
2403 }
2404 if (((from_bitField0_ & 0x00002000) != 0)) {
2405 result.numRelaxedVars_ = numRelaxedVars_;
2406 to_bitField0_ |= 0x00002000;
2407 }
2408 if (((from_bitField0_ & 0x00004000) != 0)) {
2409 result.maxNumberOfConflictsInRandomLns_ = maxNumberOfConflictsInRandomLns_;
2410 to_bitField0_ |= 0x00004000;
2411 }
2412 if (((from_bitField0_ & 0x00008000) != 0)) {
2413 result.numRandomLnsTries_ = numRandomLnsTries_;
2414 to_bitField0_ |= 0x00008000;
2415 }
2416 if (((from_bitField0_ & 0x00010000) != 0)) {
2417 result.maxNumberOfBacktracksInLs_ = maxNumberOfBacktracksInLs_;
2418 to_bitField0_ |= 0x00010000;
2419 }
2420 if (((from_bitField0_ & 0x00020000) != 0)) {
2421 result.useLpLns_ = useLpLns_;
2422 to_bitField0_ |= 0x00020000;
2423 }
2424 if (((from_bitField0_ & 0x00040000) != 0)) {
2425 result.useSatToChooseLnsNeighbourhood_ = useSatToChooseLnsNeighbourhood_;
2426 to_bitField0_ |= 0x00040000;
2427 }
2428 if (((from_bitField0_ & 0x00080000) != 0)) {
2429 result.maxNumberOfConflictsForQuickCheck_ = maxNumberOfConflictsForQuickCheck_;
2430 to_bitField0_ |= 0x00080000;
2431 }
2432 if (((from_bitField0_ & 0x00100000) != 0)) {
2433 result.useSymmetry_ = useSymmetry_;
2434 to_bitField0_ |= 0x00100000;
2435 }
2436 if (((from_bitField0_ & 0x00200000) != 0)) {
2437 result.exploitSymmetryInSatFirstSolution_ = exploitSymmetryInSatFirstSolution_;
2438 to_bitField0_ |= 0x00200000;
2439 }
2440 if (((from_bitField0_ & 0x00400000) != 0)) {
2441 result.maxNumberOfConflictsInRandomSolutionGeneration_ = maxNumberOfConflictsInRandomSolutionGeneration_;
2442 to_bitField0_ |= 0x00400000;
2443 }
2444 if (((from_bitField0_ & 0x00800000) != 0)) {
2445 result.maxNumberOfExploredAssignmentsPerTryInLs_ = maxNumberOfExploredAssignmentsPerTryInLs_;
2446 to_bitField0_ |= 0x00800000;
2447 }
2448 if (((from_bitField0_ & 0x01000000) != 0)) {
2449 result.useTranspositionTableInLs_ = useTranspositionTableInLs_;
2450 to_bitField0_ |= 0x01000000;
2451 }
2452 if (((from_bitField0_ & 0x02000000) != 0)) {
2453 result.usePotentialOneFlipRepairsInLs_ = usePotentialOneFlipRepairsInLs_;
2454 to_bitField0_ |= 0x02000000;
2455 }
2456 if (((from_bitField0_ & 0x04000000) != 0)) {
2457 result.useLearnedBinaryClausesInLp_ = useLearnedBinaryClausesInLp_;
2458 to_bitField0_ |= 0x04000000;
2459 }
2460 if (((from_bitField0_ & 0x08000000) != 0)) {
2461 result.numberOfSolvers_ = numberOfSolvers_;
2462 to_bitField0_ |= 0x08000000;
2463 }
2464 if (((from_bitField0_ & 0x10000000) != 0)) {
2465 result.synchronizationType_ = synchronizationType_;
2466 to_bitField0_ |= 0x10000000;
2467 }
2468 if (((from_bitField0_ & 0x40000000) != 0)) {
2469 result.defaultSolverOptimizerSets_ = defaultSolverOptimizerSets_;
2470 to_bitField0_ |= 0x20000000;
2471 }
2472 if (((from_bitField0_ & 0x80000000) != 0)) {
2473 result.useLpStrongBranching_ = useLpStrongBranching_;
2474 to_bitField0_ |= 0x40000000;
2475 }
2476 result.bitField0_ |= to_bitField0_;
2477 }
2478
2479 private void buildPartial1(com.google.ortools.bop.BopParameters result) {
2480 int from_bitField1_ = bitField1_;
2481 int to_bitField0_ = 0;
2482 if (((from_bitField1_ & 0x00000001) != 0)) {
2483 result.decomposerNumVariablesThreshold_ = decomposerNumVariablesThreshold_;
2484 to_bitField0_ |= 0x80000000;
2485 }
2486 int to_bitField1_ = 0;
2487 if (((from_bitField1_ & 0x00000002) != 0)) {
2488 result.numBopSolversUsedByDecomposition_ = numBopSolversUsedByDecomposition_;
2489 to_bitField1_ |= 0x00000001;
2490 }
2491 if (((from_bitField1_ & 0x00000004) != 0)) {
2492 result.decomposedProblemMinTimeInSeconds_ = decomposedProblemMinTimeInSeconds_;
2493 to_bitField1_ |= 0x00000002;
2494 }
2495 if (((from_bitField1_ & 0x00000008) != 0)) {
2496 result.guidedSatConflictsChunk_ = guidedSatConflictsChunk_;
2497 to_bitField1_ |= 0x00000004;
2498 }
2499 if (((from_bitField1_ & 0x00000010) != 0)) {
2500 result.maxLpSolveForFeasibilityProblems_ = maxLpSolveForFeasibilityProblems_;
2501 to_bitField1_ |= 0x00000008;
2502 }
2503 result.bitField0_ |= to_bitField0_;
2504 result.bitField1_ |= to_bitField1_;
2505 }
2506
2507 @java.lang.Override
2508 public Builder mergeFrom(com.google.protobuf.Message other) {
2509 if (other instanceof com.google.ortools.bop.BopParameters) {
2510 return mergeFrom((com.google.ortools.bop.BopParameters)other);
2511 } else {
2512 super.mergeFrom(other);
2513 return this;
2514 }
2515 }
2516
2517 public Builder mergeFrom(com.google.ortools.bop.BopParameters other) {
2518 if (other == com.google.ortools.bop.BopParameters.getDefaultInstance()) return this;
2519 if (other.hasMaxTimeInSeconds()) {
2520 setMaxTimeInSeconds(other.getMaxTimeInSeconds());
2521 }
2522 if (other.hasMaxDeterministicTime()) {
2523 setMaxDeterministicTime(other.getMaxDeterministicTime());
2524 }
2525 if (other.hasLpMaxDeterministicTime()) {
2526 setLpMaxDeterministicTime(other.getLpMaxDeterministicTime());
2527 }
2528 if (other.hasMaxNumberOfConsecutiveFailingOptimizerCalls()) {
2529 setMaxNumberOfConsecutiveFailingOptimizerCalls(other.getMaxNumberOfConsecutiveFailingOptimizerCalls());
2530 }
2531 if (other.hasRelativeGapLimit()) {
2532 setRelativeGapLimit(other.getRelativeGapLimit());
2533 }
2534 if (other.hasMaxNumDecisionsInLs()) {
2535 setMaxNumDecisionsInLs(other.getMaxNumDecisionsInLs());
2536 }
2537 if (other.hasMaxNumBrokenConstraintsInLs()) {
2538 setMaxNumBrokenConstraintsInLs(other.getMaxNumBrokenConstraintsInLs());
2539 }
2540 if (other.hasLogSearchProgress()) {
2541 setLogSearchProgress(other.getLogSearchProgress());
2542 }
2543 if (other.hasComputeEstimatedImpact()) {
2544 setComputeEstimatedImpact(other.getComputeEstimatedImpact());
2545 }
2546 if (other.hasPruneSearchTree()) {
2547 setPruneSearchTree(other.getPruneSearchTree());
2548 }
2549 if (other.hasSortConstraintsByNumTerms()) {
2550 setSortConstraintsByNumTerms(other.getSortConstraintsByNumTerms());
2551 }
2552 if (other.hasUseRandomLns()) {
2553 setUseRandomLns(other.getUseRandomLns());
2554 }
2555 if (other.hasRandomSeed()) {
2556 setRandomSeed(other.getRandomSeed());
2557 }
2558 if (other.hasNumRelaxedVars()) {
2559 setNumRelaxedVars(other.getNumRelaxedVars());
2560 }
2561 if (other.hasMaxNumberOfConflictsInRandomLns()) {
2562 setMaxNumberOfConflictsInRandomLns(other.getMaxNumberOfConflictsInRandomLns());
2563 }
2564 if (other.hasNumRandomLnsTries()) {
2565 setNumRandomLnsTries(other.getNumRandomLnsTries());
2566 }
2567 if (other.hasMaxNumberOfBacktracksInLs()) {
2568 setMaxNumberOfBacktracksInLs(other.getMaxNumberOfBacktracksInLs());
2569 }
2570 if (other.hasUseLpLns()) {
2571 setUseLpLns(other.getUseLpLns());
2572 }
2573 if (other.hasUseSatToChooseLnsNeighbourhood()) {
2574 setUseSatToChooseLnsNeighbourhood(other.getUseSatToChooseLnsNeighbourhood());
2575 }
2576 if (other.hasMaxNumberOfConflictsForQuickCheck()) {
2577 setMaxNumberOfConflictsForQuickCheck(other.getMaxNumberOfConflictsForQuickCheck());
2578 }
2579 if (other.hasUseSymmetry()) {
2580 setUseSymmetry(other.getUseSymmetry());
2581 }
2582 if (other.hasExploitSymmetryInSatFirstSolution()) {
2583 setExploitSymmetryInSatFirstSolution(other.getExploitSymmetryInSatFirstSolution());
2584 }
2585 if (other.hasMaxNumberOfConflictsInRandomSolutionGeneration()) {
2586 setMaxNumberOfConflictsInRandomSolutionGeneration(other.getMaxNumberOfConflictsInRandomSolutionGeneration());
2587 }
2588 if (other.hasMaxNumberOfExploredAssignmentsPerTryInLs()) {
2589 setMaxNumberOfExploredAssignmentsPerTryInLs(other.getMaxNumberOfExploredAssignmentsPerTryInLs());
2590 }
2591 if (other.hasUseTranspositionTableInLs()) {
2592 setUseTranspositionTableInLs(other.getUseTranspositionTableInLs());
2593 }
2594 if (other.hasUsePotentialOneFlipRepairsInLs()) {
2595 setUsePotentialOneFlipRepairsInLs(other.getUsePotentialOneFlipRepairsInLs());
2596 }
2597 if (other.hasUseLearnedBinaryClausesInLp()) {
2598 setUseLearnedBinaryClausesInLp(other.getUseLearnedBinaryClausesInLp());
2599 }
2600 if (other.hasNumberOfSolvers()) {
2601 setNumberOfSolvers(other.getNumberOfSolvers());
2602 }
2603 if (other.hasSynchronizationType()) {
2604 setSynchronizationType(other.getSynchronizationType());
2605 }
2606 if (solverOptimizerSetsBuilder_ == null) {
2607 if (!other.solverOptimizerSets_.isEmpty()) {
2608 if (solverOptimizerSets_.isEmpty()) {
2609 solverOptimizerSets_ = other.solverOptimizerSets_;
2610 bitField0_ = (bitField0_ & ~0x20000000);
2611 } else {
2612 ensureSolverOptimizerSetsIsMutable();
2613 solverOptimizerSets_.addAll(other.solverOptimizerSets_);
2614 }
2615 onChanged();
2616 }
2617 } else {
2618 if (!other.solverOptimizerSets_.isEmpty()) {
2619 if (solverOptimizerSetsBuilder_.isEmpty()) {
2620 solverOptimizerSetsBuilder_.dispose();
2621 solverOptimizerSetsBuilder_ = null;
2622 solverOptimizerSets_ = other.solverOptimizerSets_;
2623 bitField0_ = (bitField0_ & ~0x20000000);
2624 solverOptimizerSetsBuilder_ =
2625 com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
2626 getSolverOptimizerSetsFieldBuilder() : null;
2627 } else {
2628 solverOptimizerSetsBuilder_.addAllMessages(other.solverOptimizerSets_);
2629 }
2630 }
2631 }
2632 if (other.hasDefaultSolverOptimizerSets()) {
2633 defaultSolverOptimizerSets_ = other.defaultSolverOptimizerSets_;
2634 bitField0_ |= 0x40000000;
2635 onChanged();
2636 }
2637 if (other.hasUseLpStrongBranching()) {
2638 setUseLpStrongBranching(other.getUseLpStrongBranching());
2639 }
2640 if (other.hasDecomposerNumVariablesThreshold()) {
2641 setDecomposerNumVariablesThreshold(other.getDecomposerNumVariablesThreshold());
2642 }
2643 if (other.hasNumBopSolversUsedByDecomposition()) {
2644 setNumBopSolversUsedByDecomposition(other.getNumBopSolversUsedByDecomposition());
2645 }
2646 if (other.hasDecomposedProblemMinTimeInSeconds()) {
2647 setDecomposedProblemMinTimeInSeconds(other.getDecomposedProblemMinTimeInSeconds());
2648 }
2649 if (other.hasGuidedSatConflictsChunk()) {
2650 setGuidedSatConflictsChunk(other.getGuidedSatConflictsChunk());
2651 }
2652 if (other.hasMaxLpSolveForFeasibilityProblems()) {
2653 setMaxLpSolveForFeasibilityProblems(other.getMaxLpSolveForFeasibilityProblems());
2654 }
2655 this.mergeUnknownFields(other.getUnknownFields());
2656 onChanged();
2657 return this;
2658 }
2659
2660 @java.lang.Override
2661 public final boolean isInitialized() {
2662 return true;
2663 }
2664
2665 @java.lang.Override
2666 public Builder mergeFrom(
2667 com.google.protobuf.CodedInputStream input,
2668 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2669 throws java.io.IOException {
2670 if (extensionRegistry == null) {
2671 throw new java.lang.NullPointerException();
2672 }
2673 try {
2674 boolean done = false;
2675 while (!done) {
2676 int tag = input.readTag();
2677 switch (tag) {
2678 case 0:
2679 done = true;
2680 break;
2681 case 9: {
2682 maxTimeInSeconds_ = input.readDouble();
2683 bitField0_ |= 0x00000001;
2684 break;
2685 } // case 9
2686 case 16: {
2687 maxNumDecisionsInLs_ = input.readInt32();
2688 bitField0_ |= 0x00000020;
2689 break;
2690 } // case 16
2691 case 24: {
2692 computeEstimatedImpact_ = input.readBool();
2693 bitField0_ |= 0x00000100;
2694 break;
2695 } // case 24
2696 case 32: {
2697 pruneSearchTree_ = input.readBool();
2698 bitField0_ |= 0x00000200;
2699 break;
2700 } // case 32
2701 case 40: {
2702 sortConstraintsByNumTerms_ = input.readBool();
2703 bitField0_ |= 0x00000400;
2704 break;
2705 } // case 40
2706 case 48: {
2707 useRandomLns_ = input.readBool();
2708 bitField0_ |= 0x00000800;
2709 break;
2710 } // case 48
2711 case 56: {
2712 randomSeed_ = input.readInt32();
2713 bitField0_ |= 0x00001000;
2714 break;
2715 } // case 56
2716 case 64: {
2717 numRelaxedVars_ = input.readInt32();
2718 bitField0_ |= 0x00002000;
2719 break;
2720 } // case 64
2721 case 72: {
2722 maxNumberOfConflictsInRandomLns_ = input.readInt32();
2723 bitField0_ |= 0x00004000;
2724 break;
2725 } // case 72
2726 case 80: {
2727 numRandomLnsTries_ = input.readInt32();
2728 bitField0_ |= 0x00008000;
2729 break;
2730 } // case 80
2731 case 88: {
2732 maxNumberOfBacktracksInLs_ = input.readInt64();
2733 bitField0_ |= 0x00010000;
2734 break;
2735 } // case 88
2736 case 96: {
2737 useLpLns_ = input.readBool();
2738 bitField0_ |= 0x00020000;
2739 break;
2740 } // case 96
2741 case 112: {
2742 logSearchProgress_ = input.readBool();
2743 bitField0_ |= 0x00000080;
2744 break;
2745 } // case 112
2746 case 120: {
2747 useSatToChooseLnsNeighbourhood_ = input.readBool();
2748 bitField0_ |= 0x00040000;
2749 break;
2750 } // case 120
2751 case 128: {
2752 maxNumberOfConflictsForQuickCheck_ = input.readInt32();
2753 bitField0_ |= 0x00080000;
2754 break;
2755 } // case 128
2756 case 136: {
2757 useSymmetry_ = input.readBool();
2758 bitField0_ |= 0x00100000;
2759 break;
2760 } // case 136
2761 case 160: {
2762 maxNumberOfConflictsInRandomSolutionGeneration_ = input.readInt32();
2763 bitField0_ |= 0x00400000;
2764 break;
2765 } // case 160
2766 case 168: {
2767 maxNumberOfExploredAssignmentsPerTryInLs_ = input.readInt64();
2768 bitField0_ |= 0x00800000;
2769 break;
2770 } // case 168
2771 case 176: {
2772 useTranspositionTableInLs_ = input.readBool();
2773 bitField0_ |= 0x01000000;
2774 break;
2775 } // case 176
2776 case 184: {
2777 useLearnedBinaryClausesInLp_ = input.readBool();
2778 bitField0_ |= 0x04000000;
2779 break;
2780 } // case 184
2781 case 192: {
2782 numberOfSolvers_ = input.readInt32();
2783 bitField0_ |= 0x08000000;
2784 break;
2785 } // case 192
2786 case 200: {
2787 int tmpRaw = input.readEnum();
2788 com.google.ortools.bop.BopParameters.ThreadSynchronizationType tmpValue =
2789 com.google.ortools.bop.BopParameters.ThreadSynchronizationType.forNumber(tmpRaw);
2790 if (tmpValue == null) {
2791 mergeUnknownVarintField(25, tmpRaw);
2792 } else {
2793 synchronizationType_ = tmpRaw;
2794 bitField0_ |= 0x10000000;
2795 }
2796 break;
2797 } // case 200
2798 case 210: {
2799 com.google.ortools.bop.BopSolverOptimizerSet m =
2800 input.readMessage(
2801 com.google.ortools.bop.BopSolverOptimizerSet.parser(),
2802 extensionRegistry);
2803 if (solverOptimizerSetsBuilder_ == null) {
2804 ensureSolverOptimizerSetsIsMutable();
2805 solverOptimizerSets_.add(m);
2806 } else {
2807 solverOptimizerSetsBuilder_.addMessage(m);
2808 }
2809 break;
2810 } // case 210
2811 case 217: {
2812 maxDeterministicTime_ = input.readDouble();
2813 bitField0_ |= 0x00000002;
2814 break;
2815 } // case 217
2816 case 225: {
2817 relativeGapLimit_ = input.readDouble();
2818 bitField0_ |= 0x00000010;
2819 break;
2820 } // case 225
2821 case 232: {
2822 useLpStrongBranching_ = input.readBool();
2823 bitField0_ |= 0x80000000;
2824 break;
2825 } // case 232
2826 case 240: {
2827 decomposerNumVariablesThreshold_ = input.readInt32();
2828 bitField1_ |= 0x00000001;
2829 break;
2830 } // case 240
2831 case 248: {
2832 numBopSolversUsedByDecomposition_ = input.readInt32();
2833 bitField1_ |= 0x00000002;
2834 break;
2835 } // case 248
2836 case 266: {
2837 defaultSolverOptimizerSets_ = input.readBytes();
2838 bitField0_ |= 0x40000000;
2839 break;
2840 } // case 266
2841 case 272: {
2842 guidedSatConflictsChunk_ = input.readInt32();
2843 bitField1_ |= 0x00000008;
2844 break;
2845 } // case 272
2846 case 280: {
2847 maxNumberOfConsecutiveFailingOptimizerCalls_ = input.readInt32();
2848 bitField0_ |= 0x00000008;
2849 break;
2850 } // case 280
2851 case 289: {
2852 decomposedProblemMinTimeInSeconds_ = input.readDouble();
2853 bitField1_ |= 0x00000004;
2854 break;
2855 } // case 289
2856 case 297: {
2857 lpMaxDeterministicTime_ = input.readDouble();
2858 bitField0_ |= 0x00000004;
2859 break;
2860 } // case 297
2861 case 304: {
2862 maxNumBrokenConstraintsInLs_ = input.readInt32();
2863 bitField0_ |= 0x00000040;
2864 break;
2865 } // case 304
2866 case 312: {
2867 usePotentialOneFlipRepairsInLs_ = input.readBool();
2868 bitField0_ |= 0x02000000;
2869 break;
2870 } // case 312
2871 case 320: {
2872 exploitSymmetryInSatFirstSolution_ = input.readBool();
2873 bitField0_ |= 0x00200000;
2874 break;
2875 } // case 320
2876 case 328: {
2877 maxLpSolveForFeasibilityProblems_ = input.readInt32();
2878 bitField1_ |= 0x00000010;
2879 break;
2880 } // case 328
2881 default: {
2882 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
2883 done = true; // was an endgroup tag
2884 }
2885 break;
2886 } // default:
2887 } // switch (tag)
2888 } // while (!done)
2889 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2890 throw e.unwrapIOException();
2891 } finally {
2892 onChanged();
2893 } // finally
2894 return this;
2895 }
2896 private int bitField0_;
2897 private int bitField1_;
2898
2899 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
2909 @java.lang.Override
2910 public boolean hasMaxTimeInSeconds() {
2911 return ((bitField0_ & 0x00000001) != 0);
2912 }
2922 @java.lang.Override
2923 public double getMaxTimeInSeconds() {
2924 return maxTimeInSeconds_;
2925 }
2936 public Builder setMaxTimeInSeconds(double value) {
2937
2938 maxTimeInSeconds_ = value;
2939 bitField0_ |= 0x00000001;
2940 onChanged();
2941 return this;
2942 }
2952 public Builder clearMaxTimeInSeconds() {
2953 bitField0_ = (bitField0_ & ~0x00000001);
2954 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
2955 onChanged();
2956 return this;
2957 }
2958
2959 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
2972 @java.lang.Override
2973 public boolean hasMaxDeterministicTime() {
2974 return ((bitField0_ & 0x00000002) != 0);
2975 }
2988 @java.lang.Override
2989 public double getMaxDeterministicTime() {
2990 return maxDeterministicTime_;
2991 }
3005 public Builder setMaxDeterministicTime(double value) {
3006
3007 maxDeterministicTime_ = value;
3008 bitField0_ |= 0x00000002;
3009 onChanged();
3010 return this;
3011 }
3024 public Builder clearMaxDeterministicTime() {
3025 bitField0_ = (bitField0_ & ~0x00000002);
3026 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
3027 onChanged();
3028 return this;
3029 }
3030
3031 private double lpMaxDeterministicTime_ = 1D;
3042 @java.lang.Override
3043 public boolean hasLpMaxDeterministicTime() {
3044 return ((bitField0_ & 0x00000004) != 0);
3045 }
3056 @java.lang.Override
3057 public double getLpMaxDeterministicTime() {
3058 return lpMaxDeterministicTime_;
3059 }
3071 public Builder setLpMaxDeterministicTime(double value) {
3072
3073 lpMaxDeterministicTime_ = value;
3074 bitField0_ |= 0x00000004;
3075 onChanged();
3076 return this;
3077 }
3088 public Builder clearLpMaxDeterministicTime() {
3089 bitField0_ = (bitField0_ & ~0x00000004);
3090 lpMaxDeterministicTime_ = 1D;
3091 onChanged();
3092 return this;
3093 }
3094
3095 private int maxNumberOfConsecutiveFailingOptimizerCalls_ ;
3108 @java.lang.Override
3109 public boolean hasMaxNumberOfConsecutiveFailingOptimizerCalls() {
3110 return ((bitField0_ & 0x00000008) != 0);
3111 }
3124 @java.lang.Override
3125 public int getMaxNumberOfConsecutiveFailingOptimizerCalls() {
3126 return maxNumberOfConsecutiveFailingOptimizerCalls_;
3127 }
3141 public Builder setMaxNumberOfConsecutiveFailingOptimizerCalls(int value) {
3142
3143 maxNumberOfConsecutiveFailingOptimizerCalls_ = value;
3144 bitField0_ |= 0x00000008;
3145 onChanged();
3146 return this;
3147 }
3160 public Builder clearMaxNumberOfConsecutiveFailingOptimizerCalls() {
3161 bitField0_ = (bitField0_ & ~0x00000008);
3162 maxNumberOfConsecutiveFailingOptimizerCalls_ = 0;
3163 onChanged();
3164 return this;
3165 }
3166
3167 private double relativeGapLimit_ = 0.0001D;
3180 @java.lang.Override
3181 public boolean hasRelativeGapLimit() {
3182 return ((bitField0_ & 0x00000010) != 0);
3183 }
3196 @java.lang.Override
3197 public double getRelativeGapLimit() {
3198 return relativeGapLimit_;
3199 }
3213 public Builder setRelativeGapLimit(double value) {
3214
3215 relativeGapLimit_ = value;
3216 bitField0_ |= 0x00000010;
3217 onChanged();
3218 return this;
3219 }
3232 public Builder clearRelativeGapLimit() {
3233 bitField0_ = (bitField0_ & ~0x00000010);
3234 relativeGapLimit_ = 0.0001D;
3235 onChanged();
3236 return this;
3237 }
3238
3239 private int maxNumDecisionsInLs_ = 4;
3249 @java.lang.Override
3250 public boolean hasMaxNumDecisionsInLs() {
3251 return ((bitField0_ & 0x00000020) != 0);
3252 }
3262 @java.lang.Override
3263 public int getMaxNumDecisionsInLs() {
3264 return maxNumDecisionsInLs_;
3265 }
3276 public Builder setMaxNumDecisionsInLs(int value) {
3277
3278 maxNumDecisionsInLs_ = value;
3279 bitField0_ |= 0x00000020;
3280 onChanged();
3281 return this;
3282 }
3292 public Builder clearMaxNumDecisionsInLs() {
3293 bitField0_ = (bitField0_ & ~0x00000020);
3294 maxNumDecisionsInLs_ = 4;
3295 onChanged();
3296 return this;
3297 }
3298
3299 private int maxNumBrokenConstraintsInLs_ = 2147483647;
3310 @java.lang.Override
3311 public boolean hasMaxNumBrokenConstraintsInLs() {
3312 return ((bitField0_ & 0x00000040) != 0);
3313 }
3324 @java.lang.Override
3325 public int getMaxNumBrokenConstraintsInLs() {
3326 return maxNumBrokenConstraintsInLs_;
3327 }
3339 public Builder setMaxNumBrokenConstraintsInLs(int value) {
3340
3341 maxNumBrokenConstraintsInLs_ = value;
3342 bitField0_ |= 0x00000040;
3343 onChanged();
3344 return this;
3345 }
3356 public Builder clearMaxNumBrokenConstraintsInLs() {
3357 bitField0_ = (bitField0_ & ~0x00000040);
3358 maxNumBrokenConstraintsInLs_ = 2147483647;
3359 onChanged();
3360 return this;
3361 }
3362
3363 private boolean logSearchProgress_ ;
3372 @java.lang.Override
3373 public boolean hasLogSearchProgress() {
3374 return ((bitField0_ & 0x00000080) != 0);
3375 }
3384 @java.lang.Override
3385 public boolean getLogSearchProgress() {
3386 return logSearchProgress_;
3387 }
3397 public Builder setLogSearchProgress(boolean value) {
3398
3399 logSearchProgress_ = value;
3400 bitField0_ |= 0x00000080;
3401 onChanged();
3402 return this;
3403 }
3412 public Builder clearLogSearchProgress() {
3413 bitField0_ = (bitField0_ & ~0x00000080);
3414 logSearchProgress_ = false;
3415 onChanged();
3416 return this;
3417 }
3418
3419 private boolean computeEstimatedImpact_ = true;
3428 @java.lang.Override
3429 public boolean hasComputeEstimatedImpact() {
3430 return ((bitField0_ & 0x00000100) != 0);
3431 }
3440 @java.lang.Override
3441 public boolean getComputeEstimatedImpact() {
3442 return computeEstimatedImpact_;
3443 }
3453 public Builder setComputeEstimatedImpact(boolean value) {
3454
3455 computeEstimatedImpact_ = value;
3456 bitField0_ |= 0x00000100;
3457 onChanged();
3458 return this;
3459 }
3468 public Builder clearComputeEstimatedImpact() {
3469 bitField0_ = (bitField0_ & ~0x00000100);
3470 computeEstimatedImpact_ = true;
3471 onChanged();
3472 return this;
3473 }
3474
3475 private boolean pruneSearchTree_ ;
3484 @java.lang.Override
3485 public boolean hasPruneSearchTree() {
3486 return ((bitField0_ & 0x00000200) != 0);
3487 }
3496 @java.lang.Override
3497 public boolean getPruneSearchTree() {
3498 return pruneSearchTree_;
3499 }
3509 public Builder setPruneSearchTree(boolean value) {
3510
3511 pruneSearchTree_ = value;
3512 bitField0_ |= 0x00000200;
3513 onChanged();
3514 return this;
3515 }
3524 public Builder clearPruneSearchTree() {
3525 bitField0_ = (bitField0_ & ~0x00000200);
3526 pruneSearchTree_ = false;
3527 onChanged();
3528 return this;
3529 }
3530
3531 private boolean sortConstraintsByNumTerms_ ;
3541 @java.lang.Override
3542 public boolean hasSortConstraintsByNumTerms() {
3543 return ((bitField0_ & 0x00000400) != 0);
3544 }
3554 @java.lang.Override
3555 public boolean getSortConstraintsByNumTerms() {
3556 return sortConstraintsByNumTerms_;
3557 }
3568 public Builder setSortConstraintsByNumTerms(boolean value) {
3569
3570 sortConstraintsByNumTerms_ = value;
3571 bitField0_ |= 0x00000400;
3572 onChanged();
3573 return this;
3574 }
3584 public Builder clearSortConstraintsByNumTerms() {
3585 bitField0_ = (bitField0_ & ~0x00000400);
3586 sortConstraintsByNumTerms_ = false;
3587 onChanged();
3588 return this;
3589 }
3590
3591 private boolean useRandomLns_ = true;
3600 @java.lang.Override
3601 public boolean hasUseRandomLns() {
3602 return ((bitField0_ & 0x00000800) != 0);
3603 }
3612 @java.lang.Override
3613 public boolean getUseRandomLns() {
3614 return useRandomLns_;
3615 }
3625 public Builder setUseRandomLns(boolean value) {
3626
3627 useRandomLns_ = value;
3628 bitField0_ |= 0x00000800;
3629 onChanged();
3630 return this;
3631 }
3640 public Builder clearUseRandomLns() {
3641 bitField0_ = (bitField0_ & ~0x00000800);
3642 useRandomLns_ = true;
3643 onChanged();
3644 return this;
3645 }
3646
3647 private int randomSeed_ = 8;
3660 @java.lang.Override
3661 public boolean hasRandomSeed() {
3662 return ((bitField0_ & 0x00001000) != 0);
3663 }
3676 @java.lang.Override
3677 public int getRandomSeed() {
3678 return randomSeed_;
3679 }
3693 public Builder setRandomSeed(int value) {
3694
3695 randomSeed_ = value;
3696 bitField0_ |= 0x00001000;
3697 onChanged();
3698 return this;
3699 }
3712 public Builder clearRandomSeed() {
3713 bitField0_ = (bitField0_ & ~0x00001000);
3714 randomSeed_ = 8;
3715 onChanged();
3716 return this;
3717 }
3718
3719 private int numRelaxedVars_ = 10;
3728 @java.lang.Override
3729 public boolean hasNumRelaxedVars() {
3730 return ((bitField0_ & 0x00002000) != 0);
3731 }
3740 @java.lang.Override
3741 public int getNumRelaxedVars() {
3742 return numRelaxedVars_;
3743 }
3753 public Builder setNumRelaxedVars(int value) {
3754
3755 numRelaxedVars_ = value;
3756 bitField0_ |= 0x00002000;
3757 onChanged();
3758 return this;
3759 }
3768 public Builder clearNumRelaxedVars() {
3769 bitField0_ = (bitField0_ & ~0x00002000);
3770 numRelaxedVars_ = 10;
3771 onChanged();
3772 return this;
3773 }
3774
3775 private int maxNumberOfConflictsInRandomLns_ = 2500;
3785 @java.lang.Override
3786 public boolean hasMaxNumberOfConflictsInRandomLns() {
3787 return ((bitField0_ & 0x00004000) != 0);
3788 }
3798 @java.lang.Override
3799 public int getMaxNumberOfConflictsInRandomLns() {
3800 return maxNumberOfConflictsInRandomLns_;
3801 }
3812 public Builder setMaxNumberOfConflictsInRandomLns(int value) {
3813
3814 maxNumberOfConflictsInRandomLns_ = value;
3815 bitField0_ |= 0x00004000;
3816 onChanged();
3817 return this;
3818 }
3828 public Builder clearMaxNumberOfConflictsInRandomLns() {
3829 bitField0_ = (bitField0_ & ~0x00004000);
3830 maxNumberOfConflictsInRandomLns_ = 2500;
3831 onChanged();
3832 return this;
3833 }
3834
3835 private int numRandomLnsTries_ = 1;
3844 @java.lang.Override
3845 public boolean hasNumRandomLnsTries() {
3846 return ((bitField0_ & 0x00008000) != 0);
3847 }
3856 @java.lang.Override
3857 public int getNumRandomLnsTries() {
3858 return numRandomLnsTries_;
3859 }
3869 public Builder setNumRandomLnsTries(int value) {
3870
3871 numRandomLnsTries_ = value;
3872 bitField0_ |= 0x00008000;
3873 onChanged();
3874 return this;
3875 }
3884 public Builder clearNumRandomLnsTries() {
3885 bitField0_ = (bitField0_ & ~0x00008000);
3886 numRandomLnsTries_ = 1;
3887 onChanged();
3888 return this;
3889 }
3890
3891 private long maxNumberOfBacktracksInLs_ = 100000000L;
3901 @java.lang.Override
3902 public boolean hasMaxNumberOfBacktracksInLs() {
3903 return ((bitField0_ & 0x00010000) != 0);
3904 }
3914 @java.lang.Override
3915 public long getMaxNumberOfBacktracksInLs() {
3916 return maxNumberOfBacktracksInLs_;
3917 }
3928 public Builder setMaxNumberOfBacktracksInLs(long value) {
3929
3930 maxNumberOfBacktracksInLs_ = value;
3931 bitField0_ |= 0x00010000;
3932 onChanged();
3933 return this;
3934 }
3944 public Builder clearMaxNumberOfBacktracksInLs() {
3945 bitField0_ = (bitField0_ & ~0x00010000);
3946 maxNumberOfBacktracksInLs_ = 100000000L;
3947 onChanged();
3948 return this;
3949 }
3950
3951 private boolean useLpLns_ = true;
3960 @java.lang.Override
3961 public boolean hasUseLpLns() {
3962 return ((bitField0_ & 0x00020000) != 0);
3963 }
3972 @java.lang.Override
3973 public boolean getUseLpLns() {
3974 return useLpLns_;
3975 }
3985 public Builder setUseLpLns(boolean value) {
3986
3987 useLpLns_ = value;
3988 bitField0_ |= 0x00020000;
3989 onChanged();
3990 return this;
3991 }
4000 public Builder clearUseLpLns() {
4001 bitField0_ = (bitField0_ & ~0x00020000);
4002 useLpLns_ = true;
4003 onChanged();
4004 return this;
4005 }
4006
4007 private boolean useSatToChooseLnsNeighbourhood_ = true;
4016 @java.lang.Override
4017 public boolean hasUseSatToChooseLnsNeighbourhood() {
4018 return ((bitField0_ & 0x00040000) != 0);
4019 }
4028 @java.lang.Override
4029 public boolean getUseSatToChooseLnsNeighbourhood() {
4030 return useSatToChooseLnsNeighbourhood_;
4031 }
4041 public Builder setUseSatToChooseLnsNeighbourhood(boolean value) {
4042
4043 useSatToChooseLnsNeighbourhood_ = value;
4044 bitField0_ |= 0x00040000;
4045 onChanged();
4046 return this;
4047 }
4056 public Builder clearUseSatToChooseLnsNeighbourhood() {
4057 bitField0_ = (bitField0_ & ~0x00040000);
4058 useSatToChooseLnsNeighbourhood_ = true;
4059 onChanged();
4060 return this;
4061 }
4062
4063 private int maxNumberOfConflictsForQuickCheck_ = 10;
4073 @java.lang.Override
4074 public boolean hasMaxNumberOfConflictsForQuickCheck() {
4075 return ((bitField0_ & 0x00080000) != 0);
4076 }
4086 @java.lang.Override
4087 public int getMaxNumberOfConflictsForQuickCheck() {
4088 return maxNumberOfConflictsForQuickCheck_;
4089 }
4100 public Builder setMaxNumberOfConflictsForQuickCheck(int value) {
4101
4102 maxNumberOfConflictsForQuickCheck_ = value;
4103 bitField0_ |= 0x00080000;
4104 onChanged();
4105 return this;
4106 }
4116 public Builder clearMaxNumberOfConflictsForQuickCheck() {
4117 bitField0_ = (bitField0_ & ~0x00080000);
4118 maxNumberOfConflictsForQuickCheck_ = 10;
4119 onChanged();
4120 return this;
4121 }
4122
4123 private boolean useSymmetry_ ;
4136 @java.lang.Override
4137 public boolean hasUseSymmetry() {
4138 return ((bitField0_ & 0x00100000) != 0);
4139 }
4152 @java.lang.Override
4153 public boolean getUseSymmetry() {
4154 return useSymmetry_;
4155 }
4169 public Builder setUseSymmetry(boolean value) {
4170
4171 useSymmetry_ = value;
4172 bitField0_ |= 0x00100000;
4173 onChanged();
4174 return this;
4175 }
4188 public Builder clearUseSymmetry() {
4189 bitField0_ = (bitField0_ & ~0x00100000);
4190 useSymmetry_ = false;
4191 onChanged();
4192 return this;
4193 }
4194
4195 private boolean exploitSymmetryInSatFirstSolution_ ;
4208 @java.lang.Override
4209 public boolean hasExploitSymmetryInSatFirstSolution() {
4210 return ((bitField0_ & 0x00200000) != 0);
4211 }
4224 @java.lang.Override
4225 public boolean getExploitSymmetryInSatFirstSolution() {
4226 return exploitSymmetryInSatFirstSolution_;
4227 }
4241 public Builder setExploitSymmetryInSatFirstSolution(boolean value) {
4242
4243 exploitSymmetryInSatFirstSolution_ = value;
4244 bitField0_ |= 0x00200000;
4245 onChanged();
4246 return this;
4247 }
4260 public Builder clearExploitSymmetryInSatFirstSolution() {
4261 bitField0_ = (bitField0_ & ~0x00200000);
4262 exploitSymmetryInSatFirstSolution_ = false;
4263 onChanged();
4264 return this;
4265 }
4266
4267 private int maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
4276 @java.lang.Override
4277 public boolean hasMaxNumberOfConflictsInRandomSolutionGeneration() {
4278 return ((bitField0_ & 0x00400000) != 0);
4279 }
4288 @java.lang.Override
4289 public int getMaxNumberOfConflictsInRandomSolutionGeneration() {
4290 return maxNumberOfConflictsInRandomSolutionGeneration_;
4291 }
4301 public Builder setMaxNumberOfConflictsInRandomSolutionGeneration(int value) {
4302
4303 maxNumberOfConflictsInRandomSolutionGeneration_ = value;
4304 bitField0_ |= 0x00400000;
4305 onChanged();
4306 return this;
4307 }
4316 public Builder clearMaxNumberOfConflictsInRandomSolutionGeneration() {
4317 bitField0_ = (bitField0_ & ~0x00400000);
4318 maxNumberOfConflictsInRandomSolutionGeneration_ = 500;
4319 onChanged();
4320 return this;
4321 }
4322
4323 private long maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
4335 @java.lang.Override
4336 public boolean hasMaxNumberOfExploredAssignmentsPerTryInLs() {
4337 return ((bitField0_ & 0x00800000) != 0);
4338 }
4350 @java.lang.Override
4351 public long getMaxNumberOfExploredAssignmentsPerTryInLs() {
4352 return maxNumberOfExploredAssignmentsPerTryInLs_;
4353 }
4366 public Builder setMaxNumberOfExploredAssignmentsPerTryInLs(long value) {
4367
4368 maxNumberOfExploredAssignmentsPerTryInLs_ = value;
4369 bitField0_ |= 0x00800000;
4370 onChanged();
4371 return this;
4372 }
4384 public Builder clearMaxNumberOfExploredAssignmentsPerTryInLs() {
4385 bitField0_ = (bitField0_ & ~0x00800000);
4386 maxNumberOfExploredAssignmentsPerTryInLs_ = 10000L;
4387 onChanged();
4388 return this;
4389 }
4390
4391 private boolean useTranspositionTableInLs_ = true;
4403 @java.lang.Override
4404 public boolean hasUseTranspositionTableInLs() {
4405 return ((bitField0_ & 0x01000000) != 0);
4406 }
4418 @java.lang.Override
4419 public boolean getUseTranspositionTableInLs() {
4420 return useTranspositionTableInLs_;
4421 }
4434 public Builder setUseTranspositionTableInLs(boolean value) {
4435
4436 useTranspositionTableInLs_ = value;
4437 bitField0_ |= 0x01000000;
4438 onChanged();
4439 return this;
4440 }
4452 public Builder clearUseTranspositionTableInLs() {
4453 bitField0_ = (bitField0_ & ~0x01000000);
4454 useTranspositionTableInLs_ = true;
4455 onChanged();
4456 return this;
4457 }
4458
4459 private boolean usePotentialOneFlipRepairsInLs_ ;
4470 @java.lang.Override
4471 public boolean hasUsePotentialOneFlipRepairsInLs() {
4472 return ((bitField0_ & 0x02000000) != 0);
4473 }
4484 @java.lang.Override
4485 public boolean getUsePotentialOneFlipRepairsInLs() {
4486 return usePotentialOneFlipRepairsInLs_;
4487 }
4499 public Builder setUsePotentialOneFlipRepairsInLs(boolean value) {
4500
4501 usePotentialOneFlipRepairsInLs_ = value;
4502 bitField0_ |= 0x02000000;
4503 onChanged();
4504 return this;
4505 }
4516 public Builder clearUsePotentialOneFlipRepairsInLs() {
4517 bitField0_ = (bitField0_ & ~0x02000000);
4518 usePotentialOneFlipRepairsInLs_ = false;
4519 onChanged();
4520 return this;
4521 }
4522
4523 private boolean useLearnedBinaryClausesInLp_ = true;
4532 @java.lang.Override
4533 public boolean hasUseLearnedBinaryClausesInLp() {
4534 return ((bitField0_ & 0x04000000) != 0);
4535 }
4544 @java.lang.Override
4545 public boolean getUseLearnedBinaryClausesInLp() {
4546 return useLearnedBinaryClausesInLp_;
4547 }
4557 public Builder setUseLearnedBinaryClausesInLp(boolean value) {
4558
4559 useLearnedBinaryClausesInLp_ = value;
4560 bitField0_ |= 0x04000000;
4561 onChanged();
4562 return this;
4563 }
4572 public Builder clearUseLearnedBinaryClausesInLp() {
4573 bitField0_ = (bitField0_ & ~0x04000000);
4574 useLearnedBinaryClausesInLp_ = true;
4575 onChanged();
4576 return this;
4577 }
4578
4579 private int numberOfSolvers_ = 1;
4590 @java.lang.Override
4591 public boolean hasNumberOfSolvers() {
4592 return ((bitField0_ & 0x08000000) != 0);
4593 }
4604 @java.lang.Override
4605 public int getNumberOfSolvers() {
4606 return numberOfSolvers_;
4607 }
4619 public Builder setNumberOfSolvers(int value) {
4620
4621 numberOfSolvers_ = value;
4622 bitField0_ |= 0x08000000;
4623 onChanged();
4624 return this;
4625 }
4636 public Builder clearNumberOfSolvers() {
4637 bitField0_ = (bitField0_ & ~0x08000000);
4638 numberOfSolvers_ = 1;
4639 onChanged();
4640 return this;
4641 }
4642
4643 private int synchronizationType_ = 0;
4648 @java.lang.Override public boolean hasSynchronizationType() {
4649 return ((bitField0_ & 0x10000000) != 0);
4650 }
4655 @java.lang.Override
4656 public com.google.ortools.bop.BopParameters.ThreadSynchronizationType getSynchronizationType() {
4657 com.google.ortools.bop.BopParameters.ThreadSynchronizationType result = com.google.ortools.bop.BopParameters.ThreadSynchronizationType.forNumber(synchronizationType_);
4658 return result == null ? com.google.ortools.bop.BopParameters.ThreadSynchronizationType.NO_SYNCHRONIZATION : result;
4659 }
4665 public Builder setSynchronizationType(com.google.ortools.bop.BopParameters.ThreadSynchronizationType value) {
4666 if (value == null) {
4667 throw new NullPointerException();
4668 }
4669 bitField0_ |= 0x10000000;
4670 synchronizationType_ = value.getNumber();
4671 onChanged();
4672 return this;
4673 }
4678 public Builder clearSynchronizationType() {
4679 bitField0_ = (bitField0_ & ~0x10000000);
4680 synchronizationType_ = 0;
4681 onChanged();
4682 return this;
4683 }
4684
4685 private java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> solverOptimizerSets_ =
4686 java.util.Collections.emptyList();
4687 private void ensureSolverOptimizerSetsIsMutable() {
4688 if (!((bitField0_ & 0x20000000) != 0)) {
4689 solverOptimizerSets_ = new java.util.ArrayList<com.google.ortools.bop.BopSolverOptimizerSet>(solverOptimizerSets_);
4690 bitField0_ |= 0x20000000;
4691 }
4692 }
4693
4694 private com.google.protobuf.RepeatedFieldBuilder<
4695 com.google.ortools.bop.BopSolverOptimizerSet, com.google.ortools.bop.BopSolverOptimizerSet.Builder, com.google.ortools.bop.BopSolverOptimizerSetOrBuilder> solverOptimizerSetsBuilder_;
4696
4707 public java.util.List<com.google.ortools.bop.BopSolverOptimizerSet> getSolverOptimizerSetsList() {
4708 if (solverOptimizerSetsBuilder_ == null) {
4709 return java.util.Collections.unmodifiableList(solverOptimizerSets_);
4710 } else {
4711 return solverOptimizerSetsBuilder_.getMessageList();
4712 }
4713 }
4724 public int getSolverOptimizerSetsCount() {
4725 if (solverOptimizerSetsBuilder_ == null) {
4726 return solverOptimizerSets_.size();
4727 } else {
4728 return solverOptimizerSetsBuilder_.getCount();
4729 }
4730 }
4741 public com.google.ortools.bop.BopSolverOptimizerSet getSolverOptimizerSets(int index) {
4742 if (solverOptimizerSetsBuilder_ == null) {
4743 return solverOptimizerSets_.get(index);
4744 } else {
4745 return solverOptimizerSetsBuilder_.getMessage(index);
4746 }
4747 }
4758 public Builder setSolverOptimizerSets(
4759 int index, com.google.ortools.bop.BopSolverOptimizerSet value) {
4760 if (solverOptimizerSetsBuilder_ == null) {
4761 if (value == null) {
4762 throw new NullPointerException();
4763 }
4764 ensureSolverOptimizerSetsIsMutable();
4765 solverOptimizerSets_.set(index, value);
4766 onChanged();
4767 } else {
4768 solverOptimizerSetsBuilder_.setMessage(index, value);
4769 }
4770 return this;
4771 }
4782 public Builder setSolverOptimizerSets(
4783 int index, com.google.ortools.bop.BopSolverOptimizerSet.Builder builderForValue) {
4784 if (solverOptimizerSetsBuilder_ == null) {
4785 ensureSolverOptimizerSetsIsMutable();
4786 solverOptimizerSets_.set(index, builderForValue.build());
4787 onChanged();
4788 } else {
4789 solverOptimizerSetsBuilder_.setMessage(index, builderForValue.build());
4790 }
4791 return this;
4792 }
4803 public Builder addSolverOptimizerSets(com.google.ortools.bop.BopSolverOptimizerSet value) {
4804 if (solverOptimizerSetsBuilder_ == null) {
4805 if (value == null) {
4806 throw new NullPointerException();
4807 }
4808 ensureSolverOptimizerSetsIsMutable();
4809 solverOptimizerSets_.add(value);
4810 onChanged();
4811 } else {
4812 solverOptimizerSetsBuilder_.addMessage(value);
4813 }
4814 return this;
4815 }
4826 public Builder addSolverOptimizerSets(
4827 int index, com.google.ortools.bop.BopSolverOptimizerSet value) {
4828 if (solverOptimizerSetsBuilder_ == null) {
4829 if (value == null) {
4830 throw new NullPointerException();
4831 }
4832 ensureSolverOptimizerSetsIsMutable();
4833 solverOptimizerSets_.add(index, value);
4834 onChanged();
4835 } else {
4836 solverOptimizerSetsBuilder_.addMessage(index, value);
4837 }
4838 return this;
4839 }
4850 public Builder addSolverOptimizerSets(
4851 com.google.ortools.bop.BopSolverOptimizerSet.Builder builderForValue) {
4852 if (solverOptimizerSetsBuilder_ == null) {
4853 ensureSolverOptimizerSetsIsMutable();
4854 solverOptimizerSets_.add(builderForValue.build());
4855 onChanged();
4856 } else {
4857 solverOptimizerSetsBuilder_.addMessage(builderForValue.build());
4858 }
4859 return this;
4860 }
4871 public Builder addSolverOptimizerSets(
4872 int index, com.google.ortools.bop.BopSolverOptimizerSet.Builder builderForValue) {
4873 if (solverOptimizerSetsBuilder_ == null) {
4874 ensureSolverOptimizerSetsIsMutable();
4875 solverOptimizerSets_.add(index, builderForValue.build());
4876 onChanged();
4877 } else {
4878 solverOptimizerSetsBuilder_.addMessage(index, builderForValue.build());
4879 }
4880 return this;
4881 }
4892 public Builder addAllSolverOptimizerSets(
4893 java.lang.Iterable<? extends com.google.ortools.bop.BopSolverOptimizerSet> values) {
4894 if (solverOptimizerSetsBuilder_ == null) {
4895 ensureSolverOptimizerSetsIsMutable();
4896 com.google.protobuf.AbstractMessageLite.Builder.addAll(
4897 values, solverOptimizerSets_);
4898 onChanged();
4899 } else {
4900 solverOptimizerSetsBuilder_.addAllMessages(values);
4901 }
4902 return this;
4903 }
4914 public Builder clearSolverOptimizerSets() {
4915 if (solverOptimizerSetsBuilder_ == null) {
4916 solverOptimizerSets_ = java.util.Collections.emptyList();
4917 bitField0_ = (bitField0_ & ~0x20000000);
4918 onChanged();
4919 } else {
4920 solverOptimizerSetsBuilder_.clear();
4921 }
4922 return this;
4923 }
4934 public Builder removeSolverOptimizerSets(int index) {
4935 if (solverOptimizerSetsBuilder_ == null) {
4936 ensureSolverOptimizerSetsIsMutable();
4937 solverOptimizerSets_.remove(index);
4938 onChanged();
4939 } else {
4940 solverOptimizerSetsBuilder_.remove(index);
4941 }
4942 return this;
4943 }
4954 public com.google.ortools.bop.BopSolverOptimizerSet.Builder getSolverOptimizerSetsBuilder(
4955 int index) {
4956 return getSolverOptimizerSetsFieldBuilder().getBuilder(index);
4957 }
4968 public com.google.ortools.bop.BopSolverOptimizerSetOrBuilder getSolverOptimizerSetsOrBuilder(
4969 int index) {
4970 if (solverOptimizerSetsBuilder_ == null) {
4971 return solverOptimizerSets_.get(index); } else {
4972 return solverOptimizerSetsBuilder_.getMessageOrBuilder(index);
4973 }
4974 }
4985 public java.util.List<? extends com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>
4986 getSolverOptimizerSetsOrBuilderList() {
4987 if (solverOptimizerSetsBuilder_ != null) {
4988 return solverOptimizerSetsBuilder_.getMessageOrBuilderList();
4989 } else {
4990 return java.util.Collections.unmodifiableList(solverOptimizerSets_);
4991 }
4992 }
5003 public com.google.ortools.bop.BopSolverOptimizerSet.Builder addSolverOptimizerSetsBuilder() {
5004 return getSolverOptimizerSetsFieldBuilder().addBuilder(
5005 com.google.ortools.bop.BopSolverOptimizerSet.getDefaultInstance());
5006 }
5017 public com.google.ortools.bop.BopSolverOptimizerSet.Builder addSolverOptimizerSetsBuilder(
5018 int index) {
5019 return getSolverOptimizerSetsFieldBuilder().addBuilder(
5020 index, com.google.ortools.bop.BopSolverOptimizerSet.getDefaultInstance());
5021 }
5032 public java.util.List<com.google.ortools.bop.BopSolverOptimizerSet.Builder>
5033 getSolverOptimizerSetsBuilderList() {
5034 return getSolverOptimizerSetsFieldBuilder().getBuilderList();
5035 }
5036 private com.google.protobuf.RepeatedFieldBuilder<
5037 com.google.ortools.bop.BopSolverOptimizerSet, com.google.ortools.bop.BopSolverOptimizerSet.Builder, com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>
5038 getSolverOptimizerSetsFieldBuilder() {
5039 if (solverOptimizerSetsBuilder_ == null) {
5040 solverOptimizerSetsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
5041 com.google.ortools.bop.BopSolverOptimizerSet, com.google.ortools.bop.BopSolverOptimizerSet.Builder, com.google.ortools.bop.BopSolverOptimizerSetOrBuilder>(
5042 solverOptimizerSets_,
5043 ((bitField0_ & 0x20000000) != 0),
5044 getParentForChildren(),
5045 isClean());
5046 solverOptimizerSets_ = null;
5047 }
5048 return solverOptimizerSetsBuilder_;
5049 }
5050
5051 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 } ";
5056 public boolean hasDefaultSolverOptimizerSets() {
5057 return ((bitField0_ & 0x40000000) != 0);
5058 }
5063 public java.lang.String getDefaultSolverOptimizerSets() {
5064 java.lang.Object ref = defaultSolverOptimizerSets_;
5065 if (!(ref instanceof java.lang.String)) {
5066 com.google.protobuf.ByteString bs =
5067 (com.google.protobuf.ByteString) ref;
5068 java.lang.String s = bs.toStringUtf8();
5069 if (bs.isValidUtf8()) {
5070 defaultSolverOptimizerSets_ = s;
5071 }
5072 return s;
5073 } else {
5074 return (java.lang.String) ref;
5075 }
5076 }
5081 public com.google.protobuf.ByteString
5082 getDefaultSolverOptimizerSetsBytes() {
5083 java.lang.Object ref = defaultSolverOptimizerSets_;
5084 if (ref instanceof String) {
5085 com.google.protobuf.ByteString b =
5086 com.google.protobuf.ByteString.copyFromUtf8(
5087 (java.lang.String) ref);
5088 defaultSolverOptimizerSets_ = b;
5089 return b;
5090 } else {
5091 return (com.google.protobuf.ByteString) ref;
5092 }
5093 }
5099 public Builder setDefaultSolverOptimizerSets(
5100 java.lang.String value) {
5101 if (value == null) { throw new NullPointerException(); }
5102 defaultSolverOptimizerSets_ = value;
5103 bitField0_ |= 0x40000000;
5104 onChanged();
5105 return this;
5106 }
5111 public Builder clearDefaultSolverOptimizerSets() {
5112 defaultSolverOptimizerSets_ = getDefaultInstance().getDefaultSolverOptimizerSets();
5113 bitField0_ = (bitField0_ & ~0x40000000);
5114 onChanged();
5115 return this;
5116 }
5122 public Builder setDefaultSolverOptimizerSetsBytes(
5123 com.google.protobuf.ByteString value) {
5124 if (value == null) { throw new NullPointerException(); }
5125 defaultSolverOptimizerSets_ = value;
5126 bitField0_ |= 0x40000000;
5127 onChanged();
5128 return this;
5129 }
5130
5131 private boolean useLpStrongBranching_ ;
5148 @java.lang.Override
5149 public boolean hasUseLpStrongBranching() {
5150 return ((bitField0_ & 0x80000000) != 0);
5151 }
5168 @java.lang.Override
5169 public boolean getUseLpStrongBranching() {
5170 return useLpStrongBranching_;
5171 }
5189 public Builder setUseLpStrongBranching(boolean value) {
5190
5191 useLpStrongBranching_ = value;
5192 bitField0_ |= 0x80000000;
5193 onChanged();
5194 return this;
5195 }
5212 public Builder clearUseLpStrongBranching() {
5213 bitField0_ = (bitField0_ & ~0x80000000);
5214 useLpStrongBranching_ = false;
5215 onChanged();
5216 return this;
5217 }
5218
5219 private int decomposerNumVariablesThreshold_ = 50;
5229 @java.lang.Override
5230 public boolean hasDecomposerNumVariablesThreshold() {
5231 return ((bitField1_ & 0x00000001) != 0);
5232 }
5242 @java.lang.Override
5243 public int getDecomposerNumVariablesThreshold() {
5244 return decomposerNumVariablesThreshold_;
5245 }
5256 public Builder setDecomposerNumVariablesThreshold(int value) {
5257
5258 decomposerNumVariablesThreshold_ = value;
5259 bitField1_ |= 0x00000001;
5260 onChanged();
5261 return this;
5262 }
5272 public Builder clearDecomposerNumVariablesThreshold() {
5273 bitField1_ = (bitField1_ & ~0x00000001);
5274 decomposerNumVariablesThreshold_ = 50;
5275 onChanged();
5276 return this;
5277 }
5278
5279 private int numBopSolversUsedByDecomposition_ = 1;
5290 @java.lang.Override
5291 public boolean hasNumBopSolversUsedByDecomposition() {
5292 return ((bitField1_ & 0x00000002) != 0);
5293 }
5304 @java.lang.Override
5305 public int getNumBopSolversUsedByDecomposition() {
5306 return numBopSolversUsedByDecomposition_;
5307 }
5319 public Builder setNumBopSolversUsedByDecomposition(int value) {
5320
5321 numBopSolversUsedByDecomposition_ = value;
5322 bitField1_ |= 0x00000002;
5323 onChanged();
5324 return this;
5325 }
5336 public Builder clearNumBopSolversUsedByDecomposition() {
5337 bitField1_ = (bitField1_ & ~0x00000002);
5338 numBopSolversUsedByDecomposition_ = 1;
5339 onChanged();
5340 return this;
5341 }
5342
5343 private double decomposedProblemMinTimeInSeconds_ ;
5355 @java.lang.Override
5356 public boolean hasDecomposedProblemMinTimeInSeconds() {
5357 return ((bitField1_ & 0x00000004) != 0);
5358 }
5370 @java.lang.Override
5371 public double getDecomposedProblemMinTimeInSeconds() {
5372 return decomposedProblemMinTimeInSeconds_;
5373 }
5386 public Builder setDecomposedProblemMinTimeInSeconds(double value) {
5387
5388 decomposedProblemMinTimeInSeconds_ = value;
5389 bitField1_ |= 0x00000004;
5390 onChanged();
5391 return this;
5392 }
5404 public Builder clearDecomposedProblemMinTimeInSeconds() {
5405 bitField1_ = (bitField1_ & ~0x00000004);
5406 decomposedProblemMinTimeInSeconds_ = 0D;
5407 onChanged();
5408 return this;
5409 }
5410
5411 private int guidedSatConflictsChunk_ = 1000;
5422 @java.lang.Override
5423 public boolean hasGuidedSatConflictsChunk() {
5424 return ((bitField1_ & 0x00000008) != 0);
5425 }
5436 @java.lang.Override
5437 public int getGuidedSatConflictsChunk() {
5438 return guidedSatConflictsChunk_;
5439 }
5451 public Builder setGuidedSatConflictsChunk(int value) {
5452
5453 guidedSatConflictsChunk_ = value;
5454 bitField1_ |= 0x00000008;
5455 onChanged();
5456 return this;
5457 }
5468 public Builder clearGuidedSatConflictsChunk() {
5469 bitField1_ = (bitField1_ & ~0x00000008);
5470 guidedSatConflictsChunk_ = 1000;
5471 onChanged();
5472 return this;
5473 }
5474
5475 private int maxLpSolveForFeasibilityProblems_ ;
5487 @java.lang.Override
5488 public boolean hasMaxLpSolveForFeasibilityProblems() {
5489 return ((bitField1_ & 0x00000010) != 0);
5490 }
5502 @java.lang.Override
5503 public int getMaxLpSolveForFeasibilityProblems() {
5504 return maxLpSolveForFeasibilityProblems_;
5505 }
5518 public Builder setMaxLpSolveForFeasibilityProblems(int value) {
5519
5520 maxLpSolveForFeasibilityProblems_ = value;
5521 bitField1_ |= 0x00000010;
5522 onChanged();
5523 return this;
5524 }
5536 public Builder clearMaxLpSolveForFeasibilityProblems() {
5537 bitField1_ = (bitField1_ & ~0x00000010);
5538 maxLpSolveForFeasibilityProblems_ = 0;
5539 onChanged();
5540 return this;
5541 }
5542
5543 // @@protoc_insertion_point(builder_scope:operations_research.bop.BopParameters)
5544 }
5545
5546 // @@protoc_insertion_point(class_scope:operations_research.bop.BopParameters)
5547 private static final com.google.ortools.bop.BopParameters DEFAULT_INSTANCE;
5548 static {
5549 DEFAULT_INSTANCE = new com.google.ortools.bop.BopParameters();
5550 }
5551
5552 public static com.google.ortools.bop.BopParameters getDefaultInstance() {
5553 return DEFAULT_INSTANCE;
5554 }
5555
5556 private static final com.google.protobuf.Parser<BopParameters>
5557 PARSER = new com.google.protobuf.AbstractParser<BopParameters>() {
5558 @java.lang.Override
5559 public BopParameters parsePartialFrom(
5560 com.google.protobuf.CodedInputStream input,
5561 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5562 throws com.google.protobuf.InvalidProtocolBufferException {
5563 Builder builder = newBuilder();
5564 try {
5565 builder.mergeFrom(input, extensionRegistry);
5566 } catch (com.google.protobuf.InvalidProtocolBufferException e) {
5567 throw e.setUnfinishedMessage(builder.buildPartial());
5568 } catch (com.google.protobuf.UninitializedMessageException e) {
5569 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
5570 } catch (java.io.IOException e) {
5571 throw new com.google.protobuf.InvalidProtocolBufferException(e)
5572 .setUnfinishedMessage(builder.buildPartial());
5573 }
5574 return builder.buildPartial();
5575 }
5576 };
5577
5578 public static com.google.protobuf.Parser<BopParameters> parser() {
5579 return PARSER;
5580 }
5581
5582 @java.lang.Override
5583 public com.google.protobuf.Parser<BopParameters> getParserForType() {
5584 return PARSER;
5585 }
5586
5587 @java.lang.Override
5588 public com.google.ortools.bop.BopParameters getDefaultInstanceForType() {
5589 return DEFAULT_INSTANCE;
5590 }
5591
5592}
5593
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
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.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
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
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)