idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
idol::Reformulators::KKT Class Reference
Collaboration diagram for idol::Reformulators::KKT:
Collaboration graph

Classes

class  BoundProvider
 

Public Member Functions

 KKT (const Model &t_parent, const QuadExpr< Var, double > &t_primal_objective, const std::function< bool(const Var &)> &t_primal_variable_indicator=[](const Var &) { return true;}, const std::function< bool(const Ctr &)> &t_primal_constraint_indicator=[](const Ctr &) { return true;}, const std::function< bool(const QCtr &)> &t_primal_qconstraint_indicator=[](const QCtr &) { return true;})
 
 KKT (const Model &t_parent, const std::function< bool(const Var &)> &t_primal_variable_indicator=[](const Var &) { return true;}, const std::function< bool(const Ctr &)> &t_primal_constraint_indicator=[](const Ctr &) { return true;}, const std::function< bool(const QCtr &)> &t_primal_qconstraint_indicator=[](const QCtr &) { return true;})
 
 KKT (const Model &t_high_point_relaxation, const Bilevel::Description &t_bilevel_description)
 
void set_prefix (std::string t_prefix)
 
const QuadExpr< Var, double > & get_dual_obj_expr () const
 
void add_coupling (Model &t_destination)
 
void add_coupling_variables (Model &t_destination)
 
void add_coupling_constraints (Model &t_destination)
 
void add_dual (Model &t_destination, bool t_add_objective=true)
 
void add_dual_variables (Model &t_destination)
 
void add_dual_constraints (Model &t_destination)
 
void add_dual_objective (Model &t_destination)
 
void add_primal (Model &t_destination, bool t_add_objective=true)
 
void add_primal_variables (idol::Model &t_destination)
 
void add_primal_constraints (idol::Model &t_destination)
 
void add_primal_objective (idol::Model &t_destination)
 
void add_strong_duality_reformulation (Model &t_destination)
 
void add_kkt_reformulation (idol::Model &t_destination, bool t_use_sos1=false)
 
void add_kkt_reformulation (idol::Model &t_destination, BoundProvider &t_bound_provider)
 
void add_bounds_on_dual_variables (idol::Model &t_destination, BoundProvider &t_bound_provider)
 
const Varget_dual_var (const Ctr &t_ctr) const
 
const Varget_dual_var_lb (const Var &t_var) const
 
const Varget_dual_var_ub (const Var &t_var) const
 
const std::variant< Ctr, QCtr > & get_dual_ctr (const Var &t_var) const
 

Detailed Description

Definition at line 28 of file KKT.h.

Member Function Documentation

◆ add_coupling()

void idol::Reformulators::KKT::add_coupling ( Model t_destination)

Adds the coupling variables and constraints to the destination model.

Parameters
t_destination

◆ add_dual()

void idol::Reformulators::KKT::add_dual ( Model t_destination,
bool  t_add_objective = true 
)

Adds the dual of the primal problem to the destination model. The dual is considered only for the indicated constraints and variables.

Parameters
t_destination
t_add_objective

◆ add_kkt_reformulation()

void idol::Reformulators::KKT::add_kkt_reformulation ( idol::Model t_destination,
bool  t_use_sos1 = false 
)

Adds the KKT reformulation to the destination model. The KKT reformulation is considered only for the indicated constraints and variables.

Parameters
t_destination

◆ add_primal()

void idol::Reformulators::KKT::add_primal ( Model t_destination,
bool  t_add_objective = true 
)

Adds the primal of the primal problem to the destination model. The primal is considered only for the indicated constraints and variables.

Parameters
t_destination

◆ add_strong_duality_reformulation()

void idol::Reformulators::KKT::add_strong_duality_reformulation ( Model t_destination)

Adds the strong duality reformulation to the destination model. The strong duality reformulation is considered only for the indicated constraints and variables.

Parameters
t_destination

◆ get_dual_obj_expr()

const QuadExpr< Var, double > & idol::Reformulators::KKT::get_dual_obj_expr ( ) const
inline

Definition at line 67 of file KKT.h.

◆ set_prefix()

void idol::Reformulators::KKT::set_prefix ( std::string  t_prefix)
inline

Definition at line 65 of file KKT.h.