Google OR-Tools v9.9
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research.pdlp.Solvers.PrimalDualHybridGradientParams Class Reference
Inheritance diagram for operations_research.pdlp.Solvers.PrimalDualHybridGradientParams:
operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder

Classes

class  Builder
 
enum  LinesearchRule
 
class  PresolveOptions
 
interface  PresolveOptionsOrBuilder
 
enum  RestartStrategy
 

Public Member Functions

boolean hasTerminationCriteria ()
 
operations_research.pdlp.Solvers.TerminationCriteria getTerminationCriteria ()
 
operations_research.pdlp.Solvers.TerminationCriteriaOrBuilder getTerminationCriteriaOrBuilder ()
 
boolean hasNumThreads ()
 
int getNumThreads ()
 
boolean hasNumShards ()
 
int getNumShards ()
 
boolean hasRecordIterationStats ()
 
boolean getRecordIterationStats ()
 
boolean hasVerbosityLevel ()
 
int getVerbosityLevel ()
 
boolean hasLogIntervalSeconds ()
 
double getLogIntervalSeconds ()
 
boolean hasMajorIterationFrequency ()
 
int getMajorIterationFrequency ()
 
boolean hasTerminationCheckFrequency ()
 
int getTerminationCheckFrequency ()
 
boolean hasRestartStrategy ()
 
operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.RestartStrategy getRestartStrategy ()
 
boolean hasPrimalWeightUpdateSmoothing ()
 
double getPrimalWeightUpdateSmoothing ()
 
boolean hasInitialPrimalWeight ()
 
double getInitialPrimalWeight ()
 
boolean hasPresolveOptions ()
 
operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.PresolveOptions getPresolveOptions ()
 
operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.PresolveOptionsOrBuilder getPresolveOptionsOrBuilder ()
 
boolean hasLInfRuizIterations ()
 
int getLInfRuizIterations ()
 
boolean hasL2NormRescaling ()
 
boolean getL2NormRescaling ()
 
boolean hasSufficientReductionForRestart ()
 
double getSufficientReductionForRestart ()
 
boolean hasNecessaryReductionForRestart ()
 
double getNecessaryReductionForRestart ()
 
boolean hasLinesearchRule ()
 
operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.LinesearchRule getLinesearchRule ()
 
boolean hasAdaptiveLinesearchParameters ()
 
operations_research.pdlp.Solvers.AdaptiveLinesearchParams getAdaptiveLinesearchParameters ()
 
operations_research.pdlp.Solvers.AdaptiveLinesearchParamsOrBuilder getAdaptiveLinesearchParametersOrBuilder ()
 
boolean hasMalitskyPockParameters ()
 
operations_research.pdlp.Solvers.MalitskyPockParams getMalitskyPockParameters ()
 
operations_research.pdlp.Solvers.MalitskyPockParamsOrBuilder getMalitskyPockParametersOrBuilder ()
 
boolean hasInitialStepSizeScaling ()
 
double getInitialStepSizeScaling ()
 
java.util.List< java.lang.Integer > getRandomProjectionSeedsList ()
 
int getRandomProjectionSeedsCount ()
 
int getRandomProjectionSeeds (int index)
 
boolean hasInfiniteConstraintBoundThreshold ()
 
double getInfiniteConstraintBoundThreshold ()
 
boolean hasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals ()
 
boolean getHandleSomePrimalGradientsOnFiniteBoundsAsResiduals ()
 
boolean hasUseDiagonalQpTrustRegionSolver ()
 
boolean getUseDiagonalQpTrustRegionSolver ()
 
boolean hasDiagonalQpTrustRegionSolverTolerance ()
 
double getDiagonalQpTrustRegionSolverTolerance ()
 
boolean hasUseFeasibilityPolishing ()
 
boolean getUseFeasibilityPolishing ()
 
final boolean isInitialized ()
 
void writeTo (com.google.protobuf.CodedOutputStream output) throws java.io.IOException
 
