14#ifndef OR_TOOLS_GLOP_LP_SOLVER_H_
15#define OR_TOOLS_GLOP_LP_SOLVER_H_
20#include "ortools/glop/parameters.pb.h"
112 return variable_statuses_;
123 return constraint_activities_;
126 return constraint_statuses_;
136 return constraints_dual_ray_;
139 return variable_bounds_dual_ray_;
185 void ResizeSolution(RowIndex num_rows, ColIndex num_cols);
225 double ComputeMaxExpectedObjectiveError(
const LinearProgram& lp);
243 Fractional ComputeMaxCostPerturbationToEnforceOptimality(
245 Fractional ComputeMaxRhsPerturbationToEnforceOptimality(
254 double ComputePrimalValueInfeasibility(
const LinearProgram& lp,
258 double ComputeDualValueInfeasibility(
const LinearProgram& lp,
260 double ComputeReducedCostInfeasibility(
const LinearProgram& lp,
276 std::unique_ptr<RevisedSimplex> revised_simplex_;
279 int num_revised_simplex_iterations_;
297 bool may_have_multiple_solutions_;
298 Fractional max_absolute_primal_infeasibility_;
302 GlopParameters parameters_;
A full-fledged linear programming solver.
GlopParameters * GetMutableParameters()
SolverLogger & GetSolverLogger()
const GlopParameters & GetParameters() const
const DenseColumn & constraint_activities() const
const DenseRow & variable_bounds_dual_ray() const
static std::string GlopVersion()
Returns a string that describes the version of the solver.
Fractional GetMaximumDualInfeasibility() const
LPSolver(const LPSolver &)=delete
This type is neither copyable nor movable.
const DenseRow & reduced_costs() const
void SetInitialBasis(const VariableStatusRow &variable_statuses, const ConstraintStatusColumn &constraint_statuses)
int GetNumberOfSimplexIterations() const
Returns the number of simplex iterations used by the last Solve().
const DenseColumn & constraints_dual_ray() const
Fractional GetObjectiveValue() const
Returns the objective value of the solution with its offset and scaling.
double DeterministicTime() const
const ConstraintStatusColumn & constraint_statuses() const
const VariableStatusRow & variable_statuses() const
const DenseRow & variable_values() const
Accessors to information related to variables.
Fractional GetMaximumPrimalInfeasibility() const
ABSL_MUST_USE_RESULT ProblemStatus SolveWithTimeLimit(const LinearProgram &lp, TimeLimit *time_limit)
LPSolver & operator=(const LPSolver &)=delete
const DenseColumn & dual_values() const
void SetParameters(const GlopParameters ¶meters)
bool MayHaveMultipleOptimalSolutions() const
ProblemStatus LoadAndVerifySolution(const LinearProgram &lp, const ProblemSolution &solution)
const DenseRow & primal_ray() const
ABSL_MUST_USE_RESULT ProblemStatus Solve(const LinearProgram &lp)
ProblemStatus
Different statuses for a given problem.
In SWIG mode, we don't want anything besides these top-level includes.
Contains the solution of a LinearProgram as returned by a preprocessor.