MinDistanceFromPlaneToOrigin Class Reference

An SOCP with Lorentz cone and rotated Lorentz cone constraints. More...

#include <drake/solvers/test/optimization_examples.h>

Public Member Functions

 MinDistanceFromPlaneToOrigin (const Eigen::MatrixXd &A, const Eigen::VectorXd &b, CostForm cost_form, ConstraintForm constraint_form)
MathematicalProgramprog_lorentz () const
MathematicalProgramprog_rotated_lorentz () const
Eigen::VectorXd prog_lorentz_initial_guess () const
Eigen::VectorXd prog_rotated_lorentz_initial_guess () const
void CheckSolution (const MathematicalProgramResult &result, bool is_rotated_cone) const
Does not allow copy, move, or assignment
 MinDistanceFromPlaneToOrigin (const MinDistanceFromPlaneToOrigin &)=delete
MinDistanceFromPlaneToOriginoperator= (const MinDistanceFromPlaneToOrigin &)=delete
 MinDistanceFromPlaneToOrigin (MinDistanceFromPlaneToOrigin &&)=delete
MinDistanceFromPlaneToOriginoperator= (MinDistanceFromPlaneToOrigin &&)=delete

Static Public Member Functions

static std::vector< CostFormcost_forms ()
static std::vector< ConstraintFormconstraint_forms ()

Detailed Description

An SOCP with Lorentz cone and rotated Lorentz cone constraints.

The objective is to find the smallest distance from a hyperplane A * x = b to the origin. We can solve the following SOCP with Lorentz cone constraint min t s.t t >= sqrt(xᵀ*x) A * x = b. Alternatively, we can solve the following SOCP with rotated Lorentz cone constraint min t s.t t >= xᵀ*x A * x = b.

The optimal solution of this equality constrained QP can be found using Lagrangian method. The optimal solution x* and Lagrangian multiplier z* satisfy A_hat * [x*; z*] = [b; 0] where A_hat = [A 0; 2*I Aᵀ].

Constructor & Destructor Documentation

◆ MinDistanceFromPlaneToOrigin() [1/3]

◆ MinDistanceFromPlaneToOrigin() [2/3]

◆ MinDistanceFromPlaneToOrigin() [3/3]

MinDistanceFromPlaneToOrigin ( const Eigen::MatrixXd &  A,
const Eigen::VectorXd &  b,
CostForm  cost_form,
ConstraintForm  constraint_form 

Member Function Documentation

◆ CheckSolution()

void CheckSolution ( const MathematicalProgramResult result,
bool  is_rotated_cone 
) const

◆ constraint_forms()

static std::vector<ConstraintForm> constraint_forms ( )

◆ cost_forms()

static std::vector<CostForm> cost_forms ( )

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ prog_lorentz()

MathematicalProgram* prog_lorentz ( ) const

◆ prog_lorentz_initial_guess()

Eigen::VectorXd prog_lorentz_initial_guess ( ) const

◆ prog_rotated_lorentz()

MathematicalProgram* prog_rotated_lorentz ( ) const

◆ prog_rotated_lorentz_initial_guess()

Eigen::VectorXd prog_rotated_lorentz_initial_guess ( ) const

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