14 #ifndef OR_TOOLS_GLOP_LP_SOLVER_H_
15 #define OR_TOOLS_GLOP_LP_SOLVER_H_
19 #include "ortools/glop/parameters.pb.h"
103 return variable_statuses_;
114 return constraint_activities_;
117 return constraint_statuses_;
156 void ResizeSolution(RowIndex num_rows, ColIndex num_cols);
196 double ComputeMaxExpectedObjectiveError(
const LinearProgram& lp);
214 Fractional ComputeMaxCostPerturbationToEnforceOptimality(
216 Fractional ComputeMaxRhsPerturbationToEnforceOptimality(
225 double ComputePrimalValueInfeasibility(
const LinearProgram& lp,
229 double ComputeDualValueInfeasibility(
const LinearProgram& lp,
231 double ComputeReducedCostInfeasibility(
const LinearProgram& lp,
245 std::unique_ptr<RevisedSimplex> revised_simplex_;
248 int num_revised_simplex_iterations_;
261 bool may_have_multiple_solutions_;
262 Fractional max_absolute_primal_infeasibility_;
266 GlopParameters parameters_;
A simple class to enforce both an elapsed time limit and a deterministic time limit in the same threa...
const GlopParameters & GetParameters() const
const DenseColumn & constraint_activities() const
void SetInitialBasis(const VariableStatusRow &variable_statuses, const ConstraintStatusColumn &constraint_statuses)
const ConstraintStatusColumn & constraint_statuses() const
bool MayHaveMultipleOptimalSolutions() const
const VariableStatusRow & variable_statuses() const
const DenseColumn & dual_values() const
GlopParameters * GetMutableParameters()
Fractional GetMaximumDualInfeasibility() const
const DenseRow & variable_values() const
Fractional GetMaximumPrimalInfeasibility() const
Fractional GetObjectiveValue() const
ProblemStatus LoadAndVerifySolution(const LinearProgram &lp, const ProblemSolution &solution)
const DenseRow & reduced_costs() const
ABSL_MUST_USE_RESULT ProblemStatus Solve(const LinearProgram &lp)
ABSL_MUST_USE_RESULT ProblemStatus SolveWithTimeLimit(const LinearProgram &lp, TimeLimit *time_limit)
void SetParameters(const GlopParameters ¶meters)
double DeterministicTime() const
int GetNumberOfSimplexIterations() const
SharedTimeLimit * time_limit
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...