class gpr::TrustRadius

Overview

Trust radius enforcement for GP surrogate models. More…

#include <TrustRadius.h>
 
class TrustRadius {
public:
    // construction
 
    TrustRadius();
 
    // methods
 
    void setTrainingData(const EigenMatrix& R_train);
    double distanceToTraining(const Eigen::VectorXd& x_new) const;
    bool isWithinTrust(const Eigen::VectorXd& x_new, double radius) const;
    Eigen::VectorXd clipToTrust(const Eigen::VectorXd& x_new, const Eigen::VectorXd& x_ref, double radius) const;
    int nTraining() const;
};

Detailed Documentation

Trust radius enforcement for GP surrogate models.

Stores training data positions and provides distance queries and displacement clipping relative to a trust radius boundary.

Methods

void setTrainingData(const EigenMatrix& R_train)

Store training positions for distance queries.

Parameters:

R_train

Matrix of training positions (n_samples x dim). Each row is one training point.

double distanceToTraining(const Eigen::VectorXd& x_new) const

Minimum Euclidean distance from x_new to any training point.

Parameters:

x_new

Query point

Returns:

Minimum distance (infinity if no training data)

bool isWithinTrust(const Eigen::VectorXd& x_new, double radius) const

Check whether x_new is within the trust radius of training data.

Parameters:

x_new

Query point

radius

Trust radius threshold

Returns:

True if distanceToTraining(x_new) <= radius

Eigen::VectorXd clipToTrust(const Eigen::VectorXd& x_new, const Eigen::VectorXd& x_ref, double radius) const

Clip a displacement to the trust radius boundary.

Given a reference point x_ref (typically the nearest training point) and a new point x_new, if the displacement exceeds the trust radius the returned point is scaled back to lie on the boundary (with a 0.95 safety factor matching the Rust implementation).

Parameters:

x_new

Candidate point

x_ref

Reference point (typically nearest training point)

radius

Trust radius

Returns:

Clipped point preserving direction from x_ref to x_new