Test Functions for Metamodeling#
The table below listed the available test functions typically used in the comparison of metamodeling approaches.
Name |
Input Dimension |
Constructor |
|---|---|---|
M |
|
|
2 |
|
|
20 |
|
|
8 |
|
|
2 |
|
|
2 |
|
|
1 |
|
|
1 |
|
|
7 |
|
|
3 |
|
|
3 |
|
|
3 |
|
|
8 |
|
|
1 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
6 |
|
|
10 |
|
|
M |
|
|
1 |
|
|
1 |
|
|
1 |
|
|
2 |
|
|
2 |
|
|
10 |
|
|
10 |
|
|
10 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
2 |
|
|
1 |
|
|
6 / 20 |
|
|
7 / 20 |
|
|
8 |
|
|
M |
|
|
5 |
|
|
9 |
|
|
6 |
|
|
2 |
|
|
20 |
|
|
10 |
|
In a Python terminal, you can list all the available functions relevant
for metamodeling applications using list_functions()
and filter the results using the tag parameter
(shown below in the HTML format):
import uqtestfuns as uqtf
uqtf.list_functions(tag="metamodeling", tablefmt="html")
| No. | Constructor | # Input | # Output | Param. | Description |
|---|---|---|---|---|---|
| 1 | Ackley() | M | 1 | True | Optimization test function from Ackley (1987) |
| 2 | Alemazkoor20D() | 20 | 1 | False | High-dimensional low-degree polynomial from Alemazkoor & Meidani (2018) |
| 3 | Alemazkoor2D() | 2 | 1 | False | Low-dimensional high-degree polynomial from Alemazkoor & Meidani (2018) |
| 4 | Borehole() | 8 | 1 | False | Borehole function from Harper and Gupta (1983) |
| 5 | Cheng2D() | 2 | 1 | False | Two-dimensional test function from Cheng and Sandu (2010) |
| 6 | CoffeeCup() | 2 | 150 | True | Cooling coffee cup model from Tennøe et al. (2018) |
| 7 | CurrinSine() | 1 | 1 | False | Sine function from Currin et al. (1988) |
| 8 | DampedCosine() | 1 | 1 | False | One-dimensional damped cosine from Santner et al. (2018) |
| 9 | DampedOscillator() | 7 | 1 | False | Damped oscillator model from Igusa and Der Kiureghian (1985) |
| 10 | Dette8D() | 8 | 1 | False | 8D function from Dette and Pepelyshev (2010) |
| 11 | DetteCurved() | 3 | 1 | False | Curved function from Dette and Pepelyshev (2010) |
| 12 | DetteExp() | 3 | 1 | False | Exponential function from Dette and Pepelyshev (2010) |
| 13 | Flood() | 8 | 1 | False | Flood model from Iooss and Lemaître (2015) |
| 14 | Forrester2008() | 1 | 1 | False | One-dimensional function from Forrester et al. (2008) |
| 15 | Franke1() | 2 | 1 | False | (1st) Franke function from Franke (1979) |
| 16 | Franke2() | 2 | 1 | False | (2nd) Franke function from Franke (1979) |
| 17 | Franke3() | 2 | 1 | False | (3rd) Franke function from Franke (1979) |
| 18 | Franke4() | 2 | 1 | False | (4th) Franke function from Franke (1979) |
| 19 | Franke5() | 2 | 1 | False | (5th) Franke function from Franke (1979) |
| 20 | Franke6() | 2 | 1 | False | (6th) Franke function from Franke (1979) |
| 21 | Friedman10D() | 10 | 1 | False | Ten-dimensional function from Friedman (1991) |
| 22 | Friedman6D() | 6 | 1 | False | Six-dimensional function from Friedman et al. (1983) |
| 23 | GenzCornerPeak() | M | 1 | True | Corner peak integrand from Genz (1984) |
| 24 | GramacySine() | 1 | 1 | False | One-dimensional sine function from Gramacy (2007) |
| 25 | HigdonSine() | 1 | 1 | False | Sine function from Higdon (2002) |
| 26 | HolsclawSine() | 1 | 1 | False | Sine function from Holsclaw et al. (2013) |
| 27 | LimNonPoly() | 2 | 1 | False | Two-dimensional non-polynomial function from Lim et al. (2002) |
| 28 | LimPoly() | 2 | 1 | False | Two-dimensional polynomial function from Lim et al. (2002) |
| 29 | LinkletterDecCoeffs() | 10 | 1 | False | Linear function with decreasing coefficients (8 active inputs) from Linkletter et al. (2006) |
| 30 | LinkletterLinear() | 10 | 1 | False | Linear function with 4 active inputs from Linkletter et al. (2006) |
| 31 | LinkletterSine() | 10 | 1 | False | Sine function with 2 active inputs from Linkletter et al. (2006) |
| 32 | McLainS1() | 2 | 1 | False | McLain S1 function from McLain (1974) |
| 33 | McLainS2() | 2 | 1 | False | McLain S2 function from McLain (1974) |
| 34 | McLainS3() | 2 | 1 | False | McLain S3 function from McLain (1974) |
| 35 | McLainS4() | 2 | 1 | False | McLain S4 function from McLain (1974) |
| 36 | McLainS5() | 2 | 1 | False | McLain S5 function from McLain (1974) |
| 37 | OTLCircuit() | 6 | 1 | False | Output transformerless (OTL) circuit model from Ben-Ari and Steinberg (2007) |
| 38 | Oakley1D() | 1 | 1 | False | One-dimensional function from Oakley and O'Hagan (2002) |
| 39 | Piston() | 7 | 1 | False | Piston simulation model from Ben-Ari and Steinberg (2007) |
| 40 | RobotArm() | 8 | 1 | False | Four-segment robot arm function from An and Owen (2001) |
| 41 | Rosenbrock() | M | 1 | True | Optimization test function from Rosenbrock (1960), also known as the banana function |
| 42 | SolarCell() | 5 | 1 | True | Single-diode solar-cell model from Constantine et al. (2015) |
| 43 | Sulfur() | 9 | 1 | False | Sulfur model from Charlson et al. (1992) |
| 44 | UndampedOscillator() | 6 | 1 | False | Undamped, non-linear, single DOF oscillator |
| 45 | Webster2D() | 2 | 1 | False | 2D polynomial function from Webster et al. (1996). |
| 46 | Welch1992() | 20 | 1 | False | 20-Dimensional function from Welch et al. (1992) |
| 47 | WingWeight() | 10 | 1 | False | Wing weight model from Forrester et al. (2008) |
About metamodeling#
In practice, the computational model \(\mathcal{M}\) (see Uncertainty Quantification Framework) is typically complex. Since an uncertainty quantification (UQ) analysis usually require numerous evaluations of \(\mathcal{M}\) (\(\sim 10^2\)—\(10^6\) or more!), the process may become computationally intractable if \(\mathcal{M}\) is expensive to evaluate.
To address this challenge, many UQ analyses employ a metamodel (surrogate model). Constructed on a limited number of model \(\mathcal{M}\) evaluations, such a metamodel should be able to capture the most important aspects of the input/output mapping while being significantly cheaper to evaluate. This metamodel can then replace \(\mathcal{M}\) in the analysis, providing a significant reduction in computational cost without sacrificing the accuracy of the analysis much.
While not a goal of UQ analyse per se, metamodeling is nowadays an indispensable component of the UQ framework [Sud12, SMW17].
References#
Bruno Sudret. Meta-models for structural reliability and uncertainty quantification. In Proceedings of the 5th Asian-Pacific Symposium on Structural Reliability and its Applications. 2012. doi:10.3850/978-981-07-2219-7_p321.
Bruno Sudret, Stefano Marelli, and Joe Wiart. Surrogate models for uncertainty quantification: an overview. In 2017 11th European Conference on Antennas and Propagation (EUCAP), 793–797. IEEE, March 2017. doi:10.23919/eucap.2017.7928679.