smt_optim.benchmarks.avt311 package

Contents

smt_optim.benchmarks.avt311 package#

Submodules#

smt_optim.benchmarks.avt311.avt311 module#

Reference:

Mainini, L., Serani, A., Rumpfkeil, M. P., Minisci, E., Quagliarella, D., Pehlivan, H., … & Beran, P. (2022). Analytical benchmark problems for multifidelity optimization methods. arXiv preprint arXiv:2204.07867.

(https://arxiv.org/pdf/2204.07867)

Repository:

qudo046/avt-331-l1-benchmarks

SMT-optim implementation of the AVT311 L1 benchmark problems were adapted from the following repository: qudo046/avt-331-l1-benchmarks. The implementation is slightly modified to:

  • follow SMT-optim benchmark problem base class,

  • (when applicable) allow users to change the problem dimension.

These implementations were validated using the available data in the reference repository. Provided under the directory data_smt-optim are validation data generated with SMT-optim implementations. The headers can be interpreted as follows:

  • x_i: input value

  • f_i: function value (in increasing order of fidelity)

  • d_i: absolute difference with original validation data (-GNU)

class Alos[source]#

Bases: BenchmarkProblem

bounds: ndarray = None#
constraints: list = None#
f(x, fid=1)[source]#
name: str = None#
num_cstr: int = None#
num_dim: int | str = None#
num_fidelity: int = None#
num_obj: int = None#
objective: Callable | list[Callable] = None#
set_dim(dim: int)[source]#
tags: list = None#
class Alos1[source]#

Bases: BenchmarkProblem

bounds: ndarray = None#
constraints: list = None#
f(x, fid=1)[source]#
name: str = None#
num_cstr: int = None#
num_dim: int | str = None#
num_fidelity: int = None#
num_obj: int = None#
objective: Callable | list[Callable] = None#
set_dim(dim)#
tags: list = None#
class DiscForrester[source]#

Bases: BenchmarkProblem

bounds: ndarray = None#
constraints: list = None#
f(x, fid=1)[source]#
name: str = None#
num_cstr: int = None#
num_dim: int | str = None#
num_fidelity: int = None#
num_obj: int = None#
objective: Callable | list[Callable] = None#
set_dim(dim)#
tags: list = None#
class Forrester[source]#

Bases: BenchmarkProblem

bounds: ndarray = None#
constraints: list = None#
f(x, fid=3)[source]#
name: str = None#
num_cstr: int = None#
num_dim: int | str = None#
num_fidelity: int = None#
num_obj: int = None#
objective: Callable | list[Callable] = None#
set_dim(dim)#
tags: list = None#
class MFMass[source]#

Bases: BenchmarkProblem

bounds: ndarray = None#
constraints: list = None#
func(x, dt=0.01)[source]#
name: str = None#
num_cstr: int = None#
num_dim: int | str = None#
num_fidelity: int = None#
num_obj: int = None#
objective: Callable | list[Callable] = None#
set_dim(dim)#
tags: list = None#
class MFRastrigin[source]#

Bases: BenchmarkProblem

bounds: ndarray = None#
constraints: list = None#
f1(z)[source]#
fi(x: ndarray, phi: float)[source]#
name: str = None#
num_cstr: int = None#
num_dim: int | str = None#
num_fidelity: int = None#
num_obj: int = None#
objective: Callable | list[Callable] = None#
resolution_error(z: ndarray, phi: float)[source]#
rotation_matrix(n, v, theta)[source]#

Aguilera-Perez algorithm

Parameters:
  • n (int) – Dimension

  • v ((n, n-1) array) – Input matrix

  • theta (float) – Final rotation angle

Returns:

R – Final rotation matrix

Return type:

(n, n) array

set_dim(dim: int)[source]#
tags: list = None#
z(x)[source]#
class MFRosenbrock[source]#

Bases: BenchmarkProblem

bounds: ndarray = None#
constraints: list = None#
f(x, fid=2)[source]#
name: str = None#
num_cstr: int = None#
num_dim: int | str = None#
num_fidelity: int = None#
num_obj: int = None#
objective: Callable | list[Callable] = None#
set_dim(dim)#
tags: list = None#
class MFSpring[source]#

Bases: BenchmarkProblem

bounds: ndarray = None#
constraints: list = None#
func(x, dt=0.01)[source]#
name: str = None#
num_cstr: int = None#
num_dim: int | str = None#
num_fidelity: int = None#
num_obj: int = None#
objective: Callable | list[Callable] = None#
set_dim(dim)#
tags: list = None#
class MFSpringMass[source]#

Bases: BenchmarkProblem

bounds: ndarray = None#
constraints: list = None#
func(x, dt=0.01)[source]#
name: str = None#
num_cstr: int = None#
num_dim: int | str = None#
num_fidelity: int = None#
num_obj: int = None#
objective: Callable | list[Callable] = None#
set_dim(dim)#
tags: list = None#
rhs(y, m, k)[source]#
rk4(y0, t0, tf, h, m, k)[source]#

Module contents#