Drake
MobyLCPSolver Class Reference

#include <drake/solvers/MobyLCP.h>

Inheritance diagram for MobyLCPSolver:
Collaboration diagram for MobyLCPSolver:

Public Member Functions

 MobyLCPSolver ()
 
virtual ~MobyLCPSolver ()
 
void SetLoggingEnabled (bool enabled)
 
bool SolveLcpFast (const Eigen::MatrixXd &M, const Eigen::VectorXd &q, Eigen::VectorXd *z, double zero_tol=-1.0) const
 Fast pivoting algorithm for denerate, monotone LCPs with few nonzero, nonbasic variables. More...
 
bool SolveLcpFastRegularized (const Eigen::MatrixXd &M, const Eigen::VectorXd &q, Eigen::VectorXd *z, int min_exp=-20, unsigned step_exp=4, int max_exp=20, double zero_tol=-1.0) const
 Regularized wrapper around PPM I. More...
 
bool SolveLcpLemke (const Eigen::MatrixXd &M, const Eigen::VectorXd &q, Eigen::VectorXd *z, double piv_tol=-1.0, double zero_tol=-1.0) const
 Lemke's algorithm for solving linear complementarity problems. More...
 
bool SolveLcpLemkeRegularized (const Eigen::MatrixXd &M, const Eigen::VectorXd &q, Eigen::VectorXd *z, int min_exp=-20, unsigned step_exp=1, int max_exp=1, double piv_tol=-1.0, double zero_tol=-1.0) const
 Regularized wrapper around Lemke's algorithm. More...
 
bool SolveLcpLemke (const Eigen::SparseMatrix< double > &M, const Eigen::VectorXd &q, Eigen::VectorXd *z, double piv_tol=-1.0, double zero_tol=-1.0) const
 Lemke's algorithm for solving linear complementarity problems using sparse matrices. More...
 
bool SolveLcpLemkeRegularized (const Eigen::SparseMatrix< double > &M, const Eigen::VectorXd &q, Eigen::VectorXd *z, int min_exp=-20, unsigned step_exp=4, int max_exp=20, double piv_tol=-1.0, double zero_tol=-1.0) const
 Regularized wrapper around Lemke's algorithm for srpase matrices. More...
 
bool available () const override
 Returns true iff this solver was enabled at compile-time. More...
 
SolutionResult Solve (OptimizationProblem &prog) const override
 Sets values for the decision variables on the given OptimizationProblem prog, or: More...
 
- Public Member Functions inherited from MathematicalProgramSolverInterface
virtual ~MathematicalProgramSolverInterface ()=default
 

Constructor & Destructor Documentation

virtual ~MobyLCPSolver ( )
inlinevirtual

Member Function Documentation

bool available ( ) const
inlineoverridevirtual

Returns true iff this solver was enabled at compile-time.

Implements MathematicalProgramSolverInterface.

void SetLoggingEnabled ( bool  enabled)
SolutionResult Solve ( OptimizationProblem prog) const
overridevirtual

Sets values for the decision variables on the given OptimizationProblem prog, or:

  • If no solver is available, throws std::runtime_error
  • If the solver returns an error, returns a nonzero SolutionResult.

Implements MathematicalProgramSolverInterface.

Here is the call graph for this function:

bool SolveLcpFast ( const Eigen::MatrixXd &  M,
const Eigen::VectorXd &  q,
Eigen::VectorXd *  z,
double  zero_tol = -1.0 
) const

Fast pivoting algorithm for denerate, monotone LCPs with few nonzero, nonbasic variables.

Here is the caller graph for this function:

bool SolveLcpFastRegularized ( const Eigen::MatrixXd &  M,
const Eigen::VectorXd &  q,
Eigen::VectorXd *  z,
int  min_exp = -20,
unsigned  step_exp = 4,
int  max_exp = 20,
double  zero_tol = -1.0 
) const

Regularized wrapper around PPM I.

Here is the call graph for this function:

bool SolveLcpLemke ( const Eigen::MatrixXd &  M,
const Eigen::VectorXd &  q,
Eigen::VectorXd *  z,
double  piv_tol = -1.0,
double  zero_tol = -1.0 
) const

Lemke's algorithm for solving linear complementarity problems.

Parameters
za vector "close" to the solution on input (optional); contains the solution on output

Here is the caller graph for this function:

bool SolveLcpLemke ( const Eigen::SparseMatrix< double > &  M,
const Eigen::VectorXd &  q,
Eigen::VectorXd *  z,
double  piv_tol = -1.0,
double  zero_tol = -1.0 
) const

Lemke's algorithm for solving linear complementarity problems using sparse matrices.

Parameters
za vector "close" to the solution on input (optional); contains the solution on output
bool SolveLcpLemkeRegularized ( const Eigen::MatrixXd &  M,
const Eigen::VectorXd &  q,
Eigen::VectorXd *  z,
int  min_exp = -20,
unsigned  step_exp = 1,
int  max_exp = 1,
double  piv_tol = -1.0,
double  zero_tol = -1.0 
) const

Regularized wrapper around Lemke's algorithm.

Here is the call graph for this function:

Here is the caller graph for this function:

bool SolveLcpLemkeRegularized ( const Eigen::SparseMatrix< double > &  M,
const Eigen::VectorXd &  q,
Eigen::VectorXd *  z,
int  min_exp = -20,
unsigned  step_exp = 4,
int  max_exp = 20,
double  piv_tol = -1.0,
double  zero_tol = -1.0 
) const

Regularized wrapper around Lemke's algorithm for srpase matrices.

Here is the call graph for this function:


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