#include <jrl-qp/GoldfarbIdnaniSolver.h>
Classes | |
struct | Problem |
Public Member Functions | |
GoldfarbIdnaniSolver () | |
GoldfarbIdnaniSolver (int nbVar, int nbCstr, bool useBounds) | |
virtual | ~GoldfarbIdnaniSolver ()=default |
TerminationStatus | solve (MatrixRef G, const VectorConstRef &a, const MatrixConstRef &C, const VectorConstRef &bl, const VectorConstRef &bu, const VectorConstRef &xl, const VectorConstRef &xu) |
Public Member Functions inherited from jrl::qp::DualSolver | |
DualSolver () | |
DualSolver (int nbVar, int nbCstr, bool useBounds) | |
virtual | ~DualSolver ()=default |
void | resize (int nbVar, int nbCstr, bool useBounds) |
void | options (const SolverOptions &options) |
WConstVector | solution () const |
WConstVector | multipliers () const |
double | objectiveValue () const |
int | iterations () const |
const std::vector< ActivationStatus > & | activeSet () const |
void | resetActiveSet () |
Protected Attributes | |
internal::Workspace | work_d_ |
internal::Workspace | work_J_ |
internal::Workspace | work_R_ |
Problem | pb_ |
Protected Attributes inherited from jrl::qp::DualSolver | |
SolverOptions | options_ |
utils::Logger | log_ |
int | it_ |
int | nbVar_ |
internal::ActiveSet | A_ |
double | f_ |
internal::Workspace | work_x_ |
internal::Workspace | work_z_ |
internal::Workspace | work_u_ |
internal::Workspace | work_r_ |
bool | needToExpandMultipliers_ |
Implementation of the Goldfarb-Idnani dual QP solver.
jrl::qp::GoldfarbIdnaniSolver::GoldfarbIdnaniSolver | ( | ) |
jrl::qp::GoldfarbIdnaniSolver::GoldfarbIdnaniSolver | ( | int | nbVar, |
int | nbCstr, | ||
bool | useBounds | ||
) |
Pre-allocate the data for a problem with nbVar
variables, nbCstr
(general) constraints, and bounds if useBounds
is true.
|
virtualdefault |
|
overrideprotectedvirtual |
Add a constraint to the active set and update the computation data accordingly.
Implements jrl::qp::DualSolver.
|
protected |
|
overrideprotectedvirtual |
Compute a primal step z and dual step r, given n+
Implements jrl::qp::DualSolver.
|
overrideprotectedvirtual |
Compute a step length and update x and u given the data n+, z and r.
Implements jrl::qp::DualSolver.
|
overrideprotectedvirtual |
Compute the dot product between the vector corresponding to sc and z.
Implements jrl::qp::DualSolver.
|
overrideprotectedvirtual |
Compute the initial iterate, the corresponding objective value and initialize any relevant data of the derived class.
Implements jrl::qp::DualSolver.
|
protectedvirtual |
|
overrideprotectedvirtual |
Remove the l-th active constraint from the active set and update the computation data accordingly.
Implements jrl::qp::DualSolver.
|
overrideprotectedvirtual |
Resize the data managed by the derived class.
Implements jrl::qp::DualSolver.
|
overrideprotectedvirtual |
Select the violated constraint to be considered for the current iteration.
Implements jrl::qp::DualSolver.
TerminationStatus jrl::qp::GoldfarbIdnaniSolver::solve | ( | MatrixRef | G, |
const VectorConstRef & | a, | ||
const MatrixConstRef & | C, | ||
const VectorConstRef & | bl, | ||
const VectorConstRef & | bu, | ||
const VectorConstRef & | xl, | ||
const VectorConstRef & | xu | ||
) |
Solve the problem min. 0.5 x^T G x + a^T x s.t. bl <= C^T x <= bu xl <= x <= xu
|
protected |
|
mutableprotected |
|
protected |
|
protected |