Branin

Implementation of the bi-fidelity Branin function as defined in:

Dong, H., Song, B., Wang, P. et al. Multi-fidelity information fusion based on prediction of kriging. Struct Multidisc Optim 51, 1267–1280 (2015) doi:10.1007/s00158-014-1213-9

Function definitions:

\[f_b(x_1, x_2) = \Bigg(x_2 - (5.1\dfrac{x_1^2}{4\pi^2}) + \dfrac{5x_1}{\pi} - 6\Bigg)^2 + \Bigg(10\cos(x_1) (1 - \dfrac{1}{8\pi}\Bigg) + 10\]
\[f_h(x_1, x_2) = f_b(x_1, x_2) - 22.5x_2\]
\[f_l(x_1, x_2) = f_b(0.7x_1, 0.7x_2) - 15.75x_2 + 20(0.9 + x_1)^2 - 50\]
branin = MultiFidelityFunction(Branin, [10. 15.], [-5.  0.], fidelity_names=['high', 'low'])

2D Branin function with fidelities ‘high’ and ‘low’

branin_base(xx)

BRANIN FUNCTION

INPUT: xx = [x1, x2]

branin_hf(xx)

BRANIN FUNCTION, HIGH FIDELITY CODE Calls: branin_base This function, from Dong et al. (2015), is used as the “high-accuracy code” version of the function based on the ‘traditional’ branin function.

INPUT: xx = [x1, x2]

branin_lf(xx)

BRANIN FUNCTION, LOWER FIDELITY CODE Calls: branin_base This function, from Dong et al. (2015), is used as the “low-accuracy code” version of the function branin_hf.

INPUT: xx = [x1, x2]

l_bound = [-5, 0]

Lower bound for Branin function

u_bound = [10, 15]

Upper bound for Branin function