physbo.test_functions.multi_objective module

physbo.test_functions.multi_objective.Binh1

Binh's first function.

This is an alias of BinhKorn.

参考文献

To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.

physbo.test_functions.multi_objective.Binh2

Binh's second function.

This is an alias of ChankongHaimes.

参考文献

To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.

physbo.test_functions.multi_objective.Binh3

Binh's third function.

This is an alias of FonsecaFleming.

参考文献

To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.

physbo.test_functions.multi_objective.Binh4

Binh's fourth function.

This is an alias of KitaYabumotoMoriNishikawa.

参考文献

To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.

class physbo.test_functions.multi_objective.Binh5(min_X: ndarray | list[float] | float = [0.1, 0.0], max_X: ndarray | list[float] | float = 1.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Binh's fifth function.

\[\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = x_1 \\ f_2(\boldsymbol{x}) = \frac{g(x_2)}{x_1} \end{cases},\quad \text{where}\quad g(x) = 2 - \exp\left(-\left(\frac{x - 0.2}{0.004}\right)^2\right) - 0.8 \exp\left(-\left(\frac{x - 0.6}{0.4}\right)^2\right)\end{split}\]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=[-0.1, 0.0]) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=1.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.Binh6(min_X: ndarray | list[float] | float = -5.0, max_X: ndarray | list[float] | float = 5.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Binh's sixth function.

\[\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = \sqrt{x_1^2 + x_2^2 + 1} \\ f_2(\boldsymbol{x}) = \frac{g(x_4)}{f_1(\boldsymbol{x})} \end{cases},\quad \text{where}\quad g(x) = 100 (x_4 - x_3^2)^2 + (1 - x_3)^2 + 2\end{split}\]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=-5.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=5.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.Binh8(min_X: ndarray | list[float] | float = 0.0, max_X: ndarray | list[float] | float = 1.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Binh's eighth function.

\[\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = x_1 + x_2 \\ f_2(\boldsymbol{x}) = 1 - \exp(-4 x_1) \sin(5 \pi x_1)^4 \end{cases}\end{split}\]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=0.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=1.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.Binh9(min_X: ndarray | list[float] | float = 0.0, max_X: ndarray | list[float] | float = 1.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Binh's ninth function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = x_1 \\ f_2(\boldsymbol{x}) = g(x_2) h(x_1, x_2) \end{cases}\end{split}\\\begin{split}\text{where} \begin{cases} g(x_2) = 1 + 10 x_2 \\ h(x_1, x_2) = 1 - \left( \frac{x_1}{g(x_2)} \right)^2 - \left( \frac{x_1}{g(x_2)} \right) \sin(8 \pi x_1) \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=0.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=1.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.BinhKorn(min_X: ndarray | list[float] | float = array([0., 0.]), max_X: ndarray | list[float] | float = array([5., 3.]), test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Binh-Korn's function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = 4 x_1^2 + 4 x_2^2 \\ f_2(\boldsymbol{x}) = (x_1 - 5)^2 + (x_2 - 5)^2 \end{cases}\end{split}\\\begin{split}\text{Subject to} \begin{cases} g_1(\boldsymbol{x}) = (x_1 - 5)^2 + x_2^2 \le 25 \\ g_2(\boldsymbol{x}) = (x_1 - 8)^2 + (x_2 + 3)^2 \ge 7.7 \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=np.array([0.0, 0.0])) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=np.array([5.0, 3.0])) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

Binh, To Thanh, and Ulrich Korn. "MOBES: A multiobjective evolution strategy for constrained optimization problems." The third international conference on genetic algorithms (Mendel 97). Vol. 25. 1997.

constraint(x: ndarray) ndarray[ソース]

Evaluate the constraint function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the constraint function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

The boolean values indicating whether the point is valid or not. The output value is a numpy array of shape (n,), where n is the number of points.

戻り値の型:

np.ndarray

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.ChankongHaimes(min_X: ndarray | list[float] | float = -20.0, max_X: ndarray | list[float] | float = 20.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Chankong-Haimes's function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = 2 + (x_1 - 2)^2 + (x_2 - 1)^2 \\ f_2(\boldsymbol{x}) = 9 x_1 - (x_2 - 1)^2 \end{cases}\end{split}\\\begin{split}\text{Subject to} \begin{cases} g_1(\boldsymbol{x}) = x_1^2 + x_2^2 \le 225 \\ g_2(\boldsymbol{x}) = x_1 - 3 x_2 \le -10 \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=-20.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=20.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

Chankong, V., and Haimes, Y. Y., "Multiobjective decision making: Theory and method", North-Holland series in system science and engineering, 1983.

constraint(x: ndarray) ndarray[ソース]

Evaluate the constraint function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the constraint function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

The boolean values indicating whether the point is valid or not. The output value is a numpy array of shape (n,), where n is the number of points.

戻り値の型:

np.ndarray

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.ConstrEX(min_X: ndarray | list[float] | float = [0.1, 0.0], max_X: ndarray | list[float] | float = [1.0, 5.0], test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

ConstrEX function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = x_1 \\ f_2(\boldsymbol{x}) = (1 + x_2) / x_1 \end{cases}\end{split}\\\begin{split}\text{Subject to} \begin{cases} g_1(\boldsymbol{x}) = 9 x_1 + x_2 \ge 6 \\ g_2(\boldsymbol{x}) = 9 x_1 - x_2 \ge 1 \\ \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=[0.1, 0.0]) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=[1.0, 5.0]) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

Deb, K. (2011). Multi-objective Optimisation Using Evolutionary Algorithms: An Introduction. In: Wang, L., Ng, A., Deb, K. (eds) Multi-objective Evolutionary Optimisation for Product Design and Manufacturing. Springer, London. https://doi.org/10.1007/978-0-85729-652-8_1

constraint(x: ndarray) ndarray[ソース]

Evaluate the constraint function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the constraint function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

The boolean values indicating whether the point is valid or not. The output value is a numpy array of shape (n,), where n is the number of points.

戻り値の型:

np.ndarray

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.FonsecaFleming(dim: int = 2, min_X: ndarray | list[float] | float = -2.0, max_X: ndarray | list[float] | float = 2.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Fonseca and Fleming's function.

\[\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = 1 - \exp \left( -\sum_{i=1}^N \left( x_i - \frac{1}{\sqrt{N}} \right)^2 \right) \\ f_2(\boldsymbol{x}) = 1 - \exp \left( -\sum_{i=1}^N \left( x_i + \frac{1}{\sqrt{N}} \right)^2 \right) \end{cases}\end{split}\]
パラメータ:
  • dim (int, default=2) -- Number of dimensions \(N\).

  • min_X (np.ndarray | list[float] | float, default=-2.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=2.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

Carlos M. Fonseca, Peter J. Fleming; An Overview of Evolutionary Algorithms in Multiobjective Optimization. Evol Comput 1995; 3 (1): 1-16. doi: https://doi.org/10.1162/evco.1995.3.1.1

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.Gaussian(centers: ndarray, widths: ndarray | list[float] | float = 1.0, amplitudes: ndarray | list[float] | float = 1.0, min_X: ndarray | list[float] | float = -2.0, max_X: ndarray | list[float] | float = 2.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Gaussian function.

\[\text{Minimize}\quad f_n(\boldsymbol{x}) = -A_n \exp \left( -\frac{\left|\boldsymbol{x} - \boldsymbol{c}_n\right|^2}{2 w_n^2} \right)\]
パラメータ:
  • centers (np.ndarray) -- Centers of the Gaussian functions \(\boldsymbol{c}_n\).

  • widths (np.ndarray | list[float] | float, default=1.0) -- Widths of the Gaussian functions \(w_n\).

  • amplitudes (np.ndarray | list[float] | float, default=1.0) -- Amplitudes of the Gaussian functions \(A_n\).

  • min_X (np.ndarray | list[float] | float, default=-2.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=2.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.KitaYabumotoMoriNishikawa(min_X: ndarray | list[float] | float = -7.0, max_X: ndarray | list[float] | float = 4.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Kita-Yabumoto-Mori-Nishikawa's function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = x_1^2 - x_2 \\ f_2(\boldsymbol{x}) = -\frac{1}{2}x_1 - x_2 - 1 \end{cases}\end{split}\\\begin{split}\text{Subject to} \begin{cases} g_1(\boldsymbol{x}) = 6.5 - \frac{x_1}{6} - x_2 \ge 0 \\ g_2(\boldsymbol{x}) = 7.5 - \frac{x_1}{2} - x_2 \ge 0 \\ g_3(\boldsymbol{x}) = 30 - 5 x_1 - x_2 \ge 0 \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=-7.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=4.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

Kita, H., Yabumoto, Y., Mori, N., Nishikawa, Y. (1996). Multi-objective optimization by means of the thermodynamical genetic algorithm. In: Voigt, HM., Ebeling, W., Rechenberg, I., Schwefel, HP. (eds) Parallel Problem Solving from Nature — PPSN IV. PPSN 1996. Lecture Notes in Computer Science, vol 1141. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61723-X_1014

constraint(x: ndarray) ndarray[ソース]

Evaluate the constraint function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the constraint function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

The boolean values indicating whether the point is valid or not. The output value is a numpy array of shape (n,), where n is the number of points.

戻り値の型:

np.ndarray

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.Kursawe(min_X: ndarray | list[float] | float = -5.0, max_X: ndarray | list[float] | float = 5.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Kursawe's function.

\[\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = \sum_{i=1}^{2} -10 \exp \left( -0.2 \sqrt{x_i^2 + x_{i+1}^2} \right) \\ f_2(\boldsymbol{x}) = \sum_{i=1}^{3} \left( \left| x_i \right|^{0.8} + 5 \sin(x_i^3) \right) \end{cases}\end{split}\]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=-5.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=5.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

  1. Kursawe, "A variant of evolution strategies for vector optimization," in PPSN I, Vol 496 Lect Notes in Comput Sci. Springer-Verlag, 1991, pp. 193-197.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.MultiTestFunction(nobj: int, dim: int, min_X: ndarray | list[float] | float, max_X: ndarray | list[float] | float, test_maximizer: bool)[ソース]

ベースクラス: TestFunction

Initialize the test function.

パラメータ:
  • nobj (int) -- Number of objectives.

  • dim (int) -- Number of dimensions.

  • min_X (np.ndarray | list[float] | float) -- Minimum value of search space for each dimension.

  • max_X (np.ndarray | list[float] | float) -- Maximum value of search space for each dimension.

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

property reference_max: ndarray

Get the upper bound of the reference box.

Reference box is a box that contains the entire non-dominated region. It is used to calculate the volume of the non-dominated region.

戻り値:

The reference maximum values of the test function.

戻り値の型:

np.ndarray

Note

Reference box is calculated by using the default values of min_X and max_X.

property reference_min: ndarray

Get the lower bound of the reference box.

Reference box is a box that contains the entire non-dominated region. It is used to calculate the volume of the non-dominated region.

戻り値:

The reference minimum values of the test function.

戻り値の型:

np.ndarray

Note

Reference box is calculated by using the default values of min_X and max_X.

class physbo.test_functions.multi_objective.OsyczkaKundu(min_X: ndarray | list[float] | float = [0.0, 0.0, 1.0, 0.0, 1.0, 0.0], max_X: ndarray | list[float] | float = [10.0, 10.0, 5.0, 6.0, 5.0, 10.0], test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Osyczka-Kundu's function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = -25 (x_1 - 2)^2 - (x_2 - 2)^2 - (x_3 - 1)^2 - (x_4 - 4)^2 - (x_5 - 1)^2 \\ f_2(\boldsymbol{x}) = \sum_{i=1}^{6} x_i^2 \end{cases}\end{split}\\\begin{split}\text{Subject to} \begin{cases} g_1(\boldsymbol{x}) = x_1 + x_2 - 2 \ge 0 \\ g_2(\boldsymbol{x}) = 6 - x_1 - x_2 \ge 0 \\ g_3(\boldsymbol{x}) = 2 - x_2 + x_1 \ge 0 \\ g_4(\boldsymbol{x}) = 2 - x_1 + 3 x_2 \ge 0 \\ g_5(\boldsymbol{x}) = 4 - \left(x_3 - 3\right)^2 - x_4 \ge 0 \\ g_6(\boldsymbol{x}) = \left(x_5 - 3\right)^2 + x_6 - 4 \ge 0 \\ \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=[0.0, 0.0, 1.0, 0.0, 1.0, 0.0]) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=[10.0, 10.0, 5.0, 6.0, 5.0, 10.0]) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

Osyczka, A., Kundu, S. A new method to solve generalized multicriteria optimization problems using the simple genetic algorithm. Structural Optimization 10, 94-99 (1995). https://doi.org/10.1007/BF01743536

constraint(x: ndarray) ndarray[ソース]

Evaluate the constraint function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the constraint function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

The boolean values indicating whether the point is valid or not. The output value is a numpy array of shape (n,), where n is the number of points.

戻り値の型:

np.ndarray

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.Poloni(min_X: ndarray | list[float] | float = -3.141592653589793, max_X: ndarray | list[float] | float = 3.141592653589793, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Poloni's function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = 1.0 + (a_1 - b_1(\boldsymbol{x}))^2 + (a_2 - b_2(\boldsymbol{x}))^2 \\ f_2(\boldsymbol{x}) = (x_1 + 3)^2 + (x_2 + 1)^2 \end{cases}\end{split}\\\begin{split}\text{where} \begin{cases} a_1 = 0.5 \sin(1) - 2 \cos(1) + \sin(2) - 1.5 \cos(2) \\ a_2 = 1.5 \sin(1) - \cos(1) + 2 \sin(2) - 0.5 \cos(2) \\ b_1(\boldsymbol{x}) = 0.5 \sin(x_1) - 2 \cos(x_1) + \sin(x_2) - 1.5 \cos(x_2) \\ b_2(\boldsymbol{x}) = 1.5 \sin(x_1) - \cos(x_1) + 2 \sin(x_2) - 0.5 \cos(x_2) \\ \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=-np.pi) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=np.pi) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.Schaffer1(min_X: ndarray | list[float] | float = -10.0, max_X: ndarray | list[float] | float = 10.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Schaffer's first function.

\[\begin{split}\text{Minimize} \begin{cases} f_1(x) = x^2 \\ f_2(x) = (x - 2)^2 \end{cases}\end{split}\]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=-10.0) -- Minimum value of the search space \(x_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=10.0) -- Maximum value of the search space \(x_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

Schaffer, J. David. "Multiple objective optimization with vector evaluated genetic algorithms." Proceedings of the first international conference on genetic algorithms and their applications. Psychology Press, 2014.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.Schaffer2(min_X: ndarray | list[float] | float = -5.0, max_X: ndarray | list[float] | float = 10.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Schaffer's second function.

\[\begin{split}\text{Minimize} \begin{cases} f_1(x) = \begin{cases} -x & \text{if } x \leq 1.0 \\ x - 2 & \text{if } 1.0 < x \leq 3.0 \\ 4 - x & \text{if } 3.0 < x \leq 4.0 \\ x - 4 & \text{if } x > 4.0 \end{cases} \\ f_2(x) = (x - 5)^2 \end{cases}\end{split}\]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=-5.0) -- Minimum value of the search space \(x_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=10.0) -- Maximum value of the search space \(x_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

Schaffer, J. David. "Multiple objective optimization with vector evaluated genetic algorithms." Proceedings of the first international conference on genetic algorithms and their applications. Psychology Press, 2014.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

physbo.test_functions.multi_objective.VLMOP1

VL's first function (so-called VLMOP1).

This is an alias of Schaffer1.

参考文献

David A. van Veldhuizen and Gary B. Lamont. 1999. Multiobjective evolutionary algorithm test suites. In Proceedings of the 1999 ACM symposium on Applied computing (SAC '99). Association for Computing Machinery, New York, NY, USA, 351-357. https://doi.org/10.1145/298151.298382

physbo.test_functions.multi_objective.VLMOP2

VL's second function (so-called VLMOP2).

This is an alias of FonsecaFleming.

参考文献

David A. van Veldhuizen and Gary B. Lamont. 1999. Multiobjective evolutionary algorithm test suites. In Proceedings of the 1999 ACM symposium on Applied computing (SAC '99). Association for Computing Machinery, New York, NY, USA, 351-357. https://doi.org/10.1145/298151.298382

physbo.test_functions.multi_objective.VLMOP3

VL's third function (so-called VLMOP3).

This is an alias of Viennet.

参考文献

David A. van Veldhuizen and Gary B. Lamont. 1999. Multiobjective evolutionary algorithm test suites. In Proceedings of the 1999 ACM symposium on Applied computing (SAC '99). Association for Computing Machinery, New York, NY, USA, 351-357. https://doi.org/10.1145/298151.298382

class physbo.test_functions.multi_objective.Viennet(min_X: ndarray | list[float] | float = -3.0, max_X: ndarray | list[float] | float = 3.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

Viennet's function.

\[\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = 0.5 (x_1^2 + x_2^2) + \sin(x_1^2 + x_2^2) \\ f_2(\boldsymbol{x}) = (3 x_1 - 2 x_2 + 4)^2 / 8 + (x_1 - x_2 + 1)^2 / 27 + 15 \\ f_3(\boldsymbol{x}) = 1 / (x_1^2 + x_2^2 + 1) - 1.1 \exp(-(x_1^2 + x_2^2)) \end{cases}\end{split}\]
パラメータ:
  • min_X (np.ndarray | list[float] | float, default=-3.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=3.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

Viennet, R., et al. "Multicriteria Optimization Using a Genetic Algorithm for Determining a Pareto Set," International Journal of Systems Science 27(2), 255-260 (1996).

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.ZDT1(dim: int = 30, min_X: ndarray | list[float] | float = 0.0, max_X: ndarray | list[float] | float = 1.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

ZDT's first function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = x_1 \\ f_2(\boldsymbol{x}) = g(x_2) h(x_1, x_2) \end{cases}\end{split}\\\begin{split}\text{where} \begin{cases} g(x_2) = 1 + 9 \sum_{i=2}^{N} x_i / (N - 1) \\ h(x_1, x_2) = 1 - \sqrt{f_1(\boldsymbol{x}) / g(x_2)} \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • dim (int, default=30) -- Dimension of the problem \(N\).

  • min_X (np.ndarray | list[float] | float, default=0.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=1.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

  1. Deb, L. Thiele, M. Laumanns and E. Zitzler, "Scalable multi-objective optimization test problems," Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No.02TH8600), Honolulu, HI, USA, 2002, pp. 825-830 vol.1, doi: 10.1109/CEC.2002.1007032.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.ZDT2(dim: int = 30, min_X: ndarray | list[float] | float = 0.0, max_X: ndarray | list[float] | float = 1.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

ZDT's second function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = x_1 \\ f_2(\boldsymbol{x}) = g(x_2) h(x_1, x_2) \\ \end{cases}\end{split}\\\begin{split}\text{where} \begin{cases} g(x_2) = 1 + 9 \sum_{i=2}^{N} x_i / (N - 1) \\ h(x_1, x_2) = 1 - \left(f_1(\boldsymbol{x}) / g(x_2)\right)^2 \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • dim (int, default=30) -- Dimension of the problem \(N\).

  • min_X (np.ndarray | list[float] | float, default=0.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=1.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

  1. Deb, L. Thiele, M. Laumanns and E. Zitzler, "Scalable multi-objective optimization test problems," Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No.02TH8600), Honolulu, HI, USA, 2002, pp. 825-830 vol.1, doi: 10.1109/CEC.2002.1007032.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.ZDT3(dim: int = 30, min_X: ndarray | list[float] | float = 0.0, max_X: ndarray | list[float] | float = 1.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

ZDT's third function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = x_1 \\ f_2(\boldsymbol{x}) = g(\boldsymbol{x}) h(\boldsymbol{x}) \end{cases}\end{split}\\\begin{split}\text{where} \begin{cases} g(\boldsymbol{x}) = 1 + 9 \sum_{i=2}^{N} x_i / (N - 1) \\ h(\boldsymbol{x}) = 1 - \sqrt{f_1(\boldsymbol{x}) / g(\boldsymbol{x})} - \frac{f_1(\boldsymbol{x})}{g(\boldsymbol{x})} \sin(10 \pi f_1(\boldsymbol{x})) \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • dim (int, default=30) -- Dimension of the problem \(N\).

  • min_X (np.ndarray | list[float] | float, default=0.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=1.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

  1. Deb, L. Thiele, M. Laumanns and E. Zitzler, "Scalable multi-objective optimization test problems," Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No.02TH8600), Honolulu, HI, USA, 2002, pp. 825-830 vol.1, doi: 10.1109/CEC.2002.1007032.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.ZDT4(dim: int = 10, min_X: None | ndarray | list[float] | float = None, max_X: None | ndarray | list[float] | float = None, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

ZDT's fourth function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = x_1 \\ f_2(\boldsymbol{x}) = g(\boldsymbol{x}) h(\boldsymbol{x}) \end{cases}\end{split}\\\begin{split}\text{where} \begin{cases} g(\boldsymbol{x}) = 1 + 10 (N - 1) + \sum_{i=2}^{N} \left(x_i^2 - 10 \cos(4 \pi x_i)\right) \\ h(\boldsymbol{x}) = 1 - \sqrt{\frac{f_1(\boldsymbol{x})}{g(\boldsymbol{x})}} \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • dim (int, default=10) -- Dimension of the problem \(N\).

  • min_X (np.ndarray | list[float] | float) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\). Default is x_1 = 0.0 and x_i = -5.0 for i = 2, ..., N.

  • max_X (np.ndarray | list[float] | float) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\). Default is x_1 = 1.0 and x_i = 5.0 for i = 2, ..., N.

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

  1. Deb, L. Thiele, M. Laumanns and E. Zitzler, "Scalable multi-objective optimization test problems," Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No.02TH8600), Honolulu, HI, USA, 2002, pp. 825-830 vol.1, doi: 10.1109/CEC.2002.1007032.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray

class physbo.test_functions.multi_objective.ZDT6(dim: int = 10, min_X: ndarray | list[float] | float = 0.0, max_X: ndarray | list[float] | float = 1.0, test_maximizer: bool = True)[ソース]

ベースクラス: MultiTestFunction

ZDT's sixth function.

\[ \begin{align}\begin{aligned}\begin{split}\text{Minimize} \begin{cases} f_1(\boldsymbol{x}) = 1 - \exp(-4 x_1) \sin^6(6 \pi x_1) \\ f_2(\boldsymbol{x}) = g(\boldsymbol{x}) h(\boldsymbol{x}) \end{cases}\end{split}\\\begin{split}\text{where} \begin{cases} g(\boldsymbol{x}) = 1 + 9 \left(\sum_{i=2}^{N} x_i / (N - 1)\right)^{0.25} \\ h(\boldsymbol{x}) = 1 - \left(\frac{f_1(\boldsymbol{x})}{g(\boldsymbol{x})}\right)^2 \end{cases}\end{split}\end{aligned}\end{align} \]
パラメータ:
  • dim (int, default=10) -- Dimension of the problem \(N\).

  • min_X (np.ndarray | list[float] | float, default=0.0) -- Minimum value of the search space \(\boldsymbol{x}_{\min}\).

  • max_X (np.ndarray | list[float] | float, default=1.0) -- Maximum value of the search space \(\boldsymbol{x}_{\max}\).

  • test_maximizer (bool, default=True) -- If True, the test function is negated for testing a maximization problem solver.

参考文献

  1. Deb, L. Thiele, M. Laumanns and E. Zitzler, "Scalable multi-objective optimization test problems," Proceedings of the 2002 Congress on Evolutionary Computation. CEC'02 (Cat. No.02TH8600), Honolulu, HI, USA, 2002, pp. 825-830 vol.1, doi: 10.1109/CEC.2002.1007032.

f(x: ndarray) ndarray[ソース]

Evaluate the test function at the given point.

パラメータ:

x (np.ndarray) -- The point at which to evaluate the test function. x is a numpy array of shape (n, d), where n is the number of points and d is the dimension of the input space.

戻り値:

f -- The value of the test function at the given point. The output value is a numpy array of shape (n, k), where k is the number of objectives.

戻り値の型:

np.ndarray