SG++-Doxygen-Documentation
sgpp::datadriven::DBMatOnlineDEOrthoAdapt Class Reference

#include <DBMatOnlineDEOrthoAdapt.hpp>

Inheritance diagram for sgpp::datadriven::DBMatOnlineDEOrthoAdapt:
sgpp::datadriven::DBMatOnlineDE sgpp::datadriven::DBMatOnline

Public Member Functions

void add_new_refine_point (sgpp::base::DataVector &x)
 Adds new DataVector to list of refined points For testing purposes only. More...
 
 DBMatOnlineDEOrthoAdapt (DBMatOffline &offline, Grid &grid, double lambda, double beta=0.)
 Constructor. More...
 
sgpp::base::DataMatrixgetB ()
 Returns the additive component of the sherman-morrison-formula, which yields all the information about the refined points. More...
 
std::vector< sgpp::base::DataVector > * getRefinedPointsPointer ()
 Gets pointer to the container of refined points, only for testing purposes. More...
 
void sherman_morrison_adapt (size_t newPoints, bool refine, std::vector< size_t > coarsen_indices={})
 Rank-one updates/downdates the system matrix, based on the Sherman-Morrison-formula In the current version of the function, the refinePts already are adapted to the regularization parameter lambda. More...
 
std::vector< size_t > updateSystemMatrixDecomposition (DensityEstimationConfiguration &densityEstimationConfig, Grid &grid, size_t numAddedGridPoints, std::list< size_t > deletedGridPointIndices, double lambda) override
 
- Public Member Functions inherited from sgpp::datadriven::DBMatOnlineDE
void computeDensityFunction (DataVector &alpha, Grid &grid, DensityEstimationConfiguration &densityEstimationConfig, bool do_cv=false)
 Computes the density function again based on the saved b's (only applicable for streaming) More...
 
void computeDensityFunction (DataVector &alpha, DataMatrix &m, Grid &grid, DensityEstimationConfiguration &densityEstimationConfig, bool save_b=false, bool do_cv=false, std::list< size_t > *deletedPoints=nullptr, size_t newPoints=0)
 Computes the density function for a certain data matrix. More...
 
 DBMatOnlineDE (DBMatOffline &offline, Grid &grid, double lambda, double beta=0.)
 Constructor. More...
 
double eval (DataVector &alpha, const DataVector &p, Grid &grid, bool force=false)
 Evaluates the density function at a certain point. More...
 
void eval (DataVector &alpha, DataMatrix &values, DataVector &results, Grid &grid, bool force=false)
 Evaluates the density function on multiple points. More...
 
double getBeta ()
 Returns the current weighting factor. More...
 
bool isComputed ()
 Returns if the surplus has already been computed. More...
 
double normalize (DataVector &alpha, Grid &grid, size_t samples=1000)
 Normalize the Density. More...
 
double normalizeQuadrature (DataVector &alpha, Grid &grid)
 Normalize the Density using Quadrature. More...
 
void setBeta (double beta)
 Sets the weighting factor. More...
 
void updateRhs (size_t gridSize, std::list< size_t > *deletedPoints)
 Restructures the rhs (b vector) of the system matrix. More...
 
- Public Member Functions inherited from sgpp::datadriven::DBMatOnline
 DBMatOnline (DBMatOffline &o)
 Constructor. More...
 
 DBMatOnline (const DBMatOnline &rhs)=delete
 
 DBMatOnline (DBMatOnline &&rhs)=default
 
DBMatOfflinegetOfflineObject ()
 Returns a reference to the offline object. More...
 
const DBMatOfflinegetOfflineObject () const
 
DBMatOnlineoperator= (const DBMatOnline &rhs)=delete
 
DBMatOnlineoperator= (DBMatOnline &&rhs)=default
 
void setLambda (double lambda)
 Changes the weighting factor for the regularization term, if possible (might depend on the kind of decomposition for classification) More...
 
virtual ~DBMatOnline ()=default
 Destructor. More...
 

Protected Member Functions

