Test Functions for Metamodeling

Test Functions for Metamodeling#

The table below listed the available test functions typically used in the comparison of metamodeling approaches.

Name

Input Dimension

Constructor

Ackley

M

Ackley()

Alemazkoor & Meidani (2018) 2D

2

Alemazkoor2D()

Alemazkoor & Meidani (2018) 20D

20

Alemazkoor20D()

Borehole

8

Borehole()

Cheng and Sandu (2010) 2D

2

Cheng2D

Coffee Cup Model

2

CoffeeCup()

Currin et al. (1988) Sine

1

CurrinSine()

Damped Cosine

1

DampedCosine()

Damped Oscillator

7

DampedOscillator()

Dette & Pepelyshev (2010) 8D

3

Dette8D()

Dette & Pepelyshev (2010) Curved

3

DetteCurved()

Dette & Pepelyshev (2010) Exponential

3

DetteExp()

Flood

8

Flood()

Forrester et al. (2008)

1

Forrester2008()

(1st) Franke

2

Franke1()

(2nd) Franke

2

Franke2()

(3rd) Franke

2

Franke3()

(4th) Franke

2

Franke4()

(5th) Franke

2

Franke5()

(6th) Franke

2

Franke6()

Friedman (6D)

6

Friedman6D()

Friedman (10D)

10

Friedman10D()

Genz (Corner Peak)

M

GenzCornerPeak()

Gramacy (2007) Sine

1

GramacySine()

Higdon (2002) Sine

1

HigdonSine()

Holsclaw et al. (2013) Sine

1

HolsclawSine()

Lim et al. (2002) Non-Polynomial

2

LimNonPoly()

Lim et al. (2002) Polynomial

2

LimPoly()

Linkletter et al. (2006) Decreasing Coefficients

10

LinkletterDecCoeffs()

Linkletter et al. (2006) Linear

10

LinkletterLinear()

Linkletter et al. (2006) Sine

10

LinkletterSine()

McLain S1

2

McLainS1()

McLain S2

2

McLainS2()

McLain S3

2

McLainS3()

McLain S4

2

McLainS4()

McLain S5

2

McLainS5()

Oakley & O’Hagan (2002) 1D

1

Oakley1D()

OTL Circuit

6 / 20

OTLCircuit()

Piston Simulation

7 / 20

Piston()

Robot Arm

8

RobotArm()

Rosenbrock

M

Rosenbrock()

Solar Cell Model

5

SolarCell()

Sulfur

9

Sulfur()

Undamped Oscillator

6

UndampedOscillator()

Webster et al. (1996) 2D

2

Webster2D()

Welch et al. (1992)

20

Welch1992()

Wing Weight

10

WingWeight()

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#

[Sud12]

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.

[SMW17]

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.