Multi-objective problems

Constrained

class jmetal.problem.multiobjective.constrained.Binh2[source]

Bases: FloatProblem

Class representing problem Binh2.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.constrained.Osyczka2[source]

Bases: FloatProblem

Class representing problem Osyczka2.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.constrained.Srinivas[source]

Bases: FloatProblem

Class representing problem Srinivas.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.constrained.Tanaka[source]

Bases: FloatProblem

Class representing problem Tanaka.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]

Unconstrained

class jmetal.problem.multiobjective.unconstrained.Fonseca[source]

Bases: FloatProblem

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.unconstrained.Kursawe(number_of_variables: int = 3)[source]

Bases: FloatProblem

Class representing problem Kursawe.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.unconstrained.MixedIntegerFloatProblem(number_of_integer_variables=10, number_of_float_variables=10, n=100, m=-100, lower_bound=-1000, upper_bound=1000)[source]

Bases: Problem

create_solution() CompositeSolution[source]

Creates a random_search solution to the problem.

Returns:

Solution.

evaluate(solution: CompositeSolution) CompositeSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name() str[source]
class jmetal.problem.multiobjective.unconstrained.OneZeroMax(number_of_bits: int = 256)[source]

Bases: BinaryProblem

The implementation of the OneZeroMax problems defines a single binary variable. This variable will contain the bit string representing the solutions.

create_solution() BinarySolution[source]

Creates a random_search solution to the problem.

Returns:

Solution.

evaluate(solution: BinarySolution) BinarySolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name() str[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
number_of_variables() int[source]
class jmetal.problem.multiobjective.unconstrained.Schaffer[source]

Bases: FloatProblem

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.unconstrained.SubsetSum(C: int, W: list)[source]

Bases: BinaryProblem

create_solution() BinarySolution[source]

Creates a random_search solution to the problem.

Returns:

Solution.

evaluate(solution: BinarySolution) BinarySolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name() str[source]
class jmetal.problem.multiobjective.unconstrained.Viennet2[source]

Bases: FloatProblem

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]

ZDT

class jmetal.problem.multiobjective.zdt.ZDT1(number_of_variables: int = 30)[source]

Bases: FloatProblem

Problem ZDT1.

Note

Bi-objective unconstrained problem. The default number of variables is 30.

Note

Continuous problem having a convex Pareto front

eval_g(solution: FloatSolution)[source]
eval_h(f: float, g: float) float[source]
evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
number_of_variables() int[source]
class jmetal.problem.multiobjective.zdt.ZDT1Modified(number_of_variables=30)[source]

Bases: ZDT1

Problem ZDT1Modified.

Note

Version including a loop for increasing the computing time of the evaluation functions.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

class jmetal.problem.multiobjective.zdt.ZDT2(number_of_variables: int = 30)[source]

Bases: ZDT1

Problem ZDT2.

Note

Bi-objective unconstrained problem. The default number of variables is 30.

Note

Continuous problem having a non-convex Pareto front

eval_h(f: float, g: float) float[source]
name()[source]
class jmetal.problem.multiobjective.zdt.ZDT3(number_of_variables: int = 30)[source]

Bases: ZDT1

Problem ZDT3.

Note

Bi-objective unconstrained problem. The default number of variables is 30.

Note

Continuous problem having a partitioned Pareto front

eval_h(f: float, g: float) float[source]
name()[source]
class jmetal.problem.multiobjective.zdt.ZDT4(number_of_variables: int = 10)[source]

Bases: ZDT1

Problem ZDT4.

Note

Bi-objective unconstrained problem. The default number of variables is 10.

Note

Continuous multi-modal problem having a convex Pareto front

eval_g(solution: FloatSolution)[source]
eval_h(f: float, g: float) float[source]
name()[source]
class jmetal.problem.multiobjective.zdt.ZDT5(number_of_variables: int = 11)[source]

Bases: BinaryProblem

Problem ZDT5.

Note

Bi-objective binary unconstrained problem. The default number of variables is 11.

create_solution() BinarySolution[source]

Creates a random_search solution to the problem.

Returns:

Solution.

