scieee Science in your language
[en] (orig)

jMetalPy: a Python Framework for Multi-Objective Optimization with Metaheuristics

Abstract

This paper describes jMetalPy, an object-oriented Python-based framework for multi-objective optimization with metaheuristic techniques. Building upon our experiences with the well-known jMetal framework, we have developed a new multi-objective optimization software platform aiming not only at replicating the former one in a di erent programming language, but also at taking advantage of the full feature set of Python, including its facilities for fast prototyping and the large amount of available libraries for data processing, data analysis, data visualization, and high-performance computing. As a result, jMetalPy provides an environment for solving multi-objective optimization problems focused not only on traditional metaheuristics, but also on techniques supporting preference articulation and dynamic problems, along with a rich set of features related to the automatic generation of statistical data from the results generated, as well as the real-time and interactive visualization of the Pareto front approximations produced by the algorithms. jMetalPy o ers additionally support for parallel computing in multicore and cluster systems. We include some use cases to explore the main features of jMetalPy and to illustrate how to work with it.

Read accessible full text

jMetalPy: a Python Framework for Multi-Objective Optimization with Metaheuristics

Author: Benítez Hidalgo, Antonio; Nebro, Antonio J.; García Nieto, José Manuel; Oregi, Izaskun; Ser, Javier del
Publisher: Elsevier
Year: 2019
DOI: 10.1016/j.swevo.2019.100598
Source: https://idus.us.es/bitstreams/78a45cda-4afe-457f-9141-167c87f313fa/download
jMe alPy: a Py hon F amewo k o Mul i-Objec i e Op imiza ion wi h Me aheu is ics
An onio Ben´
ı ez-Hidalgoa, An onio J. Neb oa, Jos´
e Ga c´
ıa-Nie oa, Izaskun O egib, Ja ie Del Se b,c,d
aDepa amen o de Lenguajes y Ciencias de la Compu aci´on, Ada By on Resea ch Building, Uni e si y o M´alaga, 29071 M´alaga, Spain
bTECNALIA, 48160 De io, Spain
cUni e si y o he Basque Coun y (UPV/EHU), 48013 Bilbao, Spain
dBasque Cen e o Applied Ma hema ics (BCAM), 48009 Bilbao, Spain
Abs ac
This pape desc ibes jMe alPy, an objec -o ien ed Py hon-based amewo k o mul i-objec i e op imiza ion wi h me aheu is ic
echniques. Building upon ou expe iences wi h he well-known jMe al amewo k, we ha e de eloped a new mul i-objec i e
op imiza ion so wa e pla o m aiming no only a eplica ing he o me one in a di e en p og amming language, bu also a aking
ad an age o he ull ea u e se o Py hon, including i s acili ies o as p o o yping and he la ge amoun o a ailable lib a ies o
da a p ocessing, da a analysis, da a isualiza ion, and high-pe o mance compu ing. As a esul , jMe alPy p o ides an en i onmen
o sol ing mul i-objec i e op imiza ion p oblems ocused no only on adi ional me aheu is ics, bu also on echniques suppo ing
p e e ence a icula ion and dynamic p oblems, along wi h a ich se o ea u es ela ed o he au oma ic gene a ion o s a is ical da a
om he esul s gene a ed, as well as he eal- ime and in e ac i e isualiza ion o he Pa e o on app oxima ions p oduced by
he algo i hms. jMe alPy o e s addi ionally suppo o pa allel compu ing in mul ico e and clus e sys ems. We include some use
cases o explo e he main ea u es o jMe alPy and o illus a e how o wo k wi h i .
Keywo ds: Mul i-Objec i e Op imiza ion, Me aheu is ics, So wa e F amewo k, Py hon, S a is ical Analysis, Visualiza ion
1. In oduc ion
Mul i-objec i e op imiza ion p oblems a e widely ound in
many disciplines [1, 2], including enginee ing, economics, lo-
gis ics, anspo a ion o ene gy, among o he s. They a e cha -
ac e ized by ha ing wo o mo e con lic ing objec i e unc ions
ha ha e o be maximized o minimized a he same ime, wi h
hei op imum composed by a se o ade-o solu ions known
as Pa e o op imal se . Besides ha ing se e al objec i es, o he
ac o s can make his amily o op imiza ion p oblems pa icu-
la ly di icul o ackle and sol e wi h exac echniques, such as
decep i eness, epis asis, NP-ha d complexi y, o high dimen-
sionali y [3]. As a consequence, he mos popula echniques o
deal wi h complex mul i-objec i e op imiza ion p oblems a e
me aheu is ics [4], a amily o non-exac algo i hms including
e olu iona y algo i hms and swa m in elligence me hods (e.g.
an colony op imiza ion o pa icle swa m op imiza ion).
An impo an ac o ha has igni ed he widesp ead adop-
ion o me aheu is ics is he a ailabili y o so wa e ools eas-
ing hei implemen a ion, execu ion and deploymen in p ac i-
cal se ups. In he con ex o mul i-objec i e op imiza ion, one
o he mos acknowledged amewo ks is jMe al [5], a p ojec
s a ed in 2006 ha has been con inuously e ol ing since hen,
including a ull edesign om sc a ch in 2015 [6]. jMe al is im-
plemen ed in Ja a unde he MIT licence, and i s sou ce code is
Email add esses: [email p o ec ed] (An onio Ben´
ı ez-Hidalgo),
[email p o ec ed] (An onio J. Neb o), [email p o ec ed] (Jos´
e
Ga c´
ıa-Nie o), [email p o ec ed] (Izaskun O egi),
[email p o ec ed] (Ja ie Del Se )
publicly a ailable in Gi Hub1.
In his pape , we p esen jMe alPy, a new mul i-objec i e
op imiza ion amewo k w i en in Py hon. Ou mo i a ion o
de eloping jMe alPy s ems om ou pas expe ience wi h jMe al
and om he ac ha nowadays Py hon has become a e y
p ominen p og amming language wi h a ple ho a o in e es -
ing ea u es, which enables as p o o yping ueled by i s la ge
ecosys em o lib a ies o nume ical and scien i ic compu ing
(NumPy [7], Scipy [8]), da a analysis (Pandas), machine lea n-
ing (Sciki -lea n [9]), isualiza ion (Ma plo lib [10], Holo iews
[11], Plo ly [12]), la ge-scale p ocessing (Dask [13], PySpa k
[14]) and so o h. Ou goal is no only o ew i e jMe al in
Py hon, bu o ocus mainly on aspec s whe e Py hon can help
ill he gaps no co e ed by Ja a. In pa icula , we place ou
in e es in he analysis o esul s p o ided by he op imiza ion
algo i hms, eal- ime and in e ac i e isualiza ion, p e e ence
a icula ion o suppo ing decision making, and sol ing dy-
namic p oblems. Fu he mo e, since Py hon can be hough o
as a mo e agile p og amming en i onmen o p o o yping new
mul i-objec i e sol e s, jMe alPy also inco po a es a ull sui e
o s a is ical signi icance es s and ela ed ools o he sake o
a p incipled compa ison among mul i-objec i e me aheu is ics.
jMe alPy has been de eloped by Compu e Science engi-
nee s and scien is s o suppo esea ch in mul i-objec i e op-
imiza ion wi h me aheu is ics, and o u ilize he p o ided al-
go i hms o sol ing eal-wo d p oblems. Following he same
1jMe al: h ps://gi hub.com/jMe al/jMe al. As o Ap il 18, 2019,
he pape s abou jMe al had accumula ed mo e han 1280 ci a ions (sou ce:
Google Schola )
P ep in submi ed o jou nal (unde e iew) Ap il 18, 2019
open sou ce philosophy as in jMe al, jMe alPy is eleased un-
de he MIT license. The p ojec is in con inuous de elopmen ,
wi h i s sou ce code hos ed in Gi Hub2, whe e he las s able
and cu en de elopmen e sions can be eely ob ained.
The main ea u es o jMe alPy a e summa ized as ollows:
•jMe alPy is implemen ed in Py hon ( e sion 3.6+), and i s
objec -o ien ed a chi ec u e makes i lexible and ex ensible.
•I p o ides a se o classical mul i-objec i e me aheu is ics
(NSGA-II [15], GDE3 [16], SMPSO [17], OMOPSO [18],
MOEA/D [19]) and s anda d amilies o p oblems o bench-
ma king (ZDT, DTLZ, WFG [2], and LZ09 [20]).
•Dynamic mul i-objec i e op imiza ion is suppo ed, includ-
ing he implemen a ion o dynamic e sions o NSGA-II and
SMPSO, as well as he FDA [21] p oblem amily.
•Re e ence poin based p e e ence a icula ion algo i hms, such
as SMPSO/RP [22] and e sions o NSGA-II and GDE3, a e
also p o ided.
•I implemen s quali y indica o s o mul i-objec i e op imiza-
ion, such as Hype olume [23], Addi i e Epsilon [24] and
In e ed Gene a ional Dis ance [25].
•I p o ides isualiza ion componen s o display he Pa e o
on app oxima ions when sol ing p oblems wi h wo ob-
jec i es (sca e plo ), h ee objec i es (sca e plo 3D), and
many-objec i e p oblems (pa allel coo dina es g aph and a
ailo ed e sion o Cho d diag ams).
•Suppo o compa a i e s udies, including a wide numbe o
s a is ical es s and u ili ies (e.g. non-pa ame ic es , pos -
hoc es s, boxplo s, CD plo ), including he au oma ic gen-
e a ion o L
A
T
EX ables (mean, s anda d de ia ion, median,
in e qua ile ange) and igu es in di e en o ma s.
•jMe alPy can coope a i ely wo k alongside wi h jMe al. The
la e can be used o un algo i hms and compu e he qual-
i y indica o s, while he pos -p ocessing da a analysis can be
ca ied ou wi h jMe alPy.
•Pa allel compu ing is suppo ed based on Apache Spa k [26]
and Dask [13]. This includes an e alua o componen ha
can be used by gene a ional me aheu is ics o e alua e so-
lu ions in pa allel wi h Spa k (synch onous pa allelism), as
well as a pa allel e sion o NSGA-II based on Dask (asyn-
ch onous pa allelism).
•Suppo ing documen a ion. A websi e3is main ained wi h
use manuals and API speci ica ion o de elope s. This si e
also con ains a se ies o Jupy e no ebooks4wi h use cases
and examples o expe imen s and isualiza ions.
2jMe alPy: h ps://gi hub.com/jMe al/jMe alPy
3jMe alPy documen a ion: h ps://jme alpy. ead hedocs.io
4Jupy e : h ps://jupy e .o g
Ou pu pose o his pape is o desc ibe jMe alPy, and o
illus a e how i can be used by membe s o he communi y in-
e es ed in expe imen ing wi h me aheu is ics o sol ing mul i-
objec i e op imiza ion p oblems. To his end, we include some
implemen a ion use cases based on NSGA-II o explo e he
main a ian s conside ed in jMe alPy, om s anda d e sions
(gene a ional and s eady s a e), o dynamic, e e ence-poin based,
pa allel and dis ibu ed la o s o his sol e . A expe imen al
use case is also desc ibed o exempli y how he s a is ical es s
and isualiza ion ools included in jMe alPy can be used o
pos -p ocessing and analyzing he ob ained esul s in dep h. Fo
backg ound concep s and o mal de ini ions o mul i-objec i e
op imiza ion, we e e o ou p e ious wo k in [5].
The emaining o his pape is o ganized as ollows. In Sec-
ion 2, a e iew o ele an ela ed algo i hmic so wa e pla -
o ms is conduc ed o gi e an insigh and a ionale o he main
di e ences and con ibu ion o jMe alPy. Sec ion 3 del es in o
he jMe alPy a chi ec u e and i s main componen s. Sec ion 4
explains a use case o implemen a ion. Visualiza ion acili ies
a e desc ibed in Sec ion 5, while a use case o expe imen a ion
wi h s a is ical p ocedu es is explained in Sec ion 6. Finally,
Sec ion 7 p esen s he conclusions and ou lines u he ela ed
wo k planned o he nea u u e.
2. Rela ed Wo ks
In he las wo decades, a numbe o so wa e amewo ks
de o ed o he implemen a ion o mul i-objec i e me aheu is-
ics has been con ibu ed o he communi y, such as ECJ [33],
E A [34], JCLEC-MO [35], jMe al [5, 6], MOEA F amewo k
[36], and Op 4J [37], which a e w i en in Ja a; Pa adisEO-
MOEO [38], and PISA [39], de eloped in C/C++; and Pla EMO
[40], implemen ed in Ma lab. They all ha e in common he in-
clusion o ep esen a i e algo i hms om he he s a e o he a ,
benchma k p oblems and quali y indica o s o pe o mance as-
sessmen .
As has been men ioned in he in oduc ion, he e is a g ow-
ing in e es wi hin he scien i ic communi y in so wa e ame-
wo ks implemen ed in Py hon, since his language o e s a la ge
ecosys em o lib a ies, mos o hem de o ed o da a analysis,
da a p ocessing and isualiza ion. When i comes o op imiza-
ion algo i hms, a se o ep esen a i e Py hon amewo ks is
lis ed in Table 1, whe e hey a e analyzed acco ding o hei
algo i hmic domains, main enance s a us, Py hon e sion and
licensing, as well as he ea u ed a ian s, pos -p ocessing a-
cili ies and algo i hms hey cu en ly o e . Wi h he excep ion
o he Inspy ed amewo k, hey a e all ac i e p ojec s (i.e., hei
public sou ce code ha e been upda ed a leas one ime wi hin
he las six mon hs) and wo k ou -o - he-box wi h a simple pip
command. All o hese amewo ks suppo Py hon 3.x.
DEAP and Inspy ed a e no cen e ed in mul i-objec i e op i-
miza ion, and hey include a sho e numbe o implemen ed al-
go i hms. Pagmo/PyGMO, Pla ypus and Pymoo o e a highe
numbe o ea u es and algo i hmic a ian s, including me hods
o s a is ical pos -p ocessing and isualiza ion o esul s. In
pa icula , Pagmo/PyGMO con ains implemen a ions o a num-
be o single/mul i-objec i e algo i hms, including hyb id a i-
2
Table 1: Mos popula op imiza ion amewo ks w i en in Py hon.
Name S a us Py hon License Pa allel Dynamic Decision Pos -p ocessing Algo i hms
e sion p ocessing op imiza ion making acili ies
DEAP 1.2.2 [27] Ac i e ≥2.7 LGPL-3.0 XS a is ics GA, GP, CMA-ES, NSGA-II, SPEA2, MO-CMA-ES
Gea py 1.1.5 [28] Ac i e ≥3.5 MIT GA, MOEA
Inspy ed 1.0.1 [29] Inac i e ≥2.6 MIT GA, ES, PSO, ACO, SA, PAES, NSGA-II
PyGMO 2.10 [30] Ac i e 3.x GPL-3.0 XVisualiza ion,
s a is ics
GA, DE, PSO, SA, ABC, IHS, MC,
CMA-ES, NSGA-II, MOEA/D
Pla ypus 1.0.3 [31] Ac i e 3.6 GPL-3.0 XVisualiza ion,
s a is ics
CMA-ES, NSGA-II, NSGA-III,
GDE3, IBEA, MOEA/D,
OMOPSO, EpsMOEA, SPEA2
Pymoo 0.2.4 [32] Ac i e 3.6 Apache 2.0 XVisualiza ion,
s a is ics
GA, DE, NSGA-II, NSGA-III,
U-NSGA-III, e e ence poin (R-NSGA-III)
jMe alPy 1.0.0 Ac i e ≥3.6 MIT X X X Visualiza ion,
s a is ics
GA, EA, NSGA-II, NSGA-III,
SMPSO, GDE3, OMOPSO, MOEA/D,
e e ence poin (G-NSGA-II, SMPSO/RP, G-GDE3),
dynamic (NSGA-II, SMPSO, GDE3)
an s, wi h s a is ical me hods o acing algo i hms, quali y in-
dica o s and i ness landscape analysis. Pla ypus suppo s pa -
allel p ocessing in solu ion e alua ion phase, whe eas Pymoo is
a he ocused on o e ing me hods o p e e ence a icula ion
based on e e ence poin s.
The jMe alPy amewo k we p oposed in his pape is also
an ac i e open sou ce p ojec , which is ocused mainly on mul i-
objec i e op imiza ion (al hough a numbe o single-objec i e
algo i hms a e included) p o iding an inc easing numbe o al-
go i hms and mode n me hods o s a is ical pos -p ocessing
and isualiza ion o esul s. I o e s algo i hmic a ian s wi h
me hods o pa allel p ocessing and p e e ence a icula ion based
on e e ence poin s o p o ide decision making suppo . Mo e-
o e , jMe alPy inco po a es algo i hms and mechanisms o dy-
namic p oblem op imiza ion, which is an addi ional ea u e no
p esen in he o he ela ed amewo ks. In his way, he p o-
posed amewo k a emp s a co e ing as many enhancing ea-
u es in op imiza ion as possible o suppo expe imen a ion and
decision making in bo h esea ch and indus y communi ies.
Besides hese ea u es, an impo an design goal in jMe alPy
has been o make he code easy o unde s and (in pa icula , he
implemen a ion o he algo i hms), o euse and o ex end, as is
illus a ed in he nex wo sec ions.
3. A chi ec u e o jMe alPy
The a chi ec u e o jMe alPy has an objec -o ien ed design
o make i lexible and ex ensible (see Figu e 1). The co e
classes de ine he basic unc ionali y o jMe alPy: an Algo i hm
sol es a P oblem by using some Ope a o en i ies which ma-
nipula e a se o Solu ion objec s. We de ail hese classes nex .
3.1. Co e A chi ec u e
Class Algo i hm con ains a lis o solu ions (i.e. popula ion
in E olu iona y Algo i hms o swa m in Swa m In elligence
echniques) and a un() me hod ha implemen s he beha io
o a gene ic me aheu is ic ( o he sake o simplici y, ull de-
ails o he codes a e omi ed):
1class Algo i hm(ABC):
de __ini __(sel ):
3sel .e alua ions = 0
sel .solu ions = Lis []
5sel .obse able = De aul Obse able()
7de un(sel ):
sel .solu ions = sel .c ea e_ini ial_solu ions()
9sel .solu ions = sel .e alua e(sel .solu ions)
sel .ini _p og ess()
11 while no sel .s opping_condi ion_is_me ():
sel .s ep()
13 sel .upda e_p og ess()
In he abo e code we no e he s eps o c ea ing he ini ial
se o solu ions, hei e alua ion, and he main loop o he algo-
i hm, which pe o ms a numbe o s eps un il a s opping condi-
ion is me . The ini ializa ion o s a e a iables o an algo i hm
and hei upda e a he end o each s ep a e ca ied ou in he
ini p og ess() and upda e p og ess() me hods, espec i ely. In
o de o allow he communica ion o he s a us o an algo i hm
while unning we ha e adop ed he obse e pa e n [41], so
ha any algo i hm is an obse able en i y which no i ies o eg-
is e ed obse e s some in o ma ion speci ied in ad ance (e.g.,
he cu en e alua ion numbe , unning ime, o he cu en so-
lu ion lis ), ypically in he upda e p og ess() me hod. In his
way we p o ide a s uc u ed me hod, o example, o display in
eal- ime he cu en Pa e o on app oxima ion o o s o e i in
a ile.
A p oblem is esponsible o c ea ing and e alua ing solu-
ions, and i is cha ac e ized by i s numbe o decision a i-
ables, objec i es and cons ain s. In case o he numbe o
cons ain s be g ea e han 0, i is assumed ha he e alua e()
me hod also assesses whe he he cons ain s a e ul illed. Sub-
classes o P oblem include addi ional in o ma ion depending o
he assumed solu ion encoding; hus, a Floa P oblem ( o nu-
me ical op imiza ion) o an In ege P oblem ( o combina o ial
op imiza ion) equi es he speci ica ion o he lowe and uppe
bounds o he decision a iables.
Ope a o s such as Mu a ion,C osso e , and Selec ion, ha e
an execu e(sou ce) me hod which, gi en a sou ce objec , p o-
duces a esul . Mu a ions ope a e on a solu ion and e u n a new
one esul ing om modi ying he o iginal one. On he con a y,
c osso e ope a o s ake a lis o solu ions (namely, he pa en s)
and p oduce ano he lis o solu ions (co espondingly, he o -
sp ing). Selec ion ope a o s usually ecei e a lis o solu ions
3
Manage
1
Sol e
1
C ea e/E alua e
*
Manipula e
*
Use
*
in e ace
Algo i hm
+ e alua ions: in = 0
+ solu ions: Lis [Solu ion] = lis ()
+ obse able = De aul Obse able()
+ini p og ess()
+s ep()
+upda e p og ess()
+ un()
+ ge esul ()
in e ace
Solu ion
+ numbe o objec i es: in
+ numbe o a iables: in
in e ace
P oblem
+ numbe o objec i es: in
+ numbe o a iables: in
+ numbe o cons ain s: in
+c ea e solu ion()
+e alua e(solu ion: Solu ion)
in e ace
Ope a o
+execu e(solu ion: Solu ion)
Figu e 1: UML class diag am o jMe alPy.
and e u ns one o hem o a sublis o hem.
The Solu ion class is a key componen in jMe alPy because
i is used o ep esen he a ailable solu ion encodings, which
a e linked o he p oblem ype and he ope a o s ha can be used
o sol e i . E e y solu ion is composed by a lis o a iables, a
lis o objec i e alues, and a se o a ibu es implemen ed as
a dic iona y o key- alue pai s. A ibu es can be used o as-
sign, o example, a ank o he solu ions o popula ion o a
cons ain iola ion deg ee. Depending on he ype o he a i-
ables, we ha e subclasses o Solu ion such as Floa Solu ion,
In ege Solu ion,Bina ySolu ion o Pe mu a ionSolu ion.
3.2. Classes o Dynamic Op imiza ion
jMe alPy suppo s dealing wi h dynamic op imiza ion p ob-
lems, i.e., p oblems ha change o e ime. Fo his pu pose, i
con ains wo abs ac classes named DynamicP oblem and Dy-
namicAlgo i hm.
A dynamic algo i hm is de ined as an algo i hm wi h a es a -
ing me hod, which is called whene e a change in he p oblem
being sol ed is de ec ed. The code o he DynamicAlgo i hm
class is as ollows:
1class DynamicAlgo i hm(Algo i hm, ABC):
3@abs ac me hod
de es a (sel ) -> None:
5pass
The DynamicP oblem class ex ends P oblem wi h me hods
o que y whe he he p oblem has changed wha soe e , and o
clea ha s a us:
1class DynamicP oblem(P oblem, Obse e , ABC):
3@abs ac me hod
de he_p oblem_has_changed(sel ) -> bool:
5pass
7@abs ac me hod
de clea _changed(sel ) -> None:
9pass
I is wo h men ioning ha a dynamic p oblem is also an ob-
se e en i y acco ding o he obse e pa e n. The unde lying
idea is ha in jMe alPy i is assumed ha changes in a dynamic
p oblem a e p oduced by ex e nal en i ies, i.e, obse able ob-
jec s whe e he p oblem is egis e ed.
4. Implemen a ion Use Case: NSGA-II and Va ian s
Wi h he aim o illus a ing he basic usages o jMe alPy, in
his sec ion we desc ibe he implemen a ion o he well-known
NSGA-II algo i hm [15], as well as some o i s a ian s (s eady-
s a e, dynamic, wi h p e e ence a icula ion, pa allel, and dis-
ibu ed).
NSGA-II is a gene ic algo i hm, which is a subclass o E o-
lu iona y Algo i hms. In jMe alPy we include an abs ac class
o he la e , and a de aul implemen a ion o he o me . An
E olu iona y Algo i hm is a me aheu is ic whe e he s ep() me hod
consis s o applying a sequence o selec ion, ep oduc ion, and
eplacemen me hods, as illus a ed in he code snippe below:
1class E olu iona yAlgo i hm(Algo i hm, ABC):
de __ini __(sel ,
3p oblem: P oblem,
popula ion_size: in ,
5o sp ing_size: in ):
supe (E olu iona yAlgo i hm, sel ).__ini __()
7sel .p oblem = p oblem
sel .popula ion_size = popula ion_size
9sel .o sp ing_size = o sp ing_size
11 @abs ac me hod
de selec ion(sel , popula ion):
13 pass
15 @abs ac me hod
de ep oduc ion(sel , popula ion):
17 pass
19 @abs ac me hod
de eplacemen (sel , popula ion, o sp ing):
21 pass
23 de ini _p og ess(sel ):
sel .e alua ions = sel .popula ion_size
25
de s ep(sel ):
27 ma ing_pool = sel .selec ion(sel .solu ions)
o sp ing = sel . ep oduc ion(ma ing_pool)
29 o sp ing = sel .e alua e(o sp ing)
sel .solu ions = sel . eplacemen (sel .solu ions, o sp ing)
31
de upda e_p og ess(sel ):
33 sel .e alua ions += sel .o sp ing_size
On e e y s ep, he selec ion ope a o is used (line 27) o e-
ie e he ma ing pool om he solu ion lis ( he popula ion) o
he algo i hm. Solu ions o he ma ing pool a e aken o e-
p oduc ion (line 28), which yields a new lis o solu ions called
o sp ing. Solu ions o his o sp ing popula ion mus be e alu-
a ed (line 29), and he ea e a eplacemen s a egy is applied o
upda e he popula ion (line 30). We can obse e ha he e al-
ua ion coun e is ini ialized and upda ed in he ini p og ess()
(line 23) and upda e p og ess (line 32), espec i ely.
4
The E olu iona yAlgo i hm class is e y gene ic. We p o-
ide a comple e implemen a ion o a Gene ic Algo i hm, which
is an e olu iona y algo i hm whe e he ep oduc ion is com-
posed by combining a c osso e and mu a ion ope a o . We
pa ially illus a e his implemen a ion nex :
1class Gene icAlgo i hm(E olu iona yAlgo i hm):
de __ini __(sel ,
3p oblem: P oblem[Solu ion],
popula ion_size: in ,
5o sp ing_popula ion_size: in ,
mu a ion: Mu a ion,
7c osso e : C osso e ,
selec ion: Selec ion,
9 e mina ion_c i e ion: Te mina ionC i e ion,
popula ion_gene a o =RandomGene a o (),
11 popula ion_e alua o =Sequen ialE alua o ()):
...
13
de c ea e_ini ial_solu ions(sel ):
15 e u n [sel .popula ion_gene a o .new(sel .p oblem)
o _in ange(sel .popula ion_size)]
17
de e alua e(sel , solu ions):
19 e u n sel .popula ion_e alua o .e alua e(solu ions, sel .p oblem)
21 de s opping_condi ion_is_me (sel ):
e u n sel . e mina ion_c i e ion.is_me
23
de selec ion(sel , popula ion: Lis [Solu ion]):
25 # selec solu ions o ge he ma ing pool
27 de ep oduc ion(sel , ma ing_pool):
# apply c osso e and mu a ion
29
de eplacemen (sel , popula ion, o sp ing):
31 # combine he popula ion and o sp ing popula ions
The e a e some in e es ing ea u es o poin ou he e. Fi s ,
he ini ial solu ion lis is c ea ed om a Gene a o objec (line
14), which, gi en a p oblem, e u ns a numbe o new solu ions
acco ding o some s a egy implemen ed in he gene a o ; by
de aul , a RandomGene a o () is chosen o p oduce a numbe
o solu ions uni o mly d awn a andom om he alue ange
speci ied o he decision a iables. Second, an E alua o ob-
jec is used o e alua e all p oduced solu ions (line 19); he de-
aul one e alua es he solu ions sequen ially. Thi d, a Te mi-
na ionC i e ion objec is used o check he s opping condi ion
(line 21), which allows deciding among se e al s opping c i-
e ia when con igu ed. The p o ided implemen a ions include:
s opping a e making a maximum numbe o e alua ions, com-
pu ing o a maximum ime, a key has been p essed, o he cu -
en popula ion achie es a minimum le el o quali y acco ding
o some indica o . Fou h, he ep oduc ion me hod applies he
c osso e and mu a ion ope a o s o e he ma ing pool o gen-
e a e he o sp ing popula ion. Finally, he eplacemen me hod
combines he popula ion and he o sp ing popula ion o p o-
duce a new popula ion.
Depa ing om he implemen ed Gene icAlgo i hm class,
we a e eady o implemen he s anda d NSGA-II algo i hm and
some a ian s, which will be desc ibed in he nex subsec ions.
Compu ing imes will be epo ed when unning he algo i hm
o sol e he ZDT1 benchma k p oblem [42] on a MacBook P o
wi h macOS Moja e, 2.2 GHz In el Co e i7 p ocesso (Tu bo
boos up o 3.4GHz), 16 GB 1600 MHz DDR3 RAM, Py hon
3.6.7 :: Anaconda.
4.1. S anda d Gene a ional NSGA-II
NSGA-II is a gene a ional gene ic algo i hm, so he popu-
la ion and he o sp ing popula ion ha e he same size. I s main
ea u e is he use o a non-domina ed so ing o anking he
solu ions in a popula ion o os e con e gence, and a c owd-
ing dis ance densi y es ima o o p omo e di e si y [15]. These
mechanisms a e applied in he eplacemen me hod, as shown
in he ollowing snippe :
1class NSGAII(Gene icAlgo i hm):
de __ini __(sel ,
3p oblem: P oblem,
popula ion_size,
5o sp ing_size,
mu a ion: Mu a ion,
7c osso e : C osso e ,
selec ion: Selec ion,
9 e mina ion_c i e ion: Te mina ionC i e ion,
popula ion_gene a o =RandomGene a o (),
11 popula ion_e alua o =Sequen ialE alua o ()
dominance_compa a o =DominanceCompa a o ()):
13 ...
de eplacemen (sel , popula ion, o sp ing):
15 join_popula ion = popula ion + o sp ing
17 e u n RankingAndC owdingDis anceSelec ion(
sel .popula ion_size, sel .dominance_compa a o ).execu e(
join_popula ion)
No mo e code is needed. To con igu e and un he algo i hm
we include some examples, such as he ollowing code:
# S anda d gene a ional NSGAII unne
2p oblem = ZDT1()
4max_e alua ions = 25000
algo i hm = NSGAII(
6p oblem=p oblem,
popula ion_size=100,
8o sp ing_popula ion_size=100,
mu a ion=PolynomialMu a ion(...),
10 c osso e =SBXC osso e (...),
selec ion=Bina yTou namen Selec ion(...),
12 e mina ion_c i e ion=S oppingByE alua ions(max=max_e alua ions),
dominance_compa a o =DominanceCompa a o ()
14 )
16 p og ess_ba = P og essBa Obse e (max=max_e als)
algo i hm.obse able. egis e (obse e =p og ess_ba )
18
eal_ ime = Visualize Obse e ()
20 algo i hm.obse able. egis e (obse e = eal_ ime)
22 algo i hm. un()
on = algo i hm.ge _ esul ()
24
# Sa e esul s o ile
26 p in _ unc ion_ alues_ o_ ile( on , ‘FUN’)
p in _ a iables_ o_ ile( on , ‘VAR’)
This code snippe depic s a s anda d con igu a ion o NSGA-
II o sol e he ZDT1 benchma k p oblem. No e ha we can de-
ine a dominance compa a o (line 13), which by de aul is he
one used in he s anda d implemen a ion o NSGA-II.
Figu e 2: Sc eensho o jMe alPy unning a NSGA-II o he ZDT1 benchma k
p oblem showing he p og ess and he Pa e o on app oxima ion.
5

