RVEA: Reference Vector Guided Evolutionary Algorithm

Contents

RVEA: Reference Vector Guided Evolutionary Algorithm#

The algorithm is implemented based on [35]. In RVEA, a scalarization approach, termed angle penalized distance (APD), is adopted to balance the convergence and diversity of the solutions in the high-dimensional objective space. Furthermore, an adaptation strategy is proposed to dynamically adjust the reference vectors’ distribution according to the objective functions’ scales. An illustration of the APD is shown below:

c629abf94ba149e69e0856969008da54

Example#

Info

Note that the APD is adapted based on the progress the algorithm has made. Thus, termination criteria such as n_gen or n_evals should be used.

[1]:
from pymoo.algorithms.moo.rvea import RVEA
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("dtlz1", n_obj=3)

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

algorithm = RVEA(ref_dirs)

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

plot = Scatter()
plot.add(problem.pareto_front(ref_dirs), plot_type="surface", color="black", alpha=0.7)
plot.add(res.F, color="red")
plot.show()
[1]:
<pymoo.visualization.scatter.Scatter at 0x7a7577f03ad0>
../../_images/algorithms_moo_rvea_8_1.png

API#