eval_g(solution: BinarySolution)[source]
eval_v(value)[source]
evaluate(solution: BinarySolution) BinarySolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
number_of_variables() int[source]
class jmetal.problem.multiobjective.zdt.ZDT6(number_of_variables: int = 10)[source]

Bases: ZDT1

Problem ZDT6.

Note

Bi-objective unconstrained problem. The default number of variables is 10.

Note

Continuous problem having a non-convex Pareto front

eval_g(solution: FloatSolution)[source]
eval_h(f: float, g: float) float[source]
evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]

DTLZ

class jmetal.problem.multiobjective.dtlz.DTLZ1(number_of_variables: int = 7, number_of_objectives=3)[source]

Bases: FloatProblem

Problem DTLZ1. Continuous problem having a flat Pareto front

Note

Unconstrained problem. The default number of variables and objectives are, respectively, 7 and 3.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
number_of_variables() int[source]
class jmetal.problem.multiobjective.dtlz.DTLZ2(number_of_variables: int = 12, number_of_objectives=3)[source]

Bases: DTLZ1

Problem DTLZ2. Continuous problem having a convex Pareto front

Note

Unconstrained problem. The default number of variables and objectives are, respectively, 12 and 3.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
class jmetal.problem.multiobjective.dtlz.DTLZ3(number_of_variables: int = 12, number_of_objectives=3)[source]

Bases: DTLZ1

Problem DTLZ3. Continuous problem having a convex Pareto front

Note

Unconstrained problem. The default number of variables and objectives are, respectively, 12 and 3.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
class jmetal.problem.multiobjective.dtlz.DTLZ4(number_of_variables: int = 12, number_of_objectives=3)[source]

Bases: DTLZ1

Problem DTLZ4. Continuous problem having a convex Pareto front

Note

Unconstrained problem. The default number of variables and objectives are, respectively, 12 and 3.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
class jmetal.problem.multiobjective.dtlz.DTLZ5(number_of_variables: int = 12, number_of_objectives=3)[source]

Bases: DTLZ1

Problem DTLZ5. Continuous problem having a convex Pareto front

Note

Unconstrained problem. The default number of variables and objectives are, respectively, 12 and 3.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
class jmetal.problem.multiobjective.dtlz.DTLZ6(number_of_variables: int = 12, number_of_objectives=3)[source]

Bases: DTLZ1

Problem DTLZ6. Continuous problem having a convex Pareto front

Note

Unconstrained problem. The default number of variables and objectives are, respectively, 12 and 3.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
class jmetal.problem.multiobjective.dtlz.DTLZ7(number_of_variables: int = 22, number_of_objectives=3)[source]

Bases: DTLZ1

Problem DTLZ6. Continuous problem having a disconnected Pareto front

Note

Unconstrained problem. The default number of variables and objectives are, respectively, 22 and 3.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]

FDA

class jmetal.problem.multiobjective.fda.FDA[source]

Bases: DynamicProblem, FloatProblem, ABC

