NSDE-R: Reference-direction based Differential Evolution

NSDE-R: Reference-direction based Differential Evolution#

NSDE-R brings differential evolution variation to many-objective optimization by combining it with the reference-direction based survival of NSGA-III. As with NSGA-III, a set of reference directions guides the selection so that the population stays well distributed across a high-dimensional objective space, while the DE operators (the variant, CR, and F) drive variation. The number of reference directions must match the number of objectives of the problem.

Example#

[1]:
from pymoo.algorithms.moo.nsder import NSDER
from pymoo.problems import get_problem
from pymoo.optimize import minimize
from pymoo.util.ref_dirs import get_reference_directions
from pymoo.visualization.scatter import Scatter

problem = get_problem("dtlz2")

ref_dirs = get_reference_directions("das-dennis", 3, n_partitions=12)

algorithm = NSDER(ref_dirs=ref_dirs, variant="DE/rand/1/bin", CR=0.5)

res = minimize(problem,
               algorithm,
               ('n_gen', 200),
               seed=1,
               verbose=False)

Scatter().add(res.F, facecolor="none", edgecolor="red").show()
[1]:
<pymoo.visualization.scatter.Scatter at 0x7d5b8b4ef4d0>
../../_images/algorithms_moo_nsder_6_1.png

API#

References#

Reddy, S. R., & Dulikravich, G. S. (2019). Many-objective differential evolution optimization based on reference points: NSDE-R. Structural and Multidisciplinary Optimization, 60, 1455-1473.