qpots.model_object

class qpots.model_object.ModelObject(train_x: Tensor, train_y: Tensor, bounds: Tensor, nobj: int, ncons: int, device: str, noise_std: float = 1e-06)[source]

Bases: object

A class representing multi-objective Gaussian Process (GP) models.

This class constructs and fits independent Gaussian Process models for each objective using Maximum Likelihood Estimation (MLE). The models are used in multi-objective optimization problems where constraints can be included.

__init__(train_x: Tensor, train_y: Tensor, bounds: Tensor, nobj: int, ncons: int, device: str, noise_std: float = 1e-06)[source]

Initialize the multi-objective GP models.

Parameters:
  • train_x (torch.Tensor) – The input training data of shape (n, d), where n is the number of samples and d is the input dimension.

  • train_y (torch.Tensor) – The output training data of shape (n, k), where k is the number of objectives.

  • bounds (torch.Tensor) – A tensor specifying the lower and upper bounds for the input space.

  • nobj (int) – The number of objective functions.

  • ncons (int) – The number of constraints in the problem.

  • device (str) – The computation device, either “cpu” or “cuda”.

  • noise_std (float, optional) – The standard deviation of noise added to the GP model. Defaults to 1e-6.

fit_gp()[source]

Fit Gaussian Process (GP) models using Maximum Likelihood Estimation (MLE).

This method fits nobj independent GP models, each corresponding to an objective function. The models are trained using exact marginal log likelihood.

Return type:

None

fit_gp_no_variance()[source]

Fit Gaussian Process (GP) models without variance estimation.

This method is similar to fit_gp(), but does not include variance in the GP model. It fits nobj independent GP models using Maximum Likelihood Estimation (MLE).

Return type:

None