clear_changed() None[source]
abstract evaluate(solution: FloatSolution)[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

the_problem_has_changed() bool[source]
update(*args, **kwargs)[source]

Update method.

class jmetal.problem.multiobjective.fda.FDA1(number_of_variables: int = 100)[source]

Bases: FDA

Problem FDA1.

Note

Bi-objective dynamic unconstrained problem. The default number of variables is 100.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

get_name()[source]
class jmetal.problem.multiobjective.fda.FDA2(number_of_variables: int = 31)[source]

Bases: FDA

Problem FDA2

Note

Bi-objective dynamic unconstrained problem. The default number of variables is 31.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

get_name()[source]
class jmetal.problem.multiobjective.fda.FDA3(number_of_variables: int = 30)[source]

Bases: FDA

Problem FDA3

Note

Bi-objective dynamic unconstrained problem. The default number of variables is 30.

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

get_name()[source]
class jmetal.problem.multiobjective.fda.FDA4(number_of_variables: int = 12)[source]

Bases: FDA

Problem FDA4

Note

Three-objective dynamic unconstrained problem. The default number of variables is 12.

M = 3
evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

get_name()[source]
class jmetal.problem.multiobjective.fda.FDA5(number_of_variables: int = 12)[source]

Bases: FDA

Problem FDA5

Note

Three-objective dynamic unconstrained problem. The default number of variables is 12.

M = 3
evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

get_name()[source]

LIRCMOP

class jmetal.problem.multiobjective.lircmop.LIRCMOP1(number_of_variables: int = 30)[source]

Bases: FloatProblem

Class representing problem LIR-CMOP1, defined in:

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
g1(x: List[float]) float[source]
g2(x: List[float]) float[source]
name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP10(number_of_variables: int = 30)[source]

Bases: LIRCMOP8

Class representing problem LIR-CMOP10, defined in:

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP11(number_of_variables: int = 30)[source]

Bases: LIRCMOP10

Class representing problem LIR-CMOP11, defined in:

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP12(number_of_variables: int = 30)[source]

Bases: LIRCMOP9

Class representing problem LIR-CMOP9, defined in:

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP13(number_of_variables: int = 30)[source]

Bases: FloatProblem

Class representing problem LIR-CMOP13, defined in:

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
g1(x: [<class 'float'>]) float[source]
name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP14(number_of_variables: int = 30)[source]

Bases: LIRCMOP13

Class representing problem LIR-CMOP14, defined in:

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP2(number_of_variables: int = 30)[source]

Bases: LIRCMOP1

Class representing problem LIR-CMOP1, defined in:

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

name()[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP3(number_of_variables: int = 30)[source]

Bases: LIRCMOP1

Class representing problem LIR-CMOP3, defined in:

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]
number_of_constraints() int[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP4(number_of_variables: int = 30)[source]

Bases: LIRCMOP2

Class representing problem LIR-CMOP4, defined in:

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]
number_of_constraints() int[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP5(number_of_variables: int = 30)[source]

Bases: FloatProblem

Class representing problem LIR-CMOP5, defined in:

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
g1(x: [<class 'float'>]) float[source]
g2(x: [<class 'float'>]) float[source]
name()[source]
number_of_constraints() int[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP6(number_of_variables: int = 30)[source]

Bases: LIRCMOP5

Class representing problem LIR-CMOP6, defined in:

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP7(number_of_variables: int = 30)[source]

Bases: LIRCMOP5

Class representing problem LIR-CMOP7, defined in:

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP8(number_of_variables: int = 30)[source]

Bases: LIRCMOP6

Class representing problem LIR-CMOP8, defined in:

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]
class jmetal.problem.multiobjective.lircmop.LIRCMOP9(number_of_variables: int = 30)[source]

Bases: LIRCMOP8

Class representing problem LIR-CMOP9, defined in:

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

evaluate_constraints(solution: FloatSolution) FloatSolution[source]
name()[source]

LZ09

class jmetal.problem.multiobjective.lz09.LZ09(number_of_variables: int, ptype: int, dtype: int, ltype: int)[source]

Bases: FloatProblem

evaluate(solution: FloatSolution) FloatSolution[source]

Evaluate a solution. For any new problem inheriting from Problem, this method should be replaced. Note that this framework ASSUMES minimization, thus solutions must be evaluated in consequence.

Returns:

Evaluated solution.

get_name()[source]
number_of_constraints() int[source]
objective(x_variables: list) list[source]
class jmetal.problem.multiobjective.lz09.LZ09_F1(number_of_variables=10)[source]

Bases: LZ09

name()[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lz09.LZ09_F2(number_of_variables=30)[source]

Bases: LZ09

name()[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lz09.LZ09_F3(number_of_variables=30)[source]

Bases: LZ09

name()[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lz09.LZ09_F4(number_of_variables=30)[source]

Bases: LZ09

name()[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lz09.LZ09_F5(number_of_variables=30)[source]

Bases: LZ09

name()[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lz09.LZ09_F6(number_of_variables=10)[source]

Bases: LZ09

name()[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lz09.LZ09_F7(number_of_variables=10)[source]

Bases: LZ09

name()[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lz09.LZ09_F8(number_of_variables=10)[source]

Bases: LZ09

name()[source]
number_of_objectives() int[source]
class jmetal.problem.multiobjective.lz09.LZ09_F9(number_of_variables=30)[source]

Bases: LZ09

name()[source]
number_of_objectives() int[source]