void solveSLE (DataVector &alpha, DataVector &b, Grid &grid, DensityEstimationConfiguration &densityEstimationConfig, bool do_cv) override
 Solves the system (R + lambda*I) * alpha = b, and obtains alpha The solving is done after offline and online phase and works as follows: (R + lambda*I)^{-1} * b = ((Q*T^{-1}*Q^{t} + B) * b = alpha, where B holds the refine/coarsen information. More...
 
- Protected Member Functions inherited from sgpp::datadriven::DBMatOnlineDE
double computeL2Error (DataVector &alpha, Grid &grid)
 
double resDensity (DataVector &alpha, Grid &grid)
 

Protected Attributes

sgpp::base::DataMatrix b_adapt_matrix_
 
bool b_is_refined
 
size_t current_refine_index
 
std::vector< sgpp::base::DataVectorrefined_points_
 
- Protected Attributes inherited from sgpp::datadriven::DBMatOnlineDE
double beta
 
DataVector bSave
 
DataVector bTotalPoints
 
bool functionComputed
 
double lambda
 
double normFactor
 
size_t oDim
 
DataMatrixtestMat
 
DataMatrixtestMatRes
 
size_t totalPoints
 
- Protected Attributes inherited from sgpp::datadriven::DBMatOnline
DBMatOfflineofflineObject
 

Constructor & Destructor Documentation

◆ DBMatOnlineDEOrthoAdapt()

sgpp::datadriven::DBMatOnlineDEOrthoAdapt::DBMatOnlineDEOrthoAdapt ( DBMatOffline offline,
Grid grid,
double  lambda,
double  beta = 0. 
)
explicit

Constructor.

Parameters
offlineThe offline object we base our evaluations on.
lambdaThe regularization strength (TODO(fuchsgruber) remove this)
gridThe underlying grid (TODO(fuchsgruber) do we need this?)
betaThe initial weighting factor

References b_adapt_matrix_, b_is_refined, current_refine_index, sgpp::datadriven::DBMatOffline::getDecompositionType(), sgpp::datadriven::OrthoAdapt, and refined_points_.

Member Function Documentation

◆ add_new_refine_point()

void sgpp::datadriven::DBMatOnlineDEOrthoAdapt::add_new_refine_point ( sgpp::base::DataVector x)
inline

Adds new DataVector to list of refined points For testing purposes only.

Parameters
xThe DataVector to add

References refined_points_.

◆ getB()

sgpp::base::DataMatrix& sgpp::datadriven::DBMatOnlineDEOrthoAdapt::getB ( )
inline

Returns the additive component of the sherman-morrison-formula, which yields all the information about the refined points.

References b_adapt_matrix_.

Referenced by sgpp::datadriven::DBMatOnlineDE::computeDensityFunction(), and solveSLE().

◆ getRefinedPointsPointer()

std::vector<sgpp::base::DataVector>* sgpp::datadriven::DBMatOnlineDEOrthoAdapt::getRefinedPointsPointer ( )
inline

Gets pointer to the container of refined points, only for testing purposes.

References python.uq.operations.discretizeProduct::refine(), refined_points_, sherman_morrison_adapt(), and updateSystemMatrixDecomposition().

◆ sherman_morrison_adapt()

◆ solveSLE()

void sgpp::datadriven::DBMatOnlineDEOrthoAdapt::solveSLE ( DataVector alpha,
DataVector b,
Grid grid,
DensityEstimationConfiguration densityEstimationConfig,
bool  do_cv 
)
overrideprotectedvirtual

Solves the system (R + lambda*I) * alpha = b, and obtains alpha The solving is done after offline and online phase and works as follows: (R + lambda*I)^{-1} * b = ((Q*T^{-1}*Q^{t} + B) * b = alpha, where B holds the refine/coarsen information.

Parameters
alphathe datavetor where surplusses will be stored
bThe right hand side of the system
gridthe underlying grid
densityEstimationConfigconfiguration for the density estimation
do_cvSpecifies, if cross-validation should be done (todo: currently not implemented)

Implements sgpp::datadriven::DBMatOnlineDE.

References alpha, chess::b, getB(), sgpp::datadriven::DBMatOfflineOrthoAdapt::getQ(), sgpp::base::DataVector::getSize(), sgpp::datadriven::DBMatOfflineOrthoAdapt::getTinv(), sgpp::datadriven::DBMatOnline::offlineObject, sgpp::base::DataVector::resizeZero(), and sgpp::datadriven::DBMatDMSOrthoAdapt::solve().

◆ updateSystemMatrixDecomposition()

std::vector< size_t > sgpp::datadriven::DBMatOnlineDEOrthoAdapt::updateSystemMatrixDecomposition ( DensityEstimationConfiguration densityEstimationConfig,
Grid grid,
size_t  numAddedGridPoints,
std::list< size_t >  deletedGridPointIndices,
double  lambda 
)
overridevirtual
Parameters
densityEstimationConfigconfiguration for the density estimation
gridthe underlying grid
numAddedGridPointsNumber of grid points inserted at the end of the grid storage
deletedGridPointIndicesIndices of grid points that were deleted
lambdaThe last best lambda value
Returns
list of grid points, that cannot be coarsened

Reimplemented from sgpp::datadriven::DBMatOnline.

References sgpp::datadriven::DBMatOffline::getGridSize(), sgpp::datadriven::DBMatOnline::offlineObject, and sherman_morrison_adapt().

Referenced by getRefinedPointsPointer().

Member Data Documentation

◆ b_adapt_matrix_

sgpp::base::DataMatrix sgpp::datadriven::DBMatOnlineDEOrthoAdapt::b_adapt_matrix_
protected

◆ b_is_refined

bool sgpp::datadriven::DBMatOnlineDEOrthoAdapt::b_is_refined
protected

◆ current_refine_index

size_t sgpp::datadriven::DBMatOnlineDEOrthoAdapt::current_refine_index
protected

◆ refined_points_

std::vector<sgpp::base::DataVector> sgpp::datadriven::DBMatOnlineDEOrthoAdapt::refined_points_
protected

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