int getSerializedSize ()
 
boolean equals (final java.lang.Object obj)
 
int hashCode ()
 
Builder newBuilderForType ()
 
Builder toBuilder ()
 
com.google.protobuf.Parser< PrimalDualHybridGradientParamsgetParserForType ()
 
operations_research.pdlp.Solvers.PrimalDualHybridGradientParams getDefaultInstanceForType ()
 

Static Public Member Functions

static final com.google.protobuf.Descriptors.Descriptor getDescriptor ()
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (java.io.InputStream input) throws java.io.IOException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseDelimitedFrom (java.io.InputStream input) throws java.io.IOException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseDelimitedFrom (java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (com.google.protobuf.CodedInputStream input) throws java.io.IOException
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams parseFrom (com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
 
static Builder newBuilder ()
 
static Builder newBuilder (operations_research.pdlp.Solvers.PrimalDualHybridGradientParams prototype)
 
static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams getDefaultInstance ()
 
static com.google.protobuf.Parser< PrimalDualHybridGradientParamsparser ()
 

Static Public Attributes

static final int TERMINATION_CRITERIA_FIELD_NUMBER = 1
 
static final int NUM_THREADS_FIELD_NUMBER = 2
 
static final int NUM_SHARDS_FIELD_NUMBER = 27
 
static final int RECORD_ITERATION_STATS_FIELD_NUMBER = 3
 
static final int VERBOSITY_LEVEL_FIELD_NUMBER = 26
 
static final int LOG_INTERVAL_SECONDS_FIELD_NUMBER = 31
 
static final int MAJOR_ITERATION_FREQUENCY_FIELD_NUMBER = 4
 
static final int TERMINATION_CHECK_FREQUENCY_FIELD_NUMBER = 5
 
static final int RESTART_STRATEGY_FIELD_NUMBER = 6
 
static final int PRIMAL_WEIGHT_UPDATE_SMOOTHING_FIELD_NUMBER = 7
 
static final int INITIAL_PRIMAL_WEIGHT_FIELD_NUMBER = 8
 
static final int PRESOLVE_OPTIONS_FIELD_NUMBER = 16
 
static final int L_INF_RUIZ_ITERATIONS_FIELD_NUMBER = 9
 
static final int L2_NORM_RESCALING_FIELD_NUMBER = 10
 
static final int SUFFICIENT_REDUCTION_FOR_RESTART_FIELD_NUMBER = 11
 
static final int NECESSARY_REDUCTION_FOR_RESTART_FIELD_NUMBER = 17
 
static final int LINESEARCH_RULE_FIELD_NUMBER = 12
 
static final int ADAPTIVE_LINESEARCH_PARAMETERS_FIELD_NUMBER = 18
 
static final int MALITSKY_POCK_PARAMETERS_FIELD_NUMBER = 19
 
static final int INITIAL_STEP_SIZE_SCALING_FIELD_NUMBER = 25
 
static final int RANDOM_PROJECTION_SEEDS_FIELD_NUMBER = 28
 
static final int INFINITE_CONSTRAINT_BOUND_THRESHOLD_FIELD_NUMBER = 22
 
static final int HANDLE_SOME_PRIMAL_GRADIENTS_ON_FINITE_BOUNDS_AS_RESIDUALS_FIELD_NUMBER = 29
 
static final int USE_DIAGONAL_QP_TRUST_REGION_SOLVER_FIELD_NUMBER = 23
 
static final int DIAGONAL_QP_TRUST_REGION_SOLVER_TOLERANCE_FIELD_NUMBER = 24
 
static final int USE_FEASIBILITY_POLISHING_FIELD_NUMBER = 30
 
static final com.google.protobuf.Parser< PrimalDualHybridGradientParamsPARSER
 

Protected Member Functions

java.lang.Object newInstance (UnusedPrivateParameter unused)
 
com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable ()
 
Builder newBuilderForType (com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
 

Detailed Description

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

Definition at line 6658 of file Solvers.java.

Member Function Documentation

◆ equals()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.equals ( final java.lang.Object obj)

Definition at line 9064 of file Solvers.java.

◆ getAdaptiveLinesearchParameters()

operations_research.pdlp.Solvers.AdaptiveLinesearchParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getAdaptiveLinesearchParameters ( )

optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;

Returns
The adaptiveLinesearchParameters.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8498 of file Solvers.java.

◆ getAdaptiveLinesearchParametersOrBuilder()

operations_research.pdlp.Solvers.AdaptiveLinesearchParamsOrBuilder operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getAdaptiveLinesearchParametersOrBuilder ( )

optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8505 of file Solvers.java.

◆ getDefaultInstance()

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getDefaultInstance ( )
static

Definition at line 12250 of file Solvers.java.

◆ getDefaultInstanceForType()

operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getDefaultInstanceForType ( )

Definition at line 12286 of file Solvers.java.

◆ getDescriptor()

static final com.google.protobuf.Descriptors.Descriptor operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getDescriptor ( )
static

Definition at line 6693 of file Solvers.java.

◆ getDiagonalQpTrustRegionSolverTolerance()

double operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The diagonalQpTrustRegionSolverTolerance.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8757 of file Solvers.java.

◆ getHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The handleSomePrimalGradientsOnFiniteBoundsAsResiduals.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8685 of file Solvers.java.

◆ getInfiniteConstraintBoundThreshold()

double operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The infiniteConstraintBoundThreshold.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8654 of file Solvers.java.

◆ getInitialPrimalWeight()

double operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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;

Returns
The initialPrimalWeight.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8301 of file Solvers.java.

◆ getInitialStepSizeScaling()

double operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The initialStepSizeScaling.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8560 of file Solvers.java.

◆ getL2NormRescaling()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The l2NormRescaling.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8387 of file Solvers.java.

◆ getLinesearchRule()

operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.LinesearchRule operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getLinesearchRule ( )
Linesearch rule applied at each major iteration.

optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];

Returns
The linesearchRule.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8478 of file Solvers.java.

◆ getLInfRuizIterations()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The lInfRuizIterations.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8358 of file Solvers.java.

◆ getLogIntervalSeconds()

double operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The logIntervalSeconds.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8123 of file Solvers.java.

◆ getMajorIterationFrequency()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The majorIterationFrequency.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8160 of file Solvers.java.

◆ getMalitskyPockParameters()

operations_research.pdlp.Solvers.MalitskyPockParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getMalitskyPockParameters ( )

optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;

Returns
The malitskyPockParameters.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8524 of file Solvers.java.

◆ getMalitskyPockParametersOrBuilder()

operations_research.pdlp.Solvers.MalitskyPockParamsOrBuilder operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getMalitskyPockParametersOrBuilder ( )

optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8531 of file Solvers.java.

◆ getNecessaryReductionForRestart()

double operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The necessaryReductionForRestart.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8453 of file Solvers.java.

◆ getNumShards()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The numShards.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8008 of file Solvers.java.

◆ getNumThreads()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The numThreads.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 7965 of file Solvers.java.

◆ getParserForType()

com.google.protobuf.Parser< PrimalDualHybridGradientParams > operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getParserForType ( )

Definition at line 12281 of file Solvers.java.

◆ getPresolveOptions()

operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.PresolveOptions operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getPresolveOptions ( )

optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;

Returns
The presolveOptions.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8320 of file Solvers.java.

◆ getPresolveOptionsOrBuilder()

operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.PresolveOptionsOrBuilder operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getPresolveOptionsOrBuilder ( )

optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8327 of file Solvers.java.

◆ getPrimalWeightUpdateSmoothing()

double operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The primalWeightUpdateSmoothing.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8262 of file Solvers.java.

◆ getRandomProjectionSeeds()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Parameters
indexThe index of the element to return.
Returns
The randomProjectionSeeds at the given index.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8616 of file Solvers.java.

◆ getRandomProjectionSeedsCount()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The count of randomProjectionSeeds.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8599 of file Solvers.java.

◆ getRandomProjectionSeedsList()

java.util.List< java.lang.Integer > operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
A list containing the randomProjectionSeeds.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8583 of file Solvers.java.

◆ getRecordIterationStats()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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;

Returns
The recordIterationStats.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8041 of file Solvers.java.

◆ getRestartStrategy()

operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.RestartStrategy operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The restartStrategy.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8220 of file Solvers.java.

◆ getSerializedSize()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getSerializedSize ( )

Definition at line 8939 of file Solvers.java.

◆ getSufficientReductionForRestart()

double operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The sufficientReductionForRestart.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8418 of file Solvers.java.

◆ getTerminationCheckFrequency()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The terminationCheckFrequency.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8191 of file Solvers.java.

◆ getTerminationCriteria()

operations_research.pdlp.Solvers.TerminationCriteria operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getTerminationCriteria ( )

optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;

Returns
The terminationCriteria.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 7925 of file Solvers.java.

◆ getTerminationCriteriaOrBuilder()

operations_research.pdlp.Solvers.TerminationCriteriaOrBuilder operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.getTerminationCriteriaOrBuilder ( )

optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 7932 of file Solvers.java.

◆ getUseDiagonalQpTrustRegionSolver()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The useDiagonalQpTrustRegionSolver.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8722 of file Solvers.java.

◆ getUseFeasibilityPolishing()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The useFeasibilityPolishing.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8834 of file Solvers.java.

◆ getVerbosityLevel()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
The verbosityLevel.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8088 of file Solvers.java.

◆ hasAdaptiveLinesearchParameters()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.hasAdaptiveLinesearchParameters ( )

optional .operations_research.pdlp.AdaptiveLinesearchParams adaptive_linesearch_parameters = 18;

Returns
Whether the adaptiveLinesearchParameters field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8490 of file Solvers.java.

◆ hasDiagonalQpTrustRegionSolverTolerance()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the diagonalQpTrustRegionSolverTolerance field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8741 of file Solvers.java.

◆ hasHandleSomePrimalGradientsOnFiniteBoundsAsResiduals()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the handleSomePrimalGradientsOnFiniteBoundsAsResiduals field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8671 of file Solvers.java.

◆ hashCode()

int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.hashCode ( )

Definition at line 9211 of file Solvers.java.

◆ hasInfiniteConstraintBoundThreshold()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the infiniteConstraintBoundThreshold field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8637 of file Solvers.java.

◆ hasInitialPrimalWeight()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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;

Returns
Whether the initialPrimalWeight field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8283 of file Solvers.java.

◆ hasInitialStepSizeScaling()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the initialStepSizeScaling field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8547 of file Solvers.java.

◆ hasL2NormRescaling()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the l2NormRescaling field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8374 of file Solvers.java.

◆ hasLinesearchRule()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.hasLinesearchRule ( )
Linesearch rule applied at each major iteration.

optional .operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule linesearch_rule = 12 [default = ADAPTIVE_LINESEARCH_RULE];

Returns
Whether the linesearchRule field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8467 of file Solvers.java.

◆ hasLInfRuizIterations()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the lInfRuizIterations field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8344 of file Solvers.java.

◆ hasLogIntervalSeconds()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the logIntervalSeconds field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8107 of file Solvers.java.

◆ hasMajorIterationFrequency()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the majorIterationFrequency field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8143 of file Solvers.java.

◆ hasMalitskyPockParameters()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.hasMalitskyPockParameters ( )

optional .operations_research.pdlp.MalitskyPockParams malitsky_pock_parameters = 19;

Returns
Whether the malitskyPockParameters field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8516 of file Solvers.java.

◆ hasNecessaryReductionForRestart()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the necessaryReductionForRestart field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8437 of file Solvers.java.

◆ hasNumShards()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the numShards field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 7988 of file Solvers.java.

◆ hasNumThreads()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the numThreads field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 7950 of file Solvers.java.

◆ hasPresolveOptions()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.hasPresolveOptions ( )

optional .operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions presolve_options = 16;

Returns
Whether the presolveOptions field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8312 of file Solvers.java.

◆ hasPrimalWeightUpdateSmoothing()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the primalWeightUpdateSmoothing field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8243 of file Solvers.java.

◆ hasRecordIterationStats()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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;

Returns
Whether the recordIterationStats field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8026 of file Solvers.java.

◆ hasRestartStrategy()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the restartStrategy field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8207 of file Solvers.java.

◆ hasSufficientReductionForRestart()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the sufficientReductionForRestart field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8404 of file Solvers.java.

◆ hasTerminationCheckFrequency()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the terminationCheckFrequency field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8177 of file Solvers.java.

◆ hasTerminationCriteria()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.hasTerminationCriteria ( )

optional .operations_research.pdlp.TerminationCriteria termination_criteria = 1;

Returns
Whether the terminationCriteria field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 7917 of file Solvers.java.

◆ hasUseDiagonalQpTrustRegionSolver()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the useDiagonalQpTrustRegionSolver field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8705 of file Solvers.java.

◆ hasUseFeasibilityPolishing()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the useFeasibilityPolishing field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8797 of file Solvers.java.

◆ hasVerbosityLevel()

boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.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];

Returns
Whether the verbosityLevel field is set.

Implements operations_research.pdlp.Solvers.PrimalDualHybridGradientParamsOrBuilder.

Definition at line 8066 of file Solvers.java.

◆ internalGetFieldAccessorTable()

com.google.protobuf.GeneratedMessageV3.FieldAccessorTable operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.internalGetFieldAccessorTable ( )
protected

Definition at line 6699 of file Solvers.java.

◆ isInitialized()

final boolean operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.isInitialized ( )

Definition at line 8840 of file Solvers.java.

◆ newBuilder() [1/2]

static Builder operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.newBuilder ( )
static

Definition at line 9413 of file Solvers.java.

◆ newBuilder() [2/2]

static Builder operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.newBuilder ( operations_research.pdlp.Solvers.PrimalDualHybridGradientParams prototype)
static

Definition at line 9416 of file Solvers.java.

◆ newBuilderForType() [1/2]

Builder operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.newBuilderForType ( )

Definition at line 9412 of file Solvers.java.

◆ newBuilderForType() [2/2]

Builder operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.newBuilderForType ( com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
protected

Definition at line 9426 of file Solvers.java.

◆ newInstance()

java.lang.Object operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.newInstance ( UnusedPrivateParameter unused)
protected

Definition at line 6687 of file Solvers.java.

◆ parseDelimitedFrom() [1/2]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseDelimitedFrom ( java.io.InputStream input) throws java.io.IOException
static

Definition at line 9384 of file Solvers.java.

◆ parseDelimitedFrom() [2/2]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseDelimitedFrom ( java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry ) throws java.io.IOException
static

Definition at line 9390 of file Solvers.java.

◆ parseFrom() [1/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
static

Definition at line 9361 of file Solvers.java.

◆ parseFrom() [2/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( byte[] data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry ) throws com.google.protobuf.InvalidProtocolBufferException
static

Definition at line 9365 of file Solvers.java.

◆ parseFrom() [3/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
static

Definition at line 9350 of file Solvers.java.

◆ parseFrom() [4/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( com.google.protobuf.ByteString data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry ) throws com.google.protobuf.InvalidProtocolBufferException
static

Definition at line 9355 of file Solvers.java.

◆ parseFrom() [5/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( com.google.protobuf.CodedInputStream input) throws java.io.IOException
static

Definition at line 9397 of file Solvers.java.

◆ parseFrom() [6/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry ) throws java.io.IOException
static

Definition at line 9403 of file Solvers.java.

◆ parseFrom() [7/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( java.io.InputStream input) throws java.io.IOException
static

Definition at line 9371 of file Solvers.java.

◆ parseFrom() [8/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( java.io.InputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry ) throws java.io.IOException
static

Definition at line 9376 of file Solvers.java.

◆ parseFrom() [9/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
static

Definition at line 9339 of file Solvers.java.

◆ parseFrom() [10/10]

static operations_research.pdlp.Solvers.PrimalDualHybridGradientParams operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parseFrom ( java.nio.ByteBuffer data,
com.google.protobuf.ExtensionRegistryLite extensionRegistry ) throws com.google.protobuf.InvalidProtocolBufferException
static

Definition at line 9344 of file Solvers.java.

◆ parser()

static com.google.protobuf.Parser< PrimalDualHybridGradientParams > operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.parser ( )
static

Definition at line 12276 of file Solvers.java.

◆ toBuilder()

Builder operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.toBuilder ( )

Definition at line 9420 of file Solvers.java.

◆ writeTo()

void operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.writeTo ( com.google.protobuf.CodedOutputStream output) throws java.io.IOException

Definition at line 8850 of file Solvers.java.

Member Data Documentation

◆ ADAPTIVE_LINESEARCH_PARAMETERS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.ADAPTIVE_LINESEARCH_PARAMETERS_FIELD_NUMBER = 18
static

Definition at line 8483 of file Solvers.java.

◆ DIAGONAL_QP_TRUST_REGION_SOLVER_TOLERANCE_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.DIAGONAL_QP_TRUST_REGION_SOLVER_TOLERANCE_FIELD_NUMBER = 24
static

Definition at line 8726 of file Solvers.java.

◆ HANDLE_SOME_PRIMAL_GRADIENTS_ON_FINITE_BOUNDS_AS_RESIDUALS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.HANDLE_SOME_PRIMAL_GRADIENTS_ON_FINITE_BOUNDS_AS_RESIDUALS_FIELD_NUMBER = 29
static

Definition at line 8658 of file Solvers.java.

◆ INFINITE_CONSTRAINT_BOUND_THRESHOLD_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.INFINITE_CONSTRAINT_BOUND_THRESHOLD_FIELD_NUMBER = 22
static

Definition at line 8621 of file Solvers.java.

◆ INITIAL_PRIMAL_WEIGHT_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.INITIAL_PRIMAL_WEIGHT_FIELD_NUMBER = 8
static

Definition at line 8266 of file Solvers.java.

◆ INITIAL_STEP_SIZE_SCALING_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.INITIAL_STEP_SIZE_SCALING_FIELD_NUMBER = 25
static

Definition at line 8535 of file Solvers.java.

◆ L2_NORM_RESCALING_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.L2_NORM_RESCALING_FIELD_NUMBER = 10
static

Definition at line 8362 of file Solvers.java.

◆ L_INF_RUIZ_ITERATIONS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.L_INF_RUIZ_ITERATIONS_FIELD_NUMBER = 9
static

Definition at line 8331 of file Solvers.java.

◆ LINESEARCH_RULE_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.LINESEARCH_RULE_FIELD_NUMBER = 12
static

Definition at line 8457 of file Solvers.java.

◆ LOG_INTERVAL_SECONDS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.LOG_INTERVAL_SECONDS_FIELD_NUMBER = 31
static

Definition at line 8092 of file Solvers.java.

◆ MAJOR_ITERATION_FREQUENCY_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.MAJOR_ITERATION_FREQUENCY_FIELD_NUMBER = 4
static

Definition at line 8127 of file Solvers.java.

◆ MALITSKY_POCK_PARAMETERS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.MALITSKY_POCK_PARAMETERS_FIELD_NUMBER = 19
static

Definition at line 8509 of file Solvers.java.

◆ NECESSARY_REDUCTION_FOR_RESTART_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.NECESSARY_REDUCTION_FOR_RESTART_FIELD_NUMBER = 17
static

Definition at line 8422 of file Solvers.java.

◆ NUM_SHARDS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.NUM_SHARDS_FIELD_NUMBER = 27
static

Definition at line 7969 of file Solvers.java.

◆ NUM_THREADS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.NUM_THREADS_FIELD_NUMBER = 2
static

Definition at line 7936 of file Solvers.java.

◆ PARSER

final com.google.protobuf.Parser<PrimalDualHybridGradientParams> operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.PARSER
static
Initial value:
= new com.google.protobuf.AbstractParser<PrimalDualHybridGradientParams>() {
@java.lang.Override
public PrimalDualHybridGradientParams parsePartialFrom(
com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry)
throws com.google.protobuf.InvalidProtocolBufferException {
Builder builder = newBuilder();
try {
builder.mergeFrom(input, extensionRegistry);
} catch (com.google.protobuf.InvalidProtocolBufferException e) {
throw e.setUnfinishedMessage(builder.buildPartial());
} catch (com.google.protobuf.UninitializedMessageException e) {
throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
} catch (java.io.IOException e) {
throw new com.google.protobuf.InvalidProtocolBufferException(e)
.setUnfinishedMessage(builder.buildPartial());
}
return builder.buildPartial();
}
}

Definition at line 12255 of file Solvers.java.

◆ PRESOLVE_OPTIONS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.PRESOLVE_OPTIONS_FIELD_NUMBER = 16
static

Definition at line 8305 of file Solvers.java.

◆ PRIMAL_WEIGHT_UPDATE_SMOOTHING_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.PRIMAL_WEIGHT_UPDATE_SMOOTHING_FIELD_NUMBER = 7
static

Definition at line 8225 of file Solvers.java.

◆ RANDOM_PROJECTION_SEEDS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.RANDOM_PROJECTION_SEEDS_FIELD_NUMBER = 28
static

Definition at line 8564 of file Solvers.java.

◆ RECORD_ITERATION_STATS_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.RECORD_ITERATION_STATS_FIELD_NUMBER = 3
static

Definition at line 8012 of file Solvers.java.

◆ RESTART_STRATEGY_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.RESTART_STRATEGY_FIELD_NUMBER = 6
static

Definition at line 8195 of file Solvers.java.

◆ SUFFICIENT_REDUCTION_FOR_RESTART_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.SUFFICIENT_REDUCTION_FOR_RESTART_FIELD_NUMBER = 11
static

Definition at line 8391 of file Solvers.java.

◆ TERMINATION_CHECK_FREQUENCY_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.TERMINATION_CHECK_FREQUENCY_FIELD_NUMBER = 5
static

Definition at line 8164 of file Solvers.java.

◆ TERMINATION_CRITERIA_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.TERMINATION_CRITERIA_FIELD_NUMBER = 1
static

Definition at line 7910 of file Solvers.java.

◆ USE_DIAGONAL_QP_TRUST_REGION_SOLVER_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.USE_DIAGONAL_QP_TRUST_REGION_SOLVER_FIELD_NUMBER = 23
static

Definition at line 8689 of file Solvers.java.

◆ USE_FEASIBILITY_POLISHING_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.USE_FEASIBILITY_POLISHING_FIELD_NUMBER = 30
static

Definition at line 8761 of file Solvers.java.

◆ VERBOSITY_LEVEL_FIELD_NUMBER

final int operations_research.pdlp.Solvers.PrimalDualHybridGradientParams.VERBOSITY_LEVEL_FIELD_NUMBER = 26
static

Definition at line 8045 of file Solvers.java.


The documentation for this class was generated from the following file: