6package com.google.ortools.glop;
15public final class GlopParameters
extends
16 com.google.protobuf.GeneratedMessage implements
19private static final long serialVersionUID = 0L;
21 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
22 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
27 GlopParameters.class.getName());
30 private GlopParameters(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
33 private GlopParameters() {
36 optimizationRule_ = 1;
37 refactorizationThreshold_ = 1e-09D;
38 recomputeReducedCostsThreshold_ = 1e-08D;
39 recomputeEdgesNormThreshold_ = 100D;
40 primalFeasibilityTolerance_ = 1e-08D;
41 dualFeasibilityTolerance_ = 1e-08D;
42 ratioTestZeroThreshold_ = 1e-09D;
43 harrisToleranceRatio_ = 0.5D;
44 smallPivotThreshold_ = 1e-06D;
45 minimumAcceptablePivot_ = 1e-06D;
46 dropTolerance_ = 1e-14D;
50 useTransposedMatrix_ =
true;
51 basisRefactorizationPeriod_ = 64;
52 dynamicallyAdjustRefactorizationPeriod_ =
true;
53 solveDualProblem_ = 2;
54 dualizerThreshold_ = 1.5D;
55 solutionFeasibilityTolerance_ = 1e-06D;
56 provideStrongOptimalGuarantee_ =
true;
57 changeStatusToImprecise_ =
true;
58 maxNumberOfReoptimizations_ = 40D;
59 luFactorizationPivotThreshold_ = 0.01D;
60 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
61 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
62 maxNumberOfIterations_ = -1L;
63 markowitzZlatevParameter_ = 3;
64 markowitzSingularityThreshold_ = 1e-15D;
65 devexWeightsResetPeriod_ = 150;
66 usePreprocessing_ =
true;
67 useMiddleProductFormUpdate_ =
true;
68 initializeDevexWithColumnNorms_ =
true;
69 exploitSingletonColumnInInitialBasis_ =
true;
70 dualSmallPivotThreshold_ = 0.0001D;
71 preprocessorZeroTolerance_ = 1e-09D;
72 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
73 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
74 degenerateMinistepFactor_ = 0.01D;
77 useDedicatedDualFeasibilityAlgorithm_ =
true;
78 relativeCostPerturbation_ = 1e-05D;
79 relativeMaxCostPerturbation_ = 1e-07D;
80 initialConditionNumberThreshold_ = 1e+50D;
82 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
84 useImpliedFreePreprocessor_ =
true;
85 maxValidMagnitude_ = 1e+30D;
86 dropMagnitude_ = 1e-30D;
89 public static final com.google.protobuf.Descriptors.Descriptor
91 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
95 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
97 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_fieldAccessorTable
98 .ensureFieldAccessorsInitialized(
99 com.google.ortools.glop.GlopParameters.class, com.google.ortools.glop.GlopParameters.Builder.class);
113 public enum ScalingAlgorithm
114 implements com.google.protobuf.ProtocolMessageEnum {
130 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
131 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
136 ScalingAlgorithm.class.getName());
161 @java.lang.Deprecated
162 public static ScalingAlgorithm
valueOf(
int value) {
175 default:
return null;
181 return internalValueMap;
183 private static final com.google.protobuf.Internal.EnumLiteMap<
191 public final com.google.protobuf.Descriptors.EnumValueDescriptor
195 public final com.google.protobuf.Descriptors.EnumDescriptor
199 public static final com.google.protobuf.Descriptors.EnumDescriptor
201 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(0);
207 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
209 throw new java.lang.IllegalArgumentException(
210 "EnumValueDescriptor is not for this type.");
212 return VALUES[desc.getIndex()];
215 private final int value;
232 public enum SolverBehavior
233 implements com.google.protobuf.ProtocolMessageEnum {
249 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
250 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
255 SolverBehavior.class.getName());
280 @java.lang.Deprecated
281 public static SolverBehavior
valueOf(
int value) {
294 default:
return null;
298 public static com.google.protobuf.Internal.EnumLiteMap<
SolverBehavior>
300 return internalValueMap;
302 private static final com.google.protobuf.Internal.EnumLiteMap<
310 public final com.google.protobuf.Descriptors.EnumValueDescriptor
314 public final com.google.protobuf.Descriptors.EnumDescriptor
318 public static final com.google.protobuf.Descriptors.EnumDescriptor
320 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(1);
326 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
328 throw new java.lang.IllegalArgumentException(
329 "EnumValueDescriptor is not for this type.");
331 return VALUES[desc.getIndex()];
334 private final int value;
350 public enum PricingRule
351 implements com.google.protobuf.ProtocolMessageEnum {
387 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
388 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
393 PricingRule.class.getName());
438 @java.lang.Deprecated
439 public static PricingRule
valueOf(
int value) {
451 case 2:
return DEVEX;
452 default:
return null;
456 public static com.google.protobuf.Internal.EnumLiteMap<
PricingRule>
458 return internalValueMap;
460 private static final com.google.protobuf.Internal.EnumLiteMap<
462 new com.google.protobuf.Internal.EnumLiteMap<
PricingRule>() {
468 public final com.google.protobuf.Descriptors.EnumValueDescriptor
472 public final com.google.protobuf.Descriptors.EnumDescriptor
476 public static final com.google.protobuf.Descriptors.EnumDescriptor
478 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(2);
481 private static final PricingRule[] VALUES = values();
484 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
486 throw new java.lang.IllegalArgumentException(
487 "EnumValueDescriptor is not for this type.");
489 return VALUES[desc.getIndex()];
492 private final int value;
509 public enum InitialBasisHeuristic
510 implements com.google.protobuf.ProtocolMessageEnum {
557 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
558 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
563 InitialBasisHeuristic.class.getName());
619 @java.lang.Deprecated
620 public static InitialBasisHeuristic
valueOf(
int value) {
628 public static InitialBasisHeuristic
forNumber(
int value) {
631 case 1:
return BIXBY;
633 case 3:
return MAROS;
634 default:
return null;
640 return internalValueMap;
642 private static final com.google.protobuf.Internal.EnumLiteMap<
650 public final com.google.protobuf.Descriptors.EnumValueDescriptor
654 public final com.google.protobuf.Descriptors.EnumDescriptor
658 public static final com.google.protobuf.Descriptors.EnumDescriptor
660 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(3);
666 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
668 throw new java.lang.IllegalArgumentException(
669 "EnumValueDescriptor is not for this type.");
671 return VALUES[desc.getIndex()];
674 private final int value;
694 public enum CostScalingAlgorithm
695 implements com.google.protobuf.ProtocolMessageEnum {
733 com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
734 com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
739 CostScalingAlgorithm.class.getName());
786 @java.lang.Deprecated
787 public static CostScalingAlgorithm
valueOf(
int value) {
795 public static CostScalingAlgorithm
forNumber(
int value) {
801 default:
return null;
807 return internalValueMap;
809 private static final com.google.protobuf.Internal.EnumLiteMap<
817 public final com.google.protobuf.Descriptors.EnumValueDescriptor
821 public final com.google.protobuf.Descriptors.EnumDescriptor
825 public static final com.google.protobuf.Descriptors.EnumDescriptor
827 return com.google.ortools.glop.GlopParameters.getDescriptor().getEnumTypes().get(4);
833 com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
835 throw new java.lang.IllegalArgumentException(
836 "EnumValueDescriptor is not for this type.");
838 return VALUES[desc.getIndex()];
841 private final int value;
850 private int bitField0_;
851 private int bitField1_;
853 private int scalingMethod_ = 1;
859 return ((bitField0_ & 0x00000001) != 0);
871 private int feasibilityRule_ = 1;
881 return ((bitField0_ & 0x00000002) != 0);
897 private int optimizationRule_ = 1;
907 return ((bitField0_ & 0x00000004) != 0);
923 private double refactorizationThreshold_ = 1e-09D;
939 return ((bitField0_ & 0x00000008) != 0);
956 return refactorizationThreshold_;
960 private double recomputeReducedCostsThreshold_ = 1e-08D;
975 return ((bitField0_ & 0x00000010) != 0);
991 return recomputeReducedCostsThreshold_;
995 private double recomputeEdgesNormThreshold_ = 100D;
1010 return ((bitField0_ & 0x00000020) != 0);
1026 return recomputeEdgesNormThreshold_;
1030 private double primalFeasibilityTolerance_ = 1e-08D;
1047 return ((bitField0_ & 0x00000040) != 0);
1065 return primalFeasibilityTolerance_;
1069 private double dualFeasibilityTolerance_ = 1e-08D;
1089 return ((bitField0_ & 0x00000080) != 0);
1110 return dualFeasibilityTolerance_;
1114 private double ratioTestZeroThreshold_ = 1e-09D;
1131 return ((bitField0_ & 0x00000100) != 0);
1149 return ratioTestZeroThreshold_;
1153 private double harrisToleranceRatio_ = 0.5D;
1174 return ((bitField0_ & 0x00000200) != 0);
1196 return harrisToleranceRatio_;
1200 private double smallPivotThreshold_ = 1e-06D;
1214 return ((bitField0_ & 0x00000400) != 0);
1229 return smallPivotThreshold_;
1233 private double minimumAcceptablePivot_ = 1e-06D;
1244 return ((bitField0_ & 0x00000800) != 0);
1256 return minimumAcceptablePivot_;
1260 private double dropTolerance_ = 1e-14D;
1273 return ((bitField0_ & 0x00001000) != 0);
1287 return dropTolerance_;
1291 private boolean useScaling_ =
true;
1303 return ((bitField0_ & 0x00002000) != 0);
1320 private int costScaling_ = 1;
1326 return ((bitField0_ & 0x00004000) != 0);
1338 private int initialBasis_ = 2;
1349 return ((bitField0_ & 0x00008000) != 0);
1366 private boolean useTransposedMatrix_ =
true;
1379 return ((bitField0_ & 0x00010000) != 0);
1393 return useTransposedMatrix_;
1397 private int basisRefactorizationPeriod_ = 64;
1410 return ((bitField0_ & 0x00020000) != 0);
1424 return basisRefactorizationPeriod_;
1428 private boolean dynamicallyAdjustRefactorizationPeriod_ =
true;
1443 return ((bitField0_ & 0x00040000) != 0);
1459 return dynamicallyAdjustRefactorizationPeriod_;
1463 private int solveDualProblem_ = 2;
1475 return ((bitField0_ & 0x00080000) != 0);
1493 private double dualizerThreshold_ = 1.5D;
1506 return ((bitField0_ & 0x00100000) != 0);
1520 return dualizerThreshold_;
1524 private double solutionFeasibilityTolerance_ = 1e-06D;
1542 return ((bitField0_ & 0x00200000) != 0);
1561 return solutionFeasibilityTolerance_;
1565 private boolean provideStrongOptimalGuarantee_ =
true;
1593 return ((bitField0_ & 0x00400000) != 0);
1622 return provideStrongOptimalGuarantee_;
1626 private boolean changeStatusToImprecise_ =
true;
1638 return ((bitField0_ & 0x00800000) != 0);
1651 return changeStatusToImprecise_;
1655 private double maxNumberOfReoptimizations_ = 40D;
1669 return ((bitField0_ & 0x01000000) != 0);
1684 return maxNumberOfReoptimizations_;
1688 private double luFactorizationPivotThreshold_ = 0.01D;
1702 return ((bitField0_ & 0x02000000) != 0);
1717 return luFactorizationPivotThreshold_;
1721 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
1732 return ((bitField0_ & 0x04000000) != 0);
1744 return maxTimeInSeconds_;
1748 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
1763 return ((bitField0_ & 0x08000000) != 0);
1779 return maxDeterministicTime_;
1783 private long maxNumberOfIterations_ = -1L;
1795 return ((bitField0_ & 0x10000000) != 0);
1808 return maxNumberOfIterations_;
1812 private int markowitzZlatevParameter_ = 3;
1824 return ((bitField0_ & 0x20000000) != 0);
1837 return markowitzZlatevParameter_;
1841 private double markowitzSingularityThreshold_ = 1e-15D;
1855 return ((bitField0_ & 0x40000000) != 0);
1870 return markowitzSingularityThreshold_;
1874 private boolean useDualSimplex_ =
false;
1885 return ((bitField0_ & 0x80000000) != 0);
1897 return useDualSimplex_;
1901 private boolean allowSimplexAlgorithmChange_ =
false;
1915 return ((bitField1_ & 0x00000001) != 0);
1930 return allowSimplexAlgorithmChange_;
1934 private int devexWeightsResetPeriod_ = 150;
1945 return ((bitField1_ & 0x00000002) != 0);
1957 return devexWeightsResetPeriod_;
1961 private boolean usePreprocessing_ =
true;
1972 return ((bitField1_ & 0x00000004) != 0);
1984 return usePreprocessing_;
1988 private boolean useMiddleProductFormUpdate_ =
true;
2005 return ((bitField1_ & 0x00000008) != 0);
2023 return useMiddleProductFormUpdate_;
2027 private boolean initializeDevexWithColumnNorms_ =
true;
2039 return ((bitField1_ & 0x00000010) != 0);
2052 return initializeDevexWithColumnNorms_;
2056 private boolean exploitSingletonColumnInInitialBasis_ =
true;
2068 return ((bitField1_ & 0x00000020) != 0);
2081 return exploitSingletonColumnInInitialBasis_;
2085 private double dualSmallPivotThreshold_ = 0.0001D;
2098 return ((bitField1_ & 0x00000040) != 0);
2112 return dualSmallPivotThreshold_;
2116 private double preprocessorZeroTolerance_ = 1e-09D;
2132 return ((bitField1_ & 0x00000080) != 0);
2149 return preprocessorZeroTolerance_;
2153 private double objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
2172 return ((bitField1_ & 0x00000100) != 0);
2192 return objectiveLowerLimit_;
2196 private double objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
2203 return ((bitField1_ & 0x00000200) != 0);
2211 return objectiveUpperLimit_;
2215 private double degenerateMinistepFactor_ = 0.01D;
2243 return ((bitField1_ & 0x00000400) != 0);
2272 return degenerateMinistepFactor_;
2276 private int randomSeed_ = 1;
2301 return ((bitField1_ & 0x00000800) != 0);
2331 private int numOmpThreads_ = 1;
2343 return ((bitField1_ & 0x00001000) != 0);
2356 return numOmpThreads_;
2360 private boolean perturbCostsInDualSimplex_ =
false;
2374 return ((bitField1_ & 0x00002000) != 0);
2389 return perturbCostsInDualSimplex_;
2393 private boolean useDedicatedDualFeasibilityAlgorithm_ =
true;
2411 return ((bitField1_ & 0x00004000) != 0);
2430 return useDedicatedDualFeasibilityAlgorithm_;
2434 private double relativeCostPerturbation_ = 1e-05D;
2448 return ((bitField1_ & 0x00008000) != 0);
2463 return relativeCostPerturbation_;
2467 private double relativeMaxCostPerturbation_ = 1e-07D;
2474 return ((bitField1_ & 0x00010000) != 0);
2482 return relativeMaxCostPerturbation_;
2486 private double initialConditionNumberThreshold_ = 1e+50D;
2499 return ((bitField1_ & 0x00020000) != 0);
2513 return initialConditionNumberThreshold_;
2517 private boolean logSearchProgress_ =
false;
2530 return ((bitField1_ & 0x00040000) != 0);
2544 return logSearchProgress_;
2548 private boolean logToStdout_ =
true;
2559 return ((bitField1_ & 0x00080000) != 0);
2571 return logToStdout_;
2575 private double crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
2600 return ((bitField1_ & 0x00100000) != 0);
2626 return crossoverBoundSnappingDistance_;
2630 private boolean pushToVertex_ =
true;
2646 return ((bitField1_ & 0x00200000) != 0);
2663 return pushToVertex_;
2667 private boolean useImpliedFreePreprocessor_ =
true;
2678 return ((bitField1_ & 0x00400000) != 0);
2690 return useImpliedFreePreprocessor_;
2694 private double maxValidMagnitude_ = 1e+30D;
2710 return ((bitField1_ & 0x00800000) != 0);
2727 return maxValidMagnitude_;
2731 private double dropMagnitude_ = 1e-30D;
2745 return ((bitField1_ & 0x01000000) != 0);
2760 return dropMagnitude_;
2764 private boolean dualPricePrioritizeNorm_ =
false;
2776 return ((bitField1_ & 0x02000000) != 0);
2789 return dualPricePrioritizeNorm_;
2792 private byte memoizedIsInitialized = -1;
2799 memoizedIsInitialized = 1;
2804 public void writeTo(com.google.protobuf.CodedOutputStream output)
2805 throws java.io.IOException {
2806 if (((bitField0_ & 0x00000002) != 0)) {
2807 output.writeEnum(1, feasibilityRule_);
2809 if (((bitField0_ & 0x00000004) != 0)) {
2810 output.writeEnum(2, optimizationRule_);
2812 if (((bitField0_ & 0x00000008) != 0)) {
2813 output.writeDouble(6, refactorizationThreshold_);
2815 if (((bitField0_ & 0x00000010) != 0)) {
2816 output.writeDouble(8, recomputeReducedCostsThreshold_);
2818 if (((bitField0_ & 0x00000020) != 0)) {
2819 output.writeDouble(9, recomputeEdgesNormThreshold_);
2821 if (((bitField0_ & 0x00000040) != 0)) {
2822 output.writeDouble(10, primalFeasibilityTolerance_);
2824 if (((bitField0_ & 0x00000080) != 0)) {
2825 output.writeDouble(11, dualFeasibilityTolerance_);
2827 if (((bitField0_ & 0x00000100) != 0)) {
2828 output.writeDouble(12, ratioTestZeroThreshold_);
2830 if (((bitField0_ & 0x00000200) != 0)) {
2831 output.writeDouble(13, harrisToleranceRatio_);
2833 if (((bitField0_ & 0x00000400) != 0)) {
2834 output.writeDouble(14, smallPivotThreshold_);
2836 if (((bitField0_ & 0x00000800) != 0)) {
2837 output.writeDouble(15, minimumAcceptablePivot_);
2839 if (((bitField0_ & 0x00002000) != 0)) {
2840 output.writeBool(16, useScaling_);
2842 if (((bitField0_ & 0x00008000) != 0)) {
2843 output.writeEnum(17, initialBasis_);
2845 if (((bitField0_ & 0x00010000) != 0)) {
2846 output.writeBool(18, useTransposedMatrix_);
2848 if (((bitField0_ & 0x00020000) != 0)) {
2849 output.writeInt32(19, basisRefactorizationPeriod_);
2851 if (((bitField0_ & 0x00080000) != 0)) {
2852 output.writeEnum(20, solveDualProblem_);
2854 if (((bitField0_ & 0x00100000) != 0)) {
2855 output.writeDouble(21, dualizerThreshold_);
2857 if (((bitField0_ & 0x00200000) != 0)) {
2858 output.writeDouble(22, solutionFeasibilityTolerance_);
2860 if (((bitField0_ & 0x00400000) != 0)) {
2861 output.writeBool(24, provideStrongOptimalGuarantee_);
2863 if (((bitField0_ & 0x02000000) != 0)) {
2864 output.writeDouble(25, luFactorizationPivotThreshold_);
2866 if (((bitField0_ & 0x04000000) != 0)) {
2867 output.writeDouble(26, maxTimeInSeconds_);
2869 if (((bitField0_ & 0x10000000) != 0)) {
2870 output.writeInt64(27, maxNumberOfIterations_);
2872 if (((bitField0_ & 0x20000000) != 0)) {
2873 output.writeInt32(29, markowitzZlatevParameter_);
2875 if (((bitField0_ & 0x40000000) != 0)) {
2876 output.writeDouble(30, markowitzSingularityThreshold_);
2878 if (((bitField0_ & 0x80000000) != 0)) {
2879 output.writeBool(31, useDualSimplex_);
2881 if (((bitField1_ & 0x00000001) != 0)) {
2882 output.writeBool(32, allowSimplexAlgorithmChange_);
2884 if (((bitField1_ & 0x00000002) != 0)) {
2885 output.writeInt32(33, devexWeightsResetPeriod_);
2887 if (((bitField1_ & 0x00000004) != 0)) {
2888 output.writeBool(34, usePreprocessing_);
2890 if (((bitField1_ & 0x00000008) != 0)) {
2891 output.writeBool(35, useMiddleProductFormUpdate_);
2893 if (((bitField1_ & 0x00000010) != 0)) {
2894 output.writeBool(36, initializeDevexWithColumnNorms_);
2896 if (((bitField1_ & 0x00000020) != 0)) {
2897 output.writeBool(37, exploitSingletonColumnInInitialBasis_);
2899 if (((bitField1_ & 0x00000040) != 0)) {
2900 output.writeDouble(38, dualSmallPivotThreshold_);
2902 if (((bitField1_ & 0x00000080) != 0)) {
2903 output.writeDouble(39, preprocessorZeroTolerance_);
2905 if (((bitField1_ & 0x00000100) != 0)) {
2906 output.writeDouble(40, objectiveLowerLimit_);
2908 if (((bitField1_ & 0x00000200) != 0)) {
2909 output.writeDouble(41, objectiveUpperLimit_);
2911 if (((bitField1_ & 0x00000400) != 0)) {
2912 output.writeDouble(42, degenerateMinistepFactor_);
2914 if (((bitField1_ & 0x00000800) != 0)) {
2915 output.writeInt32(43, randomSeed_);
2917 if (((bitField1_ & 0x00001000) != 0)) {
2918 output.writeInt32(44, numOmpThreads_);
2920 if (((bitField0_ & 0x08000000) != 0)) {
2921 output.writeDouble(45, maxDeterministicTime_);
2923 if (((bitField0_ & 0x00001000) != 0)) {
2924 output.writeDouble(52, dropTolerance_);
2926 if (((bitField1_ & 0x00002000) != 0)) {
2927 output.writeBool(53, perturbCostsInDualSimplex_);
2929 if (((bitField1_ & 0x00008000) != 0)) {
2930 output.writeDouble(54, relativeCostPerturbation_);
2932 if (((bitField1_ & 0x00010000) != 0)) {
2933 output.writeDouble(55, relativeMaxCostPerturbation_);
2935 if (((bitField0_ & 0x01000000) != 0)) {
2936 output.writeDouble(56, maxNumberOfReoptimizations_);
2938 if (((bitField0_ & 0x00000001) != 0)) {
2939 output.writeEnum(57, scalingMethod_);
2941 if (((bitField0_ & 0x00800000) != 0)) {
2942 output.writeBool(58, changeStatusToImprecise_);
2944 if (((bitField1_ & 0x00020000) != 0)) {
2945 output.writeDouble(59, initialConditionNumberThreshold_);
2947 if (((bitField0_ & 0x00004000) != 0)) {
2948 output.writeEnum(60, costScaling_);
2950 if (((bitField1_ & 0x00040000) != 0)) {
2951 output.writeBool(61, logSearchProgress_);
2953 if (((bitField1_ & 0x00004000) != 0)) {
2954 output.writeBool(62, useDedicatedDualFeasibilityAlgorithm_);
2956 if (((bitField0_ & 0x00040000) != 0)) {
2957 output.writeBool(63, dynamicallyAdjustRefactorizationPeriod_);
2959 if (((bitField1_ & 0x00100000) != 0)) {
2960 output.writeDouble(64, crossoverBoundSnappingDistance_);
2962 if (((bitField1_ & 0x00200000) != 0)) {
2963 output.writeBool(65, pushToVertex_);
2965 if (((bitField1_ & 0x00080000) != 0)) {
2966 output.writeBool(66, logToStdout_);
2968 if (((bitField1_ & 0x00400000) != 0)) {
2969 output.writeBool(67, useImpliedFreePreprocessor_);
2971 if (((bitField1_ & 0x02000000) != 0)) {
2972 output.writeBool(69, dualPricePrioritizeNorm_);
2974 if (((bitField1_ & 0x00800000) != 0)) {
2975 output.writeDouble(70, maxValidMagnitude_);
2977 if (((bitField1_ & 0x01000000) != 0)) {
2978 output.writeDouble(71, dropMagnitude_);
2980 getUnknownFields().writeTo(output);
2985 int size = memoizedSize;
2986 if (size != -1)
return size;
2989 if (((bitField0_ & 0x00000002) != 0)) {
2990 size += com.google.protobuf.CodedOutputStream
2991 .computeEnumSize(1, feasibilityRule_);
2993 if (((bitField0_ & 0x00000004) != 0)) {
2994 size += com.google.protobuf.CodedOutputStream
2995 .computeEnumSize(2, optimizationRule_);
2997 if (((bitField0_ & 0x00000008) != 0)) {
2998 size += com.google.protobuf.CodedOutputStream
2999 .computeDoubleSize(6, refactorizationThreshold_);
3001 if (((bitField0_ & 0x00000010) != 0)) {
3002 size += com.google.protobuf.CodedOutputStream
3003 .computeDoubleSize(8, recomputeReducedCostsThreshold_);
3005 if (((bitField0_ & 0x00000020) != 0)) {
3006 size += com.google.protobuf.CodedOutputStream
3007 .computeDoubleSize(9, recomputeEdgesNormThreshold_);
3009 if (((bitField0_ & 0x00000040) != 0)) {
3010 size += com.google.protobuf.CodedOutputStream
3011 .computeDoubleSize(10, primalFeasibilityTolerance_);
3013 if (((bitField0_ & 0x00000080) != 0)) {
3014 size += com.google.protobuf.CodedOutputStream
3015 .computeDoubleSize(11, dualFeasibilityTolerance_);
3017 if (((bitField0_ & 0x00000100) != 0)) {
3018 size += com.google.protobuf.CodedOutputStream
3019 .computeDoubleSize(12, ratioTestZeroThreshold_);
3021 if (((bitField0_ & 0x00000200) != 0)) {
3022 size += com.google.protobuf.CodedOutputStream
3023 .computeDoubleSize(13, harrisToleranceRatio_);
3025 if (((bitField0_ & 0x00000400) != 0)) {
3026 size += com.google.protobuf.CodedOutputStream
3027 .computeDoubleSize(14, smallPivotThreshold_);
3029 if (((bitField0_ & 0x00000800) != 0)) {
3030 size += com.google.protobuf.CodedOutputStream
3031 .computeDoubleSize(15, minimumAcceptablePivot_);
3033 if (((bitField0_ & 0x00002000) != 0)) {
3034 size += com.google.protobuf.CodedOutputStream
3035 .computeBoolSize(16, useScaling_);
3037 if (((bitField0_ & 0x00008000) != 0)) {
3038 size += com.google.protobuf.CodedOutputStream
3039 .computeEnumSize(17, initialBasis_);
3041 if (((bitField0_ & 0x00010000) != 0)) {
3042 size += com.google.protobuf.CodedOutputStream
3043 .computeBoolSize(18, useTransposedMatrix_);
3045 if (((bitField0_ & 0x00020000) != 0)) {
3046 size += com.google.protobuf.CodedOutputStream
3047 .computeInt32Size(19, basisRefactorizationPeriod_);
3049 if (((bitField0_ & 0x00080000) != 0)) {
3050 size += com.google.protobuf.CodedOutputStream
3051 .computeEnumSize(20, solveDualProblem_);
3053 if (((bitField0_ & 0x00100000) != 0)) {
3054 size += com.google.protobuf.CodedOutputStream
3055 .computeDoubleSize(21, dualizerThreshold_);
3057 if (((bitField0_ & 0x00200000) != 0)) {
3058 size += com.google.protobuf.CodedOutputStream
3059 .computeDoubleSize(22, solutionFeasibilityTolerance_);
3061 if (((bitField0_ & 0x00400000) != 0)) {
3062 size += com.google.protobuf.CodedOutputStream
3063 .computeBoolSize(24, provideStrongOptimalGuarantee_);
3065 if (((bitField0_ & 0x02000000) != 0)) {
3066 size += com.google.protobuf.CodedOutputStream
3067 .computeDoubleSize(25, luFactorizationPivotThreshold_);
3069 if (((bitField0_ & 0x04000000) != 0)) {
3070 size += com.google.protobuf.CodedOutputStream
3071 .computeDoubleSize(26, maxTimeInSeconds_);
3073 if (((bitField0_ & 0x10000000) != 0)) {
3074 size += com.google.protobuf.CodedOutputStream
3075 .computeInt64Size(27, maxNumberOfIterations_);
3077 if (((bitField0_ & 0x20000000) != 0)) {
3078 size += com.google.protobuf.CodedOutputStream
3079 .computeInt32Size(29, markowitzZlatevParameter_);
3081 if (((bitField0_ & 0x40000000) != 0)) {
3082 size += com.google.protobuf.CodedOutputStream
3083 .computeDoubleSize(30, markowitzSingularityThreshold_);
3085 if (((bitField0_ & 0x80000000) != 0)) {
3086 size += com.google.protobuf.CodedOutputStream
3087 .computeBoolSize(31, useDualSimplex_);
3089 if (((bitField1_ & 0x00000001) != 0)) {
3090 size += com.google.protobuf.CodedOutputStream
3091 .computeBoolSize(32, allowSimplexAlgorithmChange_);
3093 if (((bitField1_ & 0x00000002) != 0)) {
3094 size += com.google.protobuf.CodedOutputStream
3095 .computeInt32Size(33, devexWeightsResetPeriod_);
3097 if (((bitField1_ & 0x00000004) != 0)) {
3098 size += com.google.protobuf.CodedOutputStream
3099 .computeBoolSize(34, usePreprocessing_);
3101 if (((bitField1_ & 0x00000008) != 0)) {
3102 size += com.google.protobuf.CodedOutputStream
3103 .computeBoolSize(35, useMiddleProductFormUpdate_);
3105 if (((bitField1_ & 0x00000010) != 0)) {
3106 size += com.google.protobuf.CodedOutputStream
3107 .computeBoolSize(36, initializeDevexWithColumnNorms_);
3109 if (((bitField1_ & 0x00000020) != 0)) {
3110 size += com.google.protobuf.CodedOutputStream
3111 .computeBoolSize(37, exploitSingletonColumnInInitialBasis_);
3113 if (((bitField1_ & 0x00000040) != 0)) {
3114 size += com.google.protobuf.CodedOutputStream
3115 .computeDoubleSize(38, dualSmallPivotThreshold_);
3117 if (((bitField1_ & 0x00000080) != 0)) {
3118 size += com.google.protobuf.CodedOutputStream
3119 .computeDoubleSize(39, preprocessorZeroTolerance_);
3121 if (((bitField1_ & 0x00000100) != 0)) {
3122 size += com.google.protobuf.CodedOutputStream
3123 .computeDoubleSize(40, objectiveLowerLimit_);
3125 if (((bitField1_ & 0x00000200) != 0)) {
3126 size += com.google.protobuf.CodedOutputStream
3127 .computeDoubleSize(41, objectiveUpperLimit_);
3129 if (((bitField1_ & 0x00000400) != 0)) {
3130 size += com.google.protobuf.CodedOutputStream
3131 .computeDoubleSize(42, degenerateMinistepFactor_);
3133 if (((bitField1_ & 0x00000800) != 0)) {
3134 size += com.google.protobuf.CodedOutputStream
3135 .computeInt32Size(43, randomSeed_);
3137 if (((bitField1_ & 0x00001000) != 0)) {
3138 size += com.google.protobuf.CodedOutputStream
3139 .computeInt32Size(44, numOmpThreads_);
3141 if (((bitField0_ & 0x08000000) != 0)) {
3142 size += com.google.protobuf.CodedOutputStream
3143 .computeDoubleSize(45, maxDeterministicTime_);
3145 if (((bitField0_ & 0x00001000) != 0)) {
3146 size += com.google.protobuf.CodedOutputStream
3147 .computeDoubleSize(52, dropTolerance_);
3149 if (((bitField1_ & 0x00002000) != 0)) {
3150 size += com.google.protobuf.CodedOutputStream
3151 .computeBoolSize(53, perturbCostsInDualSimplex_);
3153 if (((bitField1_ & 0x00008000) != 0)) {
3154 size += com.google.protobuf.CodedOutputStream
3155 .computeDoubleSize(54, relativeCostPerturbation_);
3157 if (((bitField1_ & 0x00010000) != 0)) {
3158 size += com.google.protobuf.CodedOutputStream
3159 .computeDoubleSize(55, relativeMaxCostPerturbation_);
3161 if (((bitField0_ & 0x01000000) != 0)) {
3162 size += com.google.protobuf.CodedOutputStream
3163 .computeDoubleSize(56, maxNumberOfReoptimizations_);
3165 if (((bitField0_ & 0x00000001) != 0)) {
3166 size += com.google.protobuf.CodedOutputStream
3167 .computeEnumSize(57, scalingMethod_);
3169 if (((bitField0_ & 0x00800000) != 0)) {
3170 size += com.google.protobuf.CodedOutputStream
3171 .computeBoolSize(58, changeStatusToImprecise_);
3173 if (((bitField1_ & 0x00020000) != 0)) {
3174 size += com.google.protobuf.CodedOutputStream
3175 .computeDoubleSize(59, initialConditionNumberThreshold_);
3177 if (((bitField0_ & 0x00004000) != 0)) {
3178 size += com.google.protobuf.CodedOutputStream
3179 .computeEnumSize(60, costScaling_);
3181 if (((bitField1_ & 0x00040000) != 0)) {
3182 size += com.google.protobuf.CodedOutputStream
3183 .computeBoolSize(61, logSearchProgress_);
3185 if (((bitField1_ & 0x00004000) != 0)) {
3186 size += com.google.protobuf.CodedOutputStream
3187 .computeBoolSize(62, useDedicatedDualFeasibilityAlgorithm_);
3189 if (((bitField0_ & 0x00040000) != 0)) {
3190 size += com.google.protobuf.CodedOutputStream
3191 .computeBoolSize(63, dynamicallyAdjustRefactorizationPeriod_);
3193 if (((bitField1_ & 0x00100000) != 0)) {
3194 size += com.google.protobuf.CodedOutputStream
3195 .computeDoubleSize(64, crossoverBoundSnappingDistance_);
3197 if (((bitField1_ & 0x00200000) != 0)) {
3198 size += com.google.protobuf.CodedOutputStream
3199 .computeBoolSize(65, pushToVertex_);
3201 if (((bitField1_ & 0x00080000) != 0)) {
3202 size += com.google.protobuf.CodedOutputStream
3203 .computeBoolSize(66, logToStdout_);
3205 if (((bitField1_ & 0x00400000) != 0)) {
3206 size += com.google.protobuf.CodedOutputStream
3207 .computeBoolSize(67, useImpliedFreePreprocessor_);
3209 if (((bitField1_ & 0x02000000) != 0)) {
3210 size += com.google.protobuf.CodedOutputStream
3211 .computeBoolSize(69, dualPricePrioritizeNorm_);
3213 if (((bitField1_ & 0x00800000) != 0)) {
3214 size += com.google.protobuf.CodedOutputStream
3215 .computeDoubleSize(70, maxValidMagnitude_);
3217 if (((bitField1_ & 0x01000000) != 0)) {
3218 size += com.google.protobuf.CodedOutputStream
3219 .computeDoubleSize(71, dropMagnitude_);
3221 size += getUnknownFields().getSerializedSize();
3222 memoizedSize = size;
3227 public boolean equals(
final java.lang.Object obj) {
3231 if (!(obj instanceof com.google.ortools.glop.GlopParameters)) {
3232 return super.equals(obj);
3238 if (scalingMethod_ != other.scalingMethod_)
return false;
3242 if (feasibilityRule_ != other.feasibilityRule_)
return false;
3246 if (optimizationRule_ != other.optimizationRule_)
return false;
3251 != java.lang.Double.doubleToLongBits(
3257 != java.lang.Double.doubleToLongBits(
3263 != java.lang.Double.doubleToLongBits(
3269 != java.lang.Double.doubleToLongBits(
3275 != java.lang.Double.doubleToLongBits(
3281 != java.lang.Double.doubleToLongBits(
3287 != java.lang.Double.doubleToLongBits(
3293 != java.lang.Double.doubleToLongBits(
3299 != java.lang.Double.doubleToLongBits(
3305 != java.lang.Double.doubleToLongBits(
3315 if (costScaling_ != other.costScaling_)
return false;
3319 if (initialBasis_ != other.initialBasis_)
return false;
3338 if (solveDualProblem_ != other.solveDualProblem_)
return false;
3343 != java.lang.Double.doubleToLongBits(
3349 != java.lang.Double.doubleToLongBits(
3365 != java.lang.Double.doubleToLongBits(
3371 != java.lang.Double.doubleToLongBits(
3377 != java.lang.Double.doubleToLongBits(
3383 != java.lang.Double.doubleToLongBits(
3399 != java.lang.Double.doubleToLongBits(
3440 != java.lang.Double.doubleToLongBits(
3446 != java.lang.Double.doubleToLongBits(
3452 != java.lang.Double.doubleToLongBits(
3458 != java.lang.Double.doubleToLongBits(
3464 != java.lang.Double.doubleToLongBits(
3490 != java.lang.Double.doubleToLongBits(
3496 != java.lang.Double.doubleToLongBits(
3502 != java.lang.Double.doubleToLongBits(
3518 != java.lang.Double.doubleToLongBits(
3534 != java.lang.Double.doubleToLongBits(
3540 != java.lang.Double.doubleToLongBits(
3548 if (!getUnknownFields().
equals(other.getUnknownFields()))
return false;
3554 if (memoizedHashCode != 0) {
3555 return memoizedHashCode;
3561 hash = (53 * hash) + scalingMethod_;
3565 hash = (53 * hash) + feasibilityRule_;
3569 hash = (53 * hash) + optimizationRule_;
3573 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3578 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3583 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3588 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3593 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3598 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3603 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3608 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3613 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3618 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3623 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3628 hash = (53 * hash) + costScaling_;
3632 hash = (53 * hash) + initialBasis_;
3636 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3645 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3650 hash = (53 * hash) + solveDualProblem_;
3654 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3659 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3664 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3669 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3674 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3679 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3684 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3689 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3694 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3703 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3708 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3713 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3722 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3727 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3732 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3737 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3742 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3747 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3752 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3757 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3762 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3775 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3780 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3785 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3790 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3795 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3800 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3805 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3810 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3815 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3820 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3825 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3830 hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
3835 hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
3838 hash = (29 * hash) + getUnknownFields().hashCode();
3839 memoizedHashCode = hash;
3844 java.nio.ByteBuffer data)
3845 throws com.google.protobuf.InvalidProtocolBufferException {
3846 return PARSER.parseFrom(data);
3849 java.nio.ByteBuffer data,
3850 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3851 throws com.google.protobuf.InvalidProtocolBufferException {
3852 return PARSER.parseFrom(data, extensionRegistry);
3855 com.google.protobuf.ByteString data)
3856 throws com.google.protobuf.InvalidProtocolBufferException {
3857 return PARSER.parseFrom(data);
3860 com.google.protobuf.ByteString data,
3861 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3862 throws com.google.protobuf.InvalidProtocolBufferException {
3863 return PARSER.parseFrom(data, extensionRegistry);
3866 throws com.google.protobuf.InvalidProtocolBufferException {
3867 return PARSER.parseFrom(data);
3871 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3872 throws com.google.protobuf.InvalidProtocolBufferException {
3873 return PARSER.parseFrom(data, extensionRegistry);
3876 throws java.io.IOException {
3877 return com.google.protobuf.GeneratedMessage
3878 .parseWithIOException(PARSER, input);
3881 java.io.InputStream input,
3882 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3883 throws java.io.IOException {
3884 return com.google.protobuf.GeneratedMessage
3885 .parseWithIOException(PARSER, input, extensionRegistry);
3889 throws java.io.IOException {
3890 return com.google.protobuf.GeneratedMessage
3891 .parseDelimitedWithIOException(PARSER, input);
3895 java.io.InputStream input,
3896 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3897 throws java.io.IOException {
3898 return com.google.protobuf.GeneratedMessage
3899 .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
3902 com.google.protobuf.CodedInputStream input)
3903 throws java.io.IOException {
3904 return com.google.protobuf.GeneratedMessage
3905 .parseWithIOException(PARSER, input);
3908 com.google.protobuf.CodedInputStream input,
3909 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3910 throws java.io.IOException {
3911 return com.google.protobuf.GeneratedMessage
3912 .parseWithIOException(PARSER, input, extensionRegistry);
3918 return DEFAULT_INSTANCE.toBuilder();
3921 return DEFAULT_INSTANCE.toBuilder().
mergeFrom(prototype);
3925 return this == DEFAULT_INSTANCE
3931 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3942 public static final class Builder
extends
3943 com.google.protobuf.GeneratedMessage.Builder<Builder> implements
3946 public static final com.google.protobuf.Descriptors.Descriptor
3948 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
3952 protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
3954 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_fieldAccessorTable
3955 .ensureFieldAccessorsInitialized(
3956 com.google.ortools.glop.GlopParameters.class, com.google.ortools.glop.GlopParameters.Builder.class);
3965 com.google.protobuf.GeneratedMessage.BuilderParent parent) {
3975 feasibilityRule_ = 1;
3976 optimizationRule_ = 1;
3977 refactorizationThreshold_ = 1e-09D;
3978 recomputeReducedCostsThreshold_ = 1e-08D;
3979 recomputeEdgesNormThreshold_ = 100D;
3980 primalFeasibilityTolerance_ = 1e-08D;
3981 dualFeasibilityTolerance_ = 1e-08D;
3982 ratioTestZeroThreshold_ = 1e-09D;
3983 harrisToleranceRatio_ = 0.5D;
3984 smallPivotThreshold_ = 1e-06D;
3985 minimumAcceptablePivot_ = 1e-06D;
3986 dropTolerance_ = 1e-14D;
3990 useTransposedMatrix_ =
true;
3991 basisRefactorizationPeriod_ = 64;
3992 dynamicallyAdjustRefactorizationPeriod_ =
true;
3993 solveDualProblem_ = 2;
3994 dualizerThreshold_ = 1.5D;
3995 solutionFeasibilityTolerance_ = 1e-06D;
3996 provideStrongOptimalGuarantee_ =
true;
3997 changeStatusToImprecise_ =
true;
3998 maxNumberOfReoptimizations_ = 40D;
3999 luFactorizationPivotThreshold_ = 0.01D;
4000 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
4001 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
4002 maxNumberOfIterations_ = -1L;
4003 markowitzZlatevParameter_ = 3;
4004 markowitzSingularityThreshold_ = 1e-15D;
4005 useDualSimplex_ =
false;
4006 allowSimplexAlgorithmChange_ =
false;
4007 devexWeightsResetPeriod_ = 150;
4008 usePreprocessing_ =
true;
4009 useMiddleProductFormUpdate_ =
true;
4010 initializeDevexWithColumnNorms_ =
true;
4011 exploitSingletonColumnInInitialBasis_ =
true;
4012 dualSmallPivotThreshold_ = 0.0001D;
4013 preprocessorZeroTolerance_ = 1e-09D;
4014 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
4015 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
4016 degenerateMinistepFactor_ = 0.01D;
4019 perturbCostsInDualSimplex_ =
false;
4020 useDedicatedDualFeasibilityAlgorithm_ =
true;
4021 relativeCostPerturbation_ = 1e-05D;
4022 relativeMaxCostPerturbation_ = 1e-07D;
4023 initialConditionNumberThreshold_ = 1e+50D;
4024 logSearchProgress_ =
false;
4025 logToStdout_ =
true;
4026 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
4027 pushToVertex_ =
true;
4028 useImpliedFreePreprocessor_ =
true;
4029 maxValidMagnitude_ = 1e+30D;
4030 dropMagnitude_ = 1e-30D;
4031 dualPricePrioritizeNorm_ =
false;
4036 public com.google.protobuf.Descriptors.Descriptor
4038 return com.google.ortools.glop.Parameters.internal_static_operations_research_glop_GlopParameters_descriptor;
4043 return com.google.ortools.glop.GlopParameters.getDefaultInstance();
4050 throw newUninitializedMessageException(result);
4058 if (bitField0_ != 0) { buildPartial0(result); }
4059 if (bitField1_ != 0) { buildPartial1(result); }
4064 private void buildPartial0(com.google.ortools.glop.GlopParameters result) {
4065 int from_bitField0_ = bitField0_;
4066 int to_bitField0_ = 0;
4067 if (((from_bitField0_ & 0x00000001) != 0)) {
4068 result.scalingMethod_ = scalingMethod_;
4069 to_bitField0_ |= 0x00000001;
4071 if (((from_bitField0_ & 0x00000002) != 0)) {
4072 result.feasibilityRule_ = feasibilityRule_;
4073 to_bitField0_ |= 0x00000002;
4075 if (((from_bitField0_ & 0x00000004) != 0)) {
4076 result.optimizationRule_ = optimizationRule_;
4077 to_bitField0_ |= 0x00000004;
4079 if (((from_bitField0_ & 0x00000008) != 0)) {
4080 result.refactorizationThreshold_ = refactorizationThreshold_;
4081 to_bitField0_ |= 0x00000008;
4083 if (((from_bitField0_ & 0x00000010) != 0)) {
4084 result.recomputeReducedCostsThreshold_ = recomputeReducedCostsThreshold_;
4085 to_bitField0_ |= 0x00000010;
4087 if (((from_bitField0_ & 0x00000020) != 0)) {
4088 result.recomputeEdgesNormThreshold_ = recomputeEdgesNormThreshold_;
4089 to_bitField0_ |= 0x00000020;
4091 if (((from_bitField0_ & 0x00000040) != 0)) {
4092 result.primalFeasibilityTolerance_ = primalFeasibilityTolerance_;
4093 to_bitField0_ |= 0x00000040;
4095 if (((from_bitField0_ & 0x00000080) != 0)) {
4096 result.dualFeasibilityTolerance_ = dualFeasibilityTolerance_;
4097 to_bitField0_ |= 0x00000080;
4099 if (((from_bitField0_ & 0x00000100) != 0)) {
4100 result.ratioTestZeroThreshold_ = ratioTestZeroThreshold_;
4101 to_bitField0_ |= 0x00000100;
4103 if (((from_bitField0_ & 0x00000200) != 0)) {
4104 result.harrisToleranceRatio_ = harrisToleranceRatio_;
4105 to_bitField0_ |= 0x00000200;
4107 if (((from_bitField0_ & 0x00000400) != 0)) {
4108 result.smallPivotThreshold_ = smallPivotThreshold_;
4109 to_bitField0_ |= 0x00000400;
4111 if (((from_bitField0_ & 0x00000800) != 0)) {
4112 result.minimumAcceptablePivot_ = minimumAcceptablePivot_;
4113 to_bitField0_ |= 0x00000800;
4115 if (((from_bitField0_ & 0x00001000) != 0)) {
4116 result.dropTolerance_ = dropTolerance_;
4117 to_bitField0_ |= 0x00001000;
4119 if (((from_bitField0_ & 0x00002000) != 0)) {
4120 result.useScaling_ = useScaling_;
4121 to_bitField0_ |= 0x00002000;
4123 if (((from_bitField0_ & 0x00004000) != 0)) {
4124 result.costScaling_ = costScaling_;
4125 to_bitField0_ |= 0x00004000;
4127 if (((from_bitField0_ & 0x00008000) != 0)) {
4128 result.initialBasis_ = initialBasis_;
4129 to_bitField0_ |= 0x00008000;
4131 if (((from_bitField0_ & 0x00010000) != 0)) {
4132 result.useTransposedMatrix_ = useTransposedMatrix_;
4133 to_bitField0_ |= 0x00010000;
4135 if (((from_bitField0_ & 0x00020000) != 0)) {
4136 result.basisRefactorizationPeriod_ = basisRefactorizationPeriod_;
4137 to_bitField0_ |= 0x00020000;
4139 if (((from_bitField0_ & 0x00040000) != 0)) {
4140 result.dynamicallyAdjustRefactorizationPeriod_ = dynamicallyAdjustRefactorizationPeriod_;
4141 to_bitField0_ |= 0x00040000;
4143 if (((from_bitField0_ & 0x00080000) != 0)) {
4144 result.solveDualProblem_ = solveDualProblem_;
4145 to_bitField0_ |= 0x00080000;
4147 if (((from_bitField0_ & 0x00100000) != 0)) {
4148 result.dualizerThreshold_ = dualizerThreshold_;
4149 to_bitField0_ |= 0x00100000;
4151 if (((from_bitField0_ & 0x00200000) != 0)) {
4152 result.solutionFeasibilityTolerance_ = solutionFeasibilityTolerance_;
4153 to_bitField0_ |= 0x00200000;
4155 if (((from_bitField0_ & 0x00400000) != 0)) {
4156 result.provideStrongOptimalGuarantee_ = provideStrongOptimalGuarantee_;
4157 to_bitField0_ |= 0x00400000;
4159 if (((from_bitField0_ & 0x00800000) != 0)) {
4160 result.changeStatusToImprecise_ = changeStatusToImprecise_;
4161 to_bitField0_ |= 0x00800000;
4163 if (((from_bitField0_ & 0x01000000) != 0)) {
4164 result.maxNumberOfReoptimizations_ = maxNumberOfReoptimizations_;
4165 to_bitField0_ |= 0x01000000;
4167 if (((from_bitField0_ & 0x02000000) != 0)) {
4168 result.luFactorizationPivotThreshold_ = luFactorizationPivotThreshold_;
4169 to_bitField0_ |= 0x02000000;
4171 if (((from_bitField0_ & 0x04000000) != 0)) {
4172 result.maxTimeInSeconds_ = maxTimeInSeconds_;
4173 to_bitField0_ |= 0x04000000;
4175 if (((from_bitField0_ & 0x08000000) != 0)) {
4176 result.maxDeterministicTime_ = maxDeterministicTime_;
4177 to_bitField0_ |= 0x08000000;
4179 if (((from_bitField0_ & 0x10000000) != 0)) {
4180 result.maxNumberOfIterations_ = maxNumberOfIterations_;
4181 to_bitField0_ |= 0x10000000;
4183 if (((from_bitField0_ & 0x20000000) != 0)) {
4184 result.markowitzZlatevParameter_ = markowitzZlatevParameter_;
4185 to_bitField0_ |= 0x20000000;
4187 if (((from_bitField0_ & 0x40000000) != 0)) {
4188 result.markowitzSingularityThreshold_ = markowitzSingularityThreshold_;
4189 to_bitField0_ |= 0x40000000;
4191 if (((from_bitField0_ & 0x80000000) != 0)) {
4192 result.useDualSimplex_ = useDualSimplex_;
4193 to_bitField0_ |= 0x80000000;
4195 result.bitField0_ |= to_bitField0_;
4198 private void buildPartial1(com.google.ortools.glop.GlopParameters result) {
4199 int from_bitField1_ = bitField1_;
4200 int to_bitField1_ = 0;
4201 if (((from_bitField1_ & 0x00000001) != 0)) {
4202 result.allowSimplexAlgorithmChange_ = allowSimplexAlgorithmChange_;
4203 to_bitField1_ |= 0x00000001;
4205 if (((from_bitField1_ & 0x00000002) != 0)) {
4206 result.devexWeightsResetPeriod_ = devexWeightsResetPeriod_;
4207 to_bitField1_ |= 0x00000002;
4209 if (((from_bitField1_ & 0x00000004) != 0)) {
4210 result.usePreprocessing_ = usePreprocessing_;
4211 to_bitField1_ |= 0x00000004;
4213 if (((from_bitField1_ & 0x00000008) != 0)) {
4214 result.useMiddleProductFormUpdate_ = useMiddleProductFormUpdate_;
4215 to_bitField1_ |= 0x00000008;
4217 if (((from_bitField1_ & 0x00000010) != 0)) {
4218 result.initializeDevexWithColumnNorms_ = initializeDevexWithColumnNorms_;
4219 to_bitField1_ |= 0x00000010;
4221 if (((from_bitField1_ & 0x00000020) != 0)) {
4222 result.exploitSingletonColumnInInitialBasis_ = exploitSingletonColumnInInitialBasis_;
4223 to_bitField1_ |= 0x00000020;
4225 if (((from_bitField1_ & 0x00000040) != 0)) {
4226 result.dualSmallPivotThreshold_ = dualSmallPivotThreshold_;
4227 to_bitField1_ |= 0x00000040;
4229 if (((from_bitField1_ & 0x00000080) != 0)) {
4230 result.preprocessorZeroTolerance_ = preprocessorZeroTolerance_;
4231 to_bitField1_ |= 0x00000080;
4233 if (((from_bitField1_ & 0x00000100) != 0)) {
4234 result.objectiveLowerLimit_ = objectiveLowerLimit_;
4235 to_bitField1_ |= 0x00000100;
4237 if (((from_bitField1_ & 0x00000200) != 0)) {
4238 result.objectiveUpperLimit_ = objectiveUpperLimit_;
4239 to_bitField1_ |= 0x00000200;
4241 if (((from_bitField1_ & 0x00000400) != 0)) {
4242 result.degenerateMinistepFactor_ = degenerateMinistepFactor_;
4243 to_bitField1_ |= 0x00000400;
4245 if (((from_bitField1_ & 0x00000800) != 0)) {
4246 result.randomSeed_ = randomSeed_;
4247 to_bitField1_ |= 0x00000800;
4249 if (((from_bitField1_ & 0x00001000) != 0)) {
4250 result.numOmpThreads_ = numOmpThreads_;
4251 to_bitField1_ |= 0x00001000;
4253 if (((from_bitField1_ & 0x00002000) != 0)) {
4254 result.perturbCostsInDualSimplex_ = perturbCostsInDualSimplex_;
4255 to_bitField1_ |= 0x00002000;
4257 if (((from_bitField1_ & 0x00004000) != 0)) {
4258 result.useDedicatedDualFeasibilityAlgorithm_ = useDedicatedDualFeasibilityAlgorithm_;
4259 to_bitField1_ |= 0x00004000;
4261 if (((from_bitField1_ & 0x00008000) != 0)) {
4262 result.relativeCostPerturbation_ = relativeCostPerturbation_;
4263 to_bitField1_ |= 0x00008000;
4265 if (((from_bitField1_ & 0x00010000) != 0)) {
4266 result.relativeMaxCostPerturbation_ = relativeMaxCostPerturbation_;
4267 to_bitField1_ |= 0x00010000;
4269 if (((from_bitField1_ & 0x00020000) != 0)) {
4270 result.initialConditionNumberThreshold_ = initialConditionNumberThreshold_;
4271 to_bitField1_ |= 0x00020000;
4273 if (((from_bitField1_ & 0x00040000) != 0)) {
4274 result.logSearchProgress_ = logSearchProgress_;
4275 to_bitField1_ |= 0x00040000;
4277 if (((from_bitField1_ & 0x00080000) != 0)) {
4278 result.logToStdout_ = logToStdout_;
4279 to_bitField1_ |= 0x00080000;
4281 if (((from_bitField1_ & 0x00100000) != 0)) {
4282 result.crossoverBoundSnappingDistance_ = crossoverBoundSnappingDistance_;
4283 to_bitField1_ |= 0x00100000;
4285 if (((from_bitField1_ & 0x00200000) != 0)) {
4286 result.pushToVertex_ = pushToVertex_;
4287 to_bitField1_ |= 0x00200000;
4289 if (((from_bitField1_ & 0x00400000) != 0)) {
4290 result.useImpliedFreePreprocessor_ = useImpliedFreePreprocessor_;
4291 to_bitField1_ |= 0x00400000;
4293 if (((from_bitField1_ & 0x00800000) != 0)) {
4294 result.maxValidMagnitude_ = maxValidMagnitude_;
4295 to_bitField1_ |= 0x00800000;
4297 if (((from_bitField1_ & 0x01000000) != 0)) {
4298 result.dropMagnitude_ = dropMagnitude_;
4299 to_bitField1_ |= 0x01000000;
4301 if (((from_bitField1_ & 0x02000000) != 0)) {
4302 result.dualPricePrioritizeNorm_ = dualPricePrioritizeNorm_;
4303 to_bitField1_ |= 0x02000000;
4305 result.bitField1_ |= to_bitField1_;
4309 public Builder
mergeFrom(com.google.protobuf.Message other) {
4310 if (other instanceof com.google.ortools.glop.GlopParameters) {
4311 return mergeFrom((com.google.ortools.glop.GlopParameters)other);
4313 super.mergeFrom(other);
4318 public Builder
mergeFrom(com.google.ortools.glop.GlopParameters other) {
4319 if (other == com.google.ortools.glop.GlopParameters.getDefaultInstance())
return this;
4320 if (other.hasScalingMethod()) {
4323 if (other.hasFeasibilityRule()) {
4326 if (other.hasOptimizationRule()) {
4329 if (other.hasRefactorizationThreshold()) {
4332 if (other.hasRecomputeReducedCostsThreshold()) {
4335 if (other.hasRecomputeEdgesNormThreshold()) {
4338 if (other.hasPrimalFeasibilityTolerance()) {
4341 if (other.hasDualFeasibilityTolerance()) {
4344 if (other.hasRatioTestZeroThreshold()) {
4347 if (other.hasHarrisToleranceRatio()) {
4350 if (other.hasSmallPivotThreshold()) {
4353 if (other.hasMinimumAcceptablePivot()) {
4356 if (other.hasDropTolerance()) {
4359 if (other.hasUseScaling()) {
4362 if (other.hasCostScaling()) {
4365 if (other.hasInitialBasis()) {
4368 if (other.hasUseTransposedMatrix()) {
4371 if (other.hasBasisRefactorizationPeriod()) {
4374 if (other.hasDynamicallyAdjustRefactorizationPeriod()) {
4377 if (other.hasSolveDualProblem()) {
4380 if (other.hasDualizerThreshold()) {
4383 if (other.hasSolutionFeasibilityTolerance()) {
4386 if (other.hasProvideStrongOptimalGuarantee()) {
4389 if (other.hasChangeStatusToImprecise()) {
4392 if (other.hasMaxNumberOfReoptimizations()) {
4395 if (other.hasLuFactorizationPivotThreshold()) {
4398 if (other.hasMaxTimeInSeconds()) {
4401 if (other.hasMaxDeterministicTime()) {
4404 if (other.hasMaxNumberOfIterations()) {
4407 if (other.hasMarkowitzZlatevParameter()) {
4410 if (other.hasMarkowitzSingularityThreshold()) {
4413 if (other.hasUseDualSimplex()) {
4416 if (other.hasAllowSimplexAlgorithmChange()) {
4419 if (other.hasDevexWeightsResetPeriod()) {
4422 if (other.hasUsePreprocessing()) {
4425 if (other.hasUseMiddleProductFormUpdate()) {
4428 if (other.hasInitializeDevexWithColumnNorms()) {
4431 if (other.hasExploitSingletonColumnInInitialBasis()) {
4434 if (other.hasDualSmallPivotThreshold()) {
4437 if (other.hasPreprocessorZeroTolerance()) {
4440 if (other.hasObjectiveLowerLimit()) {
4443 if (other.hasObjectiveUpperLimit()) {
4446 if (other.hasDegenerateMinistepFactor()) {
4449 if (other.hasRandomSeed()) {
4452 if (other.hasNumOmpThreads()) {
4455 if (other.hasPerturbCostsInDualSimplex()) {
4458 if (other.hasUseDedicatedDualFeasibilityAlgorithm()) {
4461 if (other.hasRelativeCostPerturbation()) {
4464 if (other.hasRelativeMaxCostPerturbation()) {
4467 if (other.hasInitialConditionNumberThreshold()) {
4470 if (other.hasLogSearchProgress()) {
4473 if (other.hasLogToStdout()) {
4476 if (other.hasCrossoverBoundSnappingDistance()) {
4479 if (other.hasPushToVertex()) {
4482 if (other.hasUseImpliedFreePreprocessor()) {
4485 if (other.hasMaxValidMagnitude()) {
4488 if (other.hasDropMagnitude()) {
4491 if (other.hasDualPricePrioritizeNorm()) {
4494 this.mergeUnknownFields(other.getUnknownFields());
4506 com.google.protobuf.CodedInputStream input,
4507 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4508 throws java.io.IOException {
4509 if (extensionRegistry ==
null) {
4510 throw new java.lang.NullPointerException();
4513 boolean done =
false;
4515 int tag = input.readTag();
4521 int tmpRaw = input.readEnum();
4523 com.google.ortools.glop.GlopParameters.PricingRule.forNumber(tmpRaw);
4524 if (tmpValue ==
null) {
4525 mergeUnknownVarintField(1, tmpRaw);
4527 feasibilityRule_ = tmpRaw;
4528 bitField0_ |= 0x00000002;
4533 int tmpRaw = input.readEnum();
4535 com.google.ortools.glop.GlopParameters.PricingRule.forNumber(tmpRaw);
4536 if (tmpValue ==
null) {
4537 mergeUnknownVarintField(2, tmpRaw);
4539 optimizationRule_ = tmpRaw;
4540 bitField0_ |= 0x00000004;
4545 refactorizationThreshold_ = input.readDouble();
4546 bitField0_ |= 0x00000008;
4550 recomputeReducedCostsThreshold_ = input.readDouble();
4551 bitField0_ |= 0x00000010;
4555 recomputeEdgesNormThreshold_ = input.readDouble();
4556 bitField0_ |= 0x00000020;
4560 primalFeasibilityTolerance_ = input.readDouble();
4561 bitField0_ |= 0x00000040;
4565 dualFeasibilityTolerance_ = input.readDouble();
4566 bitField0_ |= 0x00000080;
4570 ratioTestZeroThreshold_ = input.readDouble();
4571 bitField0_ |= 0x00000100;
4575 harrisToleranceRatio_ = input.readDouble();
4576 bitField0_ |= 0x00000200;
4580 smallPivotThreshold_ = input.readDouble();
4581 bitField0_ |= 0x00000400;
4585 minimumAcceptablePivot_ = input.readDouble();
4586 bitField0_ |= 0x00000800;
4590 useScaling_ = input.readBool();
4591 bitField0_ |= 0x00002000;
4595 int tmpRaw = input.readEnum();
4597 com.google.ortools.glop.GlopParameters.InitialBasisHeuristic.forNumber(tmpRaw);
4598 if (tmpValue ==
null) {
4599 mergeUnknownVarintField(17, tmpRaw);
4601 initialBasis_ = tmpRaw;
4602 bitField0_ |= 0x00008000;
4607 useTransposedMatrix_ = input.readBool();
4608 bitField0_ |= 0x00010000;
4612 basisRefactorizationPeriod_ = input.readInt32();
4613 bitField0_ |= 0x00020000;
4617 int tmpRaw = input.readEnum();
4619 com.google.ortools.glop.GlopParameters.SolverBehavior.forNumber(tmpRaw);
4620 if (tmpValue ==
null) {
4621 mergeUnknownVarintField(20, tmpRaw);
4623 solveDualProblem_ = tmpRaw;
4624 bitField0_ |= 0x00080000;
4629 dualizerThreshold_ = input.readDouble();
4630 bitField0_ |= 0x00100000;
4634 solutionFeasibilityTolerance_ = input.readDouble();
4635 bitField0_ |= 0x00200000;
4639 provideStrongOptimalGuarantee_ = input.readBool();
4640 bitField0_ |= 0x00400000;
4644 luFactorizationPivotThreshold_ = input.readDouble();
4645 bitField0_ |= 0x02000000;
4649 maxTimeInSeconds_ = input.readDouble();
4650 bitField0_ |= 0x04000000;
4654 maxNumberOfIterations_ = input.readInt64();
4655 bitField0_ |= 0x10000000;
4659 markowitzZlatevParameter_ = input.readInt32();
4660 bitField0_ |= 0x20000000;
4664 markowitzSingularityThreshold_ = input.readDouble();
4665 bitField0_ |= 0x40000000;
4669 useDualSimplex_ = input.readBool();
4670 bitField0_ |= 0x80000000;
4674 allowSimplexAlgorithmChange_ = input.readBool();
4675 bitField1_ |= 0x00000001;
4679 devexWeightsResetPeriod_ = input.readInt32();
4680 bitField1_ |= 0x00000002;
4684 usePreprocessing_ = input.readBool();
4685 bitField1_ |= 0x00000004;
4689 useMiddleProductFormUpdate_ = input.readBool();
4690 bitField1_ |= 0x00000008;
4694 initializeDevexWithColumnNorms_ = input.readBool();
4695 bitField1_ |= 0x00000010;
4699 exploitSingletonColumnInInitialBasis_ = input.readBool();
4700 bitField1_ |= 0x00000020;
4704 dualSmallPivotThreshold_ = input.readDouble();
4705 bitField1_ |= 0x00000040;
4709 preprocessorZeroTolerance_ = input.readDouble();
4710 bitField1_ |= 0x00000080;
4714 objectiveLowerLimit_ = input.readDouble();
4715 bitField1_ |= 0x00000100;
4719 objectiveUpperLimit_ = input.readDouble();
4720 bitField1_ |= 0x00000200;
4724 degenerateMinistepFactor_ = input.readDouble();
4725 bitField1_ |= 0x00000400;
4729 randomSeed_ = input.readInt32();
4730 bitField1_ |= 0x00000800;
4734 numOmpThreads_ = input.readInt32();
4735 bitField1_ |= 0x00001000;
4739 maxDeterministicTime_ = input.readDouble();
4740 bitField0_ |= 0x08000000;
4744 dropTolerance_ = input.readDouble();
4745 bitField0_ |= 0x00001000;
4749 perturbCostsInDualSimplex_ = input.readBool();
4750 bitField1_ |= 0x00002000;
4754 relativeCostPerturbation_ = input.readDouble();
4755 bitField1_ |= 0x00008000;
4759 relativeMaxCostPerturbation_ = input.readDouble();
4760 bitField1_ |= 0x00010000;
4764 maxNumberOfReoptimizations_ = input.readDouble();
4765 bitField0_ |= 0x01000000;
4769 int tmpRaw = input.readEnum();
4771 com.google.ortools.glop.GlopParameters.ScalingAlgorithm.forNumber(tmpRaw);
4772 if (tmpValue ==
null) {
4773 mergeUnknownVarintField(57, tmpRaw);
4775 scalingMethod_ = tmpRaw;
4776 bitField0_ |= 0x00000001;
4781 changeStatusToImprecise_ = input.readBool();
4782 bitField0_ |= 0x00800000;
4786 initialConditionNumberThreshold_ = input.readDouble();
4787 bitField1_ |= 0x00020000;
4791 int tmpRaw = input.readEnum();
4793 com.google.ortools.glop.GlopParameters.CostScalingAlgorithm.forNumber(tmpRaw);
4794 if (tmpValue ==
null) {
4795 mergeUnknownVarintField(60, tmpRaw);
4797 costScaling_ = tmpRaw;
4798 bitField0_ |= 0x00004000;
4803 logSearchProgress_ = input.readBool();
4804 bitField1_ |= 0x00040000;
4808 useDedicatedDualFeasibilityAlgorithm_ = input.readBool();
4809 bitField1_ |= 0x00004000;
4813 dynamicallyAdjustRefactorizationPeriod_ = input.readBool();
4814 bitField0_ |= 0x00040000;
4818 crossoverBoundSnappingDistance_ = input.readDouble();
4819 bitField1_ |= 0x00100000;
4823 pushToVertex_ = input.readBool();
4824 bitField1_ |= 0x00200000;
4828 logToStdout_ = input.readBool();
4829 bitField1_ |= 0x00080000;
4833 useImpliedFreePreprocessor_ = input.readBool();
4834 bitField1_ |= 0x00400000;
4838 dualPricePrioritizeNorm_ = input.readBool();
4839 bitField1_ |= 0x02000000;
4843 maxValidMagnitude_ = input.readDouble();
4844 bitField1_ |= 0x00800000;
4848 dropMagnitude_ = input.readDouble();
4849 bitField1_ |= 0x01000000;
4853 if (!super.parseUnknownField(input, extensionRegistry, tag)) {
4860 }
catch (com.google.protobuf.InvalidProtocolBufferException e) {
4861 throw e.unwrapIOException();
4867 private int bitField0_;
4868 private int bitField1_;
4870 private int scalingMethod_ = 1;
4876 return ((bitField0_ & 0x00000001) != 0);
4892 public Builder
setScalingMethod(com.google.ortools.glop.GlopParameters.ScalingAlgorithm value) {
4893 if (value ==
null) {
4894 throw new NullPointerException();
4896 bitField0_ |= 0x00000001;
4897 scalingMethod_ = value.getNumber();
4906 bitField0_ = (bitField0_ & ~0x00000001);
4912 private int feasibilityRule_ = 1;
4922 return ((bitField0_ & 0x00000002) != 0);
4947 if (value ==
null) {
4948 throw new NullPointerException();
4950 bitField0_ |= 0x00000002;
4951 feasibilityRule_ = value.getNumber();
4964 bitField0_ = (bitField0_ & ~0x00000002);
4965 feasibilityRule_ = 1;
4970 private int optimizationRule_ = 1;
4980 return ((bitField0_ & 0x00000004) != 0);
5005 if (value ==
null) {
5006 throw new NullPointerException();
5008 bitField0_ |= 0x00000004;
5009 optimizationRule_ = value.getNumber();
5022 bitField0_ = (bitField0_ & ~0x00000004);
5023 optimizationRule_ = 1;
5028 private double refactorizationThreshold_ = 1e-09D;
5044 return ((bitField0_ & 0x00000008) != 0);
5061 return refactorizationThreshold_;
5079 refactorizationThreshold_ = value;
5080 bitField0_ |= 0x00000008;
5098 bitField0_ = (bitField0_ & ~0x00000008);
5099 refactorizationThreshold_ = 1e-09D;
5104 private double recomputeReducedCostsThreshold_ = 1e-08D;
5119 return ((bitField0_ & 0x00000010) != 0);
5135 return recomputeReducedCostsThreshold_;
5152 recomputeReducedCostsThreshold_ = value;
5153 bitField0_ |= 0x00000010;
5170 bitField0_ = (bitField0_ & ~0x00000010);
5171 recomputeReducedCostsThreshold_ = 1e-08D;
5176 private double recomputeEdgesNormThreshold_ = 100D;
5191 return ((bitField0_ & 0x00000020) != 0);
5207 return recomputeEdgesNormThreshold_;
5224 recomputeEdgesNormThreshold_ = value;
5225 bitField0_ |= 0x00000020;
5242 bitField0_ = (bitField0_ & ~0x00000020);
5243 recomputeEdgesNormThreshold_ = 100D;
5248 private double primalFeasibilityTolerance_ = 1e-08D;
5265 return ((bitField0_ & 0x00000040) != 0);
5283 return primalFeasibilityTolerance_;
5302 primalFeasibilityTolerance_ = value;
5303 bitField0_ |= 0x00000040;
5322 bitField0_ = (bitField0_ & ~0x00000040);
5323 primalFeasibilityTolerance_ = 1e-08D;
5328 private double dualFeasibilityTolerance_ = 1e-08D;
5348 return ((bitField0_ & 0x00000080) != 0);
5369 return dualFeasibilityTolerance_;
5391 dualFeasibilityTolerance_ = value;
5392 bitField0_ |= 0x00000080;
5414 bitField0_ = (bitField0_ & ~0x00000080);
5415 dualFeasibilityTolerance_ = 1e-08D;
5420 private double ratioTestZeroThreshold_ = 1e-09D;
5437 return ((bitField0_ & 0x00000100) != 0);
5455 return ratioTestZeroThreshold_;
5474 ratioTestZeroThreshold_ = value;
5475 bitField0_ |= 0x00000100;
5494 bitField0_ = (bitField0_ & ~0x00000100);
5495 ratioTestZeroThreshold_ = 1e-09D;
5500 private double harrisToleranceRatio_ = 0.5D;
5521 return ((bitField0_ & 0x00000200) != 0);
5543 return harrisToleranceRatio_;
5566 harrisToleranceRatio_ = value;
5567 bitField0_ |= 0x00000200;
5590 bitField0_ = (bitField0_ & ~0x00000200);
5591 harrisToleranceRatio_ = 0.5D;
5596 private double smallPivotThreshold_ = 1e-06D;
5610 return ((bitField0_ & 0x00000400) != 0);
5625 return smallPivotThreshold_;
5641 smallPivotThreshold_ = value;
5642 bitField0_ |= 0x00000400;
5658 bitField0_ = (bitField0_ & ~0x00000400);
5659 smallPivotThreshold_ = 1e-06D;
5664 private double minimumAcceptablePivot_ = 1e-06D;
5675 return ((bitField0_ & 0x00000800) != 0);
5687 return minimumAcceptablePivot_;
5700 minimumAcceptablePivot_ = value;
5701 bitField0_ |= 0x00000800;
5714 bitField0_ = (bitField0_ & ~0x00000800);
5715 minimumAcceptablePivot_ = 1e-06D;
5720 private double dropTolerance_ = 1e-14D;
5733 return ((bitField0_ & 0x00001000) != 0);
5747 return dropTolerance_;
5762 dropTolerance_ = value;
5763 bitField0_ |= 0x00001000;
5778 bitField0_ = (bitField0_ & ~0x00001000);
5779 dropTolerance_ = 1e-14D;
5784 private boolean useScaling_ =
true;
5796 return ((bitField0_ & 0x00002000) != 0);
5823 useScaling_ = value;
5824 bitField0_ |= 0x00002000;
5838 bitField0_ = (bitField0_ & ~0x00002000);
5844 private int costScaling_ = 1;
5850 return ((bitField0_ & 0x00004000) != 0);
5866 public Builder
setCostScaling(com.google.ortools.glop.GlopParameters.CostScalingAlgorithm value) {
5867 if (value ==
null) {
5868 throw new NullPointerException();
5870 bitField0_ |= 0x00004000;
5871 costScaling_ = value.getNumber();
5880 bitField0_ = (bitField0_ & ~0x00004000);
5886 private int initialBasis_ = 2;
5897 return ((bitField0_ & 0x00008000) != 0);
5923 public Builder
setInitialBasis(com.google.ortools.glop.GlopParameters.InitialBasisHeuristic value) {
5924 if (value ==
null) {
5925 throw new NullPointerException();
5927 bitField0_ |= 0x00008000;
5928 initialBasis_ = value.getNumber();
5942 bitField0_ = (bitField0_ & ~0x00008000);
5948 private boolean useTransposedMatrix_ =
true;
5961 return ((bitField0_ & 0x00010000) != 0);
5975 return useTransposedMatrix_;
5990 useTransposedMatrix_ = value;
5991 bitField0_ |= 0x00010000;
6006 bitField0_ = (bitField0_ & ~0x00010000);
6007 useTransposedMatrix_ =
true;
6012 private int basisRefactorizationPeriod_ = 64;
6025 return ((bitField0_ & 0x00020000) != 0);
6039 return basisRefactorizationPeriod_;
6054 basisRefactorizationPeriod_ = value;
6055 bitField0_ |= 0x00020000;
6070 bitField0_ = (bitField0_ & ~0x00020000);
6071 basisRefactorizationPeriod_ = 64;
6076 private boolean dynamicallyAdjustRefactorizationPeriod_ =
true;
6091 return ((bitField0_ & 0x00040000) != 0);
6107 return dynamicallyAdjustRefactorizationPeriod_;
6124 dynamicallyAdjustRefactorizationPeriod_ = value;
6125 bitField0_ |= 0x00040000;
6142 bitField0_ = (bitField0_ & ~0x00040000);
6143 dynamicallyAdjustRefactorizationPeriod_ =
true;
6148 private int solveDualProblem_ = 2;
6160 return ((bitField0_ & 0x00080000) != 0);
6189 if (value ==
null) {
6190 throw new NullPointerException();
6192 bitField0_ |= 0x00080000;
6193 solveDualProblem_ = value.getNumber();
6208 bitField0_ = (bitField0_ & ~0x00080000);
6209 solveDualProblem_ = 2;
6214 private double dualizerThreshold_ = 1.5D;
6227 return ((bitField0_ & 0x00100000) != 0);
6241 return dualizerThreshold_;
6256 dualizerThreshold_ = value;
6257 bitField0_ |= 0x00100000;
6272 bitField0_ = (bitField0_ & ~0x00100000);
6273 dualizerThreshold_ = 1.5D;
6278 private double solutionFeasibilityTolerance_ = 1e-06D;
6296 return ((bitField0_ & 0x00200000) != 0);
6315 return solutionFeasibilityTolerance_;
6335 solutionFeasibilityTolerance_ = value;
6336 bitField0_ |= 0x00200000;
6356 bitField0_ = (bitField0_ & ~0x00200000);
6357 solutionFeasibilityTolerance_ = 1e-06D;
6362 private boolean provideStrongOptimalGuarantee_ =
true;
6390 return ((bitField0_ & 0x00400000) != 0);
6419 return provideStrongOptimalGuarantee_;
6449 provideStrongOptimalGuarantee_ = value;
6450 bitField0_ |= 0x00400000;
6480 bitField0_ = (bitField0_ & ~0x00400000);
6481 provideStrongOptimalGuarantee_ =
true;
6486 private boolean changeStatusToImprecise_ =
true;
6498 return ((bitField0_ & 0x00800000) != 0);
6511 return changeStatusToImprecise_;
6525 changeStatusToImprecise_ = value;
6526 bitField0_ |= 0x00800000;
6540 bitField0_ = (bitField0_ & ~0x00800000);
6541 changeStatusToImprecise_ =
true;
6546 private double maxNumberOfReoptimizations_ = 40D;
6560 return ((bitField0_ & 0x01000000) != 0);
6575 return maxNumberOfReoptimizations_;
6591 maxNumberOfReoptimizations_ = value;
6592 bitField0_ |= 0x01000000;
6608 bitField0_ = (bitField0_ & ~0x01000000);
6609 maxNumberOfReoptimizations_ = 40D;
6614 private double luFactorizationPivotThreshold_ = 0.01D;
6628 return ((bitField0_ & 0x02000000) != 0);
6643 return luFactorizationPivotThreshold_;
6659 luFactorizationPivotThreshold_ = value;
6660 bitField0_ |= 0x02000000;
6676 bitField0_ = (bitField0_ & ~0x02000000);
6677 luFactorizationPivotThreshold_ = 0.01D;
6682 private double maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
6693 return ((bitField0_ & 0x04000000) != 0);
6705 return maxTimeInSeconds_;
6718 maxTimeInSeconds_ = value;
6719 bitField0_ |= 0x04000000;
6732 bitField0_ = (bitField0_ & ~0x04000000);
6733 maxTimeInSeconds_ = Double.POSITIVE_INFINITY;
6738 private double maxDeterministicTime_ = Double.POSITIVE_INFINITY;
6753 return ((bitField0_ & 0x08000000) != 0);
6769 return maxDeterministicTime_;
6786 maxDeterministicTime_ = value;
6787 bitField0_ |= 0x08000000;
6804 bitField0_ = (bitField0_ & ~0x08000000);
6805 maxDeterministicTime_ = Double.POSITIVE_INFINITY;
6810 private long maxNumberOfIterations_ = -1L;
6822 return ((bitField0_ & 0x10000000) != 0);
6835 return maxNumberOfIterations_;
6849 maxNumberOfIterations_ = value;
6850 bitField0_ |= 0x10000000;
6864 bitField0_ = (bitField0_ & ~0x10000000);
6865 maxNumberOfIterations_ = -1L;
6870 private int markowitzZlatevParameter_ = 3;
6882 return ((bitField0_ & 0x20000000) != 0);
6895 return markowitzZlatevParameter_;
6909 markowitzZlatevParameter_ = value;
6910 bitField0_ |= 0x20000000;
6924 bitField0_ = (bitField0_ & ~0x20000000);
6925 markowitzZlatevParameter_ = 3;
6930 private double markowitzSingularityThreshold_ = 1e-15D;
6944 return ((bitField0_ & 0x40000000) != 0);
6959 return markowitzSingularityThreshold_;
6975 markowitzSingularityThreshold_ = value;
6976 bitField0_ |= 0x40000000;
6992 bitField0_ = (bitField0_ & ~0x40000000);
6993 markowitzSingularityThreshold_ = 1e-15D;
6998 private boolean useDualSimplex_ ;
7009 return ((bitField0_ & 0x80000000) != 0);
7021 return useDualSimplex_;
7034 useDualSimplex_ = value;
7035 bitField0_ |= 0x80000000;
7048 bitField0_ = (bitField0_ & ~0x80000000);
7049 useDualSimplex_ =
false;
7054 private boolean allowSimplexAlgorithmChange_ ;
7068 return ((bitField1_ & 0x00000001) != 0);
7083 return allowSimplexAlgorithmChange_;
7099 allowSimplexAlgorithmChange_ = value;
7100 bitField1_ |= 0x00000001;
7116 bitField1_ = (bitField1_ & ~0x00000001);
7117 allowSimplexAlgorithmChange_ =
false;
7122 private int devexWeightsResetPeriod_ = 150;
7133 return ((bitField1_ & 0x00000002) != 0);
7145 return devexWeightsResetPeriod_;
7158 devexWeightsResetPeriod_ = value;
7159 bitField1_ |= 0x00000002;
7172 bitField1_ = (bitField1_ & ~0x00000002);
7173 devexWeightsResetPeriod_ = 150;
7178 private boolean usePreprocessing_ =
true;
7189 return ((bitField1_ & 0x00000004) != 0);
7201 return usePreprocessing_;
7214 usePreprocessing_ = value;
7215 bitField1_ |= 0x00000004;
7228 bitField1_ = (bitField1_ & ~0x00000004);
7229 usePreprocessing_ =
true;
7234 private boolean useMiddleProductFormUpdate_ =
true;
7251 return ((bitField1_ & 0x00000008) != 0);
7269 return useMiddleProductFormUpdate_;
7288 useMiddleProductFormUpdate_ = value;
7289 bitField1_ |= 0x00000008;
7308 bitField1_ = (bitField1_ & ~0x00000008);
7309 useMiddleProductFormUpdate_ =
true;
7314 private boolean initializeDevexWithColumnNorms_ =
true;
7326 return ((bitField1_ & 0x00000010) != 0);
7339 return initializeDevexWithColumnNorms_;
7353 initializeDevexWithColumnNorms_ = value;
7354 bitField1_ |= 0x00000010;
7368 bitField1_ = (bitField1_ & ~0x00000010);
7369 initializeDevexWithColumnNorms_ =
true;
7374 private boolean exploitSingletonColumnInInitialBasis_ =
true;
7386 return ((bitField1_ & 0x00000020) != 0);
7399 return exploitSingletonColumnInInitialBasis_;
7413 exploitSingletonColumnInInitialBasis_ = value;
7414 bitField1_ |= 0x00000020;
7428 bitField1_ = (bitField1_ & ~0x00000020);
7429 exploitSingletonColumnInInitialBasis_ =
true;
7434 private double dualSmallPivotThreshold_ = 0.0001D;
7447 return ((bitField1_ & 0x00000040) != 0);
7461 return dualSmallPivotThreshold_;
7476 dualSmallPivotThreshold_ = value;
7477 bitField1_ |= 0x00000040;
7492 bitField1_ = (bitField1_ & ~0x00000040);
7493 dualSmallPivotThreshold_ = 0.0001D;
7498 private double preprocessorZeroTolerance_ = 1e-09D;
7514 return ((bitField1_ & 0x00000080) != 0);
7531 return preprocessorZeroTolerance_;
7549 preprocessorZeroTolerance_ = value;
7550 bitField1_ |= 0x00000080;
7568 bitField1_ = (bitField1_ & ~0x00000080);
7569 preprocessorZeroTolerance_ = 1e-09D;
7574 private double objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
7593 return ((bitField1_ & 0x00000100) != 0);
7613 return objectiveLowerLimit_;
7634 objectiveLowerLimit_ = value;
7635 bitField1_ |= 0x00000100;
7656 bitField1_ = (bitField1_ & ~0x00000100);
7657 objectiveLowerLimit_ = Double.NEGATIVE_INFINITY;
7662 private double objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
7669 return ((bitField1_ & 0x00000200) != 0);
7677 return objectiveUpperLimit_;
7686 objectiveUpperLimit_ = value;
7687 bitField1_ |= 0x00000200;
7696 bitField1_ = (bitField1_ & ~0x00000200);
7697 objectiveUpperLimit_ = Double.POSITIVE_INFINITY;
7702 private double degenerateMinistepFactor_ = 0.01D;
7730 return ((bitField1_ & 0x00000400) != 0);
7759 return degenerateMinistepFactor_;
7789 degenerateMinistepFactor_ = value;
7790 bitField1_ |= 0x00000400;
7820 bitField1_ = (bitField1_ & ~0x00000400);
7821 degenerateMinistepFactor_ = 0.01D;
7826 private int randomSeed_ = 1;
7851 return ((bitField1_ & 0x00000800) != 0);
7904 randomSeed_ = value;
7905 bitField1_ |= 0x00000800;
7932 bitField1_ = (bitField1_ & ~0x00000800);
7938 private int numOmpThreads_ = 1;
7950 return ((bitField1_ & 0x00001000) != 0);
7963 return numOmpThreads_;
7977 numOmpThreads_ = value;
7978 bitField1_ |= 0x00001000;
7992 bitField1_ = (bitField1_ & ~0x00001000);
7998 private boolean perturbCostsInDualSimplex_ ;
8012 return ((bitField1_ & 0x00002000) != 0);
8027 return perturbCostsInDualSimplex_;
8043 perturbCostsInDualSimplex_ = value;
8044 bitField1_ |= 0x00002000;
8060 bitField1_ = (bitField1_ & ~0x00002000);
8061 perturbCostsInDualSimplex_ =
false;
8066 private boolean useDedicatedDualFeasibilityAlgorithm_ =
true;
8084 return ((bitField1_ & 0x00004000) != 0);
8103 return useDedicatedDualFeasibilityAlgorithm_;
8123 useDedicatedDualFeasibilityAlgorithm_ = value;
8124 bitField1_ |= 0x00004000;
8144 bitField1_ = (bitField1_ & ~0x00004000);
8145 useDedicatedDualFeasibilityAlgorithm_ =
true;
8150 private double relativeCostPerturbation_ = 1e-05D;
8164 return ((bitField1_ & 0x00008000) != 0);
8179 return relativeCostPerturbation_;
8195 relativeCostPerturbation_ = value;
8196 bitField1_ |= 0x00008000;
8212 bitField1_ = (bitField1_ & ~0x00008000);
8213 relativeCostPerturbation_ = 1e-05D;
8218 private double relativeMaxCostPerturbation_ = 1e-07D;
8225 return ((bitField1_ & 0x00010000) != 0);
8233 return relativeMaxCostPerturbation_;
8242 relativeMaxCostPerturbation_ = value;
8243 bitField1_ |= 0x00010000;
8252 bitField1_ = (bitField1_ & ~0x00010000);
8253 relativeMaxCostPerturbation_ = 1e-07D;
8258 private double initialConditionNumberThreshold_ = 1e+50D;
8271 return ((bitField1_ & 0x00020000) != 0);
8285 return initialConditionNumberThreshold_;
8300 initialConditionNumberThreshold_ = value;
8301 bitField1_ |= 0x00020000;
8316 bitField1_ = (bitField1_ & ~0x00020000);
8317 initialConditionNumberThreshold_ = 1e+50D;
8322 private boolean logSearchProgress_ ;
8335 return ((bitField1_ & 0x00040000) != 0);
8349 return logSearchProgress_;
8364 logSearchProgress_ = value;
8365 bitField1_ |= 0x00040000;
8380 bitField1_ = (bitField1_ & ~0x00040000);
8381 logSearchProgress_ =
false;
8386 private boolean logToStdout_ =
true;
8397 return ((bitField1_ & 0x00080000) != 0);
8409 return logToStdout_;
8422 logToStdout_ = value;
8423 bitField1_ |= 0x00080000;
8436 bitField1_ = (bitField1_ & ~0x00080000);
8437 logToStdout_ =
true;
8442 private double crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
8467 return ((bitField1_ & 0x00100000) != 0);
8493 return crossoverBoundSnappingDistance_;
8520 crossoverBoundSnappingDistance_ = value;
8521 bitField1_ |= 0x00100000;
8548 bitField1_ = (bitField1_ & ~0x00100000);
8549 crossoverBoundSnappingDistance_ = Double.POSITIVE_INFINITY;
8554 private boolean pushToVertex_ =
true;
8570 return ((bitField1_ & 0x00200000) != 0);
8587 return pushToVertex_;
8605 pushToVertex_ = value;
8606 bitField1_ |= 0x00200000;
8624 bitField1_ = (bitField1_ & ~0x00200000);
8625 pushToVertex_ =
true;
8630 private boolean useImpliedFreePreprocessor_ =
true;
8641 return ((bitField1_ & 0x00400000) != 0);
8653 return useImpliedFreePreprocessor_;
8666 useImpliedFreePreprocessor_ = value;
8667 bitField1_ |= 0x00400000;
8680 bitField1_ = (bitField1_ & ~0x00400000);
8681 useImpliedFreePreprocessor_ =
true;
8686 private double maxValidMagnitude_ = 1e+30D;
8702 return ((bitField1_ & 0x00800000) != 0);
8719 return maxValidMagnitude_;
8737 maxValidMagnitude_ = value;
8738 bitField1_ |= 0x00800000;
8756 bitField1_ = (bitField1_ & ~0x00800000);
8757 maxValidMagnitude_ = 1e+30D;
8762 private double dropMagnitude_ = 1e-30D;
8776 return ((bitField1_ & 0x01000000) != 0);
8791 return dropMagnitude_;
8807 dropMagnitude_ = value;
8808 bitField1_ |= 0x01000000;
8824 bitField1_ = (bitField1_ & ~0x01000000);
8825 dropMagnitude_ = 1e-30D;
8830 private boolean dualPricePrioritizeNorm_ ;
8842 return ((bitField1_ & 0x02000000) != 0);
8855 return dualPricePrioritizeNorm_;
8869 dualPricePrioritizeNorm_ = value;
8870 bitField1_ |= 0x02000000;
8884 bitField1_ = (bitField1_ & ~0x02000000);
8885 dualPricePrioritizeNorm_ =
false;
8896 DEFAULT_INSTANCE =
new com.google.ortools.glop.GlopParameters();
8900 return DEFAULT_INSTANCE;
8904 PARSER =
new com.google.protobuf.AbstractParser<
GlopParameters>() {
8907 com.google.protobuf.CodedInputStream input,
8908 com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8909 throws com.google.protobuf.InvalidProtocolBufferException {
8912 builder.mergeFrom(input, extensionRegistry);
8913 }
catch (com.google.protobuf.InvalidProtocolBufferException e) {
8914 throw e.setUnfinishedMessage(builder.buildPartial());
8915 }
catch (com.google.protobuf.UninitializedMessageException e) {
8916 throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
8917 }
catch (java.io.IOException e) {
8918 throw new com.google.protobuf.InvalidProtocolBufferException(e)
8919 .setUnfinishedMessage(builder.buildPartial());
8921 return builder.buildPartial();
8925 public static com.google.protobuf.Parser<GlopParameters>
parser() {
8936 return DEFAULT_INSTANCE;