#include <shark/Algorithms/QP/SvmProblems.h>
Public Types | |
typedef Problem::QpFloatType | QpFloatType |
typedef Problem::MatrixType | MatrixType |
typedef LibSVMSelectionCriterion | PreferedSelectionStrategy |
Public Member Functions | |
SvmProblem (Problem &problem) | |
std::size_t | dimensions () const |
std::size_t | active () const |
double | boxMin (std::size_t i) const |
double | boxMax (std::size_t i) const |
bool | isLowerBound (std::size_t i) const |
bool | isUpperBound (std::size_t i) const |
MatrixType & | quadratic () |
representation of the quadratic part of the objective function More... | |
double | linear (std::size_t i) const |
double | alpha (std::size_t i) const |
double | diagonal (std::size_t i) const |
double | gradient (std::size_t i) const |
std::size_t | permutation (std::size_t i) const |
RealVector | getUnpermutedAlpha () const |
void | updateSMO (std::size_t i, std::size_t j) |
Does an update of SMO given a working set with indices i and j. More... | |
double | functionValue () const |
Returns the current function value of the problem. More... | |
bool | shrink (double) |
void | reshrink () |
void | unshrink () |
void | deactivateVariable (std::size_t i) |
Remove the i-th example from the problem while taking the equality constraint into account. More... | |
void | activateVariable (std::size_t i) |
Reactivate an previously deactivated variable. More... | |
void | flipCoordinates (std::size_t i, std::size_t j) |
exchange two variables via the permutation More... | |
void | scaleBoxConstraints (double factor, double variableScalingFactor) |
Scales all box constraints by a constant factor and adapts the solution using a separate scaling. More... | |
virtual void | setLinear (std::size_t i, double newValue) |
adapts the linear part of the problem and updates the internal data structures accordingly. More... | |
double | checkKKT () const |
Protected Member Functions | |
virtual void | applyStep (std::size_t i, std::size_t j, double step) |
Update the problem by a proposed step i taking the box constraints into account. More... | |
void | updateAlphaStatus (std::size_t i) |
Protected Attributes | |
Problem | m_problem |
RealVector | m_gradient |
gradient of the objective function at the current alpha More... | |
std::size_t | m_active |
std::vector< char > | m_alphaStatus |
Stores the status, whther alpha is on the lower or upper bound, or whether it is free. More... | |
Definition at line 288 of file SvmProblems.h.
typedef Problem::MatrixType shark::SvmProblem< Problem >::MatrixType |
Definition at line 291 of file SvmProblems.h.
typedef LibSVMSelectionCriterion shark::SvmProblem< Problem >::PreferedSelectionStrategy |
Definition at line 292 of file SvmProblems.h.
typedef Problem::QpFloatType shark::SvmProblem< Problem >::QpFloatType |
Definition at line 290 of file SvmProblems.h.
|
inline |
Definition at line 294 of file SvmProblems.h.
|
inline |
Reactivate an previously deactivated variable.
Definition at line 408 of file SvmProblems.h.
References shark::AlphaFree, and SIZE_CHECK.
|
inline |
Definition at line 314 of file SvmProblems.h.
|
inline |
Definition at line 340 of file SvmProblems.h.
|
inlineprotectedvirtual |
Update the problem by a proposed step i taking the box constraints into account.
A step length 0<=lambda<=1 is found so that boxMin(i) <= alpha(i)+lambda*step <= boxMax(i) and boxMin(j) <= alpha(j)-lambda*step <= boxMax(j) the update is performed in a numerically stable way and the internal data structures are also updated.
Reimplemented in shark::SvmShrinkingProblem< Problem >.
Definition at line 477 of file SvmProblems.h.
References shark::blas::min(), and SIZE_CHECK.
|
inline |
Definition at line 321 of file SvmProblems.h.
References shark::AlphaDeactivated.
|
inline |
Definition at line 318 of file SvmProblems.h.
References shark::AlphaDeactivated.
|
inline |
Definition at line 446 of file SvmProblems.h.
References shark::blas::max(), and shark::blas::min().
|
inline |
Remove the i-th example from the problem while taking the equality constraint into account.
The i-th element is first set to zero and as well as an unspecified set corrected so that the constraint is fulfilled. after the call boxMin(i) and boxMax(i) are zero.
Definition at line 394 of file SvmProblems.h.
References shark::AlphaDeactivated, and SIZE_CHECK.
|
inline |
Definition at line 344 of file SvmProblems.h.
|
inline |
Definition at line 310 of file SvmProblems.h.
|
inline |
exchange two variables via the permutation
Definition at line 415 of file SvmProblems.h.
References SIZE_CHECK, and shark::swap().
|
inline |
Returns the current function value of the problem.
Definition at line 381 of file SvmProblems.h.
References shark::blas::inner_prod().
|
inline |
Definition at line 356 of file SvmProblems.h.
|
inline |
Definition at line 348 of file SvmProblems.h.
|
inline |
Definition at line 324 of file SvmProblems.h.
References shark::AlphaLowerBound.
|
inline |
Definition at line 327 of file SvmProblems.h.
References shark::AlphaUpperBound.
|
inline |
Definition at line 336 of file SvmProblems.h.
|
inline |
Definition at line 352 of file SvmProblems.h.
|
inline |
representation of the quadratic part of the objective function
Definition at line 332 of file SvmProblems.h.
|
inline |
Definition at line 386 of file SvmProblems.h.
|
inline |
Scales all box constraints by a constant factor and adapts the solution using a separate scaling.
Definition at line 427 of file SvmProblems.h.
References shark::AlphaDeactivated.
|
inlinevirtual |
adapts the linear part of the problem and updates the internal data structures accordingly.
Reimplemented in shark::SvmShrinkingProblem< Problem >.
Definition at line 440 of file SvmProblems.h.
|
inline |
Definition at line 385 of file SvmProblems.h.
|
inline |
Definition at line 387 of file SvmProblems.h.
|
inlineprotected |
Definition at line 527 of file SvmProblems.h.
References shark::AlphaFree, shark::AlphaLowerBound, shark::AlphaUpperBound, and SIZE_CHECK.
|
inline |
Does an update of SMO given a working set with indices i and j.
Definition at line 364 of file SvmProblems.h.
References shark::blas::max(), and SIZE_CHECK.
|
protected |
Definition at line 464 of file SvmProblems.h.
|
protected |
Stores the status, whther alpha is on the lower or upper bound, or whether it is free.
Definition at line 467 of file SvmProblems.h.
|
protected |
gradient of the objective function at the current alpha
Definition at line 462 of file SvmProblems.h.
|
protected |
Definition at line 459 of file SvmProblems.h.