Darwin
1.10(beta)
|
Public Member Functions | |
drwnLogBarrierQPSolver () | |
default constructor | |
drwnLogBarrierQPSolver (const MatrixXd &P, const VectorXd &q, double r=0.0) | |
construct an unconstrained QP | |
virtual bool | findFeasibleStart () |
finds a feasible starting point (or returns false if infeasible) | |
virtual void | initialize (const VectorXd &x) |
initialize to feasible point | |
virtual double | solve () |
solve the QP and return the objective value | |
![]() | |
drwnQPSolver () | |
default constructor | |
drwnQPSolver (const MatrixXd &P, const VectorXd &q, double r=0.0) | |
construct an unconstrained QP | |
void | setObjective (const MatrixXd &P, const VectorXd &q, double r=0.0) |
set the objective function for the QP (dimensions must agree) | |
void | setEqConstraints (const MatrixXd &A, const VectorXd &b) |
set the linear equality constraints for the QP (dimensions must agree) | |
void | setIneqConstraints (const MatrixXd &G, const VectorXd &h) |
set the linear inequality constraints for the QP (dimensions must agree) | |
void | setBounds (const VectorXd &lb, const VectorXd &ub) |
set the upper and lower bounds for each variable, i.e., box constraints | |
void | clearEqConstraints () |
clear the linear equality constraints | |
void | clearIneqConstraints () |
clear the linear inequality constraints | |
void | clearBounds () |
clear the upper and lower bounds on each variable | |
double | objective () const |
return the current value of the objective (this is the solution if the solve() function was previously executed and the problem has not changed) | |
double | objective (const VectorXd &x) const |
return the objective value for a given feasible point | |
VectorXd | solution () const |
return the current estimate of the solution | |
int | size () const |
return the number of dimensions of the state space | |
double | operator[] (unsigned i) const |
access the i-th dimension of the current solution | |
Static Public Attributes | |
static double | t0 = 5.0 |
static double | mu = 20.0 |
![]() | |
static double | alpha = 0.3 |
line search stopping criterion in (0, 1/2) | |
static double | beta = 0.5 |
line search backtracking parameter in (0, 1) | |
Additional Inherited Members | |
![]() | |
VectorXd | gradient () const |
VectorXd | gradient (const VectorXd &x) const |
bool | isFeasiblePoint (const VectorXd &x) const |
double | solveOnlyBounds () |
double | solveSingleEquality () |
double | solveSimplex () |
double | solveNoBounds () |
double | solveGeneral () |
double | lineSearchNoBounds (const VectorXd &x, const VectorXd &dx, const VectorXd &nu, const VectorXd &dnu) const |
double | lineSearchGeneral (const VectorXd &x, const VectorXd &dx, const VectorXd &nu, const VectorXd &dnu) const |
void | solveKKTSystem (const MatrixXd &Hx, const MatrixXd &Hy, const MatrixXd &A, const VectorXd &c, const VectorXd &b, VectorXd &x, VectorXd &y) const |
void | solveKKTSystem (const MatrixXd &Hx, const MatrixXd &A, const VectorXd &c, const VectorXd &b, VectorXd &x, VectorXd &y) const |
![]() | |
MatrixXd | _mP |
positive definite quadratic term in the objective function | |
VectorXd | _q |
linear term in the objective function | |
double | _r |
constant term in the objective function | |
MatrixXd | _mA |
linear equality constraint matrix | |
VectorXd | _b |
linear equality constraint vector | |
MatrixXd | _mG |
linear inequality constraint matrix | |
MatrixXd | _h |
linear inequality constraint vector | |
VectorXd | _l |
variable lower bounds (box constraint) | |
VectorXd | _u |
variable upper bounds (box constraint) | |
VectorXd | _x |
current estimate of solution | |
Solves (small scale) quadratic programs by adding a log-barrier penalty
and iteratively solving
for increasing values of t.