MW¶
MW [47] is a constrained multi-objective test suite constructed in a similar fashion to CTP or WFG with 3 different distance functions and 3 local adjustment methods. Most problems are biobjective problems, except MW4, MW8 and MW14 which are scalable (\(m \geq 3\)).
They aim at replacing the CTP test suite by proposing more complex problems with up to 4 inequality constraints.
[1]:
from pymoo.problems import get_problem
from pymoo.util.plotting import plot
from pymoo.problems import get_problem
from pymoo.util.ref_dirs import get_reference_directions
from pymoo.visualization.scatter import Scatter
MW4¶
[5]:
ref_dirs = get_reference_directions("das-dennis", 3, n_partitions=12)
pf = get_problem("mw4").pareto_front(ref_dirs)
Scatter(angle=(45,45)).add(pf, color="red").show()
[5]:
<pymoo.visualization.scatter.Scatter at 0x11784d790>
MW6¶
[7]:
problem = get_problem("mw6")
plot(problem.pareto_front(), no_fill=True)
/Users/blankjul/workspace/pymoo/pymoo/problems/multi/mw.py:212: RuntimeWarning: divide by zero encountered in divide
l = np.cos(6 * np.arctan(F[:, 1] / F[:, 0]) ** 4) ** 10
MW8¶
[9]:
ref_dirs = get_reference_directions("das-dennis", 3, n_partitions=12)
pf = get_problem("mw8").pareto_front(ref_dirs)
Scatter(angle=(45,45)).add(pf, color="red").show()
[9]:
<pymoo.visualization.scatter.Scatter at 0x1273dcc50>
MW14¶
[15]:
ref_dirs = get_reference_directions("das-dennis", 3, n_partitions=12)
pf = get_problem("mw14").pareto_front()
Scatter(angle=(45,45)).add(pf, color="red").show()
[15]:
<pymoo.visualization.scatter.Scatter at 0x1272fd1c0>
Python implementation by cyrilpic based on the original C++ code.