Forrester

forrester.py: Forrester function

This file contains the definition of an adapted version of the simple 1D example function as presented in:

Forrester Alexander I.J, Sóbester András and Keane Andy J “Multi-fidelity Optimization via Surrogate Modelling”, Proceedings of the Royal Society A, vol. 463, http://doi.org/10.1098/rspa.2007.1900

Function definitions:

\[f_h(x) = (6x-2)^2 \sin(12x-4)\]
\[f_l(x) = A f_h(x) + B(x-0.5) + C\]

With \(A=0.5, B=10\) and \(C=-5\) as recommended parameters.

This version has been adapted to be multi-dimensional, input can be arbitrarily many dimensions. Output value is calculated as the mean of the outcomes for all separate dimensions.

Forrester(ndim: int)

Factory method for ndim-dimensional multi-fidelity Forrester function

Parameters:

ndim – Desired dimensionality

Returns:

MultiFidelityFunction instance with bounds of appropriate length

forrester = MultiFidelityFunction(Forrester, [1.], [0.], fidelity_names=['high', 'low'])

1D Forrester function with fidelities ‘high’ and ‘low’

forrester_high(xx)
forrester_low(xx, *, A=0.5, B=10, C=-5)
forrester_sf = MultiFidelityFunction(Forrester Single Fidelity, [1.], [0.], fidelity_names=['high'])

1D Forrester function with single fidelity ‘high’

l_bound = [0]

Lower bound for Forrester function

u_bound = [1]

Upper bound for Forrester function