14#include <OpenMS/OpenMSConfig.h>
15#include <OpenMS/config.h>
59 Int time_limit = (std::numeric_limits<Int>::max)();
60 bool enable_presolve =
true;
157 Int addRow(
const std::vector<Int>& row_indices,
const std::vector<double>& row_values,
const std::string& name);
174 Int addColumn(
const std::vector<Int>& column_indices,
const std::vector<double>& column_values,
const std::string& name);
186 Int addRow(
const std::vector<Int>& row_indices,
const std::vector<double>& row_values,
187 const std::string& name,
double lower_bound,
double upper_bound,
Type type);
199 Int addColumn(
const std::vector<Int>& column_indices,
const std::vector<double>& column_values,
const std::string& name,
double lower_bound,
double upper_bound,
Type type);
394 void readProblem(
const std::string& filename,
const std::string& format);
A wrapper class for the linear programming (LP) solver.
Definition LPWrapper.h:49
Int addColumn()
Adds an empty column to the LP matrix.
Int addRow(const std::vector< Int > &row_indices, const std::vector< double > &row_values, const std::string &name, double lower_bound, double upper_bound, Type type)
Adds a row with boundaries to the LP matrix, returns index.
Int addColumn(const std::vector< Int > &column_indices, const std::vector< double > &column_values, const std::string &name, double lower_bound, double upper_bound, Type type)
Adds a column with boundaries to the LP matrix, returns index.
void setObjective(Int index, double obj_value)
Set the objective coefficient for a column/variable.
void setColumnBounds(Int index, double lower_bound, double upper_bound, Type type)
Set column bounds.
std::string getColumnName(Int index)
Get the name of a column.
Int solve(SolverParam &solver_param, const Size verbose_level=0)
solve problems, parameters like enabled heuristics can be given via solver_param
Type
Enumeration for variable/constraint bound types.
Definition LPWrapper.h:69
@ UPPER_BOUND_ONLY
Only upper bound is specified.
Definition LPWrapper.h:72
@ LOWER_BOUND_ONLY
Only lower bound is specified.
Definition LPWrapper.h:71
@ DOUBLE_BOUNDED
Both lower and upper bounds are specified.
Definition LPWrapper.h:73
double getObjective(Int index)
Get the objective coefficient for a column/variable.
double getElement(Int row_index, Int column_index)
Get the value of a matrix element at the specified position.
void writeProblem(const std::string &filename, const WriteFormat format) const
Write LP formulation to a file.
void setObjectiveSense(Sense sense)
Set objective direction.
double getObjectiveValue()
Get the objective function value of the solution.
Int getColumnIndex(const std::string &name)
Find the index of a column by its name.
Sense getObjectiveSense()
Get the current objective direction.
Int getNumberOfNonZeroEntriesInRow(Int idx)
Get the number of non-zero entries in a specific row.
void setElement(Int row_index, Int column_index, double value)
Set the value of a matrix element at the specified position.
void deleteRow(Int index)
Delete the row at the specified index.
std::string getRowName(Int index)
Get the name of a row.
void setRowName(Int index, const std::string &name)
Set the name of a row.
VariableType getColumnType(Int index)
Get column/variable type.
SOLVER getSolver() const
Get the currently active solver backend.
SolverStatus
Enumeration for solver status after solving an LP problem.
Definition LPWrapper.h:127
Int addRow(const std::vector< Int > &row_indices, const std::vector< double > &row_values, const std::string &name)
Adds a row to the LP matrix.
void setRowBounds(Int index, double lower_bound, double upper_bound, Type type)
Set row bounds.
void flushIntegrality_() const
Apply staged_integrality_ to the HiGHS model (const: also needed by writeProblem())
Int getNumberOfColumns()
Get the number of columns/variables in the LP problem.
double getRowUpperBound(Int index)
Get the upper bound of a row.
LPWrapper()
Default constructor.
void setColumnType(Int index, VariableType type)
Set column/variable type.
void setColumnName(Int index, const std::string &name)
Set the name of a column.
SolverStatus getStatus()
Get solution status.
std::unique_ptr< Highs > highs_
HiGHS solver instance.
Definition LPWrapper.h:470
std::vector< double > solution_
Definition LPWrapper.h:471
SOLVER
Enumeration for available LP solvers.
Definition LPWrapper.h:117
void getMatrixRow(Int idx, std::vector< Int > &indexes)
Get the indices of non-zero entries in a specific row.
double getRowLowerBound(Int index)
Get the lower bound of a row.
Int getNumberOfRows()
Get the number of rows/constraints in the LP problem.
Int getRowIndex(const std::string &name)
Find the index of a row by its name.
Sense
Enumeration for optimization direction.
Definition LPWrapper.h:95
VariableType
Enumeration for variable types in the LP problem.
Definition LPWrapper.h:83
@ INTEGER
Integer variable (can only take integer values within bounds)
Definition LPWrapper.h:85
double getColumnUpperBound(Int index)
Get the upper bound of a column.
void readProblem(const std::string &filename, const std::string &format)
Read LP from file.
double getColumnLowerBound(Int index)
Get the lower bound of a column.
Int addColumn(const std::vector< Int > &column_indices, const std::vector< double > &column_values, const std::string &name)
Adds a column to the LP matrix.
double getColumnValue(Int index)
Get the value of a variable in the solution.
virtual ~LPWrapper()
Virtual destructor.
WriteFormat
Enumeration for LP problem file formats.
Definition LPWrapper.h:106
std::vector< uint8_t > staged_integrality_
Definition LPWrapper.h:474
Struct that holds the parameters of the LP solver.
Definition LPWrapper.h:57
int Int
Signed integer type.
Definition Types.h:72
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition Types.h:97
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19