Antares Xpansion
Investment simulations for Antares studies
|
Public Member Functions | |
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 | |
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 | |
virtual void | copy_prob (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 (const std::string &name) override |
Returns the index of row named "name". | |
virtual int | get_col_index (const std::string &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) override |
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, const std::string &name) override |
Change the name of a constraint. | |
virtual void | chg_col_name (int id_col, const std::string &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") | |
virtual void | set_output_log_level (int loglevel) override |
Sets log level of the solver. | |
virtual void | set_algorithm (const std::string &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. | |
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_basis (const std::filesystem::path &filename) override |
Instructs the optimizer to read in a previously saved basis from a file. | |
void | save_prob (const std::filesystem::path &filename) override |
write an optimisation problem in a file | |
void | restore_prob (const std::filesystem::path &filename) override |
read an optimisation problem from a file | |
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. | |
Additional Inherited Members | |
Public Types inherited from SolverAbstract | |
typedef std::shared_ptr< SolverAbstract > | Ptr |
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 = "" |
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
Implements SolverAbstract.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
Change the name of a variable.
id_col | : index of the column |
name | : new name of the column |
Implements SolverAbstract.
|
inlineoverridevirtual |
Change type of some columns.
nels | : number of elements to change |
mindex | : indices of columns to modify |
qctype | : New types of columns |
Implements SolverAbstract.
|
inlineoverridevirtual |
Change coefficients in objective function.
mindex | : indices of columns to modify |
obj | : Values to set in objective function |
Implements SolverAbstract.
|
inlineoverridevirtual |
Change the problem's objective function sense to minimize or maximize.
minimize | : boolean that is true for minimize, false for maximization |
Implements SolverAbstract.
|
inlineoverridevirtual |
Change rhs of a row.
id_row | : index of the row |
val | : new rhs value |
Implements SolverAbstract.
|
inlineoverridevirtual |
Change the name of a constraint.
id_row | : index of the row |
name | : new name of the row |
Implements SolverAbstract.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Deletes rows between index first and last.
first | : first row index to delete |
last | : last row index to delete |
Implements SolverAbstract.
|
inlineoverridevirtual |
Frees all the datas contained in the Solver environment.
Implements SolverAbstract.
|
inlineoverridevirtual |
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 values depend on the solver used.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 values depend on the solver used.May be NULL if not required. |
Implements SolverAbstract.
|
inlineoverridevirtual |
Returns the index of column named "name".
name | : name of column to get the index |
Implements SolverAbstract.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
Get the optimal value of a LP problem (available after method "solve_lp" )
Implements SolverAbstract.
|
inlineoverridevirtual |
Get MIP solution of a problem (available after method "solve_mip")
primals | : values of primal variables |
Implements SolverAbstract.
|
inlineoverridevirtual |
Get the optimal value of a MIP problem (available after method "solve_mip")
Implements SolverAbstract.
|
inlineoverridevirtual |
returns number of integer variables in the problem
Implements SolverAbstract.
|
inlineoverridevirtual |
returns number of columns of the problem
Implements SolverAbstract.
|
inlineoverridevirtual |
returns number of non zeros elements in the matrix, excluding objective
Implements SolverAbstract.
|
inlineoverridevirtual |
returns number of rows of the problem
Implements SolverAbstract.
|
inlineoverridevirtual |
Returns number of instances of solver currently in memory.
Implements SolverAbstract.
|
inlineoverridevirtual |
returns the objective function coefficients for the columns in a given range
Implements SolverAbstract.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
Returns the index of row named "name".
name | : name of row to get the index |
Implements SolverAbstract.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
Get the number of simplex iterations done in the last resolution of the problem.
Implements SolverAbstract.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
Initializes a problem.
Implements SolverAbstract.
|
inlineoverridevirtual |
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.
|
inlineoverridevirtual |
reads an optimization problem contained in a MPS file
name | : name of the file to read |
Implements SolverAbstract.
|
inlineoverridevirtual |
reads an optimization problem contained in a MPS file
name | : name of the file to read |
Implements SolverAbstract.
|
inlineoverridevirtual |
read an optimisation problem from a file
File format supposed to be the same used by save_prob
name | : name of the file to read |
Implements SolverAbstract.
|
inlineoverridevirtual |
write an optimisation problem in a file
File format is not garanteed and depend on implementation
name | : name of the file to read |
Implements SolverAbstract.
|
inlineoverridevirtual |
Sets algorithm used by solver to solve LP's.
algo | : string of the name of the algorithm |
Implements SolverAbstract.
|
inlineoverridevirtual |
Set the objective function coefficients for the columns in a given range.
Implements SolverAbstract.
|
inlineoverridevirtual |
Set the objective function coefficients to zero.
Implements SolverAbstract.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Sets the maximum number of simplex iterations the solver can perform.
iter | maximum number of simplex iterations |
Implements SolverAbstract.
|
inlineoverridevirtual |
Sets the maximum number of threads used to perform optimization.
n_threads | maximum number of threads |
Implements SolverAbstract.
|
inlineoverridevirtual |
Solves a problem as LP.
Implements SolverAbstract.
|
inlineoverridevirtual |
Solves a problem as MIP.
Implements SolverAbstract.
|
inlineoverridevirtual |
Writes the current basis to a file for later input into the optimizer.
filename | : file name where the basis is written |
Implements SolverAbstract.
|
inlineoverridevirtual |
writes an optimization problem in a LP file
name | : name of the file to write |
Implements SolverAbstract.
|
inlineoverridevirtual |
writes an optimization problem in a MPS file
name | : name of the file to write |
Implements SolverAbstract.