Antares Xpansion
Investment simulations for Antares studies
|
Public Member Functions | |
SolverClp () | |
Default constructor of a CLP solver. | |
SolverClp (SolverLogManager &log_manager) | |
SolverClp (const std::shared_ptr< const SolverAbstract > toCopy) | |
Copy constructor of CLP, copy the problem toCopy in memory and name it "name". | |
SolverClp (const SolverClp &other)=delete | |
SolverClp & | operator= (const SolverClp &other)=delete |
virtual int | get_number_of_instances () override |
Returns number of instances of solver currently in memory. | |
virtual std::string | get_solver_name () const override |
Returns the solver used. | |
virtual void | init () override |
Initializes a problem. | |
virtual void | free () override |
Frees all the datas contained in the Solver environment. | |
virtual void | write_prob_mps (const std::filesystem::path &filename) override |
writes an optimization problem in a MPS file | |
virtual void | write_prob_lp (const std::filesystem::path &filename) override |
writes an optimization problem in a LP file | |
void | save_prob (const std::filesystem::path &filename) override |
virtual void | write_basis (const std::filesystem::path &filename) override |
Writes the current basis to a file for later input into the optimizer. | |
virtual void | read_prob_mps (const std::filesystem::path &filename) override |
reads an optimization problem contained in a MPS file | |
virtual void | read_prob_lp (const std::filesystem::path &filename) override |
reads an optimization problem contained in a MPS file | |
void | restore_prob (const std::filesystem::path &filename) override |
virtual void | read_basis (const std::filesystem::path &filename) override |
Instructs the optimizer to read in a previously saved basis from a file. | |
virtual void | copy_prob (const SolverAbstract::Ptr fictif_solv) override |
copy an existing problem | |
virtual int | get_ncols () const override |
returns number of columns of the problem | |
virtual int | get_nrows () const override |
returns number of rows of the problem | |
virtual int | get_nelems () const override |
returns number of non zeros elements in the matrix, excluding objective | |
virtual int | get_n_integer_vars () const override |
returns number of integer variables in the problem | |
virtual void | get_obj (double *obj, int first, int last) const override |
returns the objective function coefficients for the columns in a given range | |
void | set_obj_to_zero () override |
Set the objective function coefficients to zero. | |
void | set_obj (const double *obj, int first, int last) override |
Set the objective function coefficients for the columns in a given range. | |
virtual void | get_rows (int *mstart, int *mclind, double *dmatval, int size, int *nels, int first, int last) const override |
get coefficients of rows from index first to last | |
virtual void | get_row_type (char *qrtype, int first, int last) const override |
Returns the row types for the rows in a given range. | |
virtual void | get_rhs (double *rhs, int first, int last) const override |
Returns the right-hand sides of the rows in a given range. | |
virtual void | get_rhs_range (double *range, int first, int last) const override |
Returns the right hand side range values for the rows in a given range. | |
virtual void | get_col_type (char *coltype, int first, int last) const override |
Returns the column types for the columns in a given range. | |
virtual void | get_lb (double *lb, int fisrt, int last) const override |
Returns the lower bounds for variables in a given range. | |
virtual void | get_ub (double *ub, int fisrt, int last) const override |
Returns the upper bounds for variables in a given range. | |
virtual int | get_row_index (std::string const &name) override |
Returns the index of row named "name". | |
virtual int | get_col_index (std::string const &name) override |
Returns the index of column named "name". | |
virtual std::vector< std::string > | get_row_names (int first, int last) override |
Returns the names of row from index first to last cannot be declared as const because of some solver methods. | |
virtual std::vector< std::string > | get_row_names () override |
Returns the names of rows. | |
virtual std::vector< std::string > | get_col_names (int first, int last) override |
Returns the names of columns from index first to last cannot be declared as const because of some solver methods. | |
virtual std::vector< std::string > | get_col_names () override |
Returns the names of columns. | |
virtual void | del_rows (int first, int last) override |
Deletes rows between index first and last. | |
virtual void | add_rows (int newrows, int newnz, const char *qrtype, const double *rhs, const double *range, const int *mstart, const int *mclind, const double *dmatval, const std::vector< std::string > &names={}) override |
Adds rows to the problem. | |
virtual void | add_cols (int newcol, int newnz, const double *objx, const int *mstart, const int *mrwind, const double *dmatval, const double *bdl, const double *bdu) override |
Adds new columns to the problem. | |
virtual void | add_name (int type, const char *cnames, int indice) override |
Adds a name to a row or a column. | |
virtual void | add_names (int type, const std::vector< std::string > &cnames, int first, int end) override |
virtual void | chg_obj (const std::vector< int > &mindex, const std::vector< double > &obj) override |
Change coefficients in objective function. | |
virtual void | chg_obj_direction (const bool minimize) override |
Change the problem's objective function sense to minimize or maximize. | |
virtual void | chg_bounds (const std::vector< int > &mindex, const std::vector< char > &qbtype, const std::vector< double > &bnd) |
Change bounds of some variables. | |
virtual void | chg_col_type (const std::vector< int > &mindex, const std::vector< char > &qctype) override |
Change type of some columns. | |
virtual void | chg_rhs (int id_row, double val) override |
Change rhs of a row. | |
virtual void | chg_coef (int id_row, int id_col, double val) override |
Change a coefficient in the matrix. | |
virtual void | chg_row_name (int id_row, std::string const &name) override |
Change the name of a constraint. | |
virtual void | chg_col_name (int id_col, std::string const &name) override |
Change the name of a variable. | |
virtual int | solve_lp () override |
Solves a problem as LP. | |
virtual int | solve_mip () override |
Solves a problem as MIP. | |
virtual void | get_basis (int *rstatus, int *cstatus) const override |
Returns the current basis into the user’s data arrays. | |
virtual double | get_mip_value () const override |
Get the optimal value of a MIP problem (available after method "solve_mip") | |
virtual double | get_lp_value () const override |
Get the optimal value of a LP problem (available after method "solve_lp" ) | |
virtual int | get_splex_num_of_ite_last () const override |
Get the number of simplex iterations done in the last resolution of the problem. | |
virtual void | get_lp_sol (double *primals, double *duals, double *reduced_costs) override |
Get LP solution of a problem (available after method "solve_lp") | |
virtual void | get_mip_sol (double *primals) override |
Get MIP solution of a problem (available after method "solve_mip") | |
void | set_output_log_level (int loglevel) final |
Sets log level of the solver. | |
virtual void | set_algorithm (std::string const &algo) override |
Sets algorithm used by solver to solve LP's. | |
virtual void | set_threads (int n_threads) override |
Sets the maximum number of threads used to perform optimization. | |
virtual void | set_optimality_gap (double gap) override |
Sets the optimality gap. | |
virtual void | set_simplex_iter (int iter) override |
Sets the maximum number of simplex iterations the solver can perform. | |
Public Member Functions inherited from SolverAbstract | |
SolverAbstract () | |
constructor of SolverAbstract class : does nothing | |
SolverAbstract (const std::string &name, const SolverAbstract::Ptr toCopy) | |
Copy constructor, copy the problem "toCopy" in memory and name it "name" if possible. | |
virtual | ~SolverAbstract () |
destructor of SolverAbstract class : does nothing | |
std::list< std::ostream * > & | get_stream () |
returns the list of streams used by the solver instance | |
void | add_stream (std::ostream &stream) |
add a stream to the list of streams used by the solver instance | |
void | set_fp (FILE *fp) |
void | zero_status_check (int status, const std::string &action_failed, const std::string &log_location) const |
Check if a status code is different to 0, throw InvalidStatusException if it occurs. | |
Public Attributes | |
ClpSimplex | _clp |
const std::string | name_ = "CLP" |
Public Attributes inherited from SolverAbstract | |
std::vector< std::string > | SOLVER_STRING_STATUS |
std::string | _name |
std::list< std::ostream * > | _streams |
FILE * | _fp = nullptr |
std::filesystem::path | _log_file = "" |
Additional Inherited Members | |
Public Types inherited from SolverAbstract | |
typedef std::shared_ptr< SolverAbstract > | Ptr |
|
explicit |
Copy constructor of CLP, copy the problem toCopy in memory and name it "name".
toCopy | : Pointer to an AbstractSolver object, containing a CLP solver to copy |
|
overridevirtual |
Adds new columns to the problem.
newcol | : Number of new columns. |
newnz | : Number of new nonzeros in the added columns. |
objx | : Double array of length newcol containing the objective function coefficients of the new columns. |
mstart | : Integer array of length newcol containing the offsets in the mrwind and dmatval arrays of the start of the elements for each column. |
mrwind | : Integer array of length newnz containing the row indices for the elements 7 in each column. |
dmatval | : Double array of length newnz containing the element values. |
bdl | : Double array of length newcol containing the lower bounds on the added columns. |
bdu | : Double array of length newcol containing the upper bounds on the added columns. |
Implements SolverAbstract.
|
overridevirtual |
Adds a name to a row or a column.
type | : 1 for row, 2 for column. |
cnames | : Character buffer containing the null-terminated string names. |
indice | : index of the row or of the column. |
Implements SolverAbstract.
|
overridevirtual |
Implements SolverAbstract.
|
overridevirtual |
Adds rows to the problem.
newrows | : Number of new rows. |
newnz | : Number of new nonzeros in the added rows. |
qrtype | : Character array of length newrow containing the row types: |
rhs | : Double array of length newrow containing the right hand side elements. |
range | : Double array of length newrow containing the row range elements (index read only for R type rows) |
mstart | : Integer array of length newrow + 1 containing the offsets in the mclind and dmatval arrays of the start of the elements for each row. |
mclind | : Integer array of length newnz containing the (contiguous) column indices for the elements in each row. |
dmatval | : Double array of length newnz containing the (contiguous) element values. |
Implements SolverAbstract.
|
virtual |
Change bounds of some variables.
nbds | : number of bounds to change |
mindex | : indices of columns to modify |
qbtype | : types of the bounds to modify ('U' upper, 'L' lower, 'B' both) |
bnd | : new values for the bounds |
Implements SolverAbstract.
|
overridevirtual |
Change a coefficient in the matrix.
id_row | : index of the row |
id_col | : index of the column |
val | : new value to set in the matrix |
Implements SolverAbstract.
|
overridevirtual |
Change the name of a variable.
id_col | : index of the column |
name | : new name of the column |
Implements SolverAbstract.
|
overridevirtual |
Change type of some columns.
nels | : number of elements to change |
mindex | : indices of columns to modify |
qctype | : New types of columns |
Implements SolverAbstract.
|
overridevirtual |
Change coefficients in objective function.
mindex | : indices of columns to modify |
obj | : Values to set in objective function |
Implements SolverAbstract.
|
overridevirtual |
Change the problem's objective function sense to minimize or maximize.
minimize | : boolean that is true for minimize, false for maximization |
Implements SolverAbstract.
|
overridevirtual |
Change rhs of a row.
id_row | : index of the row |
val | : new rhs value |
Implements SolverAbstract.
|
overridevirtual |
Change the name of a constraint.
id_row | : index of the row |
name | : new name of the row |
Implements SolverAbstract.
|
overridevirtual |
|
overridevirtual |
Deletes rows between index first and last.
first | : first row index to delete |
last | : last row index to delete |
Implements SolverAbstract.
|
overridevirtual |
Frees all the datas contained in the Solver environment.
Implements SolverAbstract.
|
overridevirtual |
Returns the current basis into the user’s data arrays.
rstatus | : Integer array of length ROWS to the basis status of the slack, surplus or artifficial variable associated with each row. The status will be one of: 0 slack, surplus or artifficial is free; 1 slack, surplus or artifficial is basic; 2 slack, surplus or artifficial is at upper bound; 3 slack, surplus or artifficial is at lower bound; 4 slack, surplus or artifficial is super basic. May be NULL if not required. |
cstatus | : Integer array of length COLS to hold the basis status of the columns in the constraint matrix. The status will be one of: 0 variable is free; 1 variable is basic; 2 variable is at upper bound; 3 variable is at lower bound; 4 variable is super basic May be NULL if not required. |
Implements SolverAbstract.
|
overridevirtual |
Returns the index of column named "name".
name | : name of column to get the index |
Implements SolverAbstract.
|
overridevirtual |
|
overridevirtual |
Returns the names of columns from index first to last cannot be declared as const because of some solver methods.
first | : first index from which name has be returned |
last | : last index from which name has be returned |
Implements SolverAbstract.
|
overridevirtual |
Returns the column types for the columns in a given range.
coltype | : Character array of length last-first+1 where the column types will be returned (C: continuous, I: integer, B: binary, S: semi-continuous, R: semi-continuous integer, P: partial integer) |
first | : first index of row to get |
last | : last index of row to get |
Implements SolverAbstract.
|
overridevirtual |
Returns the lower bounds for variables in a given range.
lb | : Double array of length last-first+1 where the lower bounds are to be placed. |
first | : First column in the range. |
last | : Last column in the range. |
Implements SolverAbstract.
|
overridevirtual |
Get LP solution of a problem (available after method "solve_lp")
primals | : values of primal variables |
duals | : values of dual variables |
reduced_cost | reduced_cost in an optimal basis |
Implements SolverAbstract.
|
overridevirtual |
Get the optimal value of a LP problem (available after method "solve_lp" )
Implements SolverAbstract.
|
overridevirtual |
Get MIP solution of a problem (available after method "solve_mip")
primals | : values of primal variables |
Implements SolverAbstract.
|
overridevirtual |
Get the optimal value of a MIP problem (available after method "solve_mip")
Implements SolverAbstract.
|
overridevirtual |
returns number of integer variables in the problem
Implements SolverAbstract.
|
overridevirtual |
returns number of columns of the problem
Implements SolverAbstract.
|
overridevirtual |
returns number of non zeros elements in the matrix, excluding objective
Implements SolverAbstract.
|
overridevirtual |
returns number of rows of the problem
Implements SolverAbstract.
|
overridevirtual |
Returns number of instances of solver currently in memory.
Implements SolverAbstract.
|
overridevirtual |
returns the objective function coefficients for the columns in a given range
Implements SolverAbstract.
|
overridevirtual |
Returns the right-hand sides of the rows in a given range.
qrtype | : Character array of length last-first+1 characters where the rhs will be stored |
first | : first index of row to get |
last | : last index of row to get |
Implements SolverAbstract.
|
overridevirtual |
Returns the right hand side range values for the rows in a given range.
range | : Double array of length last-first+1 where the right hand side range values are to be placed. |
first | : first index of row to get |
last | : last index of row to get |
Implements SolverAbstract.
|
overridevirtual |
Returns the index of row named "name".
name | : name of row to get the index |
Implements SolverAbstract.
|
overridevirtual |
|
overridevirtual |
Returns the names of row from index first to last cannot be declared as const because of some solver methods.
first | : first index from which name has be returned |
last | : last index from which name has be returned |
Implements SolverAbstract.
|
overridevirtual |
Returns the row types for the rows in a given range.
qrtype | : Character array of length last-first+1 characters where the row types will be returned (N, E, L, G, R) |
first | : first index of row to get |
last | : last index of row to get |
Implements SolverAbstract.
|
overridevirtual |
get coefficients of rows from index first to last
mstart | : Integer array which will be filled with the indices indicating the starting offsets in the mclind and dmatval arrays for each requested row. |
mclind | : array containing the column indices of the elements contained in dmatval |
dmatval | : array containing non zero elements of the rows |
size | : maximum number of elements to be retrieved |
nels | : array containing number of elements in dmatval and mclind |
first | : first index of row to get |
last | : last index of row to get |
Implements SolverAbstract.
|
inlineoverridevirtual |
Returns the solver used.
Implements SolverAbstract.
|
overridevirtual |
Get the number of simplex iterations done in the last resolution of the problem.
Implements SolverAbstract.
|
overridevirtual |
Returns the upper bounds for variables in a given range.
lb | : Double array of length last-first+1 where the upper bounds are to be placed. |
first | : First column in the range. |
last | : Last column in the range. |
Implements SolverAbstract.
|
overridevirtual |
Initializes a problem.
Implements SolverAbstract.
|
overridevirtual |
Instructs the optimizer to read in a previously saved basis from a file.
filename | File name where the basis is to be read |
Implements SolverAbstract.
|
overridevirtual |
reads an optimization problem contained in a MPS file
name | : name of the file to read |
Implements SolverAbstract.
|
overridevirtual |
reads an optimization problem contained in a MPS file
name | : name of the file to read |
Implements SolverAbstract.
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Sets algorithm used by solver to solve LP's.
algo | : string of the name of the algorithm |
Implements SolverAbstract.
|
overridevirtual |
Set the objective function coefficients for the columns in a given range.
Implements SolverAbstract.
|
overridevirtual |
Set the objective function coefficients to zero.
Implements SolverAbstract.
|
overridevirtual |
|
finalvirtual |
|
overridevirtual |
Sets the maximum number of simplex iterations the solver can perform.
iter | maximum number of simplex iterations |
Implements SolverAbstract.
|
overridevirtual |
Sets the maximum number of threads used to perform optimization.
n_threads | maximum number of threads |
Implements SolverAbstract.
|
overridevirtual |
Solves a problem as LP.
Implements SolverAbstract.
|
overridevirtual |
Solves a problem as MIP.
Implements SolverAbstract.
|
overridevirtual |
Writes the current basis to a file for later input into the optimizer.
filename | : file name where the basis is written |
Implements SolverAbstract.
|
overridevirtual |
writes an optimization problem in a LP file
name | : name of the file to write |
Implements SolverAbstract.
|
overridevirtual |
writes an optimization problem in a MPS file
name | : name of the file to write |
Implements SolverAbstract.