Multi-Objective Optimization with MIDACO

 

[ Download:  PlotTool.exe  (50MB) ]

 

MIDACO can be applied to problems with a single or multiple objective functions. In case of multi-objective problems, MIDACO treats the first objective function as primary target to be minimized. All objectives are filtered for pareto efficiency in regard to minimization, whereas only the first one is actively optimized. Below is a small example where the pareto front for two dummy objectives (called User_Objective_A and User_Objective_B)  is calculated by using the sum of the two objectives (User_Objective_A + User_Objective_B) as primary target objective. The primary target objective can be freely constructed for a given problem at hand. Common examples on how to construct a primary target function can be found in the User Manual (Section 5.1). Note that MIDACO is capable to handle many-objective problems with up to hundreds of objectives (see large-scale benchmarks here).

 

 

Multi-Objective Example Problem

 

R example_MO.r
C# Example_MO.cs
Java Example_MO.java
Excel example_MO.xlsx
Matlab example_MO.m
C/C++ example_MO.c example_MO.cpp
Fortran example_MO.f example_MO.f90
Python example_MO.py.txt  (Python2) example_MO.py.txt  (Python3)

 

Example Output

 

Screenshot (Python) Pareto Front File Plot of Pareto Front File

 

Below you can find some small scale multi-objective benchmark problems in various programming languages. All below benchmark results can be reproduced with the limited MIDACO version (available here). Plots of the pareto front were created with the PlotTool.exe (50MB) displaying the MIDACO primary target objective via the colorbar.

 

Multi-Objective Benchmarks  (small scale)

Name

Ref

Example

Output files

 

Plot

 

Schaffer2

Wiki

schaffer2.m

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT

Kursawe

Wiki kursawe.f90

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT
 

Deb

Wiki deb.py.txt

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT

 
 Fonesca Wiki

fonesca.cpp

fonesca.java

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT
 
ZDT1 Wiki zdt1.py.txt

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT

 
ZDT2 Wiki zdt2.m

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT

 
ZDT3 Wiki zdt3.f

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT

 
 Viennet Wiki

 viennet.c

viennet.java

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT

 
Comet - comet.m

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT

 
Spherical - spherical.py.txt

MIDACO_SCREEN.TXT

MIDACO_PARETOFRONT.TXT
 

 

 

Large-Scale Multi-Objective Benchmarks available here