This is the code for the paper

Hernández-Lobato J. M., Hoffman M. W. and Ghahramani Z.
Predictive Entropy Search for Efficient Global Optimization of Black-box
Functions, In NIPS, 2014.



The code here implements the method predictive entropy
search (PES) for finding the global MINIMUM of the objective function.
Note that the paper above describes the implementation of the method
PES for finding the gobal MAXIMUM.


The folder sourceFiles contains matlab scripts and c code to reproduce
the results for the method Predictive Entropy Search in the optimization
of the Branin-Hoo function, as described in the above reference.

To run the code you may need to compile into mex files the c files





For this, you may need to install the GNU scientific library. In ubuntu,
you can do that by typing 

$ sudo apt-get install libgsl0ldbl

You may also need to install the Blas library. In ubuntu, you can do that
by typing 

$ sudo apt-get install libblas3gf libblas-doc libblas-dev

To compile the c files in the folder sourceFiles, type

$ cd sourceFiles; matlab

And then in matlab type

mex chol2invchol.c -lgsl -lblas

mex computeCovMatrix.c -lgsl -lblas

mex computeGradientNewColumnCovMatrix.c -lgsl -lblas

mex computeNewColumnCovMatrix.c -lgsl -lblas


You will need access to gpstuff software package for matlab. Download the zip
file for gpstuff matlab version 4.4 from

and decompress it in the folder


The root folder for the Predictive Entropy Search code should then contain
the folders and files







We now describe how you can run a realization of the experiment for the 
Branin-Hoo function. In the paper, the left plot in Figure 3 shows a summary
of 250 realizations of this experiment. To run a realization of the experiment
go to the folder simulation1 and then run the script, that is,

$ cd simulation1

$ ./

This will perform 30 sequential evaluations of the Branin-Hoo function using
the method PES for searching the global maximum of the function. The first 3
evaluations are obtained by using latin hyper cube sampling. The results of
the search are stored in the folder 


There will be three files in that folder:




The file Xsamples.txt contains the locations at which the objective function
is evaluated. The file Ysamples.txt contains the noisy function values
obtained during the evaluation. The file guesses.txt contains the
recommendations given by the method for the location of the global optimum.