Implementation¶
The classes TASServer and TASClient are derived from Server and Client, respectively, and implement the TAS communication protocol.
TASServer provides template methods for each action which can be implemented by subclasses.
GPR TAS server¶
The classes GPRTASServer and GPRTASClient are derived from TASServer and TASClient, respectively.
GPRTASServer implements the actions via the template methods and represents the core element for the TAS application.
Most importantly, GPRTASServer holds an instance tas_gpr of TASGaussianProcessRegressorBase (more concretely, in the current case, TASLogGaussianProcessRegressor).
The idea behind this class hierarchy is to clearly separate different logical aspects of the implementation:
(Log-)Gaussian processes,
Implementation of Gaussian Process Regression,
TAS aspect,
Potential rotation of the coordinate system due to degenerate GPR hyperparameter values.
(Log-)Gaussian processes¶
The class GaussianProcessRegressorBase provides an interface for (log-)Gaussian processes, i.e. for the classes GaussianProcessRegressor and LogGaussianProcessRegressor.
LogGaussianProcessRegressor holds an instance gpr of GaussianProcessRegressor and exponentiates the corresponding Gaussian process.
GaussianProcessRegressor holds an instance gpr_impl of GaussianProcessRegressorImplementation which represents a particular implementation of GPR.
Implementation of GPR¶
The class GaussianProcessRegressorImplementation is derived from GaussianProcessRegressorBase to provide an interface for wrapper classes of particular GPR implementations.
The class ScikitLearnGaussianProcessRegressor is derived from GaussianProcessRegressorImplementation and wraps the GPR implementation of scikit-learn.
TAS aspect¶
The class TASGaussianProcessRegressorBase is derived from GaussianProcessRegressorBase and holds the attribute limits and dim which represent the limits and the dimension of the scan area, respectively.
The class TASLogGaussianProcessRegressor is derived from LogGaussianProcessRegressor and TASGaussianProcessRegressorBase to merge both functionalities.
In its constructor, it sets the kernel and the particular GPR implementation that are supposed to be used for the server.
It brings together all the core elements for the methodology.
Potential rotation of the scan area¶
The class PotentialRotationDecorator is a decorator for TASGaussianProcessRegressorBase.
It rotates the coordinate system of the scan area by 45° if the optimization of GPR hyperparameters yields degenerate values.
For more details, see “Degenerate cases” under the Methods section in the reference.