src.environment.problem.MOO.MOO_synthetic.uf_numpy¶
Module Contents¶
Classes¶
Introduction¶UF1 is a numpy-based implementation of the UF1 benchmark problem from the UF suite,a two-objective unconstrained multi-objective optimization problem. |
|
Introduction¶UF2 is a numpy-based implementation of the UF2 benchmark problem from the UF suite,a two-objective unconstrained multi-objective optimization problem. |
|
Introduction¶UF3 is a numpy-based implementation of the UF3 benchmark problem from the UF suite, a two-objective unconstrained multi-objective optimization problem. |
|
Introduction¶UF4 is a numpy-based implementation of the UF4 benchmark problem from the UF suite, a two-objective unconstrained multi-objective optimization problem. |
|
Introduction¶UF5 is a numpy-based implementation of the UF5 benchmark problem from the UF suite, characterized by a challenging Pareto set with discontinuities and multimodality. |
|
Introduction¶UF6 is a numpy-based implementation of the UF6 benchmark problem from the UF suite, designed to test an optimizer’s ability to handle disconnected and deceptive Pareto fronts with multimodal landscape and discontinuities. |
|
Introduction¶UF7 is a numpy-based implementation of the UF7 benchmark problem from the UF suite, designed to evaluate the capability of optimization algorithms to handle non-convex and non-uniform Pareto fronts with variable linkage and multimodal landscapes. |
|
Introduction¶UF8 is a numpy-based implementation of the UF8 benchmark problem from the UF suite. It is a three-objective problem designed to test an algorithm’s ability to handle multi-objective landscapes with complex variable linkage and diverse Pareto sets. |
|
Introduction¶UF9 is a numpy-based implementation of the UF9 benchmark problem from the UF suite.It is a three-objective problem designed to evaluate the capability of algorithms in handling complex variable linkages and partially disconnected Pareto fronts. |
|
Introduction¶UF10 is a numpy-based implementation of the UF10 benchmark problem from the UF suite.It is a three-objective test problem with complex linkages, designed to evaluate optimization algorithms on multi-objective problems with diverse Pareto fronts. |
Functions¶
API¶
- src.environment.problem.MOO.MOO_synthetic.uf_numpy.crtup(n_obj, n_ref_points=1000)[source]¶
Introduction¶
Generates a set of uniformly distributed reference points (weight vectors) for a given number of objectives. This function is typically used in multi-objective optimization algorithms such as NSGA-III and RVEA, where reference points are required to guide the selection process.
Args:¶
n_obj (int): Number of objectives (i.e., the dimensionality of the reference points).
n_ref_points (int): Approximate number of desired reference points (default: 1000).
Returns:¶
W (np.ndarray): A 2D array of shape (n_comb, n_obj) representing the generated reference vectors.
n_comb (int): Actual number of generated reference vectors.
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF1[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF1 is a numpy-based implementation of the UF1 benchmark problem from the UF suite,a two-objective unconstrained multi-objective optimization problem.
Original paper¶
“Multiobjective optimization test instances for the CEC 2009 special session and competition.” (2008): 1-30.
Official Implementation¶
License¶
Apache-2.0
Problem Suite Composition¶
The UF problem suite contains a set of unconstrained multi-objective optimization problems designed for benchmarking optimization algorithms. Each problem in the suite has a specific number of objectives and variables, with known theoretical Pareto fronts.
Attributes¶
n_obj (int): Number of objectives (default 2).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF1 problem parameters.
- func(x)[source]¶
Introduction¶
Evaluate the UF1 objective functions for the input decision variables.
Args¶
x (np.ndarray): 2D array of shape (n_samples, n_var) representing decision variables.
Returns¶
np.ndarray: 2D array of shape (n_samples, n_obj) representing objective values.
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF2[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF2 is a numpy-based implementation of the UF2 benchmark problem from the UF suite,a two-objective unconstrained multi-objective optimization problem.
Attributes¶
n_obj (int): Number of objectives (default 2).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF2 problem parameters.
- func(x)[source]¶
Introduction¶
Evaluate the UF2 objective functions for the input decision variables.
Args¶
x (np.ndarray): 2D array of shape (n_samples, n_var) representing decision variables.
Returns¶
np.ndarray: 2D array of shape (n_samples, n_obj) representing objective values.
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF3[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF3 is a numpy-based implementation of the UF3 benchmark problem from the UF suite, a two-objective unconstrained multi-objective optimization problem.
Reference¶
Deb, K., et al. “Multiobjective optimization test instances for the CEC 2009 special session and competition” (2008).
Attributes¶
n_obj (int): Number of objectives (default 2).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF3 problem parameters.
- func(x)[source]¶
Introduction¶
Evaluate the UF3 objective functions for the input decision variables.
Args¶
x (np.ndarray): 2D array of shape (n_samples, n_var) representing decision variables.
Returns¶
np.ndarray: 2D array of shape (n_samples, n_obj) representing objective values.
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF4[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF4 is a numpy-based implementation of the UF4 benchmark problem from the UF suite, a two-objective unconstrained multi-objective optimization problem.
Reference¶
Deb, K., et al. “Multiobjective optimization test instances for the CEC 2009 special session and competition” (2008).
Attributes¶
n_obj (int): Number of objectives (default 2).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF4 problem parameters.
- func(x)[source]¶
Introduction¶
Evaluate the UF4 objective functions for the input decision variables.
Args¶
x (np.ndarray): A 2D array of shape (n_samples, n_var), each row representing a decision vector.
Returns¶
np.ndarray: A 2D array of shape (n_samples, n_obj), each row representing the objective values.
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF5[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF5 is a numpy-based implementation of the UF5 benchmark problem from the UF suite, characterized by a challenging Pareto set with discontinuities and multimodality.
Reference¶
Deb, K., et al. “Multiobjective optimization test instances for the CEC 2009 special session and competition” (2008).
Attributes¶
n_obj (int): Number of objectives (default 2).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF5 problem parameters.
- func(x)[source]¶
Introduction¶
Evaluate the UF5 objective functions for the input decision variables.
Args¶
x (np.ndarray): A 2D array of shape (n_samples, n_var), each row representing a decision vector.
Returns¶
np.ndarray: A 2D array of shape (n_samples, n_obj), each row representing the objective values.
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF6[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF6 is a numpy-based implementation of the UF6 benchmark problem from the UF suite, designed to test an optimizer’s ability to handle disconnected and deceptive Pareto fronts with multimodal landscape and discontinuities.
Attributes¶
n_obj (int): Number of objectives (default 2).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF6 problem parameters.
- func(x)[source]¶
Introduction¶
Evaluate the UF6 objective functions for the input decision variables.
Args¶
x (np.ndarray): A 2D array of shape (n_samples, n_var), each row representing a decision vector.
Returns¶
np.ndarray: A 2D array of shape (n_samples, n_obj), each row representing the objective values.
- get_ref_set(n_ref_points=1000)[source]¶
Introduction¶
Generate a reference set approximating the theoretical Pareto front for UF6. The Pareto front is discontinuous, consisting of two valid segments in [0,0.25] and [0.75,1].
Args¶
n_ref_points (int): Number of reference points to generate (default 1000).
Returns¶
np.ndarray: Reference set of shape (n_points, n_obj).
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF7[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF7 is a numpy-based implementation of the UF7 benchmark problem from the UF suite, designed to evaluate the capability of optimization algorithms to handle non-convex and non-uniform Pareto fronts with variable linkage and multimodal landscapes.
Attributes¶
n_obj (int): Number of objectives (default 2).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF7 problem parameters.
- func(x)[source]¶
Introduction¶
Evaluate the UF7 objective functions for the input decision variables.
Args¶
x (np.ndarray): A 2D array of shape (n_samples, n_var), each row representing a decision vector.
Returns¶
np.ndarray: A 2D array of shape (n_samples, n_obj), each row representing the objective values.
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF8[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF8 is a numpy-based implementation of the UF8 benchmark problem from the UF suite. It is a three-objective problem designed to test an algorithm’s ability to handle multi-objective landscapes with complex variable linkage and diverse Pareto sets.
Attributes¶
n_obj (int): Number of objectives (default 3).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF8 problem parameters, including bounds and variable types.
- func(x)[source]¶
Introduction¶
Evaluate the UF8 objective functions for the input decision variables.
Args¶
x (np.ndarray): A 2D array of shape (n_samples, n_var), each row representing a decision vector.
Returns¶
np.ndarray: A 2D array of shape (n_samples, n_obj), each row representing the objective values.
- get_ref_set(n_ref_points=1000)[source]¶
Introduction¶
Generate a reference set approximating the theoretical Pareto front for UF8.
Args¶
n_ref_points (int): Number of reference points to generate (default 1000).
Returns¶
np.ndarray: Reference set of shape (n_points, n_obj), normalized to the unit hypersphere.
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF9[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF9 is a numpy-based implementation of the UF9 benchmark problem from the UF suite.It is a three-objective problem designed to evaluate the capability of algorithms in handling complex variable linkages and partially disconnected Pareto fronts.
Attributes¶
n_obj (int): Number of objectives (default 3).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF9 problem parameters, including bounds and variable types.
- func(x)[source]¶
Introduction¶
Evaluate the UF9 objective functions for the input decision variables.
Args¶
x (np.ndarray): A 2D array of shape (n_samples, n_var), each row representing a decision vector.
Returns¶
np.ndarray: A 2D array of shape (n_samples, n_obj), each row representing the objective values.
- class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF10[source]¶
Bases:
src.environment.problem.basic_problem.Basic_ProblemIntroduction¶
UF10 is a numpy-based implementation of the UF10 benchmark problem from the UF suite.It is a three-objective test problem with complex linkages, designed to evaluate optimization algorithms on multi-objective problems with diverse Pareto fronts.
Attributes¶
n_obj (int): Number of objectives (default 3).
n_var (int): Number of decision variables (default 30).
lb (np.ndarray): Lower bounds for decision variables.
ub (np.ndarray): Upper bounds for decision variables.
vtype (type): Variable type, default float.
Methods¶
init(): Initialize problem parameters.
func(x): Calculate objective values from decision variables.
get_ref_set(n_ref_points=1000): Generate theoretical Pareto front samples.
str(): Return problem description string.
Initialization
Introduction¶
Initialize UF10 problem parameters, including bounds and variable types.
- func(x)[source]¶
Introduction¶
Evaluate the UF10 objective functions for the input decision variables.
Args¶
x (np.ndarray): A 2D array of shape (n_samples, n_var), or a 1D array of shape (n_var,).
Returns¶
np.ndarray: A 2D array of shape (n_samples, n_obj), each row containing objective values.
- get_ref_set(n_ref_points=1000)[source]¶
Introduction¶
Generate a set of uniformly distributed reference points on the unit sphere in 3D.
Args¶
n_ref_points (int): Number of reference points to generate (default 1000).
Returns¶
np.ndarray: A 2D array of shape (n_ref_points, n_obj), representing Pareto front samples.