MOEA/D¶
This algorithm is implemented based on [4]. The algorithm is based on Reference Directions which need to be provided when initializing the algorithm object.
[1]:
from pymoo.algorithms.moo.moead import MOEAD
from pymoo.optimize import minimize
from pymoo.problems import get_problem
from pymoo.util.ref_dirs import get_reference_directions
from pymoo.visualization.scatter import Scatter
problem = get_problem("dtlz2")
ref_dirs = get_reference_directions("uniform", 3, n_partitions=12)
algorithm = MOEAD(
ref_dirs,
n_neighbors=15,
prob_neighbor_mating=0.7,
)
res = minimize(problem,
algorithm,
('n_gen', 200),
seed=1,
verbose=False)
Scatter().add(res.F).show()
[1]:
<pymoo.visualization.scatter.Scatter at 0x13513cbc0>
API¶
-
class
pymoo.algorithms.moo.moead.
MOEAD
(ref_dirs=None, n_neighbors=20, decomposition=None, prob_neighbor_mating=0.9, sampling=<pymoo.operators.sampling.rnd.FloatRandomSampling object>, crossover=<pymoo.operators.crossover.sbx.SBX object>, mutation=<pymoo.operators.mutation.pm.PM object>, output=<pymoo.util.display.multi.MultiObjectiveOutput object>, **kwargs)