damar-wicaksono / uqtestfuns

A Python3 library of test functions from the uncertainty quantification community with a common interface for validation and benchmarking purposes.
https://uqtestfuns.readthedocs.io/en/latest/
MIT License
8 stars 0 forks source link

Add an implementation of the four-branch function #201

Closed damar-wicaksono closed 1 year ago

damar-wicaksono commented 1 year ago

The four-branch[^four-branch] function is a popular test function in reliability analysis. This would be the first inclusion of a reliability analysis test function into UQTestFuns; a new section in the docs listing available test functions for the corresponding analysis must be added.

$$ f(\mathbf{x},p) = \min \begin{Bmatrix} 3 + 0.1(x_1 - x_2)^2 - \frac{x_1 + x_2}{\sqrt{2}} \ 3 + 0.1(x_1 - x_2)^2 + \frac{x_1 + x_2}{\sqrt{2}} \ (x_1 - x_2) + \frac{p}{\sqrt{2}} \ (x_2 - x_1) + \frac{p}{\sqrt{2}} \end{Bmatrix} $$

with $X1, X2 \sim \mathcal{N}(0, 1)$ and the default $p$ is $6$.

[^four-branch]: B. Echard, N. Gayton, and M. Lemaire, “AK-MCS: An active learning reliability method combining Kriging and Monte Carlo simulation”, Reliability Engineering and System Safety, vol. 33, no. 2, pp. 145-154, 2011. DOI:10.1016/j.strusafe.2011.01.002

damar-wicaksono commented 1 year ago

This issue has been resolved by PR #248.

The parameterization has been slightly modified: instead of $(x_1 - x_2) + \frac{p}{\sqrt{2}}$ it is now $(x_1 - x_2) + p$ (and respectively for the last term).