BaMSOO
Bayesian Multi-Scale Optimistic Optimization This is a simple MATLAB implementation of BaMSOO, described in the paper Bayesian Multi-Scale Optimistic Optimization by Wang et al.. The paper can be found here
The repository has four files:
- BaMSOO.m : implements the technique.
- calculateInvCovarianceMatrix.m : calculate the kernel matrix
- estimateGP.m : estimates the mean and variance
- calculateBounds.m : calculates the function bounds for a function
- runDemo.m : a simple graphical demo on a 1-D function visualizing the tree
Demo
To run a simple demo, fire MATLAB and run the following command:
>>runDemo
Optimization Problem:
To solve an optimization(minimization) problem, we need to specify the function, target function value, the dimensions, the min and max range of the search space, and the evaluation budget. An example is provided here:
% Specify the problem
>>func = @(x) sum((x-0.6).^2);
>>dimension = 2;
>>maxRange = 1;
>>minRange = -1;
>>numEvaluations = 1000;
>>ftarget = 1e-5;
% Solve the problem
>>[yBest, xBest, nodes ]= BaMSOO(func, ftarget, dimension, maxRange, minRange, numEvaluations);
>>fprintf('optimal f-value is %f\n',yBest)
Practical Issues:
- BaMSOO comes with parameters, and tuning them is not an easy task.
- I have fixed the kernel matrix to be of a fixed size (2*dimensions).
The kernel matrix gets updated according to the covRate parameter. i.e., a covRate of two makes the calculation of the matrix takes place after two samples.
The counter (N) is fixed and is not updated as the kernel matrix is fixed in size.
- I've used the squared exponential kernel that comes with two parameters: scale factor and length scale.
- The algorithm terminates if a function value less than ftarget is reached.
Parameter settings
Parameter settings for other partitioning based algorithms can be found in AlgorithmParameters
Citation
If you write a scientific paper describing research that made use of this code, please cite the following paper:
@article{bamsoo,
author = {Abdullah Al-Dujaili and S. Suresh},
title = {Analysis of the Bayesian Multi-Scale Optimistic Optimization on the Noiseless BBOB Testbed},
journal = {},
year = 2015,
pages = {},
url = "http://ash-aldujaili.github.io/BaMSOO/"
}