#include <OpenMS/DATASTRUCTURES/LPWrapper.h>
Classes | |
| struct | SolverParam |
| Struct that holds the parameters of the LP solver. More... | |
Public Types | |
| enum | Type { UNBOUNDED = 1, LOWER_BOUND_ONLY, UPPER_BOUND_ONLY, DOUBLE_BOUNDED, FIXED } |
| enum | VariableType { CONTINUOUS = 1, INTEGER, BINARY } |
| enum | Sense { MIN = 1, MAX } |
| enum | WriteFormat { FORMAT_LP = 0, FORMAT_MPS, FORMAT_GLPK } |
| enum | SOLVER { SOLVER_GLPK = 0 } |
| enum | SolverStatus { UNDEFINED = 1, OPTIMAL = 5, FEASIBLE = 2, NO_FEASIBLE_SOL = 4 } |
Public Member Functions | |
| LPWrapper () | |
| virtual | ~LPWrapper () |
| Int | addRow (std::vector< Int > row_indices, std::vector< DoubleReal > row_values, const String &name) |
| adds a row to the LP matrix, returns index More... | |
| Int | addColumn () |
| adds an empty column to the LP matrix, returns index More... | |
| Int | addColumn (std::vector< Int > column_indices, std::vector< DoubleReal > column_values, const String &name) |
| adds a column to the LP matrix, returns index More... | |
| Int | addRow (std::vector< Int > &row_indices, std::vector< DoubleReal > &row_values, const String &name, DoubleReal lower_bound, DoubleReal upper_bound, Type type) |
| Adds a row with boundaries to the LP matrix, returns index. More... | |
| Int | addColumn (std::vector< Int > &column_indices, std::vector< DoubleReal > &column_values, const String &name, DoubleReal lower_bound, DoubleReal upper_bound, Type type) |
| Adds a column with boundaries to the LP matrix, returns index. More... | |
| void | deleteRow (Int index) |
| delete index-th row More... | |
| void | setColumnName (Int index, const String &name) |
| sets name of the index-th column More... | |
| String | getColumnName (Int index) |
| gets name of the index-th column More... | |
| String | getRowName (Int index) |
| sets name of the index-th row More... | |
| Int | getRowIndex (const String &name) |
| gets index of the row with name More... | |
| Int | getColumnIndex (const String &name) |
| gets index of the column with name More... | |
| DoubleReal | getColumnUpperBound (Int index) |
| gets column's upper bound More... | |
| DoubleReal | getColumnLowerBound (Int index) |
| gets column's lower bound More... | |
| DoubleReal | getRowUpperBound (Int index) |
| gets row's upper bound More... | |
| DoubleReal | getRowLowerBound (Int index) |
| gets row's lower bound More... | |
| void | setRowName (Int index, const String &name) |
| sets name of the index-th row More... | |
| void | setColumnBounds (Int index, DoubleReal lower_bound, DoubleReal upper_bound, Type type) |
| Set column bounds. More... | |
| void | setRowBounds (Int index, DoubleReal lower_bound, DoubleReal upper_bound, Type type) |
| Set row bounds. More... | |
| void | setColumnType (Int index, VariableType type) |
| Set column/variable type. More... | |
| VariableType | getColumnType (Int index) |
| Get column/variable type. More... | |
| void | setObjective (Int index, DoubleReal obj_value) |
| set objective value for column with index More... | |
| DoubleReal | getObjective (Int index) |
| get objective value for column with index More... | |
| void | setObjectiveSense (Sense sense) |
| Set objective direction. More... | |
| Sense | getObjectiveSense () |
| Int | getNumberOfColumns () |
| get number of columns More... | |
| Int | getNumberOfRows () |
| get number of rows More... | |
| void | setElement (Int row_index, Int column_index, DoubleReal value) |
| DoubleReal | getElement (Int row_index, Int column_index) |
| void | readProblem (String filename, String format) |
| Read LP from file. More... | |
| void | writeProblem (const String &filename, const WriteFormat format) const |
| Write LP formulation to a file. More... | |
| Int | solve (SolverParam &solver_param, const Size verbose_level=0) |
| solve problems, parameters like enabled heuristics can be given via solver_param More... | |
| SolverStatus | getStatus () |
| Get solution status. More... | |
| DoubleReal | getObjectiveValue () |
| DoubleReal | getColumnValue (Int index) |
| Int | getNumberOfNonZeroEntriesInRow (Int idx) |
| void | getMatrixRow (Int idx, std::vector< Int > &indexes) |
| void | setSolver (const SOLVER s) |
| SOLVER | getSolver () const |
| get currently active solver More... | |
Protected Attributes | |
| glp_prob * | lp_problem_ |
| SOLVER | solver_ |
| enum Sense |
| enum SOLVER |
| enum SolverStatus |
| enum Type |
| enum VariableType |
| enum WriteFormat |
| LPWrapper | ( | ) |
|
virtual |
| Int addColumn | ( | ) |
adds an empty column to the LP matrix, returns index
| Int addColumn | ( | std::vector< Int > | column_indices, |
| std::vector< DoubleReal > | column_values, | ||
| const String & | name | ||
| ) |
adds a column to the LP matrix, returns index
| Int addColumn | ( | std::vector< Int > & | column_indices, |
| std::vector< DoubleReal > & | column_values, | ||
| const String & | name, | ||
| DoubleReal | lower_bound, | ||
| DoubleReal | upper_bound, | ||
| Type | type | ||
| ) |
Adds a column with boundaries to the LP matrix, returns index.
| column_indices | |
| column_values | |
| name | |
| lower_bound | |
| upper_bound | |
| type | 1 - unbounded, 2 - only lower bound, 3 - only upper bound, 4 - double-bounded variable, 5 - fixed variable |
| Int addRow | ( | std::vector< Int > | row_indices, |
| std::vector< DoubleReal > | row_values, | ||
| const String & | name | ||
| ) |
adds a row to the LP matrix, returns index
| Int addRow | ( | std::vector< Int > & | row_indices, |
| std::vector< DoubleReal > & | row_values, | ||
| const String & | name, | ||
| DoubleReal | lower_bound, | ||
| DoubleReal | upper_bound, | ||
| Type | type | ||
| ) |
Adds a row with boundaries to the LP matrix, returns index.
If you have a fixed variable, GLPK requires to use the "fixed" type, instead of "double-bounded" with equal bounds.
| row_indices | |
| row_values | |
| name | |
| lower_bound | |
| upper_bound | |
| type | Type of the row 1 - unbounded, 2 - only lower bound, 3 - only upper bound, 4 - double-bounded variable, 5 - fixed variable |
| void deleteRow | ( | Int | index | ) |
delete index-th row
| DoubleReal getColumnLowerBound | ( | Int | index | ) |
gets column's lower bound
| VariableType getColumnType | ( | Int | index | ) |
Get column/variable type.
| index |
| DoubleReal getColumnUpperBound | ( | Int | index | ) |
gets column's upper bound
| DoubleReal getColumnValue | ( | Int | index | ) |
| DoubleReal getElement | ( | Int | row_index, |
| Int | column_index | ||
| ) |
| Int getNumberOfColumns | ( | ) |
get number of columns
| Int getNumberOfRows | ( | ) |
get number of rows
| DoubleReal getObjective | ( | Int | index | ) |
get objective value for column with index
| Sense getObjectiveSense | ( | ) |
| DoubleReal getObjectiveValue | ( | ) |
| DoubleReal getRowLowerBound | ( | Int | index | ) |
gets row's lower bound
| DoubleReal getRowUpperBound | ( | Int | index | ) |
gets row's upper bound
| SOLVER getSolver | ( | ) | const |
get currently active solver
| SolverStatus getStatus | ( | ) |
Get solution status.
Read LP from file.
| filename | Filename where to store the LP problem. |
| format | LP, MPS or GLPK. |
| void setColumnBounds | ( | Int | index, |
| DoubleReal | lower_bound, | ||
| DoubleReal | upper_bound, | ||
| Type | type | ||
| ) |
Set column bounds.
| index | |
| lower_bound | |
| upper_bound | |
| type | 1 - unbounded, 2 - only lower bound, 3 - only upper bound, 4 - double-bounded variable, 5 - fixed variable |
| void setColumnType | ( | Int | index, |
| VariableType | type | ||
| ) |
Set column/variable type.
| index | |
| type | 1- continuous, 2- integer, 3- binary variable |
| void setElement | ( | Int | row_index, |
| Int | column_index, | ||
| DoubleReal | value | ||
| ) |
| void setObjective | ( | Int | index, |
| DoubleReal | obj_value | ||
| ) |
set objective value for column with index
| void setObjectiveSense | ( | Sense | sense | ) |
Set objective direction.
| sense | 1- minimize, 2- maximize |
| void setRowBounds | ( | Int | index, |
| DoubleReal | lower_bound, | ||
| DoubleReal | upper_bound, | ||
| Type | type | ||
| ) |
Set row bounds.
| index | |
| lower_bound | |
| upper_bound | |
| type | 1 - unbounded, 2 - only lower bound, 3 - only upper bound, 4 - double-bounded variable, 5 - fixed constraint |
| void setSolver | ( | const SOLVER | s | ) |
choose solver; by default, only GLPK is available set this only at the very beginning of building your model, as otherwise your model is incomplete
| Int solve | ( | SolverParam & | solver_param, |
| const Size | verbose_level = 0 |
||
| ) |
solve problems, parameters like enabled heuristics can be given via solver_param
The verbose level (0,1,2) determines if the solver prints status messages and internals.
| solver_param | |
| verbose_level |
| void writeProblem | ( | const String & | filename, |
| const WriteFormat | format | ||
| ) | const |
Write LP formulation to a file.
| filename | output filename, if the filename ends with '.gz' it will be compressed |
| format | MPS-format is supported by GLPK and COIN-OR; LP and GLPK-formats only by GLPK |
|
protected |
|
protected |
| OpenMS / TOPP release 1.11.1 | Documentation generated on Thu Nov 14 2013 11:19:29 using doxygen 1.8.5 |