MOEA/D¶
This algorithm is implemented based on [3]. 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, ParallelMOEAD
from pymoo.factory import get_problem, get_visualization, get_reference_directions
from pymoo.optimize import minimize
problem = get_problem("dtlz2")
ref_dirs = get_reference_directions("das-dennis", 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)
get_visualization("scatter").add(res.F).show()
[1]:
<pymoo.visualization.scatter.Scatter at 0x7fc20aacfac0>
API¶
-
class
pymoo.algorithms.moo.moead.
MOEAD
(self, ref_dirs, n_neighbors=20, decomposition='auto', prob_neighbor_mating=0.9, sampling=FloatRandomSampling(), crossover=SimulatedBinaryCrossover(prob=1.0, eta=20), mutation=PolynomialMutation(prob=None, eta=20), display=MultiObjectiveDisplay(), **kwargs) - Parameters
- ref_dirs
- n_neighbors
- decomposition
- prob_neighbor_mating
- display
- kwargs