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.