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