Download zip

Browse sources / Clone with git



The MATLAB code provided here includes several optimization algorithms (purely sequential or batch) using Gaussian processes. Available algorithms include GP-UCB, EI, Chaining-UCB for sequential optimization, and GP-UCB-PE, GP-B-UCB for batch optimization. The implementation uses efficient updating formulae in order to remain scalable to a large number of training points.

Example of use

Sample data and 10 training points from a GP with isotropic squared-exponential kernel:

[f, Xs, Fs, Xt, Yt, Kss] = gp_sample();

Run the optimization algorithm for 30 iterations:

[queries, observations] = gpopt(f,Xt,Yt,Xs,30,'plot',true);

Compute the simple regret:

R = max(Fs) - cummax(Fs(queries)'); plot(R);


This software is under active development. Please contact me if you encounter any trouble. The code is partially compatible with the GPML library from Rasmussen and Nickisch. It uses for example the function sq_dist for which they provide a MEX file.


The provided software is published under the GNU GPLv3 licence.