MODAct

MODAct (multi-objective design of actuators) is a real-world benchmark test-suite [46] for constrained multi-objective optimization. The optimization problems aim at finding small electro-actuators given some objectives and constraints. Currently, there are 20 problems with up to 5 objectives and 10 inequaltiy constraints, summarized in the table below.

In order to solve these problems, you will need to have the modact package and its dependencies installed (Docker image available). A single solution evaluation takes about 20 ms. Therefore, the use of parallel schemes is advised.

The estimated Pareto-fronts for CS1-4 and CT-4 have been added to pymoo directly. The others because of their file sizes have to be downloaded here, and used during initialization as shown below.

For more information please refer to the associated publication [46].

Problem

Variables

Objectives

Constraints

CS1

20

2

7

CS2

20

2

8

CS3

20

2

10

CS4

20

2

9

CT1, CTS1, CTSE1, CTSEI1

20

2,3,4 or 5

7

CT2, CTS2, CTSE2, CTSEI2

20

2,3,4 or 5

8

CT3, CTS3, CTSE3, CTSEI3

20

2,3,4 or 5

10

CT4, CTS4, CTSE4, CTSEI4

20

2,3,4 or 5

9

Some usage examples are highlighted in the following sections.

CS3

[ ]:
from pymoo.problems.multi import MODAct
from pymoo.util.plotting import plot

problem = MODAct("cs3")
plot(problem.pareto_front(), no_fill=True)

CT1

[ ]:
from pymoo.util.plotting import plot

problem = MODAct("ct1")
plot(problem.pareto_front(), no_fill=True)

CTS4

[ ]:
import numpy as np

from pymoo.problems.multi import MODAct
from pymoo.visualization.scatter import Scatter

pf = np.loadtxt("modact-cts3.pf")

problem = MODAct("cts4", pf=pf)
pf = problem.pareto_front()
Scatter(angle=(45,45)).add(pf, color="red").show()

Implementation by the author (cyrilpic).