Model

Doxygen

class Model

This class is used to represent a mathematical optimization model.

Public Types

enum Storage

Values:

enumerator ColumnOriented
enumerator RowOriented
enumerator Both

Public Functions

explicit Model(Env &t_env, Storage t_storage = Both)
Model(Model&&) noexcept
Model &operator=(const Model&) = delete
Model &operator=(Model&&) noexcept = delete
~Model()
Var add_var(double t_lb, double t_ub, VarType t_type, double t_obj = 0., std::string t_name = "")
Var add_var(double t_lb, double t_ub, VarType t_type, double t_obj, LinExpr<Ctr> t_column, std::string t_name = "")
template<unsigned int N>
Vector<Var, N> add_vars(Dim<N> t_dim, double t_lb, double t_ub, VarType t_type, double t_obj = 0., const std::string &t_name = "")
void add(const Var &t_var)
void add(const Var &t_var, TempVar t_temp_var)
bool has(const Var &t_var) const
void remove(const Var &t_var)
inline ConstIteratorForward<std::vector<Var>> vars() const
Ctr add_ctr(TempCtr t_temp_ctr, std::string t_name = "")
Ctr add_ctr(LinExpr<Var> &&t_lhs, CtrType t_type, double t_rhs, std::string t_name = "")
template<unsigned int N>
Vector<Ctr, N> add_ctrs(Dim<N> t_dim, CtrType t_type, double t_rhs, const std::string &t_name = "")
void add(const Ctr &t_ctr)
void add(const Ctr &t_ctr, TempCtr t_temp_ctr)
bool has(const Ctr &t_ctr) const
void remove(const Ctr &t_ctr)
inline ConstIteratorForward<std::vector<Ctr>> ctrs() const
QCtr add_qctr(TempQCtr t_temp_ctr, std::string t_name = "")
QCtr add_qctr(QuadExpr<Var> &&t_expr, CtrType t_type, std::string t_name = "")
template<unsigned int N>
Vector<QCtr, N> add_qctrs(Dim<N> t_dim, CtrType t_type, const std::string &t_name = "")
void add(const QCtr &t_ctr)
void add(const QCtr &t_ctr, TempQCtr t_temp_ctr)
bool has(const QCtr &t_ctr) const
void remove(const QCtr &t_ctr)
inline ConstIteratorForward<std::vector<QCtr>> qctrs() const
inline unsigned int id() const
Model *clone() const
Model copy() const
void reserve_vars(unsigned int t_size)
void reserve_ctrs(unsigned int t_size)
void reserve_qctrs(unsigned int t_size)
inline Env &env() const
void use(const OptimizerFactory &t_optimizer_factory)
bool has_optimizer() const
inline bool has_optimizer_factory() const
inline const OptimizerFactory &optimizer_factory() const
void unuse()
template<class T, unsigned int N>
void add_vector(const Vector<T, N> &t_vector)
inline Optimizer &optimizer()
inline const Optimizer &optimizer() const
void optimize()
void write(const std::string &t_name)
void update()
ObjectiveSense get_obj_sense() const
const QuadExpr<Var> &get_obj_expr() const
const LinExpr<Ctr> &get_rhs_expr() const
double get_mat_coeff(const Ctr &t_ctr, const Var &t_var) const
SolutionStatus get_status() const
SolutionReason get_reason() const
double get_best_obj() const
double get_best_bound() const
void set_obj_sense(ObjectiveSense t_value)
void set_obj_expr(const QuadExpr<Var> &t_objective)
void set_obj_expr(QuadExpr<Var> &&t_objective)
void set_rhs_expr(LinExpr<Ctr> &&t_rhs)
void set_rhs_expr(const LinExpr<Ctr> &t_rhs)
void set_obj_const(double t_constant)
void set_mat_coeff(const Ctr &t_ctr, const Var &t_var, double t_coeff)
QCtr get_qctr_by_index(unsigned int t_index) const
Ctr get_ctr_by_index(unsigned int t_index) const
Var get_var_by_index(unsigned int t_index) const
unsigned int get_ctr_index(const Ctr &t_ctr) const
unsigned int get_qctr_index(const QCtr &tctr) const
CtrType get_ctr_type(const Ctr &t_ctr) const
double get_ctr_rhs(const Ctr &t_ctr) const
const LinExpr<Var> &get_ctr_row(const Ctr &t_ctr) const
const QuadExpr<Var> &get_qctr_expr(const QCtr &t_ctr) const
CtrType get_qctr_type(const QCtr &t_ctr) const
double get_ctr_dual(const Ctr &t_ctr) const
double get_ctr_farkas(const Ctr &t_ctr) const
void set_ctr_rhs(const Ctr &t_ctr, double t_rhs)
void set_ctr_type(const Ctr &t_ctr, CtrType t_type)
void set_ctr_row(const Ctr &t_ctr, const LinExpr<Var> &t_row)
void set_ctr_row(const Ctr &t_ctr, LinExpr<Var> &&t_row)
unsigned int get_var_index(const Var &t_var) const
VarType get_var_type(const Var &t_var) const
double get_var_lb(const Var &t_var) const
double get_var_ub(const Var &t_var) const
double get_var_primal(const Var &t_var) const
double get_var_reduced_cost(const Var &t_var) const
double get_var_ray(const Var &t_var) const
const LinExpr<Ctr> &get_var_column(const Var &t_var) const
double get_var_obj(const Var &t_var) const
void set_var_type(const Var &t_var, VarType t_type)
void set_var_lb(const Var &t_var, double t_lb)
void set_var_ub(const Var &t_var, double t_ub)
void set_var_obj(const Var &t_var, double t_obj)
void set_var_column(const Var &t_var, const LinExpr<Ctr> &t_column)
void set_var_column(const Var &t_var, LinExpr<Ctr> &&t_column)
unsigned int get_n_solutions() const
unsigned int get_solution_index() const
void set_solution_index(unsigned int t_index)
void dump(std::ostream &t_os = std::cout) const
inline Storage storage() const
void set_storage(Storage t_storage, bool t_reset_minor_representation = false)
void reset_minor_representation()
template<unsigned int N>
idol::Vector<idol::Var, N> add_vars(Dim<N> t_dim, double t_lb, double t_ub, VarType t_type, double t_obj, const std::string &t_name)
template<unsigned int N>
idol::Vector<idol::Ctr, N> add_ctrs(Dim<N> t_dim, CtrType t_type, double t_rhs, const std::string &t_name)