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.BuilderGlopParameters.newBuilder()static GlopParameters.BuilderGlopParameters.newBuilder(GlopParameters prototype) GlopParameters.newBuilderForType()protected GlopParameters.BuilderGlopParameters.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.