Omni-test¶
The Omni-test problem is a multi-modal multi-objective optimization problem proposed by Deb in [50]. It has two objective functions. Suppose that the dimension of the decision space is \(D\), then it has \(3^D\) Pareto subsets in the decision space corresponding to the same Pareto front.
2-dimensional case¶
Pareto front¶
[1]:
from pymoo.problems.multi.omnitest import OmniTest
from pymoo.visualization.scatter import Scatter
problem = OmniTest(n_var=2)
pf = problem.pareto_front(1000)
Scatter(title="Pareto front").add(pf).show()
[1]:
<pymoo.visualization.scatter.Scatter at 0x11f727650>
Pareto set¶
[2]:
ps = problem.pareto_set(1000)
Scatter(title="Pareto set", labels=["$x_1$", "$x_2$"]).add(ps).show()
[2]:
<pymoo.visualization.scatter.Scatter at 0x11f9dd5b0>
3-dimensional case¶
Pareto front¶
[3]:
problem = OmniTest(n_var=3)
pf = problem.pareto_front(3000)
Scatter(title="Pareto front").add(pf).show()
[3]:
<pymoo.visualization.scatter.Scatter at 0x11fd0d580>
Pareto set¶
[4]:
import matplotlib.pyplot as plt
ps = problem.pareto_set(1000)
sc = Scatter(title="Pareto set", labels=["$x_1$", "$x_2$", "$x_3$"])
sc.add(ps)
sc.do()
sc.ax.view_init(elev=20, azim=5)
plt.show()