Package | Description |
---|---|
com.google.ortools.glop | |
com.google.ortools.pdlp |
Modifier and Type | Method and Description |
---|---|
GlopParameters.Builder |
GlopParameters.Builder.clear() |
GlopParameters.Builder |
GlopParameters.Builder.clearAllowSimplexAlgorithmChange()
During incremental solve, let the solver decide if it use the primal or
dual simplex algorithm depending on the current solution and on the new
problem.
|
GlopParameters.Builder |
GlopParameters.Builder.clearBasisRefactorizationPeriod()
Number of iterations between two basis refactorizations.
|
GlopParameters.Builder |
GlopParameters.Builder.clearChangeStatusToImprecise()
If true, the internal API will change the return status to imprecise if the
solution does not respect the internal tolerances.
|
GlopParameters.Builder |
GlopParameters.Builder.clearCostScaling()
optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING]; |
GlopParameters.Builder |
GlopParameters.Builder.clearCrossoverBoundSnappingDistance()
If the starting basis contains FREE variable with bounds, we will move
any such variable to their closer bounds if the distance is smaller than
this parameter.
|
GlopParameters.Builder |
GlopParameters.Builder.clearDegenerateMinistepFactor()
During a degenerate iteration, the more conservative approach is to do a
step of length zero (while shifting the bound of the leaving variable).
|
GlopParameters.Builder |
GlopParameters.Builder.clearDevexWeightsResetPeriod()
Devex weights will be reset to 1.0 after that number of updates.
|
GlopParameters.Builder |
GlopParameters.Builder.clearDropMagnitude()
Value in the input LP lower than this will be ignored.
|
GlopParameters.Builder |
GlopParameters.Builder.clearDropTolerance()
In order to increase the sparsity of the manipulated vectors, floating
point values with a magnitude smaller than this parameter are set to zero
(only in some places).
|
GlopParameters.Builder |
GlopParameters.Builder.clearDualFeasibilityTolerance()
Variables whose reduced costs have an absolute value smaller than this
tolerance are not considered as entering candidates.
|
GlopParameters.Builder |
GlopParameters.Builder.clearDualizerThreshold()
When solve_dual_problem is LET_SOLVER_DECIDE, take the dual if the number
of constraints of the problem is more than this threshold times the number
of variables.
|
GlopParameters.Builder |
GlopParameters.Builder.clearDualPricePrioritizeNorm()
On some problem like stp3d or pds-100 this makes a huge difference in
speed and number of iterations of the dual simplex.
|
GlopParameters.Builder |
GlopParameters.Builder.clearDualSmallPivotThreshold()
Like small_pivot_threshold but for the dual simplex.
|
GlopParameters.Builder |
GlopParameters.Builder.clearDynamicallyAdjustRefactorizationPeriod()
If this is true, then basis_refactorization_period becomes a lower bound on
the number of iterations between two refactorization (provided there is no
numerical accuracy issues).
|
GlopParameters.Builder |
GlopParameters.Builder.clearExploitSingletonColumnInInitialBasis()
Whether or not we exploit the singleton columns already present in the
problem when we create the initial basis.
|
GlopParameters.Builder |
GlopParameters.Builder.clearFeasibilityRule()
PricingRule to use during the feasibility phase.
|
GlopParameters.Builder |
GlopParameters.Builder.clearHarrisToleranceRatio()
This impacts the ratio test and indicates by how much we allow a basic
variable value that we move to go out of bounds.
|
GlopParameters.Builder |
GlopParameters.Builder.clearInitialBasis()
What heuristic is used to try to replace the fixed slack columns in the
initial basis of the primal simplex.
|
GlopParameters.Builder |
GlopParameters.Builder.clearInitialConditionNumberThreshold()
If our upper bound on the condition number of the initial basis (from our
heurisitic or a warm start) is above this threshold, we revert to an all
slack basis.
|
GlopParameters.Builder |
GlopParameters.Builder.clearInitializeDevexWithColumnNorms()
Whether we initialize devex weights to 1.0 or to the norms of the matrix
columns.
|
GlopParameters.Builder |
GlopParameters.Builder.clearLogSearchProgress()
If true, logs the progress of a solve to LOG(INFO).
|
GlopParameters.Builder |
GlopParameters.Builder.clearLogToStdout()
If true, logs will be displayed to stdout instead of using Google log info.
|
GlopParameters.Builder |
GlopParameters.Builder.clearLuFactorizationPivotThreshold()
Threshold for LU-factorization: for stability reasons, the magnitude of the
chosen pivot at a given step is guaranteed to be greater than this
threshold times the maximum magnitude of all the possible pivot choices in
the same column.
|
GlopParameters.Builder |
GlopParameters.Builder.clearMarkowitzSingularityThreshold()
If a pivot magnitude is smaller than this during the Markowitz LU
factorization, then the matrix is assumed to be singular.
|
GlopParameters.Builder |
GlopParameters.Builder.clearMarkowitzZlatevParameter()
How many columns do we look at in the Markowitz pivoting rule to find
a good pivot.
|
GlopParameters.Builder |
GlopParameters.Builder.clearMaxDeterministicTime()
Maximum deterministic time allowed to solve a problem.
|
GlopParameters.Builder |
GlopParameters.Builder.clearMaxNumberOfIterations()
Maximum number of simplex iterations to solve a problem.
|
GlopParameters.Builder |
GlopParameters.Builder.clearMaxNumberOfReoptimizations()
When the solution of phase II is imprecise, we re-run the phase II with the
opposite algorithm from that imprecise solution (i.e., if primal or dual
simplex was used, we use dual or primal simplex, respectively).
|
GlopParameters.Builder |
GlopParameters.Builder.clearMaxTimeInSeconds()
Maximum time allowed in seconds to solve a problem.
|
GlopParameters.Builder |
GlopParameters.Builder.clearMaxValidMagnitude()
Any finite values in the input LP must be below this threshold, otherwise
the model will be reported invalid.
|
GlopParameters.Builder |
GlopParameters.Builder.clearMinimumAcceptablePivot()
We never follow a basis change with a pivot under this threshold.
|
GlopParameters.Builder |
GlopParameters.Builder.clearNumOmpThreads()
Number of threads in the OMP parallel sections.
|
GlopParameters.Builder |
GlopParameters.Builder.clearObjectiveLowerLimit()
The solver will stop as soon as it has proven that the objective is smaller
than objective_lower_limit or greater than objective_upper_limit.
|
GlopParameters.Builder |
GlopParameters.Builder.clearObjectiveUpperLimit()
optional double objective_upper_limit = 41 [default = inf]; |
GlopParameters.Builder |
GlopParameters.Builder.clearOptimizationRule()
PricingRule to use during the optimization phase.
|
GlopParameters.Builder |
GlopParameters.Builder.clearPerturbCostsInDualSimplex()
When this is true, then the costs are randomly perturbed before the dual
simplex is even started.
|
GlopParameters.Builder |
GlopParameters.Builder.clearPreprocessorZeroTolerance()
A floating point tolerance used by the preprocessors.
|
GlopParameters.Builder |
GlopParameters.Builder.clearPrimalFeasibilityTolerance()
This tolerance indicates by how much we allow the variable values to go out
of bounds and still consider the current solution primal-feasible.
|
GlopParameters.Builder |
GlopParameters.Builder.clearProvideStrongOptimalGuarantee()
If true, then when the solver returns a solution with an OPTIMAL status,
we can guarantee that:
- The primal variable are in their bounds
|
GlopParameters.Builder |
GlopParameters.Builder.clearPushToVertex()
If the optimization phases finishes with super-basic variables (i.e.,
variables that either 1) have bounds but are FREE in the basis, or 2) have
no bounds and are FREE in the basis at a nonzero value), then run a "push"
phase to push these variables to bounds, obtaining a vertex solution.
|
GlopParameters.Builder |
GlopParameters.Builder.clearRandomSeed()
At the beginning of each solve, the random number generator used in some
part of the solver is reinitialized to this seed.
|
GlopParameters.Builder |
GlopParameters.Builder.clearRatioTestZeroThreshold()
During the primal simplex (resp. dual simplex), the coefficients of the
direction (resp. update row) with a magnitude lower than this threshold are
not considered during the ratio test.
|
GlopParameters.Builder |
GlopParameters.Builder.clearRecomputeEdgesNormThreshold()
Note that the threshold is a relative error on the actual norm (not the
squared one) and that edge norms are always greater than 1.
|
GlopParameters.Builder |
GlopParameters.Builder.clearRecomputeReducedCostsThreshold()
We estimate the accuracy of the iteratively computed reduced costs.
|
GlopParameters.Builder |
GlopParameters.Builder.clearRefactorizationThreshold()
We estimate the factorization accuracy of B during each pivot by using
the fact that we can compute the pivot coefficient in two ways:
- From direction[leaving_row]
|
GlopParameters.Builder |
GlopParameters.Builder.clearRelativeCostPerturbation()
The magnitude of the cost perturbation is given by
RandomIn(1.0, 2.0) * (
relative_cost_perturbation * cost
+ relative_max_cost_perturbation * max_cost);
optional double relative_cost_perturbation = 54 [default = 1e-05]; |
GlopParameters.Builder |
GlopParameters.Builder.clearRelativeMaxCostPerturbation()
optional double relative_max_cost_perturbation = 55 [default = 1e-07]; |
GlopParameters.Builder |
GlopParameters.Builder.clearScalingMethod()
optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION]; |
GlopParameters.Builder |
GlopParameters.Builder.clearSmallPivotThreshold()
When we choose the leaving variable, we want to avoid small pivot because
they are the less precise and may cause numerical instabilities.
|
GlopParameters.Builder |
GlopParameters.Builder.clearSolutionFeasibilityTolerance()
When the problem status is OPTIMAL, we check the optimality using this
relative tolerance and change the status to IMPRECISE if an issue is
detected.
|
GlopParameters.Builder |
GlopParameters.Builder.clearSolveDualProblem()
Whether or not we solve the dual of the given problem.
|
GlopParameters.Builder |
GlopParameters.Builder.clearUseDedicatedDualFeasibilityAlgorithm()
We have two possible dual phase I algorithms.
|
GlopParameters.Builder |
GlopParameters.Builder.clearUseDualSimplex()
Whether or not we use the dual simplex algorithm instead of the primal.
|
GlopParameters.Builder |
GlopParameters.Builder.clearUseImpliedFreePreprocessor()
If presolve runs, include the pass that detects implied free variables.
|
GlopParameters.Builder |
GlopParameters.Builder.clearUseMiddleProductFormUpdate()
Whether or not to use the middle product form update rather than the
standard eta LU update.
|
GlopParameters.Builder |
GlopParameters.Builder.clearUsePreprocessing()
Whether or not we use advanced preprocessing techniques.
|
GlopParameters.Builder |
GlopParameters.Builder.clearUseScaling()
Whether or not we scale the matrix A so that the maximum coefficient on
each line and each column is 1.0.
|
GlopParameters.Builder |
GlopParameters.Builder.clearUseTransposedMatrix()
Whether or not we keep a transposed version of the matrix A to speed-up the
pricing at the cost of extra memory and the initial tranposition
computation.
|
GlopParameters.Builder |
GlopParameters.Builder.mergeFrom(com.google.protobuf.CodedInputStream input,
com.google.protobuf.ExtensionRegistryLite extensionRegistry) |
GlopParameters.Builder |
GlopParameters.Builder.mergeFrom(GlopParameters other) |
GlopParameters.Builder |
GlopParameters.Builder.mergeFrom(com.google.protobuf.Message other) |
static GlopParameters.Builder |
GlopParameters.newBuilder() |
static GlopParameters.Builder |
GlopParameters.newBuilder(GlopParameters prototype) |
GlopParameters.Builder |
GlopParameters.newBuilderForType() |
protected GlopParameters.Builder |
GlopParameters.newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent) |
GlopParameters.Builder |
GlopParameters.Builder.setAllowSimplexAlgorithmChange(boolean value)
During incremental solve, let the solver decide if it use the primal or
dual simplex algorithm depending on the current solution and on the new
problem.
|
GlopParameters.Builder |
GlopParameters.Builder.setBasisRefactorizationPeriod(int value)
Number of iterations between two basis refactorizations.
|
GlopParameters.Builder |
GlopParameters.Builder.setChangeStatusToImprecise(boolean value)
If true, the internal API will change the return status to imprecise if the
solution does not respect the internal tolerances.
|
GlopParameters.Builder |
GlopParameters.Builder.setCostScaling(GlopParameters.CostScalingAlgorithm value)
optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING]; |
GlopParameters.Builder |
GlopParameters.Builder.setCrossoverBoundSnappingDistance(double value)
If the starting basis contains FREE variable with bounds, we will move
any such variable to their closer bounds if the distance is smaller than
this parameter.
|
GlopParameters.Builder |
GlopParameters.Builder.setDegenerateMinistepFactor(double value)
During a degenerate iteration, the more conservative approach is to do a
step of length zero (while shifting the bound of the leaving variable).
|
GlopParameters.Builder |
GlopParameters.Builder.setDevexWeightsResetPeriod(int value)
Devex weights will be reset to 1.0 after that number of updates.
|
GlopParameters.Builder |
GlopParameters.Builder.setDropMagnitude(double value)
Value in the input LP lower than this will be ignored.
|
GlopParameters.Builder |
GlopParameters.Builder.setDropTolerance(double value)
In order to increase the sparsity of the manipulated vectors, floating
point values with a magnitude smaller than this parameter are set to zero
(only in some places).
|
GlopParameters.Builder |
GlopParameters.Builder.setDualFeasibilityTolerance(double value)
Variables whose reduced costs have an absolute value smaller than this
tolerance are not considered as entering candidates.
|
GlopParameters.Builder |
GlopParameters.Builder.setDualizerThreshold(double value)
When solve_dual_problem is LET_SOLVER_DECIDE, take the dual if the number
of constraints of the problem is more than this threshold times the number
of variables.
|
GlopParameters.Builder |
GlopParameters.Builder.setDualPricePrioritizeNorm(boolean value)
On some problem like stp3d or pds-100 this makes a huge difference in
speed and number of iterations of the dual simplex.
|
GlopParameters.Builder |
GlopParameters.Builder.setDualSmallPivotThreshold(double value)
Like small_pivot_threshold but for the dual simplex.
|
GlopParameters.Builder |
GlopParameters.Builder.setDynamicallyAdjustRefactorizationPeriod(boolean value)
If this is true, then basis_refactorization_period becomes a lower bound on
the number of iterations between two refactorization (provided there is no
numerical accuracy issues).
|
GlopParameters.Builder |
GlopParameters.Builder.setExploitSingletonColumnInInitialBasis(boolean value)
Whether or not we exploit the singleton columns already present in the
problem when we create the initial basis.
|
GlopParameters.Builder |
GlopParameters.Builder.setFeasibilityRule(GlopParameters.PricingRule value)
PricingRule to use during the feasibility phase.
|
GlopParameters.Builder |
GlopParameters.Builder.setHarrisToleranceRatio(double value)
This impacts the ratio test and indicates by how much we allow a basic
variable value that we move to go out of bounds.
|
GlopParameters.Builder |
GlopParameters.Builder.setInitialBasis(GlopParameters.InitialBasisHeuristic value)
What heuristic is used to try to replace the fixed slack columns in the
initial basis of the primal simplex.
|
GlopParameters.Builder |
GlopParameters.Builder.setInitialConditionNumberThreshold(double value)
If our upper bound on the condition number of the initial basis (from our
heurisitic or a warm start) is above this threshold, we revert to an all
slack basis.
|
GlopParameters.Builder |
GlopParameters.Builder.setInitializeDevexWithColumnNorms(boolean value)
Whether we initialize devex weights to 1.0 or to the norms of the matrix
columns.
|
GlopParameters.Builder |
GlopParameters.Builder.setLogSearchProgress(boolean value)
If true, logs the progress of a solve to LOG(INFO).
|
GlopParameters.Builder |
GlopParameters.Builder.setLogToStdout(boolean value)
If true, logs will be displayed to stdout instead of using Google log info.
|
GlopParameters.Builder |
GlopParameters.Builder.setLuFactorizationPivotThreshold(double value)
Threshold for LU-factorization: for stability reasons, the magnitude of the
chosen pivot at a given step is guaranteed to be greater than this
threshold times the maximum magnitude of all the possible pivot choices in
the same column.
|
GlopParameters.Builder |
GlopParameters.Builder.setMarkowitzSingularityThreshold(double value)
If a pivot magnitude is smaller than this during the Markowitz LU
factorization, then the matrix is assumed to be singular.
|
GlopParameters.Builder |
GlopParameters.Builder.setMarkowitzZlatevParameter(int value)
How many columns do we look at in the Markowitz pivoting rule to find
a good pivot.
|
GlopParameters.Builder |
GlopParameters.Builder.setMaxDeterministicTime(double value)
Maximum deterministic time allowed to solve a problem.
|
GlopParameters.Builder |
GlopParameters.Builder.setMaxNumberOfIterations(long value)
Maximum number of simplex iterations to solve a problem.
|
GlopParameters.Builder |
GlopParameters.Builder.setMaxNumberOfReoptimizations(double value)
When the solution of phase II is imprecise, we re-run the phase II with the
opposite algorithm from that imprecise solution (i.e., if primal or dual
simplex was used, we use dual or primal simplex, respectively).
|
GlopParameters.Builder |
GlopParameters.Builder.setMaxTimeInSeconds(double value)
Maximum time allowed in seconds to solve a problem.
|
GlopParameters.Builder |
GlopParameters.Builder.setMaxValidMagnitude(double value)
Any finite values in the input LP must be below this threshold, otherwise
the model will be reported invalid.
|
GlopParameters.Builder |
GlopParameters.Builder.setMinimumAcceptablePivot(double value)
We never follow a basis change with a pivot under this threshold.
|
GlopParameters.Builder |
GlopParameters.Builder.setNumOmpThreads(int value)
Number of threads in the OMP parallel sections.
|
GlopParameters.Builder |
GlopParameters.Builder.setObjectiveLowerLimit(double value)
The solver will stop as soon as it has proven that the objective is smaller
than objective_lower_limit or greater than objective_upper_limit.
|
GlopParameters.Builder |
GlopParameters.Builder.setObjectiveUpperLimit(double value)
optional double objective_upper_limit = 41 [default = inf]; |
GlopParameters.Builder |
GlopParameters.Builder.setOptimizationRule(GlopParameters.PricingRule value)
PricingRule to use during the optimization phase.
|
GlopParameters.Builder |
GlopParameters.Builder.setPerturbCostsInDualSimplex(boolean value)
When this is true, then the costs are randomly perturbed before the dual
simplex is even started.
|
GlopParameters.Builder |
GlopParameters.Builder.setPreprocessorZeroTolerance(double value)
A floating point tolerance used by the preprocessors.
|
GlopParameters.Builder |
GlopParameters.Builder.setPrimalFeasibilityTolerance(double value)
This tolerance indicates by how much we allow the variable values to go out
of bounds and still consider the current solution primal-feasible.
|
GlopParameters.Builder |
GlopParameters.Builder.setProvideStrongOptimalGuarantee(boolean value)
If true, then when the solver returns a solution with an OPTIMAL status,
we can guarantee that:
- The primal variable are in their bounds
|
GlopParameters.Builder |
GlopParameters.Builder.setPushToVertex(boolean value)
If the optimization phases finishes with super-basic variables (i.e.,
variables that either 1) have bounds but are FREE in the basis, or 2) have
no bounds and are FREE in the basis at a nonzero value), then run a "push"
phase to push these variables to bounds, obtaining a vertex solution.
|
GlopParameters.Builder |
GlopParameters.Builder.setRandomSeed(int value)
At the beginning of each solve, the random number generator used in some
part of the solver is reinitialized to this seed.
|
GlopParameters.Builder |
GlopParameters.Builder.setRatioTestZeroThreshold(double value)
During the primal simplex (resp. dual simplex), the coefficients of the
direction (resp. update row) with a magnitude lower than this threshold are
not considered during the ratio test.
|
GlopParameters.Builder |
GlopParameters.Builder.setRecomputeEdgesNormThreshold(double value)
Note that the threshold is a relative error on the actual norm (not the
squared one) and that edge norms are always greater than 1.
|
GlopParameters.Builder |
GlopParameters.Builder.setRecomputeReducedCostsThreshold(double value)
We estimate the accuracy of the iteratively computed reduced costs.
|
GlopParameters.Builder |
GlopParameters.Builder.setRefactorizationThreshold(double value)
We estimate the factorization accuracy of B during each pivot by using
the fact that we can compute the pivot coefficient in two ways:
- From direction[leaving_row]
|
GlopParameters.Builder |
GlopParameters.Builder.setRelativeCostPerturbation(double value)
The magnitude of the cost perturbation is given by
RandomIn(1.0, 2.0) * (
relative_cost_perturbation * cost
+ relative_max_cost_perturbation * max_cost);
optional double relative_cost_perturbation = 54 [default = 1e-05]; |
GlopParameters.Builder |
GlopParameters.Builder.setRelativeMaxCostPerturbation(double value)
optional double relative_max_cost_perturbation = 55 [default = 1e-07]; |
GlopParameters.Builder |
GlopParameters.Builder.setScalingMethod(GlopParameters.ScalingAlgorithm value)
optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION]; |
GlopParameters.Builder |
GlopParameters.Builder.setSmallPivotThreshold(double value)
When we choose the leaving variable, we want to avoid small pivot because
they are the less precise and may cause numerical instabilities.
|
GlopParameters.Builder |
GlopParameters.Builder.setSolutionFeasibilityTolerance(double value)
When the problem status is OPTIMAL, we check the optimality using this
relative tolerance and change the status to IMPRECISE if an issue is
detected.
|
GlopParameters.Builder |
GlopParameters.Builder.setSolveDualProblem(GlopParameters.SolverBehavior value)
Whether or not we solve the dual of the given problem.
|
GlopParameters.Builder |
GlopParameters.Builder.setUseDedicatedDualFeasibilityAlgorithm(boolean value)
We have two possible dual phase I algorithms.
|
GlopParameters.Builder |
GlopParameters.Builder.setUseDualSimplex(boolean value)
Whether or not we use the dual simplex algorithm instead of the primal.
|
GlopParameters.Builder |
GlopParameters.Builder.setUseImpliedFreePreprocessor(boolean value)
If presolve runs, include the pass that detects implied free variables.
|
GlopParameters.Builder |
GlopParameters.Builder.setUseMiddleProductFormUpdate(boolean value)
Whether or not to use the middle product form update rather than the
standard eta LU update.
|
GlopParameters.Builder |
GlopParameters.Builder.setUsePreprocessing(boolean value)
Whether or not we use advanced preprocessing techniques.
|
GlopParameters.Builder |
GlopParameters.Builder.setUseScaling(boolean value)
Whether or not we scale the matrix A so that the maximum coefficient on
each line and each column is 1.0.
|
GlopParameters.Builder |
GlopParameters.Builder.setUseTransposedMatrix(boolean value)
Whether or not we keep a transposed version of the matrix A to speed-up the
pricing at the cost of extra memory and the initial tranposition
computation.
|
GlopParameters.Builder |
GlopParameters.toBuilder() |
Modifier and Type | Method and Description |
---|---|
GlopParameters.Builder |
PrimalDualHybridGradientParams.PresolveOptions.Builder.getGlopParametersBuilder()
Parameters to control glop's presolver.
|
Modifier and Type | Method and Description |
---|---|
PrimalDualHybridGradientParams.PresolveOptions.Builder |
PrimalDualHybridGradientParams.PresolveOptions.Builder.setGlopParameters(GlopParameters.Builder builderForValue)
Parameters to control glop's presolver.
|
Copyright © 2025. All rights reserved.