pymoo

MOEA/D

This algorithm is implemented based on [2].

[1]:
from pymoo.algorithms.moead import moead
from pymoo.optimize import minimize
from pymoo.util import plotting
from pymop.factory import get_problem, UniformReferenceDirectionFactory

# create the optimization problem
ref_dirs = UniformReferenceDirectionFactory(3, n_points=100).do()

method = moead(
    ref_dirs=ref_dirs,
    n_neighbors=15,
    decomposition="pbi",
    prob_neighbor_mating=0.7
)

res = minimize(get_problem("dtlz2"),
               method,
               termination=('n_gen', 200)
               )

plotting.plot(res.F)

../_images/algorithms_moead_2_0.png
[1]:
<matplotlib.axes._subplots.Axes3DSubplot at 0x12a44c978>

API

pymoo.algorithms.moead.moead(ref_dirs, n_neighbors=15, decomposition=’auto’, prob_neighbor_mating=0.7, **kwargs)
Parameters
ref_dirsnumpy.array

The reference direction that should be used during the optimization. Each row represents a reference line and each column a variable.

decomposition{ ‘auto’, ‘tchebi’, ‘pbi’ }

The decomposition approach that should be used. If set to auto for two objectives tchebi and for more than two pbi will be used.

n_neighborsint

Number of neighboring reference lines to be used for selection.

prob_neighbor_matingfloat

Probability of selecting the parents in the neighborhood.

Returns
moeadMOEAD

Returns an MOEAD algorithm object.

Table of Contents

Previous topic

R-NSGA-III

Next topic

Components

This Page