Uses of Class
com.google.ortools.glop.GlopParameters.Builder
Packages that use GlopParameters.Builder
-
Uses of GlopParameters.Builder in com.google.ortools.glop
Subclasses with type arguments of type GlopParameters.Builder in com.google.ortools.glopMethods in com.google.ortools.glop that return GlopParameters.BuilderModifier and TypeMethodDescriptionGlopParameters.Builder.clear()
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.clearBasisRefactorizationPeriod()
Number of iterations between two basis refactorizations.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.clearCostScaling()
optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING];
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.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.clearDevexWeightsResetPeriod()
Devex weights will be reset to 1.0 after that number of updates.GlopParameters.Builder.clearDropMagnitude()
Value in the input LP lower than this will be ignored.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.clearDualFeasibilityTolerance()
Variables whose reduced costs have an absolute value smaller than this tolerance are not considered as entering candidates.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.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.clearDualSmallPivotThreshold()
Like small_pivot_threshold but for the dual simplex.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.clearExploitSingletonColumnInInitialBasis()
Whether or not we exploit the singleton columns already present in the problem when we create the initial basis.GlopParameters.Builder.clearFeasibilityRule()
PricingRule to use during the feasibility phase.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.clearInitialBasis()
What heuristic is used to try to replace the fixed slack columns in the initial basis of the primal simplex.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.clearInitializeDevexWithColumnNorms()
Whether we initialize devex weights to 1.0 or to the norms of the matrix columns.GlopParameters.Builder.clearLogSearchProgress()
If true, logs the progress of a solve to LOG(INFO).GlopParameters.Builder.clearLogToStdout()
If true, logs will be displayed to stdout instead of using Google log info.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.clearMarkowitzSingularityThreshold()
If a pivot magnitude is smaller than this during the Markowitz LU factorization, then the matrix is assumed to be singular.GlopParameters.Builder.clearMarkowitzZlatevParameter()
How many columns do we look at in the Markowitz pivoting rule to find a good pivot.GlopParameters.Builder.clearMaxDeterministicTime()
Maximum deterministic time allowed to solve a problem.GlopParameters.Builder.clearMaxNumberOfIterations()
Maximum number of simplex iterations to solve a problem.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.clearMaxTimeInSeconds()
Maximum time allowed in seconds to solve a problem.GlopParameters.Builder.clearMaxValidMagnitude()
Any finite values in the input LP must be below this threshold, otherwise the model will be reported invalid.GlopParameters.Builder.clearMinimumAcceptablePivot()
We never follow a basis change with a pivot under this threshold.GlopParameters.Builder.clearNumOmpThreads()
Number of threads in the OMP parallel sections.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.clearObjectiveUpperLimit()
optional double objective_upper_limit = 41 [default = inf];
GlopParameters.Builder.clearOptimizationRule()
PricingRule to use during the optimization phase.GlopParameters.Builder.clearPerturbCostsInDualSimplex()
When this is true, then the costs are randomly perturbed before the dual simplex is even started.GlopParameters.Builder.clearPreprocessorZeroTolerance()
A floating point tolerance used by the preprocessors.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.clearProvideStrongOptimalGuarantee()
If true, then when the solver returns a solution with an OPTIMAL status, we can guarantee that: - The primal variable are in their boundsGlopParameters.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.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.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.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.clearRecomputeReducedCostsThreshold()
We estimate the accuracy of the iteratively computed reduced costs.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.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);GlopParameters.Builder.clearRelativeMaxCostPerturbation()
optional double relative_max_cost_perturbation = 55 [default = 1e-07];
GlopParameters.Builder.clearScalingMethod()
optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION];
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.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.clearSolveDualProblem()
Whether or not we solve the dual of the given problem.GlopParameters.Builder.clearUseAbslRandom()
Whether to use absl::BitGen instead of MTRandom.GlopParameters.Builder.clearUseDedicatedDualFeasibilityAlgorithm()
We have two possible dual phase I algorithms.GlopParameters.Builder.clearUseDualSimplex()
Whether or not we use the dual simplex algorithm instead of the primal.GlopParameters.Builder.clearUseImpliedFreePreprocessor()
If presolve runs, include the pass that detects implied free variables.GlopParameters.Builder.clearUseMiddleProductFormUpdate()
Whether or not to use the middle product form update rather than the standard eta LU update.GlopParameters.Builder.clearUsePreprocessing()
Whether or not we use advanced preprocessing techniques.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.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.mergeFrom
(GlopParameters other) GlopParameters.Builder.mergeFrom
(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) GlopParameters.Builder.mergeFrom
(com.google.protobuf.Message other) static GlopParameters.Builder
GlopParameters.newBuilder()
static GlopParameters.Builder
GlopParameters.newBuilder
(GlopParameters prototype) GlopParameters.newBuilderForType()
protected GlopParameters.Builder
GlopParameters.newBuilderForType
(com.google.protobuf.AbstractMessage.BuilderParent parent) 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.setBasisRefactorizationPeriod
(int value) Number of iterations between two basis refactorizations.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.setCostScaling
(GlopParameters.CostScalingAlgorithm value) optional .operations_research.glop.GlopParameters.CostScalingAlgorithm cost_scaling = 60 [default = CONTAIN_ONE_COST_SCALING];
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.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.setDevexWeightsResetPeriod
(int value) Devex weights will be reset to 1.0 after that number of updates.GlopParameters.Builder.setDropMagnitude
(double value) Value in the input LP lower than this will be ignored.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.setDualFeasibilityTolerance
(double value) Variables whose reduced costs have an absolute value smaller than this tolerance are not considered as entering candidates.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.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.setDualSmallPivotThreshold
(double value) Like small_pivot_threshold but for the dual simplex.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.setExploitSingletonColumnInInitialBasis
(boolean value) Whether or not we exploit the singleton columns already present in the problem when we create the initial basis.GlopParameters.Builder.setFeasibilityRule
(GlopParameters.PricingRule value) PricingRule to use during the feasibility phase.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.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.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.setInitializeDevexWithColumnNorms
(boolean value) Whether we initialize devex weights to 1.0 or to the norms of the matrix columns.GlopParameters.Builder.setLogSearchProgress
(boolean value) If true, logs the progress of a solve to LOG(INFO).GlopParameters.Builder.setLogToStdout
(boolean value) If true, logs will be displayed to stdout instead of using Google log info.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.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.setMarkowitzZlatevParameter
(int value) How many columns do we look at in the Markowitz pivoting rule to find a good pivot.GlopParameters.Builder.setMaxDeterministicTime
(double value) Maximum deterministic time allowed to solve a problem.GlopParameters.Builder.setMaxNumberOfIterations
(long value) Maximum number of simplex iterations to solve a problem.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.setMaxTimeInSeconds
(double value) Maximum time allowed in seconds to solve a problem.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.setMinimumAcceptablePivot
(double value) We never follow a basis change with a pivot under this threshold.GlopParameters.Builder.setNumOmpThreads
(int value) Number of threads in the OMP parallel sections.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.setObjectiveUpperLimit
(double value) optional double objective_upper_limit = 41 [default = inf];
GlopParameters.Builder.setOptimizationRule
(GlopParameters.PricingRule value) PricingRule to use during the optimization phase.GlopParameters.Builder.setPerturbCostsInDualSimplex
(boolean value) When this is true, then the costs are randomly perturbed before the dual simplex is even started.GlopParameters.Builder.setPreprocessorZeroTolerance
(double value) A floating point tolerance used by the preprocessors.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.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 boundsGlopParameters.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.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.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.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.setRecomputeReducedCostsThreshold
(double value) We estimate the accuracy of the iteratively computed reduced costs.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.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);GlopParameters.Builder.setRelativeMaxCostPerturbation
(double value) optional double relative_max_cost_perturbation = 55 [default = 1e-07];
GlopParameters.Builder.setScalingMethod
(GlopParameters.ScalingAlgorithm value) optional .operations_research.glop.GlopParameters.ScalingAlgorithm scaling_method = 57 [default = EQUILIBRATION];
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.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.setSolveDualProblem
(GlopParameters.SolverBehavior value) Whether or not we solve the dual of the given problem.GlopParameters.Builder.setUseAbslRandom
(boolean value) Whether to use absl::BitGen instead of MTRandom.GlopParameters.Builder.setUseDedicatedDualFeasibilityAlgorithm
(boolean value) We have two possible dual phase I algorithms.GlopParameters.Builder.setUseDualSimplex
(boolean value) Whether or not we use the dual simplex algorithm instead of the primal.GlopParameters.Builder.setUseImpliedFreePreprocessor
(boolean value) If presolve runs, include the pass that detects implied free variables.GlopParameters.Builder.setUseMiddleProductFormUpdate
(boolean value) Whether or not to use the middle product form update rather than the standard eta LU update.GlopParameters.Builder.setUsePreprocessing
(boolean value) Whether or not we use advanced preprocessing techniques.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.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.toBuilder()
-
Uses of GlopParameters.Builder in com.google.ortools.pdlp
Methods in com.google.ortools.pdlp that return GlopParameters.BuilderModifier and TypeMethodDescriptionPrimalDualHybridGradientParams.PresolveOptions.Builder.getGlopParametersBuilder()
Parameters to control glop's presolver.Methods in com.google.ortools.pdlp with parameters of type GlopParameters.BuilderModifier and TypeMethodDescriptionPrimalDualHybridGradientParams.PresolveOptions.Builder.setGlopParameters
(GlopParameters.Builder builderForValue) Parameters to control glop's presolver.