src.environment.problem.MOO.MOO_synthetic.uf_numpy

Module Contents

Classes

UF1

Introduction

UF1 is a numpy-based implementation of the UF1 benchmark problem from the UF suite,a two-objective unconstrained multi-objective optimization problem.

UF2

Introduction

UF2 is a numpy-based implementation of the UF2 benchmark problem from the UF suite,a two-objective unconstrained multi-objective optimization problem.

UF3

Introduction

UF3 is a numpy-based implementation of the UF3 benchmark problem from the UF suite, a two-objective unconstrained multi-objective optimization problem.

UF4

Introduction

UF4 is a numpy-based implementation of the UF4 benchmark problem from the UF suite, a two-objective unconstrained multi-objective optimization problem.

UF5

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.

UF6

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.

UF7

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.

UF8

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.

UF9

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.

UF10

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

crtup

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.

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_Problem

Introduction

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

pymoo

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.

get_ref_set(n_ref_points=1000)[source]

Introduction

Generate a reference set approximating the theoretical Pareto front for UF1.

Args

  • n_ref_points (int): Number of reference points to generate (default 1000).

Returns

  • np.ndarray: Reference set of shape (n_ref_points, n_obj).

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.

class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF2[source]

Bases: src.environment.problem.basic_problem.Basic_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.

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.

get_ref_set(n_ref_points=1000)[source]

Introduction

Generate a reference set approximating the theoretical Pareto front for UF2.

Args

  • n_ref_points (int): Number of reference points to generate (default 1000).

Returns

  • np.ndarray: Reference set of shape (n_ref_points, n_obj).

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.

class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF3[source]

Bases: src.environment.problem.basic_problem.Basic_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.

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.

get_ref_set(n_ref_points=1000)[source]

Introduction

Generate a reference set approximating the theoretical Pareto front for UF3.

Args

  • n_ref_points (int): Number of reference points to generate (default 1000).

Returns

  • np.ndarray: Reference set of shape (n_ref_points, n_obj).

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.

class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF4[source]

Bases: src.environment.problem.basic_problem.Basic_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.

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.

get_ref_set(n_ref_points=1000)[source]

Introduction

Generate a reference set approximating the theoretical Pareto front for UF4.

Args

  • n_ref_points (int): Number of reference points to generate (default 1000).

Returns

  • np.ndarray: Reference set of shape (n_ref_points, n_obj).

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.

class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF5[source]

Bases: src.environment.problem.basic_problem.Basic_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.

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.

get_ref_set(n_ref_points=1000)[source]

Introduction

Generate a reference set approximating the theoretical Pareto front for UF5.

Args

  • n_ref_points (int): Number of reference points to generate (default 1000).

Returns

  • np.ndarray: Reference set of shape (n_ref_points, n_obj).

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.

class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF6[source]

Bases: src.environment.problem.basic_problem.Basic_Problem

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.

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).

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.

class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF7[source]

Bases: src.environment.problem.basic_problem.Basic_Problem

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.

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.

get_ref_set(n_ref_points=1000)[source]

Introduction

Generate a reference set approximating the theoretical Pareto front for UF7.

Args

  • n_ref_points (int): Number of reference points to generate (default 1000).

Returns

  • np.ndarray: Reference set of shape (n_points, n_obj).

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.

class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF8[source]

Bases: src.environment.problem.basic_problem.Basic_Problem

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.

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.

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.

class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF9[source]

Bases: src.environment.problem.basic_problem.Basic_Problem

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.

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.

get_ref_set(n_ref_points=1000)[source]

Introduction

Generate a reference set that approximates the Pareto front of UF9.

Args

  • n_ref_points (int): Number of reference points to generate (default 1000).

Returns

  • np.ndarray: A 2D array of reference points on the approximated Pareto front.

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.

class src.environment.problem.MOO.MOO_synthetic.uf_numpy.UF10[source]

Bases: src.environment.problem.basic_problem.Basic_Problem

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.

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.

__str__()[source]

Introduction

Return a string representation of the problem class.

Returns

  • str: A string describing the problem’s name, number of objectives, and variables.