Drake
Drake C++ Documentation
ClpSolver Class Referencefinal

Detailed Description

A wrapper to call CLP using Drake's MathematicalProgram.

Note
Currently our ClpSolver has a memory issue when solving a QP. The user should be aware of this risk.
The authors can adjust the problem scaling option by setting "scaling" as mentioned in https://github.com/coin-or/Clp/blob/43129ba1a7fd66ce70fe0761fcd696951917ed2e/src/ClpModel.hpp#L705-L706 For example prog.SetSolverOption(ClpSolver::id(), "scaling", 0); will do "no scaling". The default is 1.

#include <drake/solvers/clp_solver.h>

Public Types

using Details = ClpSolverDetails
 

Public Member Functions

 ClpSolver ()
 
 ~ClpSolver () final
 
MathematicalProgramResult Solve (const MathematicalProgram &prog, const std::optional< Eigen::VectorXd > &initial_guess=std::nullopt, const std::optional< SolverOptions > &solver_options=std::nullopt) const
 Like SolverInterface::Solve(), but the result is a return value instead of an output argument. More...
 
void Solve (const MathematicalProgram &, const std::optional< Eigen::VectorXd > &, const std::optional< SolverOptions > &, MathematicalProgramResult *) const override
 
Does not allow copy, move, or assignment
 ClpSolver (const ClpSolver &)=delete
 
ClpSolveroperator= (const ClpSolver &)=delete
 
 ClpSolver (ClpSolver &&)=delete
 
ClpSolveroperator= (ClpSolver &&)=delete
 
- Public Member Functions inherited from SolverBase
 ~SolverBase () override
 
MathematicalProgramResult Solve (const MathematicalProgram &prog, const std::optional< Eigen::VectorXd > &initial_guess=std::nullopt, const std::optional< SolverOptions > &solver_options=std::nullopt) const
 Like SolverInterface::Solve(), but the result is a return value instead of an output argument. More...
 
void Solve (const MathematicalProgram &, const std::optional< Eigen::VectorXd > &, const std::optional< SolverOptions > &, MathematicalProgramResult *) const override
 Solves an optimization program with optional initial guess and solver options. More...
 
bool available () const override
 Returns true iff support for this solver has been compiled into Drake. More...
 
bool enabled () const override
 Returns true iff this solver is properly configured for use at runtime. More...
 
SolverId solver_id () const final
 Returns the identifier of this solver. More...
 
bool AreProgramAttributesSatisfied (const MathematicalProgram &) const override
 Returns true iff the program's attributes are compatible with this solver's capabilities. More...
 
std::string ExplainUnsatisfiedProgramAttributes (const MathematicalProgram &) const override
 Describes the reasons (if any) why the program is incompatible with this solver's capabilities. More...
 
 SolverBase (const SolverBase &)=delete
 
SolverBaseoperator= (const SolverBase &)=delete
 
 SolverBase (SolverBase &&)=delete
 
SolverBaseoperator= (SolverBase &&)=delete
 
- Public Member Functions inherited from SolverInterface
virtual ~SolverInterface ()
 
 SolverInterface (const SolverInterface &)=delete
 
SolverInterfaceoperator= (const SolverInterface &)=delete
 
 SolverInterface (SolverInterface &&)=delete
 
SolverInterfaceoperator= (SolverInterface &&)=delete
 

Static Public Member Functions

Static versions of the instance methods with similar names.
static SolverId id ()
 
static bool is_available ()
 
static bool is_enabled ()
 
static bool ProgramAttributesSatisfied (const MathematicalProgram &)
 
static std::string UnsatisfiedProgramAttributes (const MathematicalProgram &)
 

Additional Inherited Members

- Protected Member Functions inherited from SolverBase
 SolverBase (const SolverId &id, std::function< bool()> available, std::function< bool()> enabled, std::function< bool(const MathematicalProgram &)> are_satisfied, std::function< std::string(const MathematicalProgram &)> explain_unsatisfied=nullptr)
 Constructs a SolverBase with the given default implementations of the solver_id(), available(), enabled(), AreProgramAttributesSatisfied(), and ExplainUnsatisfiedProgramAttributes() methods. More...
 
virtual void DoSolve (const MathematicalProgram &prog, const Eigen::VectorXd &initial_guess, const SolverOptions &merged_options, MathematicalProgramResult *result) const
 Hook for subclasses to implement Solve. More...
 
- Protected Member Functions inherited from SolverInterface
 SolverInterface ()
 

Member Typedef Documentation

◆ Details

Constructor & Destructor Documentation

◆ ClpSolver() [1/3]

ClpSolver ( const ClpSolver )
delete

◆ ClpSolver() [2/3]

ClpSolver ( ClpSolver &&  )
delete

◆ ClpSolver() [3/3]

ClpSolver ( )

◆ ~ClpSolver()

~ClpSolver ( )
final

Member Function Documentation

◆ id()

static SolverId id ( )
static

◆ is_available()

static bool is_available ( )
static

◆ is_enabled()

static bool is_enabled ( )
static

◆ operator=() [1/2]

ClpSolver& operator= ( ClpSolver &&  )
delete

◆ operator=() [2/2]

ClpSolver& operator= ( const ClpSolver )
delete

◆ ProgramAttributesSatisfied()

static bool ProgramAttributesSatisfied ( const MathematicalProgram )
static

◆ Solve() [1/2]

Like SolverInterface::Solve(), but the result is a return value instead of an output argument.

◆ Solve() [2/2]

void Solve
override

◆ UnsatisfiedProgramAttributes()

static std::string UnsatisfiedProgramAttributes ( const MathematicalProgram )
static

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