emukit.test_functions.multi_fidelity package
Submodules
- emukit.test_functions.multi_fidelity.borehole.multi_fidelity_borehole_function(high_noise_std_deviation=0, low_noise_std_deviation=0)
Two level borehole function.
The Borehole function models water flow through a borehole. Its simplicity and quick evaluation makes it a commonly used function for testing a wide variety of methods in computer experiments.
See reference for equations: https://www.sfu.ca/~ssurjano/borehole.html
- Parameters:
- Return type:
- Returns:
Tuple of user function object and parameter space
- emukit.test_functions.multi_fidelity.branin.multi_fidelity_branin_function()
Two-dimensional Branin, often used as an optimization benchmark but here modified to be used as a multi-fidelity benchmark
Based on: https://www.sfu.ca/~ssurjano/branin.html
High fidelity given by: :rtype:
Tuple
[MultiSourceFunctionWrapper
,ParameterSpace
]\[f(\mathbf{x}) = (x_2 - b x_1 ^ 2 + c x_1 - r) ^ 2 + s(1 - t) \cos(x_1) + s\]Middle fidelity given by:
\[f_{m}(\mathbf{x}) = \sqrt{f_{high}(\mathbf{x} - 2)} + \frac{2(x_1 - 0.5) - 3(3x_2 - 1) - 1}{100}\]Low fidelity given by:
\[f_{m}(1.2(\mathbf{x} + 2)) - \frac{3 x_2 + 1}{100}\]where:
\[ \begin{align}\begin{aligned}b = 5.1 / (4 \pi ^ 2)\\c = 5 /\pi\\r = 6\\s = 10\\t = 1 / (8\pi)\end{aligned}\end{align} \]
- emukit.test_functions.multi_fidelity.currin.multi_fidelity_currin_function()
High fidelity function is given by: :rtype:
Tuple
[MultiSourceFunctionWrapper
,ParameterSpace
]\[f_{high}(\mathbf{x}) = \left[ 1 - \exp \left(-\frac{1}{2x_2}\right) \right] \frac{2300x_1^3 + 1900x_1^2 + 2092x_1 + 60}{100x_1^3+500x_1^2 + 4x_1 + 20}\]Low fidelity function given by:
\[\begin{split}f_{low}(\mathbf{x}) = \frac{1}{4} \left[ f_{high}(x_1 + 0.05, x_2 + 0.05) + f_{high}(x_1 + 0.05, \max (0, x_2 - 0.05)) \\ + f_{high}(x_1 - 0.05, x_2 + 0.05) + f_{high}\left(x_1 - 0.05, \max \left(0, x_2 - 0.05\right)\right) \right]\end{split}\]Input domain:
\[\mathbf{x}_i \in [0, 1]\]
- emukit.test_functions.multi_fidelity.hartmann.multi_fidelity_hartmann_3d()
The function is given by:
\[f(x, \alpha) = -\sum_{i=1}^{4} \alpha_i \exp \left( -\sum_{j=1}^{3} A_{i,j}\left( x_j - P_{i, j} \right)^2 \right)\]where
\[\begin{split}\mathbf{A} = \begin{bmatrix} 3.0 & 10 & 30 \\ 0.1 & 10 & 35 \\ 3.0 & 10 & 30 \\ 0.1 & 10 & 35 \end{bmatrix}\end{split}\]\[\begin{split}\mathbf{P} = 10^{-4} \begin{bmatrix} 3689 & 1170 & 2673 \\ 4699 & 4387 & 7470 \\ 1091 & 8732 & 5547 \\ 381 & 5743 & 8828 \end{bmatrix}\end{split}\]The high fidelity function is given by setting:
\[\alpha = (1.0, 1.2, 3.0, 3.2)^T\]The middle fidelity is given by setting:
\[\alpha = (1.01, 1.19, 2.9, 3.3)^T\]The low fidelity is given by setting:
\[\alpha = (1.02, 1.18, 2.8, 3.4)^T\]The domain is given by:
\[\mathbf{x}_i \in (0, 1)\]Reference: https://www.sfu.ca/~ssurjano/hart3.html
- Return type:
- Returns:
Tuple of MultiSourceFunctionWrapper and ParameterSpace
- emukit.test_functions.multi_fidelity.park.multi_fidelity_park_function()
High fidelity is given by: :rtype:
Tuple
[MultiSourceFunctionWrapper
,ParameterSpace
]\[f_{high}(\mathbf{x}) = \frac{x_1}{2}\left[ \sqrt{1 + \left( x_2 + x_3^2 \right) \frac{x_4}{x_1^2}} - 1\right] + \left( x_1 + 3 x_4 \right) \exp \left[ 1 + \sin x_3 \right]\]Low fidelity is given by:
\[f_{low}(\mathbf{x}) = \left[ 1 + \frac{\sin x_1}{10} \right] f_{high}(\mathbf{x}) - 2x_1 + x_2 ^ 2 + x_3 ^2 + 0.5\]The input domain is given by:
\[\mathbf{x}_i \in (0, 1)\]Reference: https://www.sfu.ca/~ssurjano/park91a.html