EllAlgo 1.6.13
Loading...
Searching...
No Matches
Public Member Functions | List of all members
LMIProblem< Arr036, Mat > Class Template Reference

LMI feasibility problem facade. More...

#include <lmi_problem.hpp>

Public Member Functions

 LMIProblem (size_t ndim, std::vector< Mat > F, Mat B)
 Construct a new LMIProblem object.
 
auto solve_feas (const Vec &radii, Arr036 xc, const Options &options=Options()) -> std::tuple< Arr036, size_t >
 Solve the LMI feasibility problem.
 
auto solve_feas (double alpha, Arr036 xc, const Options &options=Options()) -> std::tuple< Arr036, size_t >
 Solve the LMI feasibility problem (alpha-scaled initial space).
 

Detailed Description

template<typename Arr036, typename Mat = Arr036>
class LMIProblem< Arr036, Mat >

LMI feasibility problem facade.

Owns the LMI data (F matrices and constant term B) and the lazily-created LmiOracle, then drives the cutting-plane method through the standard cutting_plane_feas driver. Hides the 3-step recipe (build oracle -> build search space -> call driver) behind a single call.

The LMI feasibility problem is:

find  x
s.t.  (B - F * x) >= 0   (i.e. B - Σ F_k x_k is positive semidefinite)
Template Parameters
Arr036Array type for the decision variables
MatMatrix type (defaults to Arr036)

Constructor & Destructor Documentation

◆ LMIProblem()

template<typename Arr036 , typename Mat = Arr036>
LMIProblem< Arr036, Mat >::LMIProblem ( size_t  ndim,
std::vector< Mat >  F,
Mat  B 
)
inline

Construct a new LMIProblem object.

Parameters
[in]ndimDimension of the decision space
[in]FVector of matrices F_i (moved in)
[in]BConstant term (moved in)

Member Function Documentation

◆ solve_feas() [1/2]

template<typename Arr036 , typename Mat = Arr036>
auto LMIProblem< Arr036, Mat >::solve_feas ( const Vec &  radii,
Arr036  xc,
const Options options = Options() 
) -> std::tuple<Arr036, size_t>
inline

Solve the LMI feasibility problem.

Builds an EllStable search space with the given per-axis radii and initial center, then runs the cutting-plane feasibility method.

Parameters
[in]radiiPer-axis radii of the initial ellipsoid
[in]xcInitial center point (moved in)
[in]optionsMaximum iteration and error tolerance etc.
Returns
Tuple (solution x, number of iterations)

◆ solve_feas() [2/2]

template<typename Arr036 , typename Mat = Arr036>
auto LMIProblem< Arr036, Mat >::solve_feas ( double  alpha,
Arr036  xc,
const Options options = Options() 
) -> std::tuple<Arr036, size_t>
inline

Solve the LMI feasibility problem (alpha-scaled initial space).

Parameters
[in]alphaScaling factor for the initial ellipsoid
[in]xcInitial center point (moved in)
[in]optionsMaximum iteration and error tolerance etc.
Returns
Tuple (solution x, number of iterations)

The documentation for this class was generated from the following file: