physbo.test_functions.multi_objective module
- physbo.test_functions.multi_objective.Binh1
Binh’s first function.
This is an alias of
BinhKorn.References
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.References
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.References
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.References
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)[source]
Bases:
MultiTestFunctionBinh’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}\]- Parameters:
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.
References
To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.
- f(x: ndarray) ndarray[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionBinh’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}\]- Parameters:
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.
References
To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.
- f(x: ndarray) ndarray[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionBinh’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}\]- Parameters:
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.
References
To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.
- f(x: ndarray) ndarray[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionBinh’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} \]- Parameters:
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.
References
To, Thanh Binh. (1999). A Multiobjective Evolutionary Algorithm The Study Cases.
- f(x: ndarray) ndarray[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionBinh-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} \]- Parameters:
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.
References
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[source]
Evaluate the constraint function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
np.ndarray
- f(x: ndarray) ndarray[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionChankong-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} \]- Parameters:
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.
References
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[source]
Evaluate the constraint function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
np.ndarray
- f(x: ndarray) ndarray[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionConstrEX 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} \]- Parameters:
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.
References
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[source]
Evaluate the constraint function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
np.ndarray
- f(x: ndarray) ndarray[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionFonseca 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}\]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionGaussian 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)\]- Parameters:
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionKita-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} \]- Parameters:
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.
References
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[source]
Evaluate the constraint function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
np.ndarray
- f(x: ndarray) ndarray[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionKursawe’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}\]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
TestFunctionInitialize the test function.
- Parameters:
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.
- Returns:
The reference maximum values of the test function.
- Return type:
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.
- Returns:
The reference minimum values of the test function.
- Return type:
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)[source]
Bases:
MultiTestFunctionOsyczka-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} \]- Parameters:
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.
References
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[source]
Evaluate the constraint function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
np.ndarray
- f(x: ndarray) ndarray[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionPoloni’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} \]- Parameters:
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionSchaffer’s first function.
\[\begin{split}\text{Minimize} \begin{cases} f_1(x) = x^2 \\ f_2(x) = (x - 2)^2 \end{cases}\end{split}\]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionSchaffer’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}\]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
np.ndarray
- physbo.test_functions.multi_objective.VLMOP1
VL’s first function (so-called VLMOP1).
This is an alias of
Schaffer1.References
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.References
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.References
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)[source]
Bases:
MultiTestFunctionViennet’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}\]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionZDT’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} \]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionZDT’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} \]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionZDT’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} \]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionZDT’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} \]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
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)[source]
Bases:
MultiTestFunctionZDT’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} \]- Parameters:
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.
References
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[source]
Evaluate the test function at the given point.
- Parameters:
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.
- Returns:
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.
- Return type:
np.ndarray