0.0 0.2 0.4 0.6 0.8 1.0
x
0.0
0.2
0.4
0.6
0.8
1.0
y
NSGAII-ZDT1
Pa e o on app oxima ion
0.0 0.2 0.4 0.6 0.8 1.0
x
0.0
0.2
0.4
0.6
0.8
1.0
y
ssNSGAII-ZDT1
Pa e o on app oxima ion
0.0 0.2 0.4 0.6 0.8 1.0
x
0.0
0.2
0.4
0.6
0.8
1.0
y
gNSGAII-ZDT1
Pa e o on app oxima ion
Figu e 3: Pa e o on app oxima ions when sol ing he ZDT1 p oduced by he s anda d NSGA-II algo i hm (le ), a s eady-s a e e sion (cen e ), and G-NSGA-II
(using he e e ence poin [ 1, 2]=[0.5,0.5], shown in ed).
As commen ed p e iously, any algo i hm is an obse able
en i y, so obse e s can egis e in o i . In his code, we egis e
a p og ess ba obse e (shows a ba in he e minal indica ing
he p og ess o he algo i hm) and a isualize obse e (shows
a g aph plo ing he cu en popula ion, i.e., he cu en Pa e o
on app oxima ion). A sc een cap u e o NSGA-II unning in
included in Figu e 2. The compu ing ime o NSGA-II wi h his
con igu a ion in ou a ge lap op is a ound 9.2 seconds.
4.2. S eady-S a e NSGA-II
A s eady-s a e e sion o NSGA-II can be con igu ed by
eso ing o he same code, bu jus se ing he o sp ing pop-
ula ion size o one. This e sion yielded a be e pe o mance
in e ms o he p oduced Pa e o on app oxima ion compa ed
wi h he s anda d NSGA-II as epo ed in a p e ious s udy [43],
bu a a cos o a highe compu ing ime, which aises up o 190
seconds.
An example o Pa e o on app oxima ion ound by his
e sion o NSGA-II when sol ing he ZDT1 benchma k p ob-
lem is shown in Figu e 3-cen e . As expec ed gi en he li e -
a u e, i compa es a o ably agains he one gene a ed by he
s anda d NSGA-II (Figu e 3-le ).
4.3. NSGA-II wi h P e e ence A icula ion
The NSGA-II implemen a ion in jMe alPy can be easily ex-
ended o inco po a e a p e e ence a icula ion scheme. Con-
c e ely, we ha e de eloped a g-dominance based compa a o
conside ing he g-dominance concep desc ibed in [44], whe e
a egion o in e es can be delimi ed by de ining a e e ence
poin . I we desi e o ocus he sea ch in he in e es egion de-
limi ed by he e e ence poin , say e.g. [ 1, 2]=[0.5,0.5], we
can con igu e NSGA-II wi h his compa a o as ollows:
1 e e ence_poin = [0.5, 0.5]
algo i hm = NSGAII(
3...
dominance_compa a o =GDominanceCompa a o ( e e ence_poin )
5)
The esul ing on is show in Figu e 3- igh .
4.4. Dynamic NSGA-II
The app oach adop ed in jMe alPy o p o ide suppo o
dynamic p oblem sol ing is as ollows: Fi s , we ha e de el-
oped a TimeCoun e class (which is an Obse able en i y) which,
gi en a delay, inc emen s con inuously a coun e and no i ies
he egis e ed obse e s he new coun e alues; second, we
need o de ine an ins ance o DynamicP oblem, which mus
implemen he me hods o checking whe he he p oblem has
changed and o clea he changed s a e. As DynamicP oblem
inhe i s om Obse e , ins ances o his class can egis e in a
TimeCoun e objec . Finally, i is equi ed o ex end Dynami-
cAlgo i hm wi h a class de ining he es a () me hod ha will
be called when he algo i hm de ec s a change in a dynamic
p oblem. The ollowing code snippe shows he implemen a-
ion o he DynamicNSGAII class:
1class DynamicNSGAII(NSGAII, DynamicAlgo i hm):
de __ini __(sel , ...):
3...
sel .comple ed_i e a ions = 0
5
de es a (sel ) -> None
7# es a s a egy
9de upda e_p og ess(sel ):
i sel .p oblem. he_p oblem_has_changed():
11 sel . es a ()
sel .e alua o .e alua e(sel .solu ions, p oblem)
13 sel .p oblem.clea _changed()
sel .e alua ions += sel .o sp ing_size
15
de s opping_condi ion_is_me (sel ):
17 i sel . e mina ion_c i e ion.is_me :
sel . es a ()
19 sel .e alua o .e alua e(sel .solu ions, p oblem)
sel .ini _p og ess()
21 sel .comple ed_i e a ions += 1
As shown abo e, a he end o each i e a ion a check is
made abou a change in he p oblem. I a change has occu ed,
he es a me hod is in oked which, depending on he imple-
men ed s a egy, will emo e some solu ions om he popula-
ion and new ones will be c ea ed o eplace hem. The esul ing
popula ion will be e alua ed and he clea changed() me hod
o he p oblem objec will be called. As opposed o he s an-
da d NSGA-II, he s opping condi ion me hod is no in oked
o hal he algo i hm, bu ins ead o no i y egis e ed obse e s
(e.g., a isualize ) ha a new esul ing popula ion has been p o-
duced. Then, he algo i hm s a s again by in oking he es a ()
and ini p og ess() me hods. I is wo h no ing ha mos o
he code o he o iginal NSGA-II implemen a ion is eused and
only some me hods need o be ew i en.
To illus a e he implemen a ion a dynamic p oblem, we
nex show code o he FDA abs ac class, which is he base
class o he i e p oblems composing he FDA benchma k:
1class FDA(DynamicP oblem, Floa P oblem, ABC):
de __ini __(sel ):
3supe (FDA, sel ).__ini __()
6
sel . au_T = 5
5sel .nT = 10
sel . ime = 1.0
7sel .p oblem_modi ied = False
9de upda e(sel , *a gs, **kwa gs):
coun e = kwa gs[’COUNTER’]
11 sel . ime = (1.0 / sel .nT) * loo (coun e * 1.0 / sel . au_T)
sel .p oblem_modi ied = T ue
13
de he_p oblem_has_changed(sel ) -> bool:
15 e u n sel .p oblem_modi ied
17 de clea _changed(sel ) -> None:
sel .p oblem_modi ied = False
The key poin in his class is he upda e() me hod which,
when in oked by an obse able en i y (e.g., an ins ance o he
a o emen ioned TimeCoun e class), se s he p oblem modi ied
lag o T ue. We can obse e ha his lag can be que ied and
ese .
The code p esen ed nex shows how o con igu e and un
he dynamic NSGA-II algo i hm:
# Dynamic NSGAII unne
2p oblem = FDA2()
ime_coun e = TimeCoun e (delay=1))
4 ime_coun e .obse able. egis e (p oblem)
ime_coun e .s a ()
6
algo i hm = DynamicNSGAII(
8...
e mina ion_c i e ion=S oppingByE alua ions(max=
10 max_e als)
)
12 algo i hm. un()
A e c ea ing he ins ances o he FDA2 benchma k p ob-
lem [21] and he ime coun e class, he o me is egis e ed
in he la e , which uns in a concu en h ead. The dynamic
NSGA-II is se wi h s opping condi ion which e u ns a Pa e o
on app oxima ion e e y 25,000 unc ion e alua ions. An ex-
ample o unning o he dynamic NSGA-II algo i hm when sol -
ing he FDA2 p oblem is shown in Figu e 4.
0.0 0.2 0.4 0.6 0.8 1.0
0
0.0
0.2
0.4
0.6
0.8
1.0
1
FDA2
Pa e o on app oxima ion
Figu e 4: Pa e o on app oxima ions when sol ing he dynamic FDA2 p ob-
lem p oduced by he dynamic e sion o NSGA-II.
4.5. Pa allel NSGA-II wi h Apache Spa k
In o de o e alua e a popula ion, NSGA-II (and in gene al,
any gene a ional algo i hms in jMe alPy) can use an e alua o
objec . The de aul e alua o uns in a sequen ial ashion bu ,
should he e alua e me hod o he p oblem be h ead-sa e, so-
lu ions can be e alua ed in pa allel. jMe alPy includes an e al-
ua o based on Apache Spa k, so he solu ions can be e alua ed
in a a ie y o pa allel sys ems (mul ico es, clus e s) ollowing
he scheme p esen ed in [45]. This e alua o can be used as
exempli ied nex :
# NSGAII unne using he Spa k e alua o
2algo i hm = NSGAII(
...
4e alua o =Spa kE alua o ()
)
The esul ing pa allel NSGA-II algo i m combines pa allel
wi h sequen ial phases, so speed imp o emen s canno be ex-
pec ed o scale linea ly. A pilo es on ou a ge lap op indi-
ca es speedup ac o s in he o de o 2.7. Howe e , wha is in-
e es ing o no e he e is ha no changes a e equi ed in NSGA-
II, which has he same beha io as i s sequen ial e sion, so he
ob ained ime educ ions a e o ee.
4.6. Dis ibu ed NSGA-II wi h Dask
The las a ian o NSGA-II we p esen in his pape is a
dis ibu ed e sion based on an asynch onous pa allel model
implemen ed wi h Dask [13], a pa allel and dis ibu ed Py hon
sys em including a b oad se o pa allel p og amming models,
including asynch onous pa allelism using u u es.
The dis ibu ed NSGA-II adop s a pa allel scheme s udied
in [43]. The scheme is based on a s eady-s a e NSGA-II and he
use o Dask’s u u es, in such a way ha whene e a new solu-
ion has o e alua ed, a ask is c ea ed and submi ed o Dask,
which e u ns a u u e. When a ask is comple ed, i s co e-
sponding u u e e u ns an e alua ed solu ion, which is inse ed
in o he o sp ing popula ion. Then, a new solu ion is p oduced
a e pe o ming he eplacemen , selec ion, and ep oduc ion
s ages, o be sen again o e alua ion. This way, all he p oces-
so s/co es o he a ge clus e will be busy mos o he ime.
P elimina y esul s on ou a ge mul ico e lap op indica e
ha speedups a ound 5.45 can ob ained wi h he 8 co es o he
sys em whe e simula ions we e pe o med. We will discuss on
his lack o scalabili y and o he aspec s o his use case in he
nex subsec ion.
4.7. Discussion
In his sec ion we ha e p esen ed i e di e en e sions o
NSGA-II , mos o hem (excep o he dis ibu ed a ian ) e-
qui ing mino changes on he base class implemen ing NSGA-
II. No all algo i hms can be adap ed in he same way, bu some
o he a ia ions o NSGA-II can be implemen ed in a s aigh -
o wa d manne . Thus, we include in jMe alPy examples o dy-
namic, p e e ence-based, and pa allel e sions o some o he
included algo i hms, such as SMPSO, GDE3, and OMOPSO.
We would like o again s ess on he eadabili y o he codes,
by i ue o which all he s eps o he algo i hms can be clea ly
iden i ied. Some use s may ind he class hie a chy E olu ion-
a yAlgo i hm →Gene icAlgo i hm →NSGAII cumbe some,
and p e e o ha e all he code o NSGA-II in a single class.
Howe e , his al e na i e design app oach would hinde he lex-
ibili y o he cu en implemen a ion, and would equi e o epli-
ca e mos o he code when de eloping algo i hmic a ian s.
In he case o pa allel algo i hms, an exhaus i e pe o mance
assessmen is beyond he scope o his pape . The epo ed
7
speedups a e no ema kable due o he Tu bo Boos ea u e
o he p ocesso o he lap op used o pe o ming he expe i-
men s, bu hey gi e an idea o he ime educ ions ha can be
achie ed when using a mode n mul ico e compu e .
5. Visualiza ion
An ad an age o using Py hon (ins ead o Ja a) is i s powe
ela ed o isualiza ion ea u es hanks o he a ailabili y o g aphic
plo ing lib a ies, such as: Ma plo lib, Holo iews o Plo ly.
jMe alPy ha nesses hese lib a ies o include h ee ypes o
isualiza ion cha s: s a ic, in e ac i e and s eaming. Table 2
summa izes hese implemen a ions. S a ic cha s can be shown
in he sc een, s o ed in a ile, o included in a Jupy e no ebook
( ypically used a he end o he execu ion o an algo i hm).
Simila ly, in e ac i e cha s a e gene a ed when an algo i hm
e u ns a Pa e o on app oxima ion bu , unlike he s a ic ones,
he use can manipula e hem in e ac i ely. The e a e wo kinds
o in e ac i e cha s: hose ha p oduce an HTML page includ-
ing a cha (allowing o apply ac ions such as zooming, selec -
ing pa o he g aph, o clicking in a poin o see i s objec i e
alues a e allowed) and cha s such as he Cho d diag am ha
allows ho e ing he mouse o e he cha and isualizing ela-
ionships among objec i e alues. Finally, s eaming cha s de-
pic g aphs in eal ime, du ing he execu ion o he algo i hms
(and hey can also be included in a Jupy e no ebook); his can
be use ul o obse e he e olu ion o he cu en Pa e o on
app oxima ion p oduced by he algo i hm.
Table 2: Main isualiza ions included in jMe alPy.
Name Type Backend Desc ip ion
Plo S a ic Ma plo lib 2D, 3D, p-coo ds
In e ac i e Plo ly 2D, 3D, p-coo ds
S eaming
plo
S eaming Ma plo lib 2D, 3D
S eaming HoloViews 2D, 3D ( o Jupy e )
Cho d plo In e ac i e Ma plo lib Fo s a is ical pu poses
Box plo In e ac i e Ma plo lib Fo s a is ical pu poses
CD plo S a ic Ma plo lib Demsa ’s c i ical dis-
ance plo
Pos e io
plo
S a ic Ma plo lib Bayesian pos e io analy-
sis
Figu e 5 shows h ee examples o in e ac i e plo s based
on Plo ly. The a ge p oblem is DTLZ1 [46], which is sol ed
wi h he SMPSO algo i hm when he p oblem is de ined wi h
2, 3 and 5 objec i es. Fo any p oblem wi h mo e han 3 objec-
i es, a pa allel coo dina es g aph is gene a ed. An example o
Cho d diag am o a p oblem wi h 5 objec i es is shown in Fig-
u e 6; each depic ed cho d ep esen s a solu ion o he ob ained
Pa e o on , and ies oge he i s objec i e alues. When ho -
e ing o e a sec o box o a ce ain objec i e i, his cha only
ende s hose solu ions whose i alues all wi hin he alue
suppo o his objec i e delimi ed by he ex emes o he sec o
box. Finally, he ou e pa i ioned o us o he cha ep esen s
a his og am o he alues co e ed in he ob ained Pa e o on
o e e y objec i e.
Figu e 5: Examples o in e ac i e plo s p oduced when using SMPSO o sol e
he DTLZ1 p oblem wi h 2 ( op), 3 (middle), and 5 (bo om) objec i es.
8
Figu e 6: Example o Cho d diag am o he on ob ained by SMPSO when
sol ing a p oblem wi h 5 objec i es.
6. Expe imen al Use Case
In p e ious sec ions, we ha e shown examples o Pa e o
on app oxima ions p oduced by some o he me aheu is ics
included in jMe alPy. In his sec ion, we desc ibe how ou
amewo k can be used o ca y ou igo ous expe imen al s ud-
ies based on compa ing a numbe o algo i hms o de e mine
which o hem p esen s he bes o e all pe o mance.
6.1. Expe imen a ion Me hodology
An expe imen al compa ison equi es a numbe o s eps:
1. De e mine he algo i hms o be compa ed and he bench-
ma k p oblems o be used.
2. Run a numbe o independen uns pe algo i hm-p oblem
con igu a ion and ge he p oduced on s.
3. Apply quali y indica o s o he on s (e.g., Hype olume,
Epsilon, e c.).
4. Apply a numbe o s a is ical es o assess he s a is ical sig-
ni icance o he pe o mance di e ences ound among he
algo i hms conside ed in he benchma k.
The i s h ee s eps can be done wi h jMe alPy, bu also
wi h jMe al o e en manually (e.g., unning algo i hms using a
sc ip ). The poin whe e jMe alPy s ands ou is he ou h one,
as i con ains a la ge amoun o s a is ical ea u es o p o ide
he use wi h a b oad se o ools o analyze he esul s gene -
a ed by a compa a i e s udy. All hese unc ionali ies ha e been
p og ammed om sc a ch and embedded in o he co e o jMe -
alPy. Speci ically, he s a is ical es s included in jMe alPy a e
lis ed nex :
•A di e se se o non-pa ame ic null hypo hesis signi icance
es s, namely, he Wilcoxon ank sum es , Sign es , F ied-
man es , F iedman aligned ank es and Quade es . These
es s ha e been adi ionally used by he communi y o shed
ligh on hei compa a i e pe o mance by inspec ing a s a is-
ic compu ed om hei sco es.
•Bayesian es s (sign es and signed ank es ), which ha e
been ecen ly pos ula ed o o e come he sho comings o
null hypo hesis signi icance es ing o pe o mance assess-
men [47]. These es s a e complemen ed by a pos e io plo
in ba ycen ic coo dina es o compa e pai s o algo i hms un-
de a Bayesian app oach by also accoun ing o possible s a-
is ical ies.
•Pos hoc es s o compa e among mul iple algo i hms, ei he
one- s-all (Bon e oni-Dunn, Holland, Finne , and Hochbe g)
o all- s-all (Li, Holm, Sha e ).
The esul s o hese es s a e displayed by de aul in he
sc een and mos o hem can be expo ed o L
A
T
EX ables. Fu -
he mo e, boxplo diag ams can be also gene a ed. Finally,
L
A
T
EX ables con aining means and medians (and hei co e-
sponding s anda d de ia ion and in e qua ile ange dispe sion
measu es, espec i ely) a e au oma ically gene a ed.
6.2. Implemen a ion De ails
jMe alPy has a labo a o y module con aining u ili ies o
de ining expe imen s, which equi e h ee lis s: he algo i hms
o be compa ed (which mus be p ope ly con igu ed), he bench-
ma k p oblems o be sol ed, and he quali y indica o s o be
applied o pe o mance assessmen . Addi ional pa ame e s a e
he numbe o independen uns and he ou pu di ec o y.
Once he expe imen is execu ed, a summa y in he o m
o a CSV ile is gene a ed. This ile con ains all he in o ma-
ion o he quali y indica o alues, o each con igu a ion and
un. Each line o his ile has he ollowing schema: Algo i hm,
P oblem, Indica o , Execu ionId, Indica o Value. An example
o i s con en s ollows:
1Algo i hm,P oblem,Indica o ,Execu ionId,Indica o Value
NSGAII,ZDT1,EP,0,0.015705992620067832
3NSGAII,ZDT1,EP,1,0.012832504015918067
NSGAII,ZDT1,EP,2,0.01071189935186434
5...
MOCell,ZDT6,IGD+,22,0.0047265135903854704
7MOCell,ZDT6,IGD+,23,0.004496215669027173
MOCell,ZDT6,IGD+,24,0.005483899232523609
whe e we can see he heade wi h he column names, ollowed
by ou lines co esponding o he alues o he Epsilon in-
dica o o h ee uns o he NSGA-II algo i hm when sol ing
he ZDT1 p oblem. The end o he ile shows he alue o
he IGD+indica o o h ee uns o MOCell when sol ing he
ZDT6 p oblem. The ile con ains as many lines as he p oduc
o he numbe s o algo i hms, p oblems, quali y indica o s, and
independen uns.
The summa y ile is he inpu o all he s a is ical es s, so
ha hey can be applied o any alid ile ha ing he p ope
o ma . This is pa icula ly in e es ing o combine jMe al and
jMe alPy. The las e sions o jMe al gene a es a summa y ile
a e unning a se o algo i hms in an expe imen al s udy, so
hen we can ake ad an age o he ea u es o jMe al (p o iding
9