Implementation

The classes TASServer and TASClient are derived from Server and Client, respectively, and implement the TAS communication protocol.

Class diagram for TAS implementations

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).

Class diagram for TAS GPR implementations

The idea behind this class hierarchy is to clearly separate different logical aspects of the implementation:

  1. (Log-)Gaussian processes,

  2. Implementation of Gaussian Process Regression,

  3. TAS aspect,

  4. 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.