DAS-CMOP¶
DAS-CMOP is a constrained multi-objective test suite with tunable constraints [45]. The constraints are tuned using a difficulty triplet: \((\eta, \zeta, \gamma)\), with \(\eta, \zeta, \gamma \in [0, 1]\). The triplet allows to adjust the diversity, the feasibility and the convergence hardness respectively.
There are 6 biobjective problems DAS-CMOP1-6 (11 constraints) and 3 three-objective problems DAS-CMOP7-9 (7 constraints). Each of these can be initialized with a custom difficulty triplet or the authors proposed a set of 16 triplets:
No. |
Difficulty |
No. |
Difficulty |
No |
Difficulty |
No |
Difficulty |
---|---|---|---|---|---|---|---|
1 |
(0.25,0.0,0.0) |
2 |
(0.0,0.25,0.0) |
3 |
(0.0,0.0,0.25) |
4 |
(0.25,0.25,0.25) |
5 |
(0.5,0.0,0.0) |
6 |
(0.0,0.5,0.0) |
7 |
(0.0,0.0,0.5) |
8 |
(0.5,0.5,0.5) |
9 |
(0.75,0.0,0.0) |
10 |
(0.0,0.75,0.0) |
11 |
(0.0,0.0,0.75) |
12 |
(0.75,0.75,0.75) |
13 |
(0.0,1.0,0.0) |
14 |
(0.5,1.0,0.0) |
15 |
(0.0,1.0,0.5) |
16 |
(0.5,1.0,0.5) |
The Pareto fronts are different for each triplet.
DAS-CMOP1 (1)¶
[1]:
from pymoo.problems import get_problem
from pymoo.util.plotting import plot
problem = get_problem("dascmop1", 1)
plot(problem.pareto_front(), no_fill=True)
DAS-CMOP7 (12)¶
[2]:
from pymoo.problems import get_problem
from pymoo.visualization.scatter import Scatter
pf = get_problem("dascmop7", 12).pareto_front()
Scatter(angle=(45, 45)).add(pf, color="red").show()
[2]:
<pymoo.visualization.scatter.Scatter at 0x1178c56d0>
[3]:
from pymoo.problems import get_problem
from pymoo.visualization.scatter import Scatter
pf = get_problem("dascmop7", 12).pareto_front()
Scatter(angle=(45, 45)).add(pf, color="red").show()
[3]:
<pymoo.visualization.scatter.Scatter at 0x105e9d910>
Python implementation by cyrilpic based on the original JAVA code.