MOOCHO (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Classes | Enumerations | Functions
ConstrainedOptPack Namespace Reference

Namespaces

 QPSchurPack
 

Classes

class  DecompositionSystem
 This class abstracts a decomposition choice for the quasi-range space Y and null space Z matrices for a linearly independent set of columns of Gc. More...
 
class  DecompositionSystemCoordinate
 Coordinate variable reduction subclass. More...
 
class  DecompositionSystemOrthogonal
 Orthogonal variable reduction subclass. More...
 
class  DecompositionSystemTester
 Testing class for DecompositionSystem interface. More...
 
class  DecompositionSystemTesterSetOptions
 Set options for DecompositionSystemTester from an OptionsFromStream object. More...
 
class  DecompositionSystemVarReduct
 Specialization of DecompositionSystem for variable reduction decompositions. More...
 
class  DecompositionSystemVarReductImp
 Specialization node implementation subclass of DecompositionSystem for variable reduction decompositions. More...
 
class  DecompositionSystemVarReductPerm
 Specialization interface of DecompositonSystem that allows basis permutations. More...
 
class  DecompositionSystemVarReductPermStd
 Concreate subclass of DecompositionSystemVarReductPerm that uses an aggregate DecompostionSystemVarReductImp object. More...
 
class  DirectLineSearch_Strategy
 Abstract strategy interface for 1D line searches {abstract}. More...
 
class  DirectLineSearchArmQuad_Strategy
 Performs a line search using the Armijo condition and uses quadratic interpolation to select each new alpha. More...
 
class  DirectLineSearchArmQuad_StrategySetOptions
 Set options for DirectLineSearchArmQuad_Strategy from a OptionsFromStream object. More...
 
class  MeritFuncCalc
 Abstract iterface for n-D merit functions {abstract}. More...
 
class  MeritFuncCalc1D
 Abstracts a 1D merit function {abstract}. More...
 
class  MeritFuncCalc1DQuadratic
 Adds the ability to compute phi(alpha) at alpha of a given set of vectors. More...
 
class  MeritFuncCalcNLE
 Adds the ability to compute phi(c(x)) at x directly instead of having to compute c first. This class uses an aggregate NLP to perform the computations of c(x). More...
 
class  MeritFuncCalcNLP
 Adds the ability to compute phi(f(x),c(x),h(x)) at x directly instead of having to compute f, c and h first. This class uses an aggregate NLP to perform the computations of f(x) c(x) and h(x). More...
 
class  MeritFuncNLE
 Base class for all merit functions for systems of NonLinear Equations (NLE) {abstract}. More...
 
class  MeritFuncNLESqrResid
 A merit function for the square of the constriant values. More...
 
class  MeritFuncNLP
 Base class for all merit functions for NonLinear Programs (NLP) {abstract}. More...
 
class  MeritFuncNLPDirecDeriv
 This class provides a mix-in interface for allowing subclass merit functions to compute the directional 1D derivative at a base point. More...
 
class  MeritFuncNLPL1
 The L1 merit function. More...
 
class  MeritFuncNLPModL1
 The modified L1 merit function using different penatly parameters for each constriant. More...
 
class  MeritFuncPenaltyParam
 This class provides interface for setting and retrieving a penalty parameter that many merit functions use {abstract}. More...
 
class  MeritFuncPenaltyParams
 This class provides interface for setting and retrieving a penalty parameter that many merit functions use {abstract}. More...
 
class  MatrixDecompRangeOrthog
 Matrix subclass for variable reduction orthogonal matrix R = Gc(:,con_decomp)'*Y. More...
 
class  MatrixGenBanded
 Matrix subclass for general (possibly singular) banded matrices. More...
 
class  MatrixHessianRelaxed
 Represents a symmetric Hessian matrix with a relaxation variable added. More...
 
class  MatrixHessianSuperBasic
 Matrix class that represents a hessian matrix where only the super submatrix for the super basic variables need be nonsingular. More...
 
class  MatrixHessianSuperBasicInitDiagonal
 Matrix class that adds the ability to initialize to a diagonal to a MatrixHessainSuperBasic object. More...
 
class  MatrixIdentConcat
 Matrix class for a matrix vertically concatonated with an identity matrix {abstract}. More...
 
class  MatrixIdentConcatStd
 Concrete implementation class for a matrix vertically concatonated with an identity matrix. More...
 
class  MatrixKKTFullSpaceRelaxed
 Implementation of a KKT matrix factorized in the full space. More...
 
class  MatrixSymAddDelBunchKaufman
 This class maintains the factorization of symmetric indefinite matrix using a Bunch & Kaufman factorization. More...
 
class  MatrixSymAddDelUpdateableWithOpNonsingular
 Interface for updating a symmetric matrix and its factorization by adding and deleting rows and columns and preforming operations with it. More...
 
class  MatrixSymHessianRelaxNonSing
 Matrix class for non-singular Hessian matrix augmented with a terms for "Big M" relaxation variables. More...
 
class  MatrixSymIdentitySerial
 Matrix class for a serial scaled identity matrix. More...
 
class  MatrixSymPosDefBandedChol
 Matrix subclass for banded symmetric positive definite matrices and their Cholesky factors. More...
 
class  MatrixSymPosDefInvCholFactor
 Implementation of MatrixOp abstract interface for SymInvCholMatrix. More...
 
class  MatrixSymPosDefLBFGS
 Implementation of limited Memory BFGS matrix for arbitrary vector spaces. More...
 
class  MatrixVarReductImplicit
 Implements D = - inv(C) * N for a variable reduction projection. More...
 
class  VariableBoundsTester
 Tests that a set of variables are within their bounds. More...
 
class  VariableBoundsTesterSetOptions
 Set options for VariableBoundsTester from an OptionsFromStream object. More...
 
class  QPSchur
 Solves a Quadratic Program with a dual QP method using a schur complement factorization. More...
 
class  QPSchurInitKKTSystemHessianFixedFree
 Implementation of initial KKT system using the Hessian for the free variables only. More...
 
class  QPSchurInitKKTSystemHessianFull
 Implementation of initial KKT system for all variables initially free and Ko = G. More...
 
class  QPSchurInitKKTSystemHessianRelaxed
 Implementation of initial KKT system where all original variables are free and all the relaxation variables are fixed. More...
 
class  QPSchurInitKKTSystemHessianSuperBasic
 Implementation of initial KKT system for all variables initially fixed and free where #Ko = B_RR#. More...
 
class  QPSolverRelaxed
 Solves Quadratic Programs (QPs) of several different forms while allowing a relaxation of the constraints. More...
 
class  QPSolverRelaxedQPKWIK
 Solves Quadratic Programming (QP) problem using the primal-dual active-set solver QPKWIK. More...
 
class  QPSolverRelaxedQPOPTSOL
 Node base clase for the primal QP solvers QPOPT and QPSOL. More...
 
class  QPSolverRelaxedQPSchur
 Solves Quadratic Programming (QP) problems using QPSchur. More...
 
class  QPSolverRelaxedQPSchurSetOptions
 Set options for QPSolverRelaxedQPSchur from an OptionsFromStream object. More...
 
class  QPSolverRelaxedTester
 Tests the optimality conditions of the output from a QPSolverRelaxed object. More...
 
class  QPSolverRelaxedTesterSetOptions
 Set options for QPSolverRelaxedTester from an OptionsFromStream object. More...
 
class  QPSolverStats
 Class for storing statistics about a run of a (active set?) QP solver. More...
 

Enumerations

enum  EBounds { FREE, UPPER, LOWER, EQUALITY }
 Bounds type. More...
 

Functions

value_type min (value_type v1, value_type v2)
 
value_type max (value_type v1, value_type v2)
 
void initialize_Q_R_Q_X (size_type n_R, size_type n_X, const size_type i_x_free[], const size_type i_x_fixed[], bool test_setup, size_type Q_R_row_i[], size_type Q_R_col_j[], GenPermMatrixSlice *Q_R, size_type Q_X_row_i[], size_type Q_X_col_j[], GenPermMatrixSlice *Q_X)
 Initialize GenPermMatrixSlice mapping matrices for Q_R and Q_X. More...
 
void print_vector_change_stats (const DVectorSlice &x, const char x_name[], const DVectorSlice &d, const char d_name[], std::ostream &out)
 Compute statistics for change in a vector and output to a stream. More...
 
void vector_change_stats (const DVectorSlice &x, const DVectorSlice &d, value_type *max_term, size_type *max_k, value_type *min_term, size_type *min_k, value_type *av_term)
 Compute statistics for change in a vector. More...
 
std::string toString (const QPSolverStats::ESolutionType &solution_type)
 

Compute the minimum absolute value of the given

Lagrange multipliers.

A small Lagrange multiplier indicates degeneracy.

value_type min_abs (const DVectorSlice &mu)
 Minimum |mu(i)|. More...
 
value_type min_abs (const SpVectorSlice &mu)
 Minimum |mu(i)|. More...
 

Enumeration Type Documentation

Bounds type.

Enumerator
FREE 
UPPER 
LOWER 
EQUALITY 

Definition at line 53 of file ConstrainedOptPack_Types.hpp.

Function Documentation

value_type ConstrainedOptPack::min ( value_type  v1,
value_type  v2 
)
inline
value_type ConstrainedOptPack::max ( value_type  v1,
value_type  v2 
)
inline
ConstrainedOptPack::value_type ConstrainedOptPack::min_abs ( const DVectorSlice &  mu)

Minimum |mu(i)|.

Definition at line 55 of file ConstrainedOptPack_ComputeMinMult.cpp.

ConstrainedOptPack::value_type ConstrainedOptPack::min_abs ( const SpVectorSlice &  mu)

Minimum |mu(i)|.

Definition at line 66 of file ConstrainedOptPack_ComputeMinMult.cpp.

void ConstrainedOptPack::initialize_Q_R_Q_X ( size_type  n_R,
size_type  n_X,
const size_type  i_x_free[],
const size_type  i_x_fixed[],
bool  test_setup,
size_type  Q_R_row_i[],
size_type  Q_R_col_j[],
GenPermMatrixSlice *  Q_R,
size_type  Q_X_row_i[],
size_type  Q_X_col_j[],
GenPermMatrixSlice *  Q_X 
)

Initialize GenPermMatrixSlice mapping matrices for Q_R and Q_X.

Parameters
n_R[in] Number of free variables
n_X[in] Number of fixed variables
i_x_free[in] array (length n_R) of indices of free variables. If n_R == 0 then i_x_free can be NULL. It is allowed for i_x_free == NULL in which case it is determined to from i_x_fixed[] (if n_X > 0) and i_x_free is assumed to be sorted in assending order.
i_x_fixed[in] array (length n_X) of indices of fixed variables. If n_X == 0 then i_x_fixed can be NULL.
test_setup[in] If true then i_x_free[] and i_x_fixed[] will be validated and if not okay then an exception will be thown.
Q_R_row_i[out] array (length n_R) of row indices for Q_R. If n_R == 0 or i_x_free == NULL and it is known that i_x_fixed[l] > n_R, for l = 0...n_X-1, then Q_R_row_i can be NULL and will not be accessed. If Q_R_row_i != NULL then it will always be set. This array will be sorted in assending order on output if it is set.
Q_R_col_j[out] array (length n_R) of column indices for Q_R. Q_R_col_j can be NULL when Q_R_row_i is NULL. If this array turns out to be sorted then Q_R will be set to Q_R->ordered_by() == BY_ROW_AND_COL
Q_R[out] GenPermMatixSlice object initialized with Q_R_row_i and Q_R_col_j. If n_R == 0 then Q_R will be initialized to (n_X by 0). If it turns out that i_x_free == NULL and Q_R has the identity matrix as its leading nonzero matrix, then Q_R->is_identity() will be true on output. In any case Q_R->ordered_by() will be BY_ROW or BY_ROW_AND_COL on output.
Q_X_row_i[out] array (length n_X) of row indices for Q_X. If n_X == 0 then Q_X_row_i can be NULL and will not be accessed.
Q_X_col_j[out] array (length n_X) of column indices for Q_X If n_X == 0 then Q_X_col_j can be NULL and will not be accessed. If this array turns out to be sorted then Q_X will be set to Q_X->ordered_by() == BY_ROW_AND_COL
Q_X[out] GenPermMatixSlice object initialized with Q_X_row_i and Q_X_col_j If n_X == 0 then Q_X will be initialized to (n_X by 0.) On output Q_X->ordered_by() will be BY_ROW or BY_ROW_AND_COL.

Definition at line 47 of file ConstrainedOptPack_initialize_Q_R_Q_X.cpp.

void ConstrainedOptPack::print_vector_change_stats ( const DVectorSlice &  x,
const char  x_name[],
const DVectorSlice &  d,
const char  d_name[],
std::ostream &  out 
)

Compute statistics for change in a vector and output to a stream.

Calls the function vector_change_stats(x,d,max_term,max_k,min_term,min_k ,av_term) then produces the following output to the given stream.

max(|d(i)|/(1+|x(i)|)) => |d(max_k)|/(1+|x(max_k)|) = max_term \ min(|d(i)|/(1+|x(i)|)) => |d(min_k)|/(1+|x(min_k)|) = min_term \ average(|d(i)|/(1+|x(i)|)) = av_term \

Note that above the names x and d are replaced with their input names #x_name# and #d_name# and max_term, max_k etc. are replaced with their computed values.

Definition at line 45 of file ConstrainedOptPack_print_vector_change_stats.cpp.

void ConstrainedOptPack::vector_change_stats ( const DVectorSlice &  x,
const DVectorSlice &  d,
value_type *  max_term,
size_type *  max_k,
value_type *  min_term,
size_type *  min_k,
value_type *  av_term 
)

Compute statistics for change in a vector.

Given two vectors x and d where we wish to generate statistics for the update x+d this function computes the following quantitines:

max( |d(i)|/(1+|x(i)|), i=1...n ) => #max_k# = k, #max_term# = |d(k)|/(1+|x(k)|) <= 1\ min( |d(i)|/(1+|x(i)|), i=1...n ) => #min_k# = k, #min_term# = |d(k)|/(1+|x(k)|)#\ #average( |d(i)|/(1+|x(i)|), i=1...10 )# => #av_term#\

The purpose of generating these satistics is to determine by how much x+d differs from x.

If |d(i)|/|x(i)| < mach_eps with x(i) > 0 then we know that d(i) will be lost when added to x(i) so x(i) + d(i) == x(i).

Definition at line 49 of file ConstrainedOptPack_vector_change_stats.cpp.

std::string ConstrainedOptPack::toString ( const QPSolverStats::ESolutionType &  solution_type)
inline

Definition at line 146 of file ConstrainedOptPack_QPSolverStats.hpp.