public static final class PrimalDualHybridGradientParams.Builder extends com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder> implements PrimalDualHybridGradientParamsOrBuilder
Parameters for PrimalDualHybridGradient() in primal_dual_hybrid_gradient.h. While the defaults are generally good, it is usually worthwhile to perform a parameter sweep to find good settings for a particular family of problems. The following parameters should be considered for tuning: - restart_strategy (jointly with major_iteration_frequency) - primal_weight_update_smoothing (jointly with initial_primal_weight) - presolve_options.use_glop - l_inf_ruiz_iterations - l2_norm_rescaling In addition, tune num_threads to speed up the solve.Protobuf type
operations_research.pdlp.PrimalDualHybridGradientParams
Modifier and Type | Method and Description |
---|---|
PrimalDualHybridGradientParams.Builder |
addAllRandomProjectionSeeds(java.lang.Iterable<? extends java.lang.Integer> values)
Seeds for generating (pseudo-)random projections of iterates during
termination checks.
|
PrimalDualHybridGradientParams.Builder |
addRandomProjectionSeeds(int value)
Seeds for generating (pseudo-)random projections of iterates during
termination checks.
|
PrimalDualHybridGradientParams |
build() |
PrimalDualHybridGradientParams |
buildPartial() |
PrimalDualHybridGradientParams.Builder |
clear() |
PrimalDualHybridGradientParams.Builder |
clearAdaptiveLinesearchParameters()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18; |
PrimalDualHybridGradientParams.Builder |
clearDiagonalQpTrustRegionSolverTolerance()
The solve tolerance of the experimental trust region solver for diagonal
QPs, controlling the accuracy of binary search over a one-dimensional
scaling parameter.
|
PrimalDualHybridGradientParams.Builder |
clearHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
See
https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite
for a description of this flag.
|
PrimalDualHybridGradientParams.Builder |
clearInfiniteConstraintBoundThreshold()
Constraint bounds with absolute value at least this threshold are replaced
with infinities.
|
PrimalDualHybridGradientParams.Builder |
clearInitialPrimalWeight()
The initial value of the primal weight (i.e., the ratio of primal and dual
step sizes).
|
PrimalDualHybridGradientParams.Builder |
clearInitialStepSizeScaling()
Scaling factor applied to the initial step size (all step sizes if
linesearch_rule == CONSTANT_STEP_SIZE_RULE).
|
PrimalDualHybridGradientParams.Builder |
clearL2NormRescaling()
If true, applies L_2 norm rescaling after the Ruiz rescaling.
|
PrimalDualHybridGradientParams.Builder |
clearLinesearchRule()
Linesearch rule applied at each major iteration.
|
PrimalDualHybridGradientParams.Builder |
clearLInfRuizIterations()
Number of L_infinity Ruiz rescaling iterations to apply to the constraint
matrix.
|
PrimalDualHybridGradientParams.Builder |
clearLogIntervalSeconds()
Time between iteration-level statistics logging (if `verbosity_level > 1`).
|
PrimalDualHybridGradientParams.Builder |
clearMajorIterationFrequency()
The frequency at which extra work is performed to make major algorithmic
decisions, e.g., performing restarts and updating the primal weight.
|
PrimalDualHybridGradientParams.Builder |
clearMalitskyPockParameters()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19; |
PrimalDualHybridGradientParams.Builder |
clearNecessaryReductionForRestart()
For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function
by this amount triggers a restart if, additionally, the quality of the
iterates appears to be getting worse.
|
PrimalDualHybridGradientParams.Builder |
clearNumShards()
For more efficient parallel computation, the matrices and vectors are
divided (virtually) into num_shards shards.
|
PrimalDualHybridGradientParams.Builder |
clearNumThreads()
The number of threads to use.
|
PrimalDualHybridGradientParams.Builder |
clearPresolveOptions()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16; |
PrimalDualHybridGradientParams.Builder |
clearPrimalWeightUpdateSmoothing()
This parameter controls exponential smoothing of log(primal_weight) when a
primal weight update occurs (i.e., when the ratio of primal and dual step
sizes is adjusted).
|
PrimalDualHybridGradientParams.Builder |
clearRandomProjectionSeeds()
Seeds for generating (pseudo-)random projections of iterates during
termination checks.
|
PrimalDualHybridGradientParams.Builder |
clearRecordIterationStats()
If true, the iteration_stats field of the SolveLog output will be populated
at every iteration.
|
PrimalDualHybridGradientParams.Builder |
clearRestartStrategy()
NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default.
|
PrimalDualHybridGradientParams.Builder |
clearSchedulerType()
The type of scheduler used for CPU multi-threading.
|
PrimalDualHybridGradientParams.Builder |
clearSufficientReductionForRestart()
For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative
reduction in the potential function by this amount always triggers a
restart.
|
PrimalDualHybridGradientParams.Builder |
clearTerminationCheckFrequency()
The frequency (based on a counter reset every major iteration) to check for
termination (involves extra work) and log iteration stats.
|
PrimalDualHybridGradientParams.Builder |
clearTerminationCriteria()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1; |
PrimalDualHybridGradientParams.Builder |
clearUseDiagonalQpTrustRegionSolver()
When solving QPs with diagonal objective matrices, this option can be
turned on to enable an experimental solver that avoids linearization of the
quadratic term.
|
PrimalDualHybridGradientParams.Builder |
clearUseFeasibilityPolishing()
If true, periodically runs feasibility polishing, which attempts to move
from latest average iterate to one that is closer to feasibility (i.e., has
smaller primal and dual residuals) while probably increasing the objective
gap.
|
PrimalDualHybridGradientParams.Builder |
clearVerbosityLevel()
The verbosity of logging.
0: No informational logging.
|
AdaptiveLinesearchParams |
getAdaptiveLinesearchParameters()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18; |
AdaptiveLinesearchParams.Builder |
getAdaptiveLinesearchParametersBuilder()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18; |
AdaptiveLinesearchParamsOrBuilder |
getAdaptiveLinesearchParametersOrBuilder()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18; |
PrimalDualHybridGradientParams |
getDefaultInstanceForType() |
static com.google.protobuf.Descriptors.Descriptor |
getDescriptor() |
com.google.protobuf.Descriptors.Descriptor |
getDescriptorForType() |
double |
getDiagonalQpTrustRegionSolverTolerance()
The solve tolerance of the experimental trust region solver for diagonal
QPs, controlling the accuracy of binary search over a one-dimensional
scaling parameter.
|
boolean |
getHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
See
https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite
for a description of this flag.
|
double |
getInfiniteConstraintBoundThreshold()
Constraint bounds with absolute value at least this threshold are replaced
with infinities.
|
double |
getInitialPrimalWeight()
The initial value of the primal weight (i.e., the ratio of primal and dual
step sizes).
|
double |
getInitialStepSizeScaling()
Scaling factor applied to the initial step size (all step sizes if
linesearch_rule == CONSTANT_STEP_SIZE_RULE).
|
boolean |
getL2NormRescaling()
If true, applies L_2 norm rescaling after the Ruiz rescaling.
|
PrimalDualHybridGradientParams.LinesearchRule |
getLinesearchRule()
Linesearch rule applied at each major iteration.
|
int |
getLInfRuizIterations()
Number of L_infinity Ruiz rescaling iterations to apply to the constraint
matrix.
|
double |
getLogIntervalSeconds()
Time between iteration-level statistics logging (if `verbosity_level > 1`).
|
int |
getMajorIterationFrequency()
The frequency at which extra work is performed to make major algorithmic
decisions, e.g., performing restarts and updating the primal weight.
|
MalitskyPockParams |
getMalitskyPockParameters()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19; |
MalitskyPockParams.Builder |
getMalitskyPockParametersBuilder()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19; |
MalitskyPockParamsOrBuilder |
getMalitskyPockParametersOrBuilder()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19; |
double |
getNecessaryReductionForRestart()
For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function
by this amount triggers a restart if, additionally, the quality of the
iterates appears to be getting worse.
|
int |
getNumShards()
For more efficient parallel computation, the matrices and vectors are
divided (virtually) into num_shards shards.
|
int |
getNumThreads()
The number of threads to use.
|
PrimalDualHybridGradientParams.PresolveOptions |
getPresolveOptions()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16; |
PrimalDualHybridGradientParams.PresolveOptions.Builder |
getPresolveOptionsBuilder()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16; |
PrimalDualHybridGradientParams.PresolveOptionsOrBuilder |
getPresolveOptionsOrBuilder()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16; |
double |
getPrimalWeightUpdateSmoothing()
This parameter controls exponential smoothing of log(primal_weight) when a
primal weight update occurs (i.e., when the ratio of primal and dual step
sizes is adjusted).
|
int |
getRandomProjectionSeeds(int index)
Seeds for generating (pseudo-)random projections of iterates during
termination checks.
|
int |
getRandomProjectionSeedsCount()
Seeds for generating (pseudo-)random projections of iterates during
termination checks.
|
java.util.List<java.lang.Integer> |
getRandomProjectionSeedsList()
Seeds for generating (pseudo-)random projections of iterates during
termination checks.
|
boolean |
getRecordIterationStats()
If true, the iteration_stats field of the SolveLog output will be populated
at every iteration.
|
PrimalDualHybridGradientParams.RestartStrategy |
getRestartStrategy()
NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default.
|
SchedulerType |
getSchedulerType()
The type of scheduler used for CPU multi-threading.
|
double |
getSufficientReductionForRestart()
For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative
reduction in the potential function by this amount always triggers a
restart.
|
int |
getTerminationCheckFrequency()
The frequency (based on a counter reset every major iteration) to check for
termination (involves extra work) and log iteration stats.
|
TerminationCriteria |
getTerminationCriteria()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1; |
TerminationCriteria.Builder |
getTerminationCriteriaBuilder()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1; |
TerminationCriteriaOrBuilder |
getTerminationCriteriaOrBuilder()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1; |
boolean |
getUseDiagonalQpTrustRegionSolver()
When solving QPs with diagonal objective matrices, this option can be
turned on to enable an experimental solver that avoids linearization of the
quadratic term.
|
boolean |
getUseFeasibilityPolishing()
If true, periodically runs feasibility polishing, which attempts to move
from latest average iterate to one that is closer to feasibility (i.e., has
smaller primal and dual residuals) while probably increasing the objective
gap.
|
int |
getVerbosityLevel()
The verbosity of logging.
0: No informational logging.
|
boolean |
hasAdaptiveLinesearchParameters()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18; |
boolean |
hasDiagonalQpTrustRegionSolverTolerance()
The solve tolerance of the experimental trust region solver for diagonal
QPs, controlling the accuracy of binary search over a one-dimensional
scaling parameter.
|
boolean |
hasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
See
https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite
for a description of this flag.
|
boolean |
hasInfiniteConstraintBoundThreshold()
Constraint bounds with absolute value at least this threshold are replaced
with infinities.
|
boolean |
hasInitialPrimalWeight()
The initial value of the primal weight (i.e., the ratio of primal and dual
step sizes).
|
boolean |
hasInitialStepSizeScaling()
Scaling factor applied to the initial step size (all step sizes if
linesearch_rule == CONSTANT_STEP_SIZE_RULE).
|
boolean |
hasL2NormRescaling()
If true, applies L_2 norm rescaling after the Ruiz rescaling.
|
boolean |
hasLinesearchRule()
Linesearch rule applied at each major iteration.
|
boolean |
hasLInfRuizIterations()
Number of L_infinity Ruiz rescaling iterations to apply to the constraint
matrix.
|
boolean |
hasLogIntervalSeconds()
Time between iteration-level statistics logging (if `verbosity_level > 1`).
|
boolean |
hasMajorIterationFrequency()
The frequency at which extra work is performed to make major algorithmic
decisions, e.g., performing restarts and updating the primal weight.
|
boolean |
hasMalitskyPockParameters()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19; |
boolean |
hasNecessaryReductionForRestart()
For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function
by this amount triggers a restart if, additionally, the quality of the
iterates appears to be getting worse.
|
boolean |
hasNumShards()
For more efficient parallel computation, the matrices and vectors are
divided (virtually) into num_shards shards.
|
boolean |
hasNumThreads()
The number of threads to use.
|
boolean |
hasPresolveOptions()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16; |
boolean |
hasPrimalWeightUpdateSmoothing()
This parameter controls exponential smoothing of log(primal_weight) when a
primal weight update occurs (i.e., when the ratio of primal and dual step
sizes is adjusted).
|
boolean |
hasRecordIterationStats()
If true, the iteration_stats field of the SolveLog output will be populated
at every iteration.
|
boolean |
hasRestartStrategy()
NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default.
|
boolean |
hasSchedulerType()
The type of scheduler used for CPU multi-threading.
|
boolean |
hasSufficientReductionForRestart()
For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative
reduction in the potential function by this amount always triggers a
restart.
|
boolean |
hasTerminationCheckFrequency()
The frequency (based on a counter reset every major iteration) to check for
termination (involves extra work) and log iteration stats.
|
boolean |
hasTerminationCriteria()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1; |
boolean |
hasUseDiagonalQpTrustRegionSolver()
When solving QPs with diagonal objective matrices, this option can be
turned on to enable an experimental solver that avoids linearization of the
quadratic term.
|
boolean |
hasUseFeasibilityPolishing()
If true, periodically runs feasibility polishing, which attempts to move
from latest average iterate to one that is closer to feasibility (i.e., has
smaller primal and dual residuals) while probably increasing the objective
gap.
|
boolean |
hasVerbosityLevel()
The verbosity of logging.
0: No informational logging.
|
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable |
internalGetFieldAccessorTable() |
boolean |
isInitialized() |
PrimalDualHybridGradientParams.Builder |
mergeAdaptiveLinesearchParameters(AdaptiveLinesearchParams value)
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18; |
PrimalDualHybridGradientParams.Builder |
mergeFrom(com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
PrimalDualHybridGradientParams.Builder |
mergeFrom(com.google.protobuf.Message other) |
PrimalDualHybridGradientParams.Builder |
mergeFrom(PrimalDualHybridGradientParams other) |
PrimalDualHybridGradientParams.Builder |
mergeMalitskyPockParameters(MalitskyPockParams value)
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19; |
PrimalDualHybridGradientParams.Builder |
mergePresolveOptions(PrimalDualHybridGradientParams.PresolveOptions value)
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16; |
PrimalDualHybridGradientParams.Builder |
mergeTerminationCriteria(TerminationCriteria value)
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1; |
PrimalDualHybridGradientParams.Builder |
setAdaptiveLinesearchParameters(AdaptiveLinesearchParams.Builder builderForValue)
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18; |
PrimalDualHybridGradientParams.Builder |
setAdaptiveLinesearchParameters(AdaptiveLinesearchParams value)
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18; |
PrimalDualHybridGradientParams.Builder |
setDiagonalQpTrustRegionSolverTolerance(double value)
The solve tolerance of the experimental trust region solver for diagonal
QPs, controlling the accuracy of binary search over a one-dimensional
scaling parameter.
|
PrimalDualHybridGradientParams.Builder |
setHandleSomePrimalGradientsOnFiniteBoundsAsResiduals(boolean value)
See
https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite
for a description of this flag.
|
PrimalDualHybridGradientParams.Builder |
setInfiniteConstraintBoundThreshold(double value)
Constraint bounds with absolute value at least this threshold are replaced
with infinities.
|
PrimalDualHybridGradientParams.Builder |
setInitialPrimalWeight(double value)
The initial value of the primal weight (i.e., the ratio of primal and dual
step sizes).
|
PrimalDualHybridGradientParams.Builder |
setInitialStepSizeScaling(double value)
Scaling factor applied to the initial step size (all step sizes if
linesearch_rule == CONSTANT_STEP_SIZE_RULE).
|
PrimalDualHybridGradientParams.Builder |
setL2NormRescaling(boolean value)
If true, applies L_2 norm rescaling after the Ruiz rescaling.
|
PrimalDualHybridGradientParams.Builder |
setLinesearchRule(PrimalDualHybridGradientParams.LinesearchRule value)
Linesearch rule applied at each major iteration.
|
PrimalDualHybridGradientParams.Builder |
setLInfRuizIterations(int value)
Number of L_infinity Ruiz rescaling iterations to apply to the constraint
matrix.
|
PrimalDualHybridGradientParams.Builder |
setLogIntervalSeconds(double value)
Time between iteration-level statistics logging (if `verbosity_level > 1`).
|
PrimalDualHybridGradientParams.Builder |
setMajorIterationFrequency(int value)
The frequency at which extra work is performed to make major algorithmic
decisions, e.g., performing restarts and updating the primal weight.
|
PrimalDualHybridGradientParams.Builder |
setMalitskyPockParameters(MalitskyPockParams.Builder builderForValue)
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19; |
PrimalDualHybridGradientParams.Builder |
setMalitskyPockParameters(MalitskyPockParams value)
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19; |
PrimalDualHybridGradientParams.Builder |
setNecessaryReductionForRestart(double value)
For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function
by this amount triggers a restart if, additionally, the quality of the
iterates appears to be getting worse.
|
PrimalDualHybridGradientParams.Builder |
setNumShards(int value)
For more efficient parallel computation, the matrices and vectors are
divided (virtually) into num_shards shards.
|
PrimalDualHybridGradientParams.Builder |
setNumThreads(int value)
The number of threads to use.
|
PrimalDualHybridGradientParams.Builder |
setPresolveOptions(PrimalDualHybridGradientParams.PresolveOptions.Builder builderForValue)
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16; |
PrimalDualHybridGradientParams.Builder |
setPresolveOptions(PrimalDualHybridGradientParams.PresolveOptions value)
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16; |
PrimalDualHybridGradientParams.Builder |
setPrimalWeightUpdateSmoothing(double value)
This parameter controls exponential smoothing of log(primal_weight) when a
primal weight update occurs (i.e., when the ratio of primal and dual step
sizes is adjusted).
|
PrimalDualHybridGradientParams.Builder |
setRandomProjectionSeeds(int index,
int value)
Seeds for generating (pseudo-)random projections of iterates during
termination checks.
|
PrimalDualHybridGradientParams.Builder |
setRecordIterationStats(boolean value)
If true, the iteration_stats field of the SolveLog output will be populated
at every iteration.
|
PrimalDualHybridGradientParams.Builder |
setRestartStrategy(PrimalDualHybridGradientParams.RestartStrategy value)
NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default.
|
PrimalDualHybridGradientParams.Builder |
setSchedulerType(SchedulerType value)
The type of scheduler used for CPU multi-threading.
|
PrimalDualHybridGradientParams.Builder |
setSufficientReductionForRestart(double value)
For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative
reduction in the potential function by this amount always triggers a
restart.
|
PrimalDualHybridGradientParams.Builder |
setTerminationCheckFrequency(int value)
The frequency (based on a counter reset every major iteration) to check for
termination (involves extra work) and log iteration stats.
|
PrimalDualHybridGradientParams.Builder |
setTerminationCriteria(TerminationCriteria.Builder builderForValue)
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1; |
PrimalDualHybridGradientParams.Builder |
setTerminationCriteria(TerminationCriteria value)
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1; |
PrimalDualHybridGradientParams.Builder |
setUseDiagonalQpTrustRegionSolver(boolean value)
When solving QPs with diagonal objective matrices, this option can be
turned on to enable an experimental solver that avoids linearization of the
quadratic term.
|
PrimalDualHybridGradientParams.Builder |
setUseFeasibilityPolishing(boolean value)
If true, periodically runs feasibility polishing, which attempts to move
from latest average iterate to one that is closer to feasibility (i.e., has
smaller primal and dual residuals) while probably increasing the objective
gap.
|
PrimalDualHybridGradientParams.Builder |
setVerbosityLevel(int value)
The verbosity of logging.
0: No informational logging.
|
addRepeatedField, clearField, clearOneof, clone, getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownFields, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setField, setRepeatedField, setUnknownFields, setUnknownFieldSetBuilder, setUnknownFieldsProto3
findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, newUninitializedMessageException
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
internalGetFieldAccessorTable
in class com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder>
public PrimalDualHybridGradientParams.Builder clear()
clear
in interface com.google.protobuf.Message.Builder
clear
in interface com.google.protobuf.MessageLite.Builder
clear
in class com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder>
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
getDescriptorForType
in interface com.google.protobuf.Message.Builder
getDescriptorForType
in interface com.google.protobuf.MessageOrBuilder
getDescriptorForType
in class com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder>
public PrimalDualHybridGradientParams getDefaultInstanceForType()
getDefaultInstanceForType
in interface com.google.protobuf.MessageLiteOrBuilder
getDefaultInstanceForType
in interface com.google.protobuf.MessageOrBuilder
public PrimalDualHybridGradientParams build()
build
in interface com.google.protobuf.Message.Builder
build
in interface com.google.protobuf.MessageLite.Builder
public PrimalDualHybridGradientParams buildPartial()
buildPartial
in interface com.google.protobuf.Message.Builder
buildPartial
in interface com.google.protobuf.MessageLite.Builder
public PrimalDualHybridGradientParams.Builder mergeFrom(com.google.protobuf.Message other)
mergeFrom
in interface com.google.protobuf.Message.Builder
mergeFrom
in class com.google.protobuf.AbstractMessage.Builder<PrimalDualHybridGradientParams.Builder>
public PrimalDualHybridGradientParams.Builder mergeFrom(PrimalDualHybridGradientParams other)
public final boolean isInitialized()
isInitialized
in interface com.google.protobuf.MessageLiteOrBuilder
isInitialized
in class com.google.protobuf.GeneratedMessage.Builder<PrimalDualHybridGradientParams.Builder>
public PrimalDualHybridGradientParams.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
mergeFrom
in interface com.google.protobuf.Message.Builder
mergeFrom
in interface com.google.protobuf.MessageLite.Builder
mergeFrom
in class com.google.protobuf.AbstractMessage.Builder<PrimalDualHybridGradientParams.Builder>
java.io.IOException
public boolean hasTerminationCriteria()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
hasTerminationCriteria
in interface PrimalDualHybridGradientParamsOrBuilder
public TerminationCriteria getTerminationCriteria()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
getTerminationCriteria
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setTerminationCriteria(TerminationCriteria value)
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
public PrimalDualHybridGradientParams.Builder setTerminationCriteria(TerminationCriteria.Builder builderForValue)
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
public PrimalDualHybridGradientParams.Builder mergeTerminationCriteria(TerminationCriteria value)
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
public PrimalDualHybridGradientParams.Builder clearTerminationCriteria()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
public TerminationCriteria.Builder getTerminationCriteriaBuilder()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
public TerminationCriteriaOrBuilder getTerminationCriteriaOrBuilder()
optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;
getTerminationCriteriaOrBuilder
in interface PrimalDualHybridGradientParamsOrBuilder
public boolean hasNumThreads()
The number of threads to use. Must be positive. Try various values of num_threads, up to the number of physical cores. Performance may not be monotonically increasing with the number of threads because of memory bandwidth limitations.
optional int32 num_threads = 2 [default = 1];
hasNumThreads
in interface PrimalDualHybridGradientParamsOrBuilder
public int getNumThreads()
The number of threads to use. Must be positive. Try various values of num_threads, up to the number of physical cores. Performance may not be monotonically increasing with the number of threads because of memory bandwidth limitations.
optional int32 num_threads = 2 [default = 1];
getNumThreads
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setNumThreads(int value)
The number of threads to use. Must be positive. Try various values of num_threads, up to the number of physical cores. Performance may not be monotonically increasing with the number of threads because of memory bandwidth limitations.
optional int32 num_threads = 2 [default = 1];
value
- The numThreads to set.public PrimalDualHybridGradientParams.Builder clearNumThreads()
The number of threads to use. Must be positive. Try various values of num_threads, up to the number of physical cores. Performance may not be monotonically increasing with the number of threads because of memory bandwidth limitations.
optional int32 num_threads = 2 [default = 1];
public boolean hasNumShards()
For more efficient parallel computation, the matrices and vectors are divided (virtually) into num_shards shards. Results are computed independently for each shard and then combined. As a consequence, the order of computation, and hence floating point roundoff, depends on the number of shards so reproducible results require using the same value for num_shards. However, for efficiency num_shards should a be at least num_threads, and preferably at least 4*num_threads to allow better load balancing. If num_shards is positive, the computation will use that many shards. Otherwise a default that depends on num_threads will be used.
optional int32 num_shards = 27 [default = 0];
hasNumShards
in interface PrimalDualHybridGradientParamsOrBuilder
public int getNumShards()
For more efficient parallel computation, the matrices and vectors are divided (virtually) into num_shards shards. Results are computed independently for each shard and then combined. As a consequence, the order of computation, and hence floating point roundoff, depends on the number of shards so reproducible results require using the same value for num_shards. However, for efficiency num_shards should a be at least num_threads, and preferably at least 4*num_threads to allow better load balancing. If num_shards is positive, the computation will use that many shards. Otherwise a default that depends on num_threads will be used.
optional int32 num_shards = 27 [default = 0];
getNumShards
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setNumShards(int value)
For more efficient parallel computation, the matrices and vectors are divided (virtually) into num_shards shards. Results are computed independently for each shard and then combined. As a consequence, the order of computation, and hence floating point roundoff, depends on the number of shards so reproducible results require using the same value for num_shards. However, for efficiency num_shards should a be at least num_threads, and preferably at least 4*num_threads to allow better load balancing. If num_shards is positive, the computation will use that many shards. Otherwise a default that depends on num_threads will be used.
optional int32 num_shards = 27 [default = 0];
value
- The numShards to set.public PrimalDualHybridGradientParams.Builder clearNumShards()
For more efficient parallel computation, the matrices and vectors are divided (virtually) into num_shards shards. Results are computed independently for each shard and then combined. As a consequence, the order of computation, and hence floating point roundoff, depends on the number of shards so reproducible results require using the same value for num_shards. However, for efficiency num_shards should a be at least num_threads, and preferably at least 4*num_threads to allow better load balancing. If num_shards is positive, the computation will use that many shards. Otherwise a default that depends on num_threads will be used.
optional int32 num_shards = 27 [default = 0];
public boolean hasSchedulerType()
The type of scheduler used for CPU multi-threading. See the documentation of the corresponding enum for more details.
optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
hasSchedulerType
in interface PrimalDualHybridGradientParamsOrBuilder
public SchedulerType getSchedulerType()
The type of scheduler used for CPU multi-threading. See the documentation of the corresponding enum for more details.
optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
getSchedulerType
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setSchedulerType(SchedulerType value)
The type of scheduler used for CPU multi-threading. See the documentation of the corresponding enum for more details.
optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
value
- The schedulerType to set.public PrimalDualHybridGradientParams.Builder clearSchedulerType()
The type of scheduler used for CPU multi-threading. See the documentation of the corresponding enum for more details.
optional .operations_research.pdlp.SchedulerType scheduler_type = 32 [default = SCHEDULER_TYPE_GOOGLE_THREADPOOL];
public boolean hasRecordIterationStats()
If true, the iteration_stats field of the SolveLog output will be populated at every iteration. Note that we only compute solution statistics at termination checks. Setting this parameter to true may substantially increase the size of the output.
optional bool record_iteration_stats = 3;
hasRecordIterationStats
in interface PrimalDualHybridGradientParamsOrBuilder
public boolean getRecordIterationStats()
If true, the iteration_stats field of the SolveLog output will be populated at every iteration. Note that we only compute solution statistics at termination checks. Setting this parameter to true may substantially increase the size of the output.
optional bool record_iteration_stats = 3;
getRecordIterationStats
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setRecordIterationStats(boolean value)
If true, the iteration_stats field of the SolveLog output will be populated at every iteration. Note that we only compute solution statistics at termination checks. Setting this parameter to true may substantially increase the size of the output.
optional bool record_iteration_stats = 3;
value
- The recordIterationStats to set.public PrimalDualHybridGradientParams.Builder clearRecordIterationStats()
If true, the iteration_stats field of the SolveLog output will be populated at every iteration. Note that we only compute solution statistics at termination checks. Setting this parameter to true may substantially increase the size of the output.
optional bool record_iteration_stats = 3;
public boolean hasVerbosityLevel()
The verbosity of logging. 0: No informational logging. (Errors are logged.) 1: Summary statistics only. No iteration-level details. 2: A table of iteration-level statistics is logged. (See ToShortString() in primal_dual_hybrid_gradient.cc). 3: A more detailed table of iteration-level statistics is logged. (See ToString() in primal_dual_hybrid_gradient.cc). 4: For iteration-level details, prints the statistics of both the average (prefixed with A) and the current iterate (prefixed with C). Also prints internal algorithmic state and details. Logging at levels 2-4 also includes messages from level 1.
optional int32 verbosity_level = 26 [default = 0];
hasVerbosityLevel
in interface PrimalDualHybridGradientParamsOrBuilder
public int getVerbosityLevel()
The verbosity of logging. 0: No informational logging. (Errors are logged.) 1: Summary statistics only. No iteration-level details. 2: A table of iteration-level statistics is logged. (See ToShortString() in primal_dual_hybrid_gradient.cc). 3: A more detailed table of iteration-level statistics is logged. (See ToString() in primal_dual_hybrid_gradient.cc). 4: For iteration-level details, prints the statistics of both the average (prefixed with A) and the current iterate (prefixed with C). Also prints internal algorithmic state and details. Logging at levels 2-4 also includes messages from level 1.
optional int32 verbosity_level = 26 [default = 0];
getVerbosityLevel
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setVerbosityLevel(int value)
The verbosity of logging. 0: No informational logging. (Errors are logged.) 1: Summary statistics only. No iteration-level details. 2: A table of iteration-level statistics is logged. (See ToShortString() in primal_dual_hybrid_gradient.cc). 3: A more detailed table of iteration-level statistics is logged. (See ToString() in primal_dual_hybrid_gradient.cc). 4: For iteration-level details, prints the statistics of both the average (prefixed with A) and the current iterate (prefixed with C). Also prints internal algorithmic state and details. Logging at levels 2-4 also includes messages from level 1.
optional int32 verbosity_level = 26 [default = 0];
value
- The verbosityLevel to set.public PrimalDualHybridGradientParams.Builder clearVerbosityLevel()
The verbosity of logging. 0: No informational logging. (Errors are logged.) 1: Summary statistics only. No iteration-level details. 2: A table of iteration-level statistics is logged. (See ToShortString() in primal_dual_hybrid_gradient.cc). 3: A more detailed table of iteration-level statistics is logged. (See ToString() in primal_dual_hybrid_gradient.cc). 4: For iteration-level details, prints the statistics of both the average (prefixed with A) and the current iterate (prefixed with C). Also prints internal algorithmic state and details. Logging at levels 2-4 also includes messages from level 1.
optional int32 verbosity_level = 26 [default = 0];
public boolean hasLogIntervalSeconds()
Time between iteration-level statistics logging (if `verbosity_level > 1`). Since iteration-level statistics are only generated when performing termination checks, logs will be generated from next termination check after `log_interval_seconds` have elapsed. Should be >= 0.0. 0.0 (the default) means log statistics at every termination check.
optional double log_interval_seconds = 31 [default = 0];
hasLogIntervalSeconds
in interface PrimalDualHybridGradientParamsOrBuilder
public double getLogIntervalSeconds()
Time between iteration-level statistics logging (if `verbosity_level > 1`). Since iteration-level statistics are only generated when performing termination checks, logs will be generated from next termination check after `log_interval_seconds` have elapsed. Should be >= 0.0. 0.0 (the default) means log statistics at every termination check.
optional double log_interval_seconds = 31 [default = 0];
getLogIntervalSeconds
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setLogIntervalSeconds(double value)
Time between iteration-level statistics logging (if `verbosity_level > 1`). Since iteration-level statistics are only generated when performing termination checks, logs will be generated from next termination check after `log_interval_seconds` have elapsed. Should be >= 0.0. 0.0 (the default) means log statistics at every termination check.
optional double log_interval_seconds = 31 [default = 0];
value
- The logIntervalSeconds to set.public PrimalDualHybridGradientParams.Builder clearLogIntervalSeconds()
Time between iteration-level statistics logging (if `verbosity_level > 1`). Since iteration-level statistics are only generated when performing termination checks, logs will be generated from next termination check after `log_interval_seconds` have elapsed. Should be >= 0.0. 0.0 (the default) means log statistics at every termination check.
optional double log_interval_seconds = 31 [default = 0];
public boolean hasMajorIterationFrequency()
The frequency at which extra work is performed to make major algorithmic decisions, e.g., performing restarts and updating the primal weight. Major iterations also trigger a termination check. For best performance using the NO_RESTARTS or EVERY_MAJOR_ITERATION rule, one should perform a log-scale grid search over this parameter, for example, over powers of two. ADAPTIVE_HEURISTIC is mostly insensitive to this value.
optional int32 major_iteration_frequency = 4 [default = 64];
hasMajorIterationFrequency
in interface PrimalDualHybridGradientParamsOrBuilder
public int getMajorIterationFrequency()
The frequency at which extra work is performed to make major algorithmic decisions, e.g., performing restarts and updating the primal weight. Major iterations also trigger a termination check. For best performance using the NO_RESTARTS or EVERY_MAJOR_ITERATION rule, one should perform a log-scale grid search over this parameter, for example, over powers of two. ADAPTIVE_HEURISTIC is mostly insensitive to this value.
optional int32 major_iteration_frequency = 4 [default = 64];
getMajorIterationFrequency
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setMajorIterationFrequency(int value)
The frequency at which extra work is performed to make major algorithmic decisions, e.g., performing restarts and updating the primal weight. Major iterations also trigger a termination check. For best performance using the NO_RESTARTS or EVERY_MAJOR_ITERATION rule, one should perform a log-scale grid search over this parameter, for example, over powers of two. ADAPTIVE_HEURISTIC is mostly insensitive to this value.
optional int32 major_iteration_frequency = 4 [default = 64];
value
- The majorIterationFrequency to set.public PrimalDualHybridGradientParams.Builder clearMajorIterationFrequency()
The frequency at which extra work is performed to make major algorithmic decisions, e.g., performing restarts and updating the primal weight. Major iterations also trigger a termination check. For best performance using the NO_RESTARTS or EVERY_MAJOR_ITERATION rule, one should perform a log-scale grid search over this parameter, for example, over powers of two. ADAPTIVE_HEURISTIC is mostly insensitive to this value.
optional int32 major_iteration_frequency = 4 [default = 64];
public boolean hasTerminationCheckFrequency()
The frequency (based on a counter reset every major iteration) to check for termination (involves extra work) and log iteration stats. Termination checks do not affect algorithmic progress unless termination is triggered.
optional int32 termination_check_frequency = 5 [default = 64];
hasTerminationCheckFrequency
in interface PrimalDualHybridGradientParamsOrBuilder
public int getTerminationCheckFrequency()
The frequency (based on a counter reset every major iteration) to check for termination (involves extra work) and log iteration stats. Termination checks do not affect algorithmic progress unless termination is triggered.
optional int32 termination_check_frequency = 5 [default = 64];
getTerminationCheckFrequency
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setTerminationCheckFrequency(int value)
The frequency (based on a counter reset every major iteration) to check for termination (involves extra work) and log iteration stats. Termination checks do not affect algorithmic progress unless termination is triggered.
optional int32 termination_check_frequency = 5 [default = 64];
value
- The terminationCheckFrequency to set.public PrimalDualHybridGradientParams.Builder clearTerminationCheckFrequency()
The frequency (based on a counter reset every major iteration) to check for termination (involves extra work) and log iteration stats. Termination checks do not affect algorithmic progress unless termination is triggered.
optional int32 termination_check_frequency = 5 [default = 64];
public boolean hasRestartStrategy()
NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default. If using a strategy other than ADAPTIVE_HEURISTIC, you must also tune major_iteration_frequency.
optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
hasRestartStrategy
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.RestartStrategy getRestartStrategy()
NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default. If using a strategy other than ADAPTIVE_HEURISTIC, you must also tune major_iteration_frequency.
optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
getRestartStrategy
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setRestartStrategy(PrimalDualHybridGradientParams.RestartStrategy value)
NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default. If using a strategy other than ADAPTIVE_HEURISTIC, you must also tune major_iteration_frequency.
optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
value
- The restartStrategy to set.public PrimalDualHybridGradientParams.Builder clearRestartStrategy()
NO_RESTARTS and EVERY_MAJOR_ITERATION occasionally outperform the default. If using a strategy other than ADAPTIVE_HEURISTIC, you must also tune major_iteration_frequency.
optional .operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy restart_strategy = 6 [default = ADAPTIVE_HEURISTIC];
public boolean hasPrimalWeightUpdateSmoothing()
This parameter controls exponential smoothing of log(primal_weight) when a primal weight update occurs (i.e., when the ratio of primal and dual step sizes is adjusted). At 0.0, the primal weight will be frozen at its initial value and there will be no dynamic updates in the algorithm. At 1.0, there is no smoothing in the updates. The default of 0.5 generally performs well, but has been observed on occasion to trigger unstable swings in the primal weight. We recommend also trying 0.0 (disabling primal weight updates), in which case you must also tune initial_primal_weight.
optional double primal_weight_update_smoothing = 7 [default = 0.5];
hasPrimalWeightUpdateSmoothing
in interface PrimalDualHybridGradientParamsOrBuilder
public double getPrimalWeightUpdateSmoothing()
This parameter controls exponential smoothing of log(primal_weight) when a primal weight update occurs (i.e., when the ratio of primal and dual step sizes is adjusted). At 0.0, the primal weight will be frozen at its initial value and there will be no dynamic updates in the algorithm. At 1.0, there is no smoothing in the updates. The default of 0.5 generally performs well, but has been observed on occasion to trigger unstable swings in the primal weight. We recommend also trying 0.0 (disabling primal weight updates), in which case you must also tune initial_primal_weight.
optional double primal_weight_update_smoothing = 7 [default = 0.5];
getPrimalWeightUpdateSmoothing
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setPrimalWeightUpdateSmoothing(double value)
This parameter controls exponential smoothing of log(primal_weight) when a primal weight update occurs (i.e., when the ratio of primal and dual step sizes is adjusted). At 0.0, the primal weight will be frozen at its initial value and there will be no dynamic updates in the algorithm. At 1.0, there is no smoothing in the updates. The default of 0.5 generally performs well, but has been observed on occasion to trigger unstable swings in the primal weight. We recommend also trying 0.0 (disabling primal weight updates), in which case you must also tune initial_primal_weight.
optional double primal_weight_update_smoothing = 7 [default = 0.5];
value
- The primalWeightUpdateSmoothing to set.public PrimalDualHybridGradientParams.Builder clearPrimalWeightUpdateSmoothing()
This parameter controls exponential smoothing of log(primal_weight) when a primal weight update occurs (i.e., when the ratio of primal and dual step sizes is adjusted). At 0.0, the primal weight will be frozen at its initial value and there will be no dynamic updates in the algorithm. At 1.0, there is no smoothing in the updates. The default of 0.5 generally performs well, but has been observed on occasion to trigger unstable swings in the primal weight. We recommend also trying 0.0 (disabling primal weight updates), in which case you must also tune initial_primal_weight.
optional double primal_weight_update_smoothing = 7 [default = 0.5];
public boolean hasInitialPrimalWeight()
The initial value of the primal weight (i.e., the ratio of primal and dual step sizes). The primal weight remains fixed throughout the solve if primal_weight_update_smoothing = 0.0. If unset, the default is the ratio of the norm of the objective vector to the L2 norm of the combined constraint bounds vector (as defined above). If this ratio is not finite and positive, then the default is 1.0 instead. For tuning, try powers of 10, for example, from 10^{-6} to 10^6.
optional double initial_primal_weight = 8;
hasInitialPrimalWeight
in interface PrimalDualHybridGradientParamsOrBuilder
public double getInitialPrimalWeight()
The initial value of the primal weight (i.e., the ratio of primal and dual step sizes). The primal weight remains fixed throughout the solve if primal_weight_update_smoothing = 0.0. If unset, the default is the ratio of the norm of the objective vector to the L2 norm of the combined constraint bounds vector (as defined above). If this ratio is not finite and positive, then the default is 1.0 instead. For tuning, try powers of 10, for example, from 10^{-6} to 10^6.
optional double initial_primal_weight = 8;
getInitialPrimalWeight
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setInitialPrimalWeight(double value)
The initial value of the primal weight (i.e., the ratio of primal and dual step sizes). The primal weight remains fixed throughout the solve if primal_weight_update_smoothing = 0.0. If unset, the default is the ratio of the norm of the objective vector to the L2 norm of the combined constraint bounds vector (as defined above). If this ratio is not finite and positive, then the default is 1.0 instead. For tuning, try powers of 10, for example, from 10^{-6} to 10^6.
optional double initial_primal_weight = 8;
value
- The initialPrimalWeight to set.public PrimalDualHybridGradientParams.Builder clearInitialPrimalWeight()
The initial value of the primal weight (i.e., the ratio of primal and dual step sizes). The primal weight remains fixed throughout the solve if primal_weight_update_smoothing = 0.0. If unset, the default is the ratio of the norm of the objective vector to the L2 norm of the combined constraint bounds vector (as defined above). If this ratio is not finite and positive, then the default is 1.0 instead. For tuning, try powers of 10, for example, from 10^{-6} to 10^6.
optional double initial_primal_weight = 8;
public boolean hasPresolveOptions()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
hasPresolveOptions
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.PresolveOptions getPresolveOptions()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
getPresolveOptions
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setPresolveOptions(PrimalDualHybridGradientParams.PresolveOptions value)
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
public PrimalDualHybridGradientParams.Builder setPresolveOptions(PrimalDualHybridGradientParams.PresolveOptions.Builder builderForValue)
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
public PrimalDualHybridGradientParams.Builder mergePresolveOptions(PrimalDualHybridGradientParams.PresolveOptions value)
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
public PrimalDualHybridGradientParams.Builder clearPresolveOptions()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
public PrimalDualHybridGradientParams.PresolveOptions.Builder getPresolveOptionsBuilder()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
public PrimalDualHybridGradientParams.PresolveOptionsOrBuilder getPresolveOptionsOrBuilder()
optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;
getPresolveOptionsOrBuilder
in interface PrimalDualHybridGradientParamsOrBuilder
public boolean hasLInfRuizIterations()
Number of L_infinity Ruiz rescaling iterations to apply to the constraint matrix. Zero disables this rescaling pass. Recommended values to try when tuning are 0, 5, and 10.
optional int32 l_inf_ruiz_iterations = 9 [default = 5];
hasLInfRuizIterations
in interface PrimalDualHybridGradientParamsOrBuilder
public int getLInfRuizIterations()
Number of L_infinity Ruiz rescaling iterations to apply to the constraint matrix. Zero disables this rescaling pass. Recommended values to try when tuning are 0, 5, and 10.
optional int32 l_inf_ruiz_iterations = 9 [default = 5];
getLInfRuizIterations
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setLInfRuizIterations(int value)
Number of L_infinity Ruiz rescaling iterations to apply to the constraint matrix. Zero disables this rescaling pass. Recommended values to try when tuning are 0, 5, and 10.
optional int32 l_inf_ruiz_iterations = 9 [default = 5];
value
- The lInfRuizIterations to set.public PrimalDualHybridGradientParams.Builder clearLInfRuizIterations()
Number of L_infinity Ruiz rescaling iterations to apply to the constraint matrix. Zero disables this rescaling pass. Recommended values to try when tuning are 0, 5, and 10.
optional int32 l_inf_ruiz_iterations = 9 [default = 5];
public boolean hasL2NormRescaling()
If true, applies L_2 norm rescaling after the Ruiz rescaling. Heuristically this has been found to help convergence.
optional bool l2_norm_rescaling = 10 [default = true];
hasL2NormRescaling
in interface PrimalDualHybridGradientParamsOrBuilder
public boolean getL2NormRescaling()
If true, applies L_2 norm rescaling after the Ruiz rescaling. Heuristically this has been found to help convergence.
optional bool l2_norm_rescaling = 10 [default = true];
getL2NormRescaling
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setL2NormRescaling(boolean value)
If true, applies L_2 norm rescaling after the Ruiz rescaling. Heuristically this has been found to help convergence.
optional bool l2_norm_rescaling = 10 [default = true];
value
- The l2NormRescaling to set.public PrimalDualHybridGradientParams.Builder clearL2NormRescaling()
If true, applies L_2 norm rescaling after the Ruiz rescaling. Heuristically this has been found to help convergence.
optional bool l2_norm_rescaling = 10 [default = true];
public boolean hasSufficientReductionForRestart()
For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative reduction in the potential function by this amount always triggers a restart. Must be between 0.0 and 1.0.
optional double sufficient_reduction_for_restart = 11 [default = 0.1];
hasSufficientReductionForRestart
in interface PrimalDualHybridGradientParamsOrBuilder
public double getSufficientReductionForRestart()
For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative reduction in the potential function by this amount always triggers a restart. Must be between 0.0 and 1.0.
optional double sufficient_reduction_for_restart = 11 [default = 0.1];
getSufficientReductionForRestart
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setSufficientReductionForRestart(double value)
For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative reduction in the potential function by this amount always triggers a restart. Must be between 0.0 and 1.0.
optional double sufficient_reduction_for_restart = 11 [default = 0.1];
value
- The sufficientReductionForRestart to set.public PrimalDualHybridGradientParams.Builder clearSufficientReductionForRestart()
For ADAPTIVE_HEURISTIC and ADAPTIVE_DISTANCE_BASED only: A relative reduction in the potential function by this amount always triggers a restart. Must be between 0.0 and 1.0.
optional double sufficient_reduction_for_restart = 11 [default = 0.1];
public boolean hasNecessaryReductionForRestart()
For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function by this amount triggers a restart if, additionally, the quality of the iterates appears to be getting worse. The value must be in the interval [sufficient_reduction_for_restart, 1). Smaller values make restarts less frequent, and larger values make them more frequent.
optional double necessary_reduction_for_restart = 17 [default = 0.9];
hasNecessaryReductionForRestart
in interface PrimalDualHybridGradientParamsOrBuilder
public double getNecessaryReductionForRestart()
For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function by this amount triggers a restart if, additionally, the quality of the iterates appears to be getting worse. The value must be in the interval [sufficient_reduction_for_restart, 1). Smaller values make restarts less frequent, and larger values make them more frequent.
optional double necessary_reduction_for_restart = 17 [default = 0.9];
getNecessaryReductionForRestart
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setNecessaryReductionForRestart(double value)
For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function by this amount triggers a restart if, additionally, the quality of the iterates appears to be getting worse. The value must be in the interval [sufficient_reduction_for_restart, 1). Smaller values make restarts less frequent, and larger values make them more frequent.
optional double necessary_reduction_for_restart = 17 [default = 0.9];
value
- The necessaryReductionForRestart to set.public PrimalDualHybridGradientParams.Builder clearNecessaryReductionForRestart()
For ADAPTIVE_HEURISTIC only: A relative reduction in the potential function by this amount triggers a restart if, additionally, the quality of the iterates appears to be getting worse. The value must be in the interval [sufficient_reduction_for_restart, 1). Smaller values make restarts less frequent, and larger values make them more frequent.
optional double necessary_reduction_for_restart = 17 [default = 0.9];
public boolean hasLinesearchRule()
Linesearch rule applied at each major iteration.
optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
hasLinesearchRule
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.LinesearchRule getLinesearchRule()
Linesearch rule applied at each major iteration.
optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
getLinesearchRule
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setLinesearchRule(PrimalDualHybridGradientParams.LinesearchRule value)
Linesearch rule applied at each major iteration.
optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
value
- The linesearchRule to set.public PrimalDualHybridGradientParams.Builder clearLinesearchRule()
Linesearch rule applied at each major iteration.
optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];
public boolean hasAdaptiveLinesearchParameters()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
hasAdaptiveLinesearchParameters
in interface PrimalDualHybridGradientParamsOrBuilder
public AdaptiveLinesearchParams getAdaptiveLinesearchParameters()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
getAdaptiveLinesearchParameters
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setAdaptiveLinesearchParameters(AdaptiveLinesearchParams value)
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
public PrimalDualHybridGradientParams.Builder setAdaptiveLinesearchParameters(AdaptiveLinesearchParams.Builder builderForValue)
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
public PrimalDualHybridGradientParams.Builder mergeAdaptiveLinesearchParameters(AdaptiveLinesearchParams value)
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
public PrimalDualHybridGradientParams.Builder clearAdaptiveLinesearchParameters()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
public AdaptiveLinesearchParams.Builder getAdaptiveLinesearchParametersBuilder()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
public AdaptiveLinesearchParamsOrBuilder getAdaptiveLinesearchParametersOrBuilder()
optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;
getAdaptiveLinesearchParametersOrBuilder
in interface PrimalDualHybridGradientParamsOrBuilder
public boolean hasMalitskyPockParameters()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
hasMalitskyPockParameters
in interface PrimalDualHybridGradientParamsOrBuilder
public MalitskyPockParams getMalitskyPockParameters()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
getMalitskyPockParameters
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setMalitskyPockParameters(MalitskyPockParams value)
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
public PrimalDualHybridGradientParams.Builder setMalitskyPockParameters(MalitskyPockParams.Builder builderForValue)
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
public PrimalDualHybridGradientParams.Builder mergeMalitskyPockParameters(MalitskyPockParams value)
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
public PrimalDualHybridGradientParams.Builder clearMalitskyPockParameters()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
public MalitskyPockParams.Builder getMalitskyPockParametersBuilder()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
public MalitskyPockParamsOrBuilder getMalitskyPockParametersOrBuilder()
optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;
getMalitskyPockParametersOrBuilder
in interface PrimalDualHybridGradientParamsOrBuilder
public boolean hasInitialStepSizeScaling()
Scaling factor applied to the initial step size (all step sizes if linesearch_rule == CONSTANT_STEP_SIZE_RULE).
optional double initial_step_size_scaling = 25 [default = 1];
hasInitialStepSizeScaling
in interface PrimalDualHybridGradientParamsOrBuilder
public double getInitialStepSizeScaling()
Scaling factor applied to the initial step size (all step sizes if linesearch_rule == CONSTANT_STEP_SIZE_RULE).
optional double initial_step_size_scaling = 25 [default = 1];
getInitialStepSizeScaling
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setInitialStepSizeScaling(double value)
Scaling factor applied to the initial step size (all step sizes if linesearch_rule == CONSTANT_STEP_SIZE_RULE).
optional double initial_step_size_scaling = 25 [default = 1];
value
- The initialStepSizeScaling to set.public PrimalDualHybridGradientParams.Builder clearInitialStepSizeScaling()
Scaling factor applied to the initial step size (all step sizes if linesearch_rule == CONSTANT_STEP_SIZE_RULE).
optional double initial_step_size_scaling = 25 [default = 1];
public java.util.List<java.lang.Integer> getRandomProjectionSeedsList()
Seeds for generating (pseudo-)random projections of iterates during termination checks. For each seed, the projection of the primal and dual solutions onto random planes in primal and dual space will be computed and added the IterationStats if record_iteration_stats is true. The random planes generated will be determined by the seeds, the primal and dual dimensions, and num_threads.
repeated int32 random_projection_seeds = 28 [packed = true];
getRandomProjectionSeedsList
in interface PrimalDualHybridGradientParamsOrBuilder
public int getRandomProjectionSeedsCount()
Seeds for generating (pseudo-)random projections of iterates during termination checks. For each seed, the projection of the primal and dual solutions onto random planes in primal and dual space will be computed and added the IterationStats if record_iteration_stats is true. The random planes generated will be determined by the seeds, the primal and dual dimensions, and num_threads.
repeated int32 random_projection_seeds = 28 [packed = true];
getRandomProjectionSeedsCount
in interface PrimalDualHybridGradientParamsOrBuilder
public int getRandomProjectionSeeds(int index)
Seeds for generating (pseudo-)random projections of iterates during termination checks. For each seed, the projection of the primal and dual solutions onto random planes in primal and dual space will be computed and added the IterationStats if record_iteration_stats is true. The random planes generated will be determined by the seeds, the primal and dual dimensions, and num_threads.
repeated int32 random_projection_seeds = 28 [packed = true];
getRandomProjectionSeeds
in interface PrimalDualHybridGradientParamsOrBuilder
index
- The index of the element to return.public PrimalDualHybridGradientParams.Builder setRandomProjectionSeeds(int index, int value)
Seeds for generating (pseudo-)random projections of iterates during termination checks. For each seed, the projection of the primal and dual solutions onto random planes in primal and dual space will be computed and added the IterationStats if record_iteration_stats is true. The random planes generated will be determined by the seeds, the primal and dual dimensions, and num_threads.
repeated int32 random_projection_seeds = 28 [packed = true];
index
- The index to set the value at.value
- The randomProjectionSeeds to set.public PrimalDualHybridGradientParams.Builder addRandomProjectionSeeds(int value)
Seeds for generating (pseudo-)random projections of iterates during termination checks. For each seed, the projection of the primal and dual solutions onto random planes in primal and dual space will be computed and added the IterationStats if record_iteration_stats is true. The random planes generated will be determined by the seeds, the primal and dual dimensions, and num_threads.
repeated int32 random_projection_seeds = 28 [packed = true];
value
- The randomProjectionSeeds to add.public PrimalDualHybridGradientParams.Builder addAllRandomProjectionSeeds(java.lang.Iterable<? extends java.lang.Integer> values)
Seeds for generating (pseudo-)random projections of iterates during termination checks. For each seed, the projection of the primal and dual solutions onto random planes in primal and dual space will be computed and added the IterationStats if record_iteration_stats is true. The random planes generated will be determined by the seeds, the primal and dual dimensions, and num_threads.
repeated int32 random_projection_seeds = 28 [packed = true];
values
- The randomProjectionSeeds to add.public PrimalDualHybridGradientParams.Builder clearRandomProjectionSeeds()
Seeds for generating (pseudo-)random projections of iterates during termination checks. For each seed, the projection of the primal and dual solutions onto random planes in primal and dual space will be computed and added the IterationStats if record_iteration_stats is true. The random planes generated will be determined by the seeds, the primal and dual dimensions, and num_threads.
repeated int32 random_projection_seeds = 28 [packed = true];
public boolean hasInfiniteConstraintBoundThreshold()
Constraint bounds with absolute value at least this threshold are replaced with infinities. NOTE: This primarily affects the relative convergence criteria. A smaller value makes the relative convergence criteria stronger. It also affects the problem statistics LOG()ed at the start of the run, and the default initial primal weight, since that is based on the norm of the bounds.
optional double infinite_constraint_bound_threshold = 22 [default = inf];
hasInfiniteConstraintBoundThreshold
in interface PrimalDualHybridGradientParamsOrBuilder
public double getInfiniteConstraintBoundThreshold()
Constraint bounds with absolute value at least this threshold are replaced with infinities. NOTE: This primarily affects the relative convergence criteria. A smaller value makes the relative convergence criteria stronger. It also affects the problem statistics LOG()ed at the start of the run, and the default initial primal weight, since that is based on the norm of the bounds.
optional double infinite_constraint_bound_threshold = 22 [default = inf];
getInfiniteConstraintBoundThreshold
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setInfiniteConstraintBoundThreshold(double value)
Constraint bounds with absolute value at least this threshold are replaced with infinities. NOTE: This primarily affects the relative convergence criteria. A smaller value makes the relative convergence criteria stronger. It also affects the problem statistics LOG()ed at the start of the run, and the default initial primal weight, since that is based on the norm of the bounds.
optional double infinite_constraint_bound_threshold = 22 [default = inf];
value
- The infiniteConstraintBoundThreshold to set.public PrimalDualHybridGradientParams.Builder clearInfiniteConstraintBoundThreshold()
Constraint bounds with absolute value at least this threshold are replaced with infinities. NOTE: This primarily affects the relative convergence criteria. A smaller value makes the relative convergence criteria stronger. It also affects the problem statistics LOG()ed at the start of the run, and the default initial primal weight, since that is based on the norm of the bounds.
optional double infinite_constraint_bound_threshold = 22 [default = inf];
public boolean hasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
See https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite for a description of this flag.
optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
hasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals
in interface PrimalDualHybridGradientParamsOrBuilder
public boolean getHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
See https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite for a description of this flag.
optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
getHandleSomePrimalGradientsOnFiniteBoundsAsResiduals
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setHandleSomePrimalGradientsOnFiniteBoundsAsResiduals(boolean value)
See https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite for a description of this flag.
optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
value
- The handleSomePrimalGradientsOnFiniteBoundsAsResiduals to set.public PrimalDualHybridGradientParams.Builder clearHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()
See https://developers.google.com/optimization/lp/pdlp_math#treating_some_variable_bounds_as_infinite for a description of this flag.
optional bool handle_some_primal_gradients_on_finite_bounds_as_residuals = 29 [default = true];
public boolean hasUseDiagonalQpTrustRegionSolver()
When solving QPs with diagonal objective matrices, this option can be turned on to enable an experimental solver that avoids linearization of the quadratic term. The `diagonal_qp_solver_accuracy` parameter controls the solve accuracy. TODO(user): Turn this option on by default for quadratic programs after numerical evaluation.
optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
hasUseDiagonalQpTrustRegionSolver
in interface PrimalDualHybridGradientParamsOrBuilder
public boolean getUseDiagonalQpTrustRegionSolver()
When solving QPs with diagonal objective matrices, this option can be turned on to enable an experimental solver that avoids linearization of the quadratic term. The `diagonal_qp_solver_accuracy` parameter controls the solve accuracy. TODO(user): Turn this option on by default for quadratic programs after numerical evaluation.
optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
getUseDiagonalQpTrustRegionSolver
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setUseDiagonalQpTrustRegionSolver(boolean value)
When solving QPs with diagonal objective matrices, this option can be turned on to enable an experimental solver that avoids linearization of the quadratic term. The `diagonal_qp_solver_accuracy` parameter controls the solve accuracy. TODO(user): Turn this option on by default for quadratic programs after numerical evaluation.
optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
value
- The useDiagonalQpTrustRegionSolver to set.public PrimalDualHybridGradientParams.Builder clearUseDiagonalQpTrustRegionSolver()
When solving QPs with diagonal objective matrices, this option can be turned on to enable an experimental solver that avoids linearization of the quadratic term. The `diagonal_qp_solver_accuracy` parameter controls the solve accuracy. TODO(user): Turn this option on by default for quadratic programs after numerical evaluation.
optional bool use_diagonal_qp_trust_region_solver = 23 [default = false];
public boolean hasDiagonalQpTrustRegionSolverTolerance()
The solve tolerance of the experimental trust region solver for diagonal QPs, controlling the accuracy of binary search over a one-dimensional scaling parameter. Smaller values imply smaller relative error of the final solution vector. TODO(user): Find an expression for the final relative error.
optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
hasDiagonalQpTrustRegionSolverTolerance
in interface PrimalDualHybridGradientParamsOrBuilder
public double getDiagonalQpTrustRegionSolverTolerance()
The solve tolerance of the experimental trust region solver for diagonal QPs, controlling the accuracy of binary search over a one-dimensional scaling parameter. Smaller values imply smaller relative error of the final solution vector. TODO(user): Find an expression for the final relative error.
optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
getDiagonalQpTrustRegionSolverTolerance
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setDiagonalQpTrustRegionSolverTolerance(double value)
The solve tolerance of the experimental trust region solver for diagonal QPs, controlling the accuracy of binary search over a one-dimensional scaling parameter. Smaller values imply smaller relative error of the final solution vector. TODO(user): Find an expression for the final relative error.
optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
value
- The diagonalQpTrustRegionSolverTolerance to set.public PrimalDualHybridGradientParams.Builder clearDiagonalQpTrustRegionSolverTolerance()
The solve tolerance of the experimental trust region solver for diagonal QPs, controlling the accuracy of binary search over a one-dimensional scaling parameter. Smaller values imply smaller relative error of the final solution vector. TODO(user): Find an expression for the final relative error.
optional double diagonal_qp_trust_region_solver_tolerance = 24 [default = 1e-08];
public boolean hasUseFeasibilityPolishing()
If true, periodically runs feasibility polishing, which attempts to move from latest average iterate to one that is closer to feasibility (i.e., has smaller primal and dual residuals) while probably increasing the objective gap. This is useful primarily when the feasibility tolerances are fairly tight and the objective gap tolerance is somewhat looser. Note that this does not change the termination criteria, but rather can help achieve the termination criteria more quickly when the objective gap is not as important as feasibility. `use_feasibility_polishing` cannot be used with glop presolve, and requires `handle_some_primal_gradients_on_finite_bounds_as_residuals == false`. `use_feasibility_polishing` can only be used with linear programs. Feasibility polishing runs two separate phases, primal feasibility and dual feasibility. The primal feasibility phase runs PDHG on the primal feasibility problem (obtained by changing the objective vector to all zeros), using the average primal iterate and zero dual (which is optimal for the primal feasibility problem) as the initial solution. The dual feasibility phase runs PDHG on the dual feasibility problem (obtained by changing all finite variable and constraint bounds to zero), using the average dual iterate and zero primal (which is optimal for the dual feasibility problem) as the initial solution. The primal solution from the primal feasibility phase and dual solution from the dual feasibility phase are then combined (forming a solution of type `POINT_TYPE_FEASIBILITY_POLISHING_SOLUTION`) and checked against the termination criteria.
optional bool use_feasibility_polishing = 30 [default = false];
hasUseFeasibilityPolishing
in interface PrimalDualHybridGradientParamsOrBuilder
public boolean getUseFeasibilityPolishing()
If true, periodically runs feasibility polishing, which attempts to move from latest average iterate to one that is closer to feasibility (i.e., has smaller primal and dual residuals) while probably increasing the objective gap. This is useful primarily when the feasibility tolerances are fairly tight and the objective gap tolerance is somewhat looser. Note that this does not change the termination criteria, but rather can help achieve the termination criteria more quickly when the objective gap is not as important as feasibility. `use_feasibility_polishing` cannot be used with glop presolve, and requires `handle_some_primal_gradients_on_finite_bounds_as_residuals == false`. `use_feasibility_polishing` can only be used with linear programs. Feasibility polishing runs two separate phases, primal feasibility and dual feasibility. The primal feasibility phase runs PDHG on the primal feasibility problem (obtained by changing the objective vector to all zeros), using the average primal iterate and zero dual (which is optimal for the primal feasibility problem) as the initial solution. The dual feasibility phase runs PDHG on the dual feasibility problem (obtained by changing all finite variable and constraint bounds to zero), using the average dual iterate and zero primal (which is optimal for the dual feasibility problem) as the initial solution. The primal solution from the primal feasibility phase and dual solution from the dual feasibility phase are then combined (forming a solution of type `POINT_TYPE_FEASIBILITY_POLISHING_SOLUTION`) and checked against the termination criteria.
optional bool use_feasibility_polishing = 30 [default = false];
getUseFeasibilityPolishing
in interface PrimalDualHybridGradientParamsOrBuilder
public PrimalDualHybridGradientParams.Builder setUseFeasibilityPolishing(boolean value)
If true, periodically runs feasibility polishing, which attempts to move from latest average iterate to one that is closer to feasibility (i.e., has smaller primal and dual residuals) while probably increasing the objective gap. This is useful primarily when the feasibility tolerances are fairly tight and the objective gap tolerance is somewhat looser. Note that this does not change the termination criteria, but rather can help achieve the termination criteria more quickly when the objective gap is not as important as feasibility. `use_feasibility_polishing` cannot be used with glop presolve, and requires `handle_some_primal_gradients_on_finite_bounds_as_residuals == false`. `use_feasibility_polishing` can only be used with linear programs. Feasibility polishing runs two separate phases, primal feasibility and dual feasibility. The primal feasibility phase runs PDHG on the primal feasibility problem (obtained by changing the objective vector to all zeros), using the average primal iterate and zero dual (which is optimal for the primal feasibility problem) as the initial solution. The dual feasibility phase runs PDHG on the dual feasibility problem (obtained by changing all finite variable and constraint bounds to zero), using the average dual iterate and zero primal (which is optimal for the dual feasibility problem) as the initial solution. The primal solution from the primal feasibility phase and dual solution from the dual feasibility phase are then combined (forming a solution of type `POINT_TYPE_FEASIBILITY_POLISHING_SOLUTION`) and checked against the termination criteria.
optional bool use_feasibility_polishing = 30 [default = false];
value
- The useFeasibilityPolishing to set.public PrimalDualHybridGradientParams.Builder clearUseFeasibilityPolishing()
If true, periodically runs feasibility polishing, which attempts to move from latest average iterate to one that is closer to feasibility (i.e., has smaller primal and dual residuals) while probably increasing the objective gap. This is useful primarily when the feasibility tolerances are fairly tight and the objective gap tolerance is somewhat looser. Note that this does not change the termination criteria, but rather can help achieve the termination criteria more quickly when the objective gap is not as important as feasibility. `use_feasibility_polishing` cannot be used with glop presolve, and requires `handle_some_primal_gradients_on_finite_bounds_as_residuals == false`. `use_feasibility_polishing` can only be used with linear programs. Feasibility polishing runs two separate phases, primal feasibility and dual feasibility. The primal feasibility phase runs PDHG on the primal feasibility problem (obtained by changing the objective vector to all zeros), using the average primal iterate and zero dual (which is optimal for the primal feasibility problem) as the initial solution. The dual feasibility phase runs PDHG on the dual feasibility problem (obtained by changing all finite variable and constraint bounds to zero), using the average dual iterate and zero primal (which is optimal for the dual feasibility problem) as the initial solution. The primal solution from the primal feasibility phase and dual solution from the dual feasibility phase are then combined (forming a solution of type `POINT_TYPE_FEASIBILITY_POLISHING_SOLUTION`) and checked against the termination criteria.
optional bool use_feasibility_polishing = 30 [default = false];
Copyright © 2025. All rights reserved.