diff --git a/README.md b/README.md
index c43de908..a8830faf 100644
--- a/README.md
+++ b/README.md
@@ -12,6 +12,7 @@ A paper introducing jMetalPy is available at: https://doi.org/10.1016/j.swevo.20
- [Installation](#installation)
- [Usage](#hello-world-)
- [Features](#features)
+- [Changelog](#changelog)
- [License](#license)
## Installation
@@ -68,7 +69,7 @@ algorithm = NSGAII(
offspring_population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=25000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=25000)
)
algorithm.run()
@@ -99,7 +100,7 @@ plot_front.plot(front, label='NSGAII-ZDT1', filename='NSGAII-ZDT1', format='png'
## Features
-The current release of jMetalPy (v1.5.3) contains the following components:
+The current release of jMetalPy (v1.5.4) contains the following components:
* Algorithms: local search, genetic algorithm, evolution strategy, simulated annealing, random search, NSGA-II, NSGA-III, SMPSO, OMOPSO, MOEA/D, MOEA/D-DRA, MOEA/D-IEpsilon, GDE3, SPEA2, HYPE, IBEA. Preference articulation-based algorithms (G-NSGA-II, G-GDE3, G-SPEA2, SMPSO/RP); Dynamic versions of NSGA-II, SMPSO, and GDE3.
* Parallel computing based on Apache Spark and Dask.
@@ -115,5 +116,10 @@ The current release of jMetalPy (v1.5.3) contains the following components:
|-------------- | ---------------- |
| ![Parallel coordinates](docs/source/_static/p-c.gif) | ![Interactive chord plot](docs/source/_static/chordplot.gif) |
+## Changelog
+
+* [v1.5.4] Refactored quality indicators to accept numpy array as input parameter.
+* [v1.5.4] Added [CompositeSolution](https://github.com/jMetal/jMetalPy/blob/master/jmetal/core/solution.py#L111) class to support mixed combinatorial problems. [#69](https://github.com/jMetal/jMetalPy/issues/69)
+
## License
This project is licensed under the terms of the MIT - see the [LICENSE](LICENSE) file for details.
\ No newline at end of file
diff --git a/examples/experiment/QualityIndicatorSummary.csv b/examples/experiment/QualityIndicatorSummary.csv
index 060fa71f..4b8cf80e 100644
--- a/examples/experiment/QualityIndicatorSummary.csv
+++ b/examples/experiment/QualityIndicatorSummary.csv
@@ -1,3751 +1 @@
-Algorithm,Problem,IndicatorName,ExecutionId,IndicatorValue
-NSGAII,ZDT1,EP,0,0.015705992620067832
-NSGAII,ZDT1,EP,1,0.012832504015918067
-NSGAII,ZDT1,EP,2,0.01071189935186434
-NSGAII,ZDT1,EP,3,0.011465571289007992
-NSGAII,ZDT1,EP,4,0.010279387564947617
-NSGAII,ZDT1,EP,5,0.013360549991296211
-NSGAII,ZDT1,EP,6,0.012405580160723018
-NSGAII,ZDT1,EP,7,0.012944278581309782
-NSGAII,ZDT1,EP,8,0.011959132413730922
-NSGAII,ZDT1,EP,9,0.011983326657617893
-NSGAII,ZDT1,EP,10,0.022358533894488053
-NSGAII,ZDT1,EP,11,0.013472947758540799
-NSGAII,ZDT1,EP,12,0.013427245573550461
-NSGAII,ZDT1,EP,13,0.01662361818992092
-NSGAII,ZDT1,EP,14,0.013957819860842255
-NSGAII,ZDT1,EP,15,0.016032214233062725
-NSGAII,ZDT1,EP,16,0.014674881201461043
-NSGAII,ZDT1,EP,17,0.012126956473528794
-NSGAII,ZDT1,EP,18,0.011824566689834393
-NSGAII,ZDT1,EP,19,0.014066798346954679
-NSGAII,ZDT1,EP,20,0.009985304669745565
-NSGAII,ZDT1,EP,21,0.012001609812578584
-NSGAII,ZDT1,EP,22,0.01724427197836287
-NSGAII,ZDT1,EP,23,0.01292096299051565
-NSGAII,ZDT1,EP,24,0.015954546117419532
-NSGAII,ZDT2,EP,0,0.011589588338764334
-NSGAII,ZDT2,EP,1,0.013584971694600934
-NSGAII,ZDT2,EP,2,0.015122602708605215
-NSGAII,ZDT2,EP,3,0.0175361474625636
-NSGAII,ZDT2,EP,4,0.015731211691625502
-NSGAII,ZDT2,EP,5,0.011707211450252664
-NSGAII,ZDT2,EP,6,0.011193064098084737
-NSGAII,ZDT2,EP,7,0.014167244957370095
-NSGAII,ZDT2,EP,8,0.014641680538583668
-NSGAII,ZDT2,EP,9,0.0181116691944313
-NSGAII,ZDT2,EP,10,0.014554786193942806
-NSGAII,ZDT2,EP,11,0.011759248774159792
-NSGAII,ZDT2,EP,12,0.012809105778839092
-NSGAII,ZDT2,EP,13,0.014873314639279434
-NSGAII,ZDT2,EP,14,0.01357240364904344
-NSGAII,ZDT2,EP,15,0.012472001466575566
-NSGAII,ZDT2,EP,16,0.015175219341777013
-NSGAII,ZDT2,EP,17,0.014698819385744133
-NSGAII,ZDT2,EP,18,0.013278153989651265
-NSGAII,ZDT2,EP,19,0.012274833614650427
-NSGAII,ZDT2,EP,20,0.012905465471637234
-NSGAII,ZDT2,EP,21,0.011325514347275578
-NSGAII,ZDT2,EP,22,0.012066038149429081
-NSGAII,ZDT2,EP,23,0.012925323963272783
-NSGAII,ZDT2,EP,24,0.010577832561318279
-NSGAII,ZDT3,EP,0,0.011255933733510803
-NSGAII,ZDT3,EP,1,0.007939011133964557
-NSGAII,ZDT3,EP,2,0.007101433713694729
-NSGAII,ZDT3,EP,3,0.0075125343028755315
-NSGAII,ZDT3,EP,4,0.007050793945444833
-NSGAII,ZDT3,EP,5,0.0066763963721472724
-NSGAII,ZDT3,EP,6,0.008653283778186804
-NSGAII,ZDT3,EP,7,0.17799284552615854
-NSGAII,ZDT3,EP,8,0.006290258018720407
-NSGAII,ZDT3,EP,9,0.009572788622771555
-NSGAII,ZDT3,EP,10,0.007093567137631318
-NSGAII,ZDT3,EP,11,0.010364692805259534
-NSGAII,ZDT3,EP,12,0.009291236485351573
-NSGAII,ZDT3,EP,13,0.008362625342482
-NSGAII,ZDT3,EP,14,0.006598881363434339
-NSGAII,ZDT3,EP,15,0.010548368711507217
-NSGAII,ZDT3,EP,16,0.009321811110596268
-NSGAII,ZDT3,EP,17,0.006614387199308944
-NSGAII,ZDT3,EP,18,0.01093009288323124
-NSGAII,ZDT3,EP,19,0.007559149263984821
-NSGAII,ZDT3,EP,20,0.0065130623073665905
-NSGAII,ZDT3,EP,21,0.008014499061776148
-NSGAII,ZDT3,EP,22,0.008346548754672889
-NSGAII,ZDT3,EP,23,0.006565076088956824
-NSGAII,ZDT3,EP,24,0.007883380552101138
-NSGAII,ZDT4,EP,0,0.0136397363473591
-NSGAII,ZDT4,EP,1,0.01765222636196051
-NSGAII,ZDT4,EP,2,0.01547931650825379
-NSGAII,ZDT4,EP,3,0.01567388853495938
-NSGAII,ZDT4,EP,4,0.013382846428459924
-NSGAII,ZDT4,EP,5,0.017147379166006463
-NSGAII,ZDT4,EP,6,0.014745077671926343
-NSGAII,ZDT4,EP,7,0.01399914690781534
-NSGAII,ZDT4,EP,8,0.014209431906219816
-NSGAII,ZDT4,EP,9,0.010802213977794628
-NSGAII,ZDT4,EP,10,0.012150710152897148
-NSGAII,ZDT4,EP,11,0.013575889672073516
-NSGAII,ZDT4,EP,12,0.01547364512552224
-NSGAII,ZDT4,EP,13,0.010339246892093645
-NSGAII,ZDT4,EP,14,0.01324301310905529
-NSGAII,ZDT4,EP,15,0.01838375891595162
-NSGAII,ZDT4,EP,16,0.015164350421384809
-NSGAII,ZDT4,EP,17,0.013027422644091569
-NSGAII,ZDT4,EP,18,0.017662184128074743
-NSGAII,ZDT4,EP,19,0.016547619083440213
-NSGAII,ZDT4,EP,20,0.017028671444240917
-NSGAII,ZDT4,EP,21,0.01210826434478568
-NSGAII,ZDT4,EP,22,0.013816768074153829
-NSGAII,ZDT4,EP,23,0.014297578884685996
-NSGAII,ZDT4,EP,24,0.012483310085205979
-NSGAII,ZDT6,EP,0,0.019849725861028733
-NSGAII,ZDT6,EP,1,0.01843214823123318
-NSGAII,ZDT6,EP,2,0.021208475245126812
-NSGAII,ZDT6,EP,3,0.02227598112149498
-NSGAII,ZDT6,EP,4,0.019691257565996434
-NSGAII,ZDT6,EP,5,0.018728344933343855
-NSGAII,ZDT6,EP,6,0.021117401484937015
-NSGAII,ZDT6,EP,7,0.018579133510218115
-NSGAII,ZDT6,EP,8,0.017874815045186322
-NSGAII,ZDT6,EP,9,0.022458320924902297
-NSGAII,ZDT6,EP,10,0.01908797670956397
-NSGAII,ZDT6,EP,11,0.01934837596638983
-NSGAII,ZDT6,EP,12,0.019244649270912184
-NSGAII,ZDT6,EP,13,0.030036653667734003
-NSGAII,ZDT6,EP,14,0.01915837445101931
-NSGAII,ZDT6,EP,15,0.02186684145825618
-NSGAII,ZDT6,EP,16,0.02537327919637422
-NSGAII,ZDT6,EP,17,0.018174985284678646
-NSGAII,ZDT6,EP,18,0.01880873922548787
-NSGAII,ZDT6,EP,19,0.0234827091814942
-NSGAII,ZDT6,EP,20,0.02250868430481845
-NSGAII,ZDT6,EP,21,0.022349864180927992
-NSGAII,ZDT6,EP,22,0.018259805032864285
-NSGAII,ZDT6,EP,23,0.022590331060164393
-NSGAII,ZDT6,EP,24,0.015683566476660804
-SMPSO,ZDT1,EP,0,0.005352648281457539
-SMPSO,ZDT1,EP,1,0.0053341445185570435
-SMPSO,ZDT1,EP,2,0.00556540160241456
-SMPSO,ZDT1,EP,3,0.005400197794548922
-SMPSO,ZDT1,EP,4,0.005804393653113388
-SMPSO,ZDT1,EP,5,0.005507284139573548
-SMPSO,ZDT1,EP,6,0.005519883522477453
-SMPSO,ZDT1,EP,7,0.005884425511214736
-SMPSO,ZDT1,EP,8,0.0059268187522233395
-SMPSO,ZDT1,EP,9,0.005681202249872841
-SMPSO,ZDT1,EP,10,0.005416280606696827
-SMPSO,ZDT1,EP,11,0.0055032242456966585
-SMPSO,ZDT1,EP,12,0.005620719718779504
-SMPSO,ZDT1,EP,13,0.005592611449660778
-SMPSO,ZDT1,EP,14,0.0056554290102047294
-SMPSO,ZDT1,EP,15,0.005635828041897772
-SMPSO,ZDT1,EP,16,0.00532453079228748
-SMPSO,ZDT1,EP,17,0.005702526152576215
-SMPSO,ZDT1,EP,18,0.005417326178951742
-SMPSO,ZDT1,EP,19,0.005595558087659491
-SMPSO,ZDT1,EP,20,0.005545978301884857
-SMPSO,ZDT1,EP,21,0.005957422246634647
-SMPSO,ZDT1,EP,22,0.00560177846644111
-SMPSO,ZDT1,EP,23,0.005776020446477126
-SMPSO,ZDT1,EP,24,0.005342535922849334
-SMPSO,ZDT2,EP,0,0.005498693656341702
-SMPSO,ZDT2,EP,1,0.005646063353164643
-SMPSO,ZDT2,EP,2,0.005700429139737784
-SMPSO,ZDT2,EP,3,0.00517105634496462
-SMPSO,ZDT2,EP,4,0.005610431124825177
-SMPSO,ZDT2,EP,5,0.005207380404675388
-SMPSO,ZDT2,EP,6,0.005829772958432344
-SMPSO,ZDT2,EP,7,0.005704883114723058
-SMPSO,ZDT2,EP,8,0.005365298271129193
-SMPSO,ZDT2,EP,9,0.005348861026805929
-SMPSO,ZDT2,EP,10,0.005291143723340941
-SMPSO,ZDT2,EP,11,0.0055511468624144245
-SMPSO,ZDT2,EP,12,0.005522906129444061
-SMPSO,ZDT2,EP,13,0.005381583675380164
-SMPSO,ZDT2,EP,14,0.005923704660351969
-SMPSO,ZDT2,EP,15,0.005415556796191989
-SMPSO,ZDT2,EP,16,0.005703920626733305
-SMPSO,ZDT2,EP,17,0.00528612122545824
-SMPSO,ZDT2,EP,18,0.005431678369433368
-SMPSO,ZDT2,EP,19,0.005197758478707071
-SMPSO,ZDT2,EP,20,0.005628556399509432
-SMPSO,ZDT2,EP,21,0.005346162661663545
-SMPSO,ZDT2,EP,22,0.005616873009107071
-SMPSO,ZDT2,EP,23,0.005467564238374356
-SMPSO,ZDT2,EP,24,0.005261220484123363
-SMPSO,ZDT3,EP,0,0.0055539955601899005
-SMPSO,ZDT3,EP,1,0.004295781993409964
-SMPSO,ZDT3,EP,2,0.004280200279882962
-SMPSO,ZDT3,EP,3,0.004735922053497182
-SMPSO,ZDT3,EP,4,0.0049782181281081694
-SMPSO,ZDT3,EP,5,0.039470915555029074
-SMPSO,ZDT3,EP,6,0.005842166140323957
-SMPSO,ZDT3,EP,7,0.005667986976346795
-SMPSO,ZDT3,EP,8,0.005395738832896098
-SMPSO,ZDT3,EP,9,0.005908544621117451
-SMPSO,ZDT3,EP,10,0.003989422251968411
-SMPSO,ZDT3,EP,11,0.006673944339144837
-SMPSO,ZDT3,EP,12,0.004491374761284694
-SMPSO,ZDT3,EP,13,0.004633567113832948
-SMPSO,ZDT3,EP,14,0.004624913833311447
-SMPSO,ZDT3,EP,15,0.005232832986368705
-SMPSO,ZDT3,EP,16,0.005900477075063554
-SMPSO,ZDT3,EP,17,0.006246336076500714
-SMPSO,ZDT3,EP,18,0.005524503289066729
-SMPSO,ZDT3,EP,19,0.004689780176588776
-SMPSO,ZDT3,EP,20,0.005175853135571895
-SMPSO,ZDT3,EP,21,0.004527510264134116
-SMPSO,ZDT3,EP,22,0.10440012561829894
-SMPSO,ZDT3,EP,23,0.005518867008518891
-SMPSO,ZDT3,EP,24,0.004461300940561741
-SMPSO,ZDT4,EP,0,0.0062803015561741365
-SMPSO,ZDT4,EP,1,0.006210068797941393
-SMPSO,ZDT4,EP,2,0.00656498398954807
-SMPSO,ZDT4,EP,3,0.006119879439954734
-SMPSO,ZDT4,EP,4,0.005571456991553772
-SMPSO,ZDT4,EP,5,0.005827918705292638
-SMPSO,ZDT4,EP,6,0.0065857747116854215
-SMPSO,ZDT4,EP,7,0.006091207654909003
-SMPSO,ZDT4,EP,8,0.006349133316920021
-SMPSO,ZDT4,EP,9,0.006136736027884365
-SMPSO,ZDT4,EP,10,0.006246016857319403
-SMPSO,ZDT4,EP,11,0.005885726966939113
-SMPSO,ZDT4,EP,12,0.005705679045274775
-SMPSO,ZDT4,EP,13,0.006187549697781652
-SMPSO,ZDT4,EP,14,0.007806934209683744
-SMPSO,ZDT4,EP,15,0.00574750874508545
-SMPSO,ZDT4,EP,16,0.006044416567747346
-SMPSO,ZDT4,EP,17,0.005685235808891659
-SMPSO,ZDT4,EP,18,0.00598435636132344
-SMPSO,ZDT4,EP,19,0.005817313910113038
-SMPSO,ZDT4,EP,20,0.0063640302366927415
-SMPSO,ZDT4,EP,21,0.005874677178138721
-SMPSO,ZDT4,EP,22,0.005962910175839747
-SMPSO,ZDT4,EP,23,0.0063873886338264435
-SMPSO,ZDT4,EP,24,0.006125199009316629
-SMPSO,ZDT6,EP,0,0.0066425924766676525
-SMPSO,ZDT6,EP,1,0.006917862725180912
-SMPSO,ZDT6,EP,2,0.006502417408811856
-SMPSO,ZDT6,EP,3,0.006789477450598713
-SMPSO,ZDT6,EP,4,0.006912576303968576
-SMPSO,ZDT6,EP,5,0.007404707084277429
-SMPSO,ZDT6,EP,6,0.006509699438790539
-SMPSO,ZDT6,EP,7,0.007370345636293241
-SMPSO,ZDT6,EP,8,0.006546118982429516
-SMPSO,ZDT6,EP,9,0.0072992287621311824
-SMPSO,ZDT6,EP,10,0.006770555821686841
-SMPSO,ZDT6,EP,11,0.0068277303657938715
-SMPSO,ZDT6,EP,12,0.006997367202115079
-SMPSO,ZDT6,EP,13,0.006757201852747641
-SMPSO,ZDT6,EP,14,0.006449522043950107
-SMPSO,ZDT6,EP,15,0.006842073303313989
-SMPSO,ZDT6,EP,16,0.00692399872742494
-SMPSO,ZDT6,EP,17,0.006638868503711204
-SMPSO,ZDT6,EP,18,0.007027149340695593
-SMPSO,ZDT6,EP,19,0.006974987768673002
-SMPSO,ZDT6,EP,20,0.006587019410658257
-SMPSO,ZDT6,EP,21,0.006623258857350545
-SMPSO,ZDT6,EP,22,0.006686386301240965
-SMPSO,ZDT6,EP,23,0.006669615676360208
-SMPSO,ZDT6,EP,24,0.006790875614622438
-MOEAD,ZDT1,EP,0,0.023861092727138017
-MOEAD,ZDT1,EP,1,0.02309265344184913
-MOEAD,ZDT1,EP,2,0.027515874466199075
-MOEAD,ZDT1,EP,3,0.0267703049512346
-MOEAD,ZDT1,EP,4,0.03781704750943143
-MOEAD,ZDT1,EP,5,0.013776877429826362
-MOEAD,ZDT1,EP,6,0.017222338101353634
-MOEAD,ZDT1,EP,7,0.025740843118659006
-MOEAD,ZDT1,EP,8,0.0146963192991683
-MOEAD,ZDT1,EP,9,0.010363394431379402
-MOEAD,ZDT1,EP,10,0.03532142376173292
-MOEAD,ZDT1,EP,11,0.024017964041093243
-MOEAD,ZDT1,EP,12,0.045815606447993214
-MOEAD,ZDT1,EP,13,0.02498790272545151
-MOEAD,ZDT1,EP,14,0.038318693770110185
-MOEAD,ZDT1,EP,15,0.03104375718230496
-MOEAD,ZDT1,EP,16,0.028380883380686516
-MOEAD,ZDT1,EP,17,0.022862531710119517
-MOEAD,ZDT1,EP,18,0.02422990913082594
-MOEAD,ZDT1,EP,19,0.028799538327903138
-MOEAD,ZDT1,EP,20,0.018520373441137494
-MOEAD,ZDT1,EP,21,0.019483266136482567
-MOEAD,ZDT1,EP,22,0.027651077759753007
-MOEAD,ZDT1,EP,23,0.039470040899339504
-MOEAD,ZDT1,EP,24,0.018922443270499523
-MOEAD,ZDT2,EP,0,0.05067326526360453
-MOEAD,ZDT2,EP,1,0.031197691180549745
-MOEAD,ZDT2,EP,2,0.027081358389495755
-MOEAD,ZDT2,EP,3,0.025612906611293104
-MOEAD,ZDT2,EP,4,0.0377220262204535
-MOEAD,ZDT2,EP,5,0.07979786007842789
-MOEAD,ZDT2,EP,6,0.045401535506422244
-MOEAD,ZDT2,EP,7,0.03383636076105966
-MOEAD,ZDT2,EP,8,0.05129722292828781
-MOEAD,ZDT2,EP,9,0.0578154247480716
-MOEAD,ZDT2,EP,10,0.04944895329761854
-MOEAD,ZDT2,EP,11,0.05663435802399665
-MOEAD,ZDT2,EP,12,0.028672397603536556
-MOEAD,ZDT2,EP,13,0.04299142828807316
-MOEAD,ZDT2,EP,14,0.02122296104645338
-MOEAD,ZDT2,EP,15,0.09606089002055296
-MOEAD,ZDT2,EP,16,0.05101475596956016
-MOEAD,ZDT2,EP,17,0.057899478791891903
-MOEAD,ZDT2,EP,18,0.027563334261191876
-MOEAD,ZDT2,EP,19,0.043357127981662365
-MOEAD,ZDT2,EP,20,0.049783045399371076
-MOEAD,ZDT2,EP,21,0.04776305921180569
-MOEAD,ZDT2,EP,22,0.017202579719900978
-MOEAD,ZDT2,EP,23,0.05390700700630805
-MOEAD,ZDT2,EP,24,0.08480048634859581
-MOEAD,ZDT3,EP,0,0.14538839398888992
-MOEAD,ZDT3,EP,1,0.09674663807252915
-MOEAD,ZDT3,EP,2,0.10357523599129181
-MOEAD,ZDT3,EP,3,0.09508086181829833
-MOEAD,ZDT3,EP,4,0.1149121894348758
-MOEAD,ZDT3,EP,5,0.1341536192065329
-MOEAD,ZDT3,EP,6,0.0516296332349078
-MOEAD,ZDT3,EP,7,0.13490448756842216
-MOEAD,ZDT3,EP,8,0.06760522167274952
-MOEAD,ZDT3,EP,9,0.09047626557850252
-MOEAD,ZDT3,EP,10,0.10199495400704461
-MOEAD,ZDT3,EP,11,0.06790878071294608
-MOEAD,ZDT3,EP,12,0.14819549495287193
-MOEAD,ZDT3,EP,13,0.1063211810786826
-MOEAD,ZDT3,EP,14,0.11153039395552822
-MOEAD,ZDT3,EP,15,0.07643815257435893
-MOEAD,ZDT3,EP,16,0.04869983869191907
-MOEAD,ZDT3,EP,17,0.09590344053545696
-MOEAD,ZDT3,EP,18,0.12228117008034922
-MOEAD,ZDT3,EP,19,0.052576129036484544
-MOEAD,ZDT3,EP,20,0.11518897003255879
-MOEAD,ZDT3,EP,21,0.11540890388460212
-MOEAD,ZDT3,EP,22,0.15764469198665831
-MOEAD,ZDT3,EP,23,0.08857700762842168
-MOEAD,ZDT3,EP,24,0.0907676192891772
-MOEAD,ZDT4,EP,0,0.19958472407949576
-MOEAD,ZDT4,EP,1,0.048912363341804724
-MOEAD,ZDT4,EP,2,0.5515147072470075
-MOEAD,ZDT4,EP,3,0.6737822658152955
-MOEAD,ZDT4,EP,4,0.6100231860711701
-MOEAD,ZDT4,EP,5,0.44267040521176665
-MOEAD,ZDT4,EP,6,0.14011520279418319
-MOEAD,ZDT4,EP,7,0.19281058303229853
-MOEAD,ZDT4,EP,8,0.6545518788380568
-MOEAD,ZDT4,EP,9,0.7348532180985872
-MOEAD,ZDT4,EP,10,0.301189026176076
-MOEAD,ZDT4,EP,11,0.9245334427783688
-MOEAD,ZDT4,EP,12,0.8118040949407883
-MOEAD,ZDT4,EP,13,0.48037799341384185
-MOEAD,ZDT4,EP,14,0.0511024989923222
-MOEAD,ZDT4,EP,15,0.3396743071584907
-MOEAD,ZDT4,EP,16,0.27460917476621327
-MOEAD,ZDT4,EP,17,0.38055199109928817
-MOEAD,ZDT4,EP,18,0.9262988963420548
-MOEAD,ZDT4,EP,19,0.4046180715510152
-MOEAD,ZDT4,EP,20,0.033492019814015644
-MOEAD,ZDT4,EP,21,0.5088685607197554
-MOEAD,ZDT4,EP,22,0.17635073763760187
-MOEAD,ZDT4,EP,23,0.6311969974842493
-MOEAD,ZDT4,EP,24,0.34846094475401507
-MOEAD,ZDT6,EP,0,0.007737292940081686
-MOEAD,ZDT6,EP,1,0.007733525704189614
-MOEAD,ZDT6,EP,2,0.007634295124634094
-MOEAD,ZDT6,EP,3,0.00784806051488074
-MOEAD,ZDT6,EP,4,0.007717917928656504
-MOEAD,ZDT6,EP,5,0.0077068917733068565
-MOEAD,ZDT6,EP,6,0.007653551305663919
-MOEAD,ZDT6,EP,7,0.007885643885584437
-MOEAD,ZDT6,EP,8,0.007741083514384739
-MOEAD,ZDT6,EP,9,0.007659164949155528
-MOEAD,ZDT6,EP,10,0.00781085988470509
-MOEAD,ZDT6,EP,11,0.007621180632857882
-MOEAD,ZDT6,EP,12,0.007702155993395299
-MOEAD,ZDT6,EP,13,0.007711836126587102
-MOEAD,ZDT6,EP,14,0.007686726787886067
-MOEAD,ZDT6,EP,15,0.007659294305202402
-MOEAD,ZDT6,EP,16,0.007860557449170302
-MOEAD,ZDT6,EP,17,0.008320530786350977
-MOEAD,ZDT6,EP,18,0.007621186879746666
-MOEAD,ZDT6,EP,19,0.007795241761853089
-MOEAD,ZDT6,EP,20,0.007809694143938117
-MOEAD,ZDT6,EP,21,0.007764667473426079
-MOEAD,ZDT6,EP,22,0.007689842742395037
-MOEAD,ZDT6,EP,23,0.007764038592559475
-MOEAD,ZDT6,EP,24,0.00794244447101311
-GDE3,ZDT1,EP,0,0.010285386868927548
-GDE3,ZDT1,EP,1,0.013189802148293794
-GDE3,ZDT1,EP,2,0.010236425837128915
-GDE3,ZDT1,EP,3,0.014587427336666847
-GDE3,ZDT1,EP,4,0.014324639750347368
-GDE3,ZDT1,EP,5,0.01227198539686064
-GDE3,ZDT1,EP,6,0.009867193997555312
-GDE3,ZDT1,EP,7,0.014548546419674235
-GDE3,ZDT1,EP,8,0.013076000428790258
-GDE3,ZDT1,EP,9,0.014153564421094056
-GDE3,ZDT1,EP,10,0.016117449115418125
-GDE3,ZDT1,EP,11,0.010156209896978852
-GDE3,ZDT1,EP,12,0.015011843446572026
-GDE3,ZDT1,EP,13,0.01310458597784897
-GDE3,ZDT1,EP,14,0.010175882498365957
-GDE3,ZDT1,EP,15,0.012873143575558466
-GDE3,ZDT1,EP,16,0.014296803108470979
-GDE3,ZDT1,EP,17,0.012285417621874184
-GDE3,ZDT1,EP,18,0.013598857941505005
-GDE3,ZDT1,EP,19,0.01328954317440642
-GDE3,ZDT1,EP,20,0.011338021301330097
-GDE3,ZDT1,EP,21,0.013294786289225202
-GDE3,ZDT1,EP,22,0.016653954549297745
-GDE3,ZDT1,EP,23,0.012849755155398754
-GDE3,ZDT1,EP,24,0.010491951064441674
-GDE3,ZDT2,EP,0,0.009334475857622926
-GDE3,ZDT2,EP,1,0.012912399069975544
-GDE3,ZDT2,EP,2,0.012465688483236259
-GDE3,ZDT2,EP,3,0.01980872120810262
-GDE3,ZDT2,EP,4,0.013674760782710127
-GDE3,ZDT2,EP,5,0.015839388581678215
-GDE3,ZDT2,EP,6,0.011037708934376611
-GDE3,ZDT2,EP,7,0.013128959821838815
-GDE3,ZDT2,EP,8,0.012525210687955202
-GDE3,ZDT2,EP,9,0.009564855874935718
-GDE3,ZDT2,EP,10,0.01204578468090256
-GDE3,ZDT2,EP,11,0.010893177031023882
-GDE3,ZDT2,EP,12,0.01405130031392432
-GDE3,ZDT2,EP,13,0.010841490434484236
-GDE3,ZDT2,EP,14,0.013847496577475749
-GDE3,ZDT2,EP,15,0.017168397248682743
-GDE3,ZDT2,EP,16,0.011626099977545268
-GDE3,ZDT2,EP,17,0.011534713171962196
-GDE3,ZDT2,EP,18,0.014882759983046279
-GDE3,ZDT2,EP,19,0.01654948994293426
-GDE3,ZDT2,EP,20,0.013790115903530131
-GDE3,ZDT2,EP,21,0.008974215745497838
-GDE3,ZDT2,EP,22,0.009626711740463256
-GDE3,ZDT2,EP,23,0.010795231756615786
-GDE3,ZDT2,EP,24,0.01580306447153179
-GDE3,ZDT3,EP,0,0.007127452618316044
-GDE3,ZDT3,EP,1,0.005407436211248437
-GDE3,ZDT3,EP,2,0.006374260808641896
-GDE3,ZDT3,EP,3,0.011218969693816916
-GDE3,ZDT3,EP,4,0.006337978597468874
-GDE3,ZDT3,EP,5,0.009318678078992115
-GDE3,ZDT3,EP,6,0.006395139780567161
-GDE3,ZDT3,EP,7,0.007444192201660038
-GDE3,ZDT3,EP,8,0.005669810656902419
-GDE3,ZDT3,EP,9,0.008381728051389037
-GDE3,ZDT3,EP,10,0.009347573012764787
-GDE3,ZDT3,EP,11,0.007713862403185723
-GDE3,ZDT3,EP,12,0.007671767330562185
-GDE3,ZDT3,EP,13,0.0060232441141890225
-GDE3,ZDT3,EP,14,0.0077282173958395095
-GDE3,ZDT3,EP,15,0.007213544987492812
-GDE3,ZDT3,EP,16,0.00956105041819788
-GDE3,ZDT3,EP,17,0.006242347580080243
-GDE3,ZDT3,EP,18,0.005951955470940538
-GDE3,ZDT3,EP,19,0.007381616880558439
-GDE3,ZDT3,EP,20,0.006747023523863471
-GDE3,ZDT3,EP,21,0.0077928599933923814
-GDE3,ZDT3,EP,22,0.0063650686374380205
-GDE3,ZDT3,EP,23,0.006800729122189875
-GDE3,ZDT3,EP,24,0.005889742496390488
-GDE3,ZDT4,EP,0,4.8301208171726095
-GDE3,ZDT4,EP,1,3.8060740192978746
-GDE3,ZDT4,EP,2,3.5829066769427973
-GDE3,ZDT4,EP,3,3.3136714691061546
-GDE3,ZDT4,EP,4,2.64389562112336
-GDE3,ZDT4,EP,5,3.663307981989055
-GDE3,ZDT4,EP,6,3.4371390229719965
-GDE3,ZDT4,EP,7,4.007215500829867
-GDE3,ZDT4,EP,8,5.565515937383116
-GDE3,ZDT4,EP,9,4.5560353383447385
-GDE3,ZDT4,EP,10,4.280223175829421
-GDE3,ZDT4,EP,11,3.3896079133598263
-GDE3,ZDT4,EP,12,5.230239691703144
-GDE3,ZDT4,EP,13,4.142980485500339
-GDE3,ZDT4,EP,14,3.3134552950453906
-GDE3,ZDT4,EP,15,4.078933589703692
-GDE3,ZDT4,EP,16,4.077012244688567
-GDE3,ZDT4,EP,17,2.251141544170824
-GDE3,ZDT4,EP,18,4.424851947947519
-GDE3,ZDT4,EP,19,5.459565765265023
-GDE3,ZDT4,EP,20,3.769495715901296
-GDE3,ZDT4,EP,21,5.878316097698477
-GDE3,ZDT4,EP,22,4.269331235877757
-GDE3,ZDT4,EP,23,3.9926912102585974
-GDE3,ZDT4,EP,24,4.447394081197038
-GDE3,ZDT6,EP,0,0.016957840650049016
-GDE3,ZDT6,EP,1,0.015077655976847293
-GDE3,ZDT6,EP,2,0.02246768106374064
-GDE3,ZDT6,EP,3,0.018443058054123718
-GDE3,ZDT6,EP,4,0.016764632555240522
-GDE3,ZDT6,EP,5,0.017770117384202866
-GDE3,ZDT6,EP,6,0.019065695355721085
-GDE3,ZDT6,EP,7,0.016610021749186465
-GDE3,ZDT6,EP,8,0.01663995076718261
-GDE3,ZDT6,EP,9,0.015281137975300313
-GDE3,ZDT6,EP,10,0.019985213224539555
-GDE3,ZDT6,EP,11,0.01586828733666179
-GDE3,ZDT6,EP,12,0.017366318912909517
-GDE3,ZDT6,EP,13,0.02050064402377716
-GDE3,ZDT6,EP,14,0.017184575636877697
-GDE3,ZDT6,EP,15,0.01785235405394303
-GDE3,ZDT6,EP,16,0.0155096448540335
-GDE3,ZDT6,EP,17,0.017317966082415953
-GDE3,ZDT6,EP,18,0.02559515606198437
-GDE3,ZDT6,EP,19,0.021997975285150018
-GDE3,ZDT6,EP,20,0.021419185748053682
-GDE3,ZDT6,EP,21,0.014169469959293968
-GDE3,ZDT6,EP,22,0.019596537448925366
-GDE3,ZDT6,EP,23,0.01524951368098959
-GDE3,ZDT6,EP,24,0.014421134460504081
-MOCell,ZDT1,EP,0,0.006216034678357685
-MOCell,ZDT1,EP,1,0.0067638792924830105
-MOCell,ZDT1,EP,2,0.006213771945153879
-MOCell,ZDT1,EP,3,0.006483909628001827
-MOCell,ZDT1,EP,4,0.00627897795180743
-MOCell,ZDT1,EP,5,0.00635253644440531
-MOCell,ZDT1,EP,6,0.0063415585553416864
-MOCell,ZDT1,EP,7,0.006320304701635526
-MOCell,ZDT1,EP,8,0.006112196805427628
-MOCell,ZDT1,EP,9,0.0065700370366006955
-MOCell,ZDT1,EP,10,0.00625799024810253
-MOCell,ZDT1,EP,11,0.00610875364359037
-MOCell,ZDT1,EP,12,0.006048882605396044
-MOCell,ZDT1,EP,13,0.006201042228174469
-MOCell,ZDT1,EP,14,0.006039166626719161
-MOCell,ZDT1,EP,15,0.005785280191941022
-MOCell,ZDT1,EP,16,0.006438203264091835
-MOCell,ZDT1,EP,17,0.007576296644749431
-MOCell,ZDT1,EP,18,0.006288521079901049
-MOCell,ZDT1,EP,19,0.0062293310568408145
-MOCell,ZDT1,EP,20,0.007430235941432273
-MOCell,ZDT1,EP,21,0.005887589091788992
-MOCell,ZDT1,EP,22,0.005795556472421082
-MOCell,ZDT1,EP,23,0.006288773397994996
-MOCell,ZDT1,EP,24,0.006105538243819708
-MOCell,ZDT2,EP,0,0.005765234193036858
-MOCell,ZDT2,EP,1,0.005739316423253871
-MOCell,ZDT2,EP,2,0.006119249584261799
-MOCell,ZDT2,EP,3,0.005887619933779842
-MOCell,ZDT2,EP,4,0.005771820782679016
-MOCell,ZDT2,EP,5,0.005920456932200446
-MOCell,ZDT2,EP,6,0.006142737195121262
-MOCell,ZDT2,EP,7,0.005848561161100885
-MOCell,ZDT2,EP,8,0.005453885572700323
-MOCell,ZDT2,EP,9,0.005542600882244009
-MOCell,ZDT2,EP,10,0.005984298537840105
-MOCell,ZDT2,EP,11,0.005766795530269708
-MOCell,ZDT2,EP,12,0.005687794954959524
-MOCell,ZDT2,EP,13,0.005510659255723083
-MOCell,ZDT2,EP,14,0.005717156533058598
-MOCell,ZDT2,EP,15,0.005425917507508898
-MOCell,ZDT2,EP,16,0.0056517223187597665
-MOCell,ZDT2,EP,17,0.005651510513008828
-MOCell,ZDT2,EP,18,0.005764104100962397
-MOCell,ZDT2,EP,19,0.005346039168222849
-MOCell,ZDT2,EP,20,0.005596538495227718
-MOCell,ZDT2,EP,21,0.0055761824305665675
-MOCell,ZDT2,EP,22,0.005640730451589304
-MOCell,ZDT2,EP,23,0.006614235354372389
-MOCell,ZDT2,EP,24,0.005452039824686478
-MOCell,ZDT3,EP,0,0.0052858337577824654
-MOCell,ZDT3,EP,1,0.00469385650419013
-MOCell,ZDT3,EP,2,0.17850978473956378
-MOCell,ZDT3,EP,3,0.006120388043147407
-MOCell,ZDT3,EP,4,0.004733017949660079
-MOCell,ZDT3,EP,5,0.004876675418682974
-MOCell,ZDT3,EP,6,0.006091739950501385
-MOCell,ZDT3,EP,7,0.17858954319559345
-MOCell,ZDT3,EP,8,0.17830886412665636
-MOCell,ZDT3,EP,9,0.004624617940952591
-MOCell,ZDT3,EP,10,0.007071697346093808
-MOCell,ZDT3,EP,11,0.004710946756365519
-MOCell,ZDT3,EP,12,0.0053635939141688516
-MOCell,ZDT3,EP,13,0.004937683703491319
-MOCell,ZDT3,EP,14,0.004784645788151853
-MOCell,ZDT3,EP,15,0.005323873395587708
-MOCell,ZDT3,EP,16,0.004689701130185936
-MOCell,ZDT3,EP,17,0.17845971276733996
-MOCell,ZDT3,EP,18,0.004854786272941947
-MOCell,ZDT3,EP,19,0.005385290581610247
-MOCell,ZDT3,EP,20,0.005658771290592779
-MOCell,ZDT3,EP,21,0.0048651981039857795
-MOCell,ZDT3,EP,22,0.005186010286426179
-MOCell,ZDT3,EP,23,0.004952807045110183
-MOCell,ZDT3,EP,24,0.00514817128388545
-MOCell,ZDT4,EP,0,0.011282881019467617
-MOCell,ZDT4,EP,1,0.007445973464426214
-MOCell,ZDT4,EP,2,0.024896974945858838
-MOCell,ZDT4,EP,3,0.00966346687667996
-MOCell,ZDT4,EP,4,0.009626822373995092
-MOCell,ZDT4,EP,5,0.020679697016852135
-MOCell,ZDT4,EP,6,0.009265644826422226
-MOCell,ZDT4,EP,7,0.011969790353163846
-MOCell,ZDT4,EP,8,0.008365276378544326
-MOCell,ZDT4,EP,9,0.007944439015526883
-MOCell,ZDT4,EP,10,0.008182544609122266
-MOCell,ZDT4,EP,11,0.056201615248256
-MOCell,ZDT4,EP,12,0.008833927907200279
-MOCell,ZDT4,EP,13,0.007946456172747474
-MOCell,ZDT4,EP,14,0.010593525800907666
-MOCell,ZDT4,EP,15,0.007118096414029079
-MOCell,ZDT4,EP,16,0.012599513393948353
-MOCell,ZDT4,EP,17,0.009717011844409984
-MOCell,ZDT4,EP,18,0.007553467115677948
-MOCell,ZDT4,EP,19,0.009517134470068439
-MOCell,ZDT4,EP,20,0.009066791011438813
-MOCell,ZDT4,EP,21,0.006902731067400192
-MOCell,ZDT4,EP,22,0.007895512316882458
-MOCell,ZDT4,EP,23,0.008552712932522716
-MOCell,ZDT4,EP,24,0.008619995510675715
-MOCell,ZDT6,EP,0,0.00783307964769997
-MOCell,ZDT6,EP,1,0.008184858830076691
-MOCell,ZDT6,EP,2,0.00814852495530849
-MOCell,ZDT6,EP,3,0.009480609541986262
-MOCell,ZDT6,EP,4,0.00909016593208345
-MOCell,ZDT6,EP,5,0.0077463800017415485
-MOCell,ZDT6,EP,6,0.008119291238982584
-MOCell,ZDT6,EP,7,0.00944190528653266
-MOCell,ZDT6,EP,8,0.008544968208113901
-MOCell,ZDT6,EP,9,0.008586570027172447
-MOCell,ZDT6,EP,10,0.008593005304165624
-MOCell,ZDT6,EP,11,0.008431849337993125
-MOCell,ZDT6,EP,12,0.009334926443488989
-MOCell,ZDT6,EP,13,0.008946761706399131
-MOCell,ZDT6,EP,14,0.009017790428910932
-MOCell,ZDT6,EP,15,0.009463900191821528
-MOCell,ZDT6,EP,16,0.008425356747241208
-MOCell,ZDT6,EP,17,0.00792161231632671
-MOCell,ZDT6,EP,18,0.008401852044493396
-MOCell,ZDT6,EP,19,0.008096295129978781
-MOCell,ZDT6,EP,20,0.00787303868118372
-MOCell,ZDT6,EP,21,0.008927176428803585
-MOCell,ZDT6,EP,22,0.008344988545824411
-MOCell,ZDT6,EP,23,0.008244827388345477
-MOCell,ZDT6,EP,24,0.009606092515419632
-NSGAII,ZDT1,SPREAD,0,0.3597042786544321
-NSGAII,ZDT1,SPREAD,1,0.33454876263427785
-NSGAII,ZDT1,SPREAD,2,0.33077524872472275
-NSGAII,ZDT1,SPREAD,3,0.34515470499960904
-NSGAII,ZDT1,SPREAD,4,0.3658187499395339
-NSGAII,ZDT1,SPREAD,5,0.3292206375668387
-NSGAII,ZDT1,SPREAD,6,0.3186310140983855
-NSGAII,ZDT1,SPREAD,7,0.3163563605041694
-NSGAII,ZDT1,SPREAD,8,0.35230888732648624
-NSGAII,ZDT1,SPREAD,9,0.30234143072514114
-NSGAII,ZDT1,SPREAD,10,0.33067384336266825
-NSGAII,ZDT1,SPREAD,11,0.38565935109146426
-NSGAII,ZDT1,SPREAD,12,0.34230471293041975
-NSGAII,ZDT1,SPREAD,13,0.39169604103439115
-NSGAII,ZDT1,SPREAD,14,0.35675716505949706
-NSGAII,ZDT1,SPREAD,15,0.36762132763469935
-NSGAII,ZDT1,SPREAD,16,0.314029039114768
-NSGAII,ZDT1,SPREAD,17,0.35006230750513717
-NSGAII,ZDT1,SPREAD,18,0.29884705012776214
-NSGAII,ZDT1,SPREAD,19,0.32820944325055407
-NSGAII,ZDT1,SPREAD,20,0.3507151499635568
-NSGAII,ZDT1,SPREAD,21,0.3746679442483347
-NSGAII,ZDT1,SPREAD,22,0.3468001480806476
-NSGAII,ZDT1,SPREAD,23,0.35011079427982106
-NSGAII,ZDT1,SPREAD,24,0.3288057822250048
-NSGAII,ZDT2,SPREAD,0,0.3250314500402393
-NSGAII,ZDT2,SPREAD,1,0.36677792527124997
-NSGAII,ZDT2,SPREAD,2,0.3350261030778763
-NSGAII,ZDT2,SPREAD,3,0.3491497994279936
-NSGAII,ZDT2,SPREAD,4,0.380451397209086
-NSGAII,ZDT2,SPREAD,5,0.3520957709350979
-NSGAII,ZDT2,SPREAD,6,0.37689465605896866
-NSGAII,ZDT2,SPREAD,7,0.3683741742658329
-NSGAII,ZDT2,SPREAD,8,0.34005692804922616
-NSGAII,ZDT2,SPREAD,9,0.34392045981168246
-NSGAII,ZDT2,SPREAD,10,0.3707735326978121
-NSGAII,ZDT2,SPREAD,11,0.3997106297679926
-NSGAII,ZDT2,SPREAD,12,0.2983982383022609
-NSGAII,ZDT2,SPREAD,13,0.37930729697166726
-NSGAII,ZDT2,SPREAD,14,0.39775642494722696
-NSGAII,ZDT2,SPREAD,15,0.3194797932307301
-NSGAII,ZDT2,SPREAD,16,0.3655413990026936
-NSGAII,ZDT2,SPREAD,17,0.40975799228408444
-NSGAII,ZDT2,SPREAD,18,0.36321557279241473
-NSGAII,ZDT2,SPREAD,19,0.37668942542045275
-NSGAII,ZDT2,SPREAD,20,0.3464894392151031
-NSGAII,ZDT2,SPREAD,21,0.33827538328428797
-NSGAII,ZDT2,SPREAD,22,0.3704999385587335
-NSGAII,ZDT2,SPREAD,23,0.3315897653022451
-NSGAII,ZDT2,SPREAD,24,0.3317052151674138
-NSGAII,ZDT3,SPREAD,0,0.7580981684265657
-NSGAII,ZDT3,SPREAD,1,0.7408537170533513
-NSGAII,ZDT3,SPREAD,2,0.7448620938535758
-NSGAII,ZDT3,SPREAD,3,0.7619262558124427
-NSGAII,ZDT3,SPREAD,4,0.7197099192568179
-NSGAII,ZDT3,SPREAD,5,0.7410465549826922
-NSGAII,ZDT3,SPREAD,6,0.7475665935629232
-NSGAII,ZDT3,SPREAD,7,0.7334589123226456
-NSGAII,ZDT3,SPREAD,8,0.7308710246960989
-NSGAII,ZDT3,SPREAD,9,0.784632841132158
-NSGAII,ZDT3,SPREAD,10,0.7393504226301063
-NSGAII,ZDT3,SPREAD,11,0.7459253679757628
-NSGAII,ZDT3,SPREAD,12,0.7591829272058553
-NSGAII,ZDT3,SPREAD,13,0.7485635402965459
-NSGAII,ZDT3,SPREAD,14,0.7393496349372517
-NSGAII,ZDT3,SPREAD,15,0.7553789126875763
-NSGAII,ZDT3,SPREAD,16,0.7466172162865365
-NSGAII,ZDT3,SPREAD,17,0.7467106771643396
-NSGAII,ZDT3,SPREAD,18,0.7545306734611709
-NSGAII,ZDT3,SPREAD,19,0.747723152480346
-NSGAII,ZDT3,SPREAD,20,0.7455795255697719
-NSGAII,ZDT3,SPREAD,21,0.7214478186519938
-NSGAII,ZDT3,SPREAD,22,0.7556173910479697
-NSGAII,ZDT3,SPREAD,23,0.7404162265076764
-NSGAII,ZDT3,SPREAD,24,0.7594788521120185
-NSGAII,ZDT4,SPREAD,0,0.3454787436056765
-NSGAII,ZDT4,SPREAD,1,0.3580560270353391
-NSGAII,ZDT4,SPREAD,2,0.3519478925185655
-NSGAII,ZDT4,SPREAD,3,0.3851777747313105
-NSGAII,ZDT4,SPREAD,4,0.31217723121176816
-NSGAII,ZDT4,SPREAD,5,0.3949720362003976
-NSGAII,ZDT4,SPREAD,6,0.31773898043104615
-NSGAII,ZDT4,SPREAD,7,0.37516655507127006
-NSGAII,ZDT4,SPREAD,8,0.39057816976955634
-NSGAII,ZDT4,SPREAD,9,0.31520776566892167
-NSGAII,ZDT4,SPREAD,10,0.3596943941816766
-NSGAII,ZDT4,SPREAD,11,0.3106745528733589
-NSGAII,ZDT4,SPREAD,12,0.3638546653409365
-NSGAII,ZDT4,SPREAD,13,0.34558789738816753
-NSGAII,ZDT4,SPREAD,14,0.38402753831631997
-NSGAII,ZDT4,SPREAD,15,0.3101036964624899
-NSGAII,ZDT4,SPREAD,16,0.36413838081991345
-NSGAII,ZDT4,SPREAD,17,0.37120744217934426
-NSGAII,ZDT4,SPREAD,18,0.40614411455402954
-NSGAII,ZDT4,SPREAD,19,0.33607570458170183
-NSGAII,ZDT4,SPREAD,20,0.3539863964545758
-NSGAII,ZDT4,SPREAD,21,0.34577132164362095
-NSGAII,ZDT4,SPREAD,22,0.3574188379563637
-NSGAII,ZDT4,SPREAD,23,0.3747366333345123
-NSGAII,ZDT4,SPREAD,24,0.3475848191884235
-NSGAII,ZDT6,SPREAD,0,0.4550306771217356
-NSGAII,ZDT6,SPREAD,1,0.46351287235790023
-NSGAII,ZDT6,SPREAD,2,0.444590159312426
-NSGAII,ZDT6,SPREAD,3,0.46993738677744307
-NSGAII,ZDT6,SPREAD,4,0.4524136594518953
-NSGAII,ZDT6,SPREAD,5,0.47578972993472274
-NSGAII,ZDT6,SPREAD,6,0.48630344889068733
-NSGAII,ZDT6,SPREAD,7,0.4799469812395147
-NSGAII,ZDT6,SPREAD,8,0.46987267117831766
-NSGAII,ZDT6,SPREAD,9,0.47358493755127407
-NSGAII,ZDT6,SPREAD,10,0.409988017989533
-NSGAII,ZDT6,SPREAD,11,0.46952179899798213
-NSGAII,ZDT6,SPREAD,12,0.46040736143346417
-NSGAII,ZDT6,SPREAD,13,0.518542893091306
-NSGAII,ZDT6,SPREAD,14,0.5235362367711066
-NSGAII,ZDT6,SPREAD,15,0.5087909494149135
-NSGAII,ZDT6,SPREAD,16,0.4531062141675249
-NSGAII,ZDT6,SPREAD,17,0.4825943930003303
-NSGAII,ZDT6,SPREAD,18,0.47911778587527437
-NSGAII,ZDT6,SPREAD,19,0.5022490588597259
-NSGAII,ZDT6,SPREAD,20,0.47539665556319777
-NSGAII,ZDT6,SPREAD,21,0.4706678922164969
-NSGAII,ZDT6,SPREAD,22,0.4543730013863954
-NSGAII,ZDT6,SPREAD,23,0.4503611612511146
-NSGAII,ZDT6,SPREAD,24,0.4828271917624841
-SMPSO,ZDT1,SPREAD,0,0.07877037004635666
-SMPSO,ZDT1,SPREAD,1,0.06570218699214934
-SMPSO,ZDT1,SPREAD,2,0.0688972107634075
-SMPSO,ZDT1,SPREAD,3,0.08453359549793571
-SMPSO,ZDT1,SPREAD,4,0.05448600995768112
-SMPSO,ZDT1,SPREAD,5,0.08805288310386693
-SMPSO,ZDT1,SPREAD,6,0.06101230823401074
-SMPSO,ZDT1,SPREAD,7,0.06018284498150539
-SMPSO,ZDT1,SPREAD,8,0.08418517588618984
-SMPSO,ZDT1,SPREAD,9,0.08316772114552311
-SMPSO,ZDT1,SPREAD,10,0.06383886127068843
-SMPSO,ZDT1,SPREAD,11,0.08329665117022522
-SMPSO,ZDT1,SPREAD,12,0.07079108709935315
-SMPSO,ZDT1,SPREAD,13,0.06916411925500354
-SMPSO,ZDT1,SPREAD,14,0.06498530507440331
-SMPSO,ZDT1,SPREAD,15,0.08386893840013623
-SMPSO,ZDT1,SPREAD,16,0.052205490956055575
-SMPSO,ZDT1,SPREAD,17,0.07724658428305478
-SMPSO,ZDT1,SPREAD,18,0.05607323169257624
-SMPSO,ZDT1,SPREAD,19,0.07581997051743676
-SMPSO,ZDT1,SPREAD,20,0.06593396519754334
-SMPSO,ZDT1,SPREAD,21,0.09423571439803134
-SMPSO,ZDT1,SPREAD,22,0.08562420074176752
-SMPSO,ZDT1,SPREAD,23,0.05852007659545201
-SMPSO,ZDT1,SPREAD,24,0.06617820500438007
-SMPSO,ZDT2,SPREAD,0,0.052473767810297965
-SMPSO,ZDT2,SPREAD,1,0.07193533684167998
-SMPSO,ZDT2,SPREAD,2,0.07771921557873945
-SMPSO,ZDT2,SPREAD,3,0.07351511552110014
-SMPSO,ZDT2,SPREAD,4,0.06004872204236899
-SMPSO,ZDT2,SPREAD,5,0.07572354835150959
-SMPSO,ZDT2,SPREAD,6,0.07360783008553673
-SMPSO,ZDT2,SPREAD,7,0.08323436886838843
-SMPSO,ZDT2,SPREAD,8,0.07472009767749276
-SMPSO,ZDT2,SPREAD,9,0.09587927953842817
-SMPSO,ZDT2,SPREAD,10,0.06868111489325832
-SMPSO,ZDT2,SPREAD,11,0.08892274763017628
-SMPSO,ZDT2,SPREAD,12,0.0648997823674991
-SMPSO,ZDT2,SPREAD,13,0.0970874224355603
-SMPSO,ZDT2,SPREAD,14,0.05811813132248097
-SMPSO,ZDT2,SPREAD,15,0.06184671640609026
-SMPSO,ZDT2,SPREAD,16,0.0804299604468957
-SMPSO,ZDT2,SPREAD,17,0.0659082045142574
-SMPSO,ZDT2,SPREAD,18,0.06906935494758557
-SMPSO,ZDT2,SPREAD,19,0.06462441605185514
-SMPSO,ZDT2,SPREAD,20,0.07479012708665793
-SMPSO,ZDT2,SPREAD,21,0.08148676402666619
-SMPSO,ZDT2,SPREAD,22,0.06009293676831447
-SMPSO,ZDT2,SPREAD,23,0.06584839818415163
-SMPSO,ZDT2,SPREAD,24,0.06071814967161266
-SMPSO,ZDT3,SPREAD,0,0.7126787314004762
-SMPSO,ZDT3,SPREAD,1,0.7049671811903528
-SMPSO,ZDT3,SPREAD,2,0.7094853503541186
-SMPSO,ZDT3,SPREAD,3,0.7063749562050842
-SMPSO,ZDT3,SPREAD,4,0.7049592222730207
-SMPSO,ZDT3,SPREAD,5,0.9139703702200359
-SMPSO,ZDT3,SPREAD,6,0.7095592345582149
-SMPSO,ZDT3,SPREAD,7,0.7088421860240527
-SMPSO,ZDT3,SPREAD,8,0.7221278246123332
-SMPSO,ZDT3,SPREAD,9,0.7201062605802561
-SMPSO,ZDT3,SPREAD,10,0.7078304880978253
-SMPSO,ZDT3,SPREAD,11,0.7097406785738426
-SMPSO,ZDT3,SPREAD,12,0.7033561874069661
-SMPSO,ZDT3,SPREAD,13,0.71017685972319
-SMPSO,ZDT3,SPREAD,14,0.7057485892303493
-SMPSO,ZDT3,SPREAD,15,0.7128917033073275
-SMPSO,ZDT3,SPREAD,16,0.7077738823490235
-SMPSO,ZDT3,SPREAD,17,0.7353464572151877
-SMPSO,ZDT3,SPREAD,18,0.716767434568666
-SMPSO,ZDT3,SPREAD,19,0.7092827792141365
-SMPSO,ZDT3,SPREAD,20,0.7366826513894823
-SMPSO,ZDT3,SPREAD,21,0.712238951196867
-SMPSO,ZDT3,SPREAD,22,0.987399939205753
-SMPSO,ZDT3,SPREAD,23,0.7184968752932221
-SMPSO,ZDT3,SPREAD,24,0.7094783581069618
-SMPSO,ZDT4,SPREAD,0,0.09332567446062012
-SMPSO,ZDT4,SPREAD,1,0.08615109388498057
-SMPSO,ZDT4,SPREAD,2,0.09876115069873224
-SMPSO,ZDT4,SPREAD,3,0.08794804562450084
-SMPSO,ZDT4,SPREAD,4,0.07183943597721597
-SMPSO,ZDT4,SPREAD,5,0.0868261740282911
-SMPSO,ZDT4,SPREAD,6,0.09566425888433241
-SMPSO,ZDT4,SPREAD,7,0.09031991927018267
-SMPSO,ZDT4,SPREAD,8,0.09234122097494592
-SMPSO,ZDT4,SPREAD,9,0.07884330019824241
-SMPSO,ZDT4,SPREAD,10,0.10457073704448348
-SMPSO,ZDT4,SPREAD,11,0.08039692243050611
-SMPSO,ZDT4,SPREAD,12,0.09358023386387374
-SMPSO,ZDT4,SPREAD,13,0.1142093209469613
-SMPSO,ZDT4,SPREAD,14,0.1081246533425943
-SMPSO,ZDT4,SPREAD,15,0.08141023369108702
-SMPSO,ZDT4,SPREAD,16,0.10236119914689841
-SMPSO,ZDT4,SPREAD,17,0.10375750675292587
-SMPSO,ZDT4,SPREAD,18,0.08488706910479102
-SMPSO,ZDT4,SPREAD,19,0.09591684313881954
-SMPSO,ZDT4,SPREAD,20,0.08671270793447862
-SMPSO,ZDT4,SPREAD,21,0.09039183158706525
-SMPSO,ZDT4,SPREAD,22,0.11142534724089513
-SMPSO,ZDT4,SPREAD,23,0.07903842362165697
-SMPSO,ZDT4,SPREAD,24,0.09036706327840585
-SMPSO,ZDT6,SPREAD,0,0.2594740059273828
-SMPSO,ZDT6,SPREAD,1,0.2538558335258615
-SMPSO,ZDT6,SPREAD,2,0.2441512205010663
-SMPSO,ZDT6,SPREAD,3,0.25134717093225
-SMPSO,ZDT6,SPREAD,4,0.24633961053990772
-SMPSO,ZDT6,SPREAD,5,0.25680943172287546
-SMPSO,ZDT6,SPREAD,6,0.24942903546876669
-SMPSO,ZDT6,SPREAD,7,0.25345839080220706
-SMPSO,ZDT6,SPREAD,8,0.23656049076465177
-SMPSO,ZDT6,SPREAD,9,0.24818729049451482
-SMPSO,ZDT6,SPREAD,10,0.24143112450935114
-SMPSO,ZDT6,SPREAD,11,0.23828895378280385
-SMPSO,ZDT6,SPREAD,12,0.24303206423010523
-SMPSO,ZDT6,SPREAD,13,0.2627863537515415
-SMPSO,ZDT6,SPREAD,14,0.2675144715792815
-SMPSO,ZDT6,SPREAD,15,0.2546701837416808
-SMPSO,ZDT6,SPREAD,16,0.23280822574217483
-SMPSO,ZDT6,SPREAD,17,0.23572472234329528
-SMPSO,ZDT6,SPREAD,18,0.2595786886750259
-SMPSO,ZDT6,SPREAD,19,0.24889855973677374
-SMPSO,ZDT6,SPREAD,20,0.25150270811963793
-SMPSO,ZDT6,SPREAD,21,0.24549277657802404
-SMPSO,ZDT6,SPREAD,22,0.26084004556878954
-SMPSO,ZDT6,SPREAD,23,0.24883445430889228
-SMPSO,ZDT6,SPREAD,24,0.24410946663447244
-MOEAD,ZDT1,SPREAD,0,0.3718683343806876
-MOEAD,ZDT1,SPREAD,1,0.33324460089926083
-MOEAD,ZDT1,SPREAD,2,0.3503479465822004
-MOEAD,ZDT1,SPREAD,3,0.4608773431172141
-MOEAD,ZDT1,SPREAD,4,0.38003466430655247
-MOEAD,ZDT1,SPREAD,5,0.3316509550828033
-MOEAD,ZDT1,SPREAD,6,0.3202788331328654
-MOEAD,ZDT1,SPREAD,7,0.37811014246450586
-MOEAD,ZDT1,SPREAD,8,0.29155567817702205
-MOEAD,ZDT1,SPREAD,9,0.29691373583972497
-MOEAD,ZDT1,SPREAD,10,0.3554643000741265
-MOEAD,ZDT1,SPREAD,11,0.35356133177691174
-MOEAD,ZDT1,SPREAD,12,0.5369118669525953
-MOEAD,ZDT1,SPREAD,13,0.34657323447222016
-MOEAD,ZDT1,SPREAD,14,0.3555916122067756
-MOEAD,ZDT1,SPREAD,15,0.4890935459175368
-MOEAD,ZDT1,SPREAD,16,0.38976503508114285
-MOEAD,ZDT1,SPREAD,17,0.40550432567484007
-MOEAD,ZDT1,SPREAD,18,0.3344931060261711
-MOEAD,ZDT1,SPREAD,19,0.39720715063371675
-MOEAD,ZDT1,SPREAD,20,0.343100562437995
-MOEAD,ZDT1,SPREAD,21,0.3601258949096277
-MOEAD,ZDT1,SPREAD,22,0.4396031693801682
-MOEAD,ZDT1,SPREAD,23,0.4717068962966565
-MOEAD,ZDT1,SPREAD,24,0.3446789305249242
-MOEAD,ZDT2,SPREAD,0,0.26262036940025213
-MOEAD,ZDT2,SPREAD,1,0.2979331303805098
-MOEAD,ZDT2,SPREAD,2,0.2448682040617928
-MOEAD,ZDT2,SPREAD,3,0.4098683907021759
-MOEAD,ZDT2,SPREAD,4,0.2433820939599511
-MOEAD,ZDT2,SPREAD,5,0.3332559721188299
-MOEAD,ZDT2,SPREAD,6,0.28527489582510157
-MOEAD,ZDT2,SPREAD,7,0.2973055555283842
-MOEAD,ZDT2,SPREAD,8,0.2760005617112342
-MOEAD,ZDT2,SPREAD,9,0.22849203424623193
-MOEAD,ZDT2,SPREAD,10,0.30292511639505415
-MOEAD,ZDT2,SPREAD,11,0.28725522915550555
-MOEAD,ZDT2,SPREAD,12,0.22220538564031547
-MOEAD,ZDT2,SPREAD,13,0.39184520161784214
-MOEAD,ZDT2,SPREAD,14,0.3800158207157726
-MOEAD,ZDT2,SPREAD,15,0.7380709370707357
-MOEAD,ZDT2,SPREAD,16,0.2626251705897131
-MOEAD,ZDT2,SPREAD,17,0.4060536756792012
-MOEAD,ZDT2,SPREAD,18,0.24921043721538516
-MOEAD,ZDT2,SPREAD,19,0.3299904625608392
-MOEAD,ZDT2,SPREAD,20,0.26162296626169435
-MOEAD,ZDT2,SPREAD,21,0.40299335601679004
-MOEAD,ZDT2,SPREAD,22,0.2607430133915219
-MOEAD,ZDT2,SPREAD,23,0.3020573969371334
-MOEAD,ZDT2,SPREAD,24,0.3585587402902706
-MOEAD,ZDT3,SPREAD,0,1.0309487209033317
-MOEAD,ZDT3,SPREAD,1,0.9391306247242727
-MOEAD,ZDT3,SPREAD,2,1.028341638356722
-MOEAD,ZDT3,SPREAD,3,0.9857765566023965
-MOEAD,ZDT3,SPREAD,4,0.9716941181807691
-MOEAD,ZDT3,SPREAD,5,0.9957547858665113
-MOEAD,ZDT3,SPREAD,6,0.9455003642392036
-MOEAD,ZDT3,SPREAD,7,0.9372549564684584
-MOEAD,ZDT3,SPREAD,8,0.9983503292879756
-MOEAD,ZDT3,SPREAD,9,1.0205698294891135
-MOEAD,ZDT3,SPREAD,10,0.9841849623912194
-MOEAD,ZDT3,SPREAD,11,1.1361749419815397
-MOEAD,ZDT3,SPREAD,12,0.9857595198646916
-MOEAD,ZDT3,SPREAD,13,1.0180154785259155
-MOEAD,ZDT3,SPREAD,14,0.9698648536520054
-MOEAD,ZDT3,SPREAD,15,0.9974381735027635
-MOEAD,ZDT3,SPREAD,16,0.9952979948361415
-MOEAD,ZDT3,SPREAD,17,1.015324747440075
-MOEAD,ZDT3,SPREAD,18,0.9785553041088103
-MOEAD,ZDT3,SPREAD,19,0.9974453404602378
-MOEAD,ZDT3,SPREAD,20,1.000752351347783
-MOEAD,ZDT3,SPREAD,21,0.9526076214751779
-MOEAD,ZDT3,SPREAD,22,0.9959549975985971
-MOEAD,ZDT3,SPREAD,23,1.0379651151752571
-MOEAD,ZDT3,SPREAD,24,0.9751610203033255
-MOEAD,ZDT4,SPREAD,0,0.9454328644266589
-MOEAD,ZDT4,SPREAD,1,0.625535260674619
-MOEAD,ZDT4,SPREAD,2,1.1481275793929062
-MOEAD,ZDT4,SPREAD,3,1.206492899230103
-MOEAD,ZDT4,SPREAD,4,1.0598968975511902
-MOEAD,ZDT4,SPREAD,5,1.0003906518862598
-MOEAD,ZDT4,SPREAD,6,0.8480847950084279
-MOEAD,ZDT4,SPREAD,7,0.7980108369007985
-MOEAD,ZDT4,SPREAD,8,1.0609908679650786
-MOEAD,ZDT4,SPREAD,9,1.0126105635105012
-MOEAD,ZDT4,SPREAD,10,1.0156602109594681
-MOEAD,ZDT4,SPREAD,11,1.1629690711539744
-MOEAD,ZDT4,SPREAD,12,0.9530482855574443
-MOEAD,ZDT4,SPREAD,13,0.9343634794522868
-MOEAD,ZDT4,SPREAD,14,0.6423341988064257
-MOEAD,ZDT4,SPREAD,15,0.8673782744289117
-MOEAD,ZDT4,SPREAD,16,0.9015927745282144
-MOEAD,ZDT4,SPREAD,17,0.998329757155066
-MOEAD,ZDT4,SPREAD,18,1.0211664084597845
-MOEAD,ZDT4,SPREAD,19,0.8896150397674812
-MOEAD,ZDT4,SPREAD,20,0.5838594432760247
-MOEAD,ZDT4,SPREAD,21,0.9284438367817565
-MOEAD,ZDT4,SPREAD,22,0.9269421413108901
-MOEAD,ZDT4,SPREAD,23,1.0749797990020358
-MOEAD,ZDT4,SPREAD,24,0.9853047375161286
-MOEAD,ZDT6,SPREAD,0,0.29072770929689284
-MOEAD,ZDT6,SPREAD,1,0.29037579334844066
-MOEAD,ZDT6,SPREAD,2,0.29033362698999843
-MOEAD,ZDT6,SPREAD,3,0.2909368982265916
-MOEAD,ZDT6,SPREAD,4,0.29050184406004925
-MOEAD,ZDT6,SPREAD,5,0.291685204128284
-MOEAD,ZDT6,SPREAD,6,0.29103892823044286
-MOEAD,ZDT6,SPREAD,7,0.290605669543792
-MOEAD,ZDT6,SPREAD,8,0.29033304930651344
-MOEAD,ZDT6,SPREAD,9,0.29009052285161663
-MOEAD,ZDT6,SPREAD,10,0.2914044610221572
-MOEAD,ZDT6,SPREAD,11,0.29072385928158306
-MOEAD,ZDT6,SPREAD,12,0.2904985634085722
-MOEAD,ZDT6,SPREAD,13,0.2907122208389532
-MOEAD,ZDT6,SPREAD,14,0.29049328713220807
-MOEAD,ZDT6,SPREAD,15,0.29020513312641366
-MOEAD,ZDT6,SPREAD,16,0.2927120631453264
-MOEAD,ZDT6,SPREAD,17,0.2918796585835652
-MOEAD,ZDT6,SPREAD,18,0.29074844684657913
-MOEAD,ZDT6,SPREAD,19,0.2911257231841104
-MOEAD,ZDT6,SPREAD,20,0.29036678033788144
-MOEAD,ZDT6,SPREAD,21,0.2911444689358656
-MOEAD,ZDT6,SPREAD,22,0.2904878255821205
-MOEAD,ZDT6,SPREAD,23,0.2904706927968557
-MOEAD,ZDT6,SPREAD,24,0.2936829449959103
-GDE3,ZDT1,SPREAD,0,0.35087037400361004
-GDE3,ZDT1,SPREAD,1,0.3264598979443338
-GDE3,ZDT1,SPREAD,2,0.3493497618449951
-GDE3,ZDT1,SPREAD,3,0.36341575395390346
-GDE3,ZDT1,SPREAD,4,0.3541803675254034
-GDE3,ZDT1,SPREAD,5,0.3378696301713576
-GDE3,ZDT1,SPREAD,6,0.2990781352545653
-GDE3,ZDT1,SPREAD,7,0.3730988402556424
-GDE3,ZDT1,SPREAD,8,0.32834790712005246
-GDE3,ZDT1,SPREAD,9,0.3774583240957988
-GDE3,ZDT1,SPREAD,10,0.33141446982795114
-GDE3,ZDT1,SPREAD,11,0.3164418099276846
-GDE3,ZDT1,SPREAD,12,0.32227389822088537
-GDE3,ZDT1,SPREAD,13,0.314094130857519
-GDE3,ZDT1,SPREAD,14,0.28752144913837874
-GDE3,ZDT1,SPREAD,15,0.33302060999651756
-GDE3,ZDT1,SPREAD,16,0.3716517353261497
-GDE3,ZDT1,SPREAD,17,0.32808898088207994
-GDE3,ZDT1,SPREAD,18,0.30909110649696386
-GDE3,ZDT1,SPREAD,19,0.36269226955668693
-GDE3,ZDT1,SPREAD,20,0.343963778207159
-GDE3,ZDT1,SPREAD,21,0.35240042707537517
-GDE3,ZDT1,SPREAD,22,0.2848550666526477
-GDE3,ZDT1,SPREAD,23,0.3484289833899461
-GDE3,ZDT1,SPREAD,24,0.3218570113002398
-GDE3,ZDT2,SPREAD,0,0.3217184746890113
-GDE3,ZDT2,SPREAD,1,0.3795974674884463
-GDE3,ZDT2,SPREAD,2,0.3633567771212536
-GDE3,ZDT2,SPREAD,3,0.3252528223718239
-GDE3,ZDT2,SPREAD,4,0.3548967965095674
-GDE3,ZDT2,SPREAD,5,0.33260031555333525
-GDE3,ZDT2,SPREAD,6,0.3176032135028579
-GDE3,ZDT2,SPREAD,7,0.3931699253966483
-GDE3,ZDT2,SPREAD,8,0.3183238877163939
-GDE3,ZDT2,SPREAD,9,0.3080411556623144
-GDE3,ZDT2,SPREAD,10,0.3236229629141184
-GDE3,ZDT2,SPREAD,11,0.3295876685121912
-GDE3,ZDT2,SPREAD,12,0.3448708400517598
-GDE3,ZDT2,SPREAD,13,0.35987080331604393
-GDE3,ZDT2,SPREAD,14,0.3581647934843089
-GDE3,ZDT2,SPREAD,15,0.36263999323479307
-GDE3,ZDT2,SPREAD,16,0.3322429628142924
-GDE3,ZDT2,SPREAD,17,0.31222374459610913
-GDE3,ZDT2,SPREAD,18,0.3451956331630816
-GDE3,ZDT2,SPREAD,19,0.34911088593856593
-GDE3,ZDT2,SPREAD,20,0.3787905166667708
-GDE3,ZDT2,SPREAD,21,0.3042491887175458
-GDE3,ZDT2,SPREAD,22,0.3203904179464179
-GDE3,ZDT2,SPREAD,23,0.3187809998404804
-GDE3,ZDT2,SPREAD,24,0.37909574750823516
-GDE3,ZDT3,SPREAD,0,0.722200010587851
-GDE3,ZDT3,SPREAD,1,0.7438488232137838
-GDE3,ZDT3,SPREAD,2,0.7281090551517544
-GDE3,ZDT3,SPREAD,3,0.735241520176289
-GDE3,ZDT3,SPREAD,4,0.739055133900176
-GDE3,ZDT3,SPREAD,5,0.7297443810192175
-GDE3,ZDT3,SPREAD,6,0.720310036293071
-GDE3,ZDT3,SPREAD,7,0.7277292766776117
-GDE3,ZDT3,SPREAD,8,0.7264581152690135
-GDE3,ZDT3,SPREAD,9,0.7375465187351452
-GDE3,ZDT3,SPREAD,10,0.7331479768195132
-GDE3,ZDT3,SPREAD,11,0.7512913935229174
-GDE3,ZDT3,SPREAD,12,0.719893886371567
-GDE3,ZDT3,SPREAD,13,0.7408422024000031
-GDE3,ZDT3,SPREAD,14,0.7241929467880861
-GDE3,ZDT3,SPREAD,15,0.7259893317082782
-GDE3,ZDT3,SPREAD,16,0.7529192695286221
-GDE3,ZDT3,SPREAD,17,0.7470870963804672
-GDE3,ZDT3,SPREAD,18,0.7637653999994279
-GDE3,ZDT3,SPREAD,19,0.717275968157902
-GDE3,ZDT3,SPREAD,20,0.7341274358621318
-GDE3,ZDT3,SPREAD,21,0.7379839203142934
-GDE3,ZDT3,SPREAD,22,0.7376522822247741
-GDE3,ZDT3,SPREAD,23,0.7335251089653541
-GDE3,ZDT3,SPREAD,24,0.7305239129899058
-GDE3,ZDT4,SPREAD,0,0.9139808116636251
-GDE3,ZDT4,SPREAD,1,0.893564237352602
-GDE3,ZDT4,SPREAD,2,0.794921229120273
-GDE3,ZDT4,SPREAD,3,0.8898505550396432
-GDE3,ZDT4,SPREAD,4,0.703852580886029
-GDE3,ZDT4,SPREAD,5,0.8999515991934169
-GDE3,ZDT4,SPREAD,6,0.886749621596179
-GDE3,ZDT4,SPREAD,7,0.9070876266237397
-GDE3,ZDT4,SPREAD,8,0.8916433341590307
-GDE3,ZDT4,SPREAD,9,0.850932746335675
-GDE3,ZDT4,SPREAD,10,0.8397986150372764
-GDE3,ZDT4,SPREAD,11,0.9079282402247885
-GDE3,ZDT4,SPREAD,12,0.8998613239438049
-GDE3,ZDT4,SPREAD,13,0.8365937209752012
-GDE3,ZDT4,SPREAD,14,0.8021114147193301
-GDE3,ZDT4,SPREAD,15,1.0
-GDE3,ZDT4,SPREAD,16,0.9380128129183435
-GDE3,ZDT4,SPREAD,17,0.891001380918847
-GDE3,ZDT4,SPREAD,18,0.935754410282641
-GDE3,ZDT4,SPREAD,19,0.9005682753432734
-GDE3,ZDT4,SPREAD,20,0.8852979558023615
-GDE3,ZDT4,SPREAD,21,0.9554997384272851
-GDE3,ZDT4,SPREAD,22,0.8461001730856484
-GDE3,ZDT4,SPREAD,23,0.9000075270985044
-GDE3,ZDT4,SPREAD,24,0.7947155133010997
-GDE3,ZDT6,SPREAD,0,0.7160185692571231
-GDE3,ZDT6,SPREAD,1,0.7108579078227879
-GDE3,ZDT6,SPREAD,2,0.6767013173666707
-GDE3,ZDT6,SPREAD,3,0.7255218732383036
-GDE3,ZDT6,SPREAD,4,0.6769265683532082
-GDE3,ZDT6,SPREAD,5,0.6334546862814165
-GDE3,ZDT6,SPREAD,6,0.6223500963145411
-GDE3,ZDT6,SPREAD,7,0.6635212848166614
-GDE3,ZDT6,SPREAD,8,0.7054508381160869
-GDE3,ZDT6,SPREAD,9,0.6340840058699219
-GDE3,ZDT6,SPREAD,10,0.687120938722491
-GDE3,ZDT6,SPREAD,11,0.6669728942869917
-GDE3,ZDT6,SPREAD,12,0.6787307610324242
-GDE3,ZDT6,SPREAD,13,0.6762145743620037
-GDE3,ZDT6,SPREAD,14,0.7051088622702592
-GDE3,ZDT6,SPREAD,15,0.6625919013138918
-GDE3,ZDT6,SPREAD,16,0.6388897241599527
-GDE3,ZDT6,SPREAD,17,0.6419145613364394
-GDE3,ZDT6,SPREAD,18,0.6809477695470044
-GDE3,ZDT6,SPREAD,19,0.678936683618932
-GDE3,ZDT6,SPREAD,20,0.6728765423390524
-GDE3,ZDT6,SPREAD,21,0.6709463564757799
-GDE3,ZDT6,SPREAD,22,0.6502630869360643
-GDE3,ZDT6,SPREAD,23,0.6114021672265311
-GDE3,ZDT6,SPREAD,24,0.6251664259570181
-MOCell,ZDT1,SPREAD,0,0.07343438026674341
-MOCell,ZDT1,SPREAD,1,0.0948628916774176
-MOCell,ZDT1,SPREAD,2,0.07140661891040567
-MOCell,ZDT1,SPREAD,3,0.07617780356610866
-MOCell,ZDT1,SPREAD,4,0.09417472339276654
-MOCell,ZDT1,SPREAD,5,0.06463241826463606
-MOCell,ZDT1,SPREAD,6,0.06969646979490673
-MOCell,ZDT1,SPREAD,7,0.09041769284977437
-MOCell,ZDT1,SPREAD,8,0.06689907862948546
-MOCell,ZDT1,SPREAD,9,0.07872350397293718
-MOCell,ZDT1,SPREAD,10,0.06328862204556825
-MOCell,ZDT1,SPREAD,11,0.07338401769999012
-MOCell,ZDT1,SPREAD,12,0.08587728874507028
-MOCell,ZDT1,SPREAD,13,0.06679640450378926
-MOCell,ZDT1,SPREAD,14,0.06478576735539866
-MOCell,ZDT1,SPREAD,15,0.07438221168365286
-MOCell,ZDT1,SPREAD,16,0.0677726148990504
-MOCell,ZDT1,SPREAD,17,0.09320743526068442
-MOCell,ZDT1,SPREAD,18,0.0700248680863267
-MOCell,ZDT1,SPREAD,19,0.06765117228116681
-MOCell,ZDT1,SPREAD,20,0.08482914229892008
-MOCell,ZDT1,SPREAD,21,0.07165255649867075
-MOCell,ZDT1,SPREAD,22,0.06627407825536485
-MOCell,ZDT1,SPREAD,23,0.05692210831726169
-MOCell,ZDT1,SPREAD,24,0.08132406098219869
-MOCell,ZDT2,SPREAD,0,0.08782020590350975
-MOCell,ZDT2,SPREAD,1,0.09268247266992377
-MOCell,ZDT2,SPREAD,2,0.09172529926800452
-MOCell,ZDT2,SPREAD,3,0.08405260494521696
-MOCell,ZDT2,SPREAD,4,0.06911509985874924
-MOCell,ZDT2,SPREAD,5,0.09452355267820217
-MOCell,ZDT2,SPREAD,6,0.09414128417327773
-MOCell,ZDT2,SPREAD,7,0.06709642796757738
-MOCell,ZDT2,SPREAD,8,0.08496564955263075
-MOCell,ZDT2,SPREAD,9,0.07828081512531268
-MOCell,ZDT2,SPREAD,10,0.07569130835715353
-MOCell,ZDT2,SPREAD,11,0.08034797174660582
-MOCell,ZDT2,SPREAD,12,0.06464447213573299
-MOCell,ZDT2,SPREAD,13,0.089517602156249
-MOCell,ZDT2,SPREAD,14,0.08541376636944421
-MOCell,ZDT2,SPREAD,15,0.10444186988044639
-MOCell,ZDT2,SPREAD,16,0.0696922711790469
-MOCell,ZDT2,SPREAD,17,0.09293729899583078
-MOCell,ZDT2,SPREAD,18,0.10549444028296483
-MOCell,ZDT2,SPREAD,19,0.05863496709335276
-MOCell,ZDT2,SPREAD,20,0.08530804762524266
-MOCell,ZDT2,SPREAD,21,0.06425171370821574
-MOCell,ZDT2,SPREAD,22,0.08131851534257685
-MOCell,ZDT2,SPREAD,23,0.10454540571060698
-MOCell,ZDT2,SPREAD,24,0.06229844369654535
-MOCell,ZDT3,SPREAD,0,0.7042929412404576
-MOCell,ZDT3,SPREAD,1,0.7033186186383928
-MOCell,ZDT3,SPREAD,2,0.7091257504972578
-MOCell,ZDT3,SPREAD,3,0.703321802419635
-MOCell,ZDT3,SPREAD,4,0.7026798057506642
-MOCell,ZDT3,SPREAD,5,0.6966584510614754
-MOCell,ZDT3,SPREAD,6,0.7032063438140435
-MOCell,ZDT3,SPREAD,7,0.7093252630729485
-MOCell,ZDT3,SPREAD,8,0.7119195256733443
-MOCell,ZDT3,SPREAD,9,0.7063836153464558
-MOCell,ZDT3,SPREAD,10,0.7130833062231139
-MOCell,ZDT3,SPREAD,11,0.7066134169686922
-MOCell,ZDT3,SPREAD,12,0.7073083084470932
-MOCell,ZDT3,SPREAD,13,0.707261896156364
-MOCell,ZDT3,SPREAD,14,0.7034291588473258
-MOCell,ZDT3,SPREAD,15,0.7034804439333505
-MOCell,ZDT3,SPREAD,16,0.7019286888227618
-MOCell,ZDT3,SPREAD,17,0.7160276010515972
-MOCell,ZDT3,SPREAD,18,0.705243766558092
-MOCell,ZDT3,SPREAD,19,0.7113934901904438
-MOCell,ZDT3,SPREAD,20,0.699891935929164
-MOCell,ZDT3,SPREAD,21,0.7025851759098032
-MOCell,ZDT3,SPREAD,22,0.7043870842489337
-MOCell,ZDT3,SPREAD,23,0.7032447868002772
-MOCell,ZDT3,SPREAD,24,0.7142548620534463
-MOCell,ZDT4,SPREAD,0,0.16388463560222874
-MOCell,ZDT4,SPREAD,1,0.10566030066512519
-MOCell,ZDT4,SPREAD,2,0.1855665202857461
-MOCell,ZDT4,SPREAD,3,0.1364270941948953
-MOCell,ZDT4,SPREAD,4,0.12559725594077678
-MOCell,ZDT4,SPREAD,5,0.14987623839625674
-MOCell,ZDT4,SPREAD,6,0.11406206504508123
-MOCell,ZDT4,SPREAD,7,0.142400242710102
-MOCell,ZDT4,SPREAD,8,0.10809023571798808
-MOCell,ZDT4,SPREAD,9,0.12268541948693613
-MOCell,ZDT4,SPREAD,10,0.10904081318927016
-MOCell,ZDT4,SPREAD,11,0.22246784049905982
-MOCell,ZDT4,SPREAD,12,0.1164776787739277
-MOCell,ZDT4,SPREAD,13,0.11377813183929336
-MOCell,ZDT4,SPREAD,14,0.15538847892028004
-MOCell,ZDT4,SPREAD,15,0.11928103195189438
-MOCell,ZDT4,SPREAD,16,0.1535364175127189
-MOCell,ZDT4,SPREAD,17,0.11988314138560784
-MOCell,ZDT4,SPREAD,18,0.10934615391738807
-MOCell,ZDT4,SPREAD,19,0.14430466505787945
-MOCell,ZDT4,SPREAD,20,0.12683498715905103
-MOCell,ZDT4,SPREAD,21,0.08883652172134196
-MOCell,ZDT4,SPREAD,22,0.09857952878866653
-MOCell,ZDT4,SPREAD,23,0.10005541456644888
-MOCell,ZDT4,SPREAD,24,0.11827995389517985
-MOCell,ZDT6,SPREAD,0,0.2546335179981424
-MOCell,ZDT6,SPREAD,1,0.2675969921388013
-MOCell,ZDT6,SPREAD,2,0.26885314739796123
-MOCell,ZDT6,SPREAD,3,0.2832169377147662
-MOCell,ZDT6,SPREAD,4,0.27812872298182256
-MOCell,ZDT6,SPREAD,5,0.24904046530818755
-MOCell,ZDT6,SPREAD,6,0.2671753004871941
-MOCell,ZDT6,SPREAD,7,0.27522909263587886
-MOCell,ZDT6,SPREAD,8,0.2814193705825732
-MOCell,ZDT6,SPREAD,9,0.2738156712884099
-MOCell,ZDT6,SPREAD,10,0.26821943153105077
-MOCell,ZDT6,SPREAD,11,0.2652833244964437
-MOCell,ZDT6,SPREAD,12,0.2744216621424255
-MOCell,ZDT6,SPREAD,13,0.2502049469327993
-MOCell,ZDT6,SPREAD,14,0.2622190247731975
-MOCell,ZDT6,SPREAD,15,0.2729137942692074
-MOCell,ZDT6,SPREAD,16,0.26484219653279806
-MOCell,ZDT6,SPREAD,17,0.27775999130634743
-MOCell,ZDT6,SPREAD,18,0.2643969305783954
-MOCell,ZDT6,SPREAD,19,0.24834640895245982
-MOCell,ZDT6,SPREAD,20,0.27456076481066927
-MOCell,ZDT6,SPREAD,21,0.2659258965999378
-MOCell,ZDT6,SPREAD,22,0.2621678324862744
-MOCell,ZDT6,SPREAD,23,0.26972031951090836
-MOCell,ZDT6,SPREAD,24,0.2608986192529172
-NSGAII,ZDT1,GD,0,2.1708533317920447E-4
-NSGAII,ZDT1,GD,1,2.614107539687142E-4
-NSGAII,ZDT1,GD,2,2.2229962023914612E-4
-NSGAII,ZDT1,GD,3,2.2547741973096602E-4
-NSGAII,ZDT1,GD,4,4.985780340594201E-4
-NSGAII,ZDT1,GD,5,2.0183761586093675E-4
-NSGAII,ZDT1,GD,6,2.243229625638342E-4
-NSGAII,ZDT1,GD,7,2.5965240246896584E-4
-NSGAII,ZDT1,GD,8,2.3038573789133982E-4
-NSGAII,ZDT1,GD,9,2.315742637479923E-4
-NSGAII,ZDT1,GD,10,1.893349793967467E-4
-NSGAII,ZDT1,GD,11,2.878692557247797E-4
-NSGAII,ZDT1,GD,12,2.005449371416095E-4
-NSGAII,ZDT1,GD,13,2.40314100563102E-4
-NSGAII,ZDT1,GD,14,2.0872556054696165E-4
-NSGAII,ZDT1,GD,15,2.0382768756582137E-4
-NSGAII,ZDT1,GD,16,2.948125706289055E-4
-NSGAII,ZDT1,GD,17,2.62053148642264E-4
-NSGAII,ZDT1,GD,18,2.452208792965411E-4
-NSGAII,ZDT1,GD,19,2.573390976187915E-4
-NSGAII,ZDT1,GD,20,1.7487462422844987E-4
-NSGAII,ZDT1,GD,21,2.3709784026718891E-4
-NSGAII,ZDT1,GD,22,2.1766317607803984E-4
-NSGAII,ZDT1,GD,23,2.4803048691135346E-4
-NSGAII,ZDT1,GD,24,2.1160239254056545E-4
-NSGAII,ZDT2,GD,0,1.5090472343794506E-4
-NSGAII,ZDT2,GD,1,2.58717952112196E-4
-NSGAII,ZDT2,GD,2,1.5581167900273398E-4
-NSGAII,ZDT2,GD,3,1.3532891388481512E-4
-NSGAII,ZDT2,GD,4,1.9155240016770537E-4
-NSGAII,ZDT2,GD,5,1.602994217682837E-4
-NSGAII,ZDT2,GD,6,1.698189905367237E-4
-NSGAII,ZDT2,GD,7,1.454659074749847E-4
-NSGAII,ZDT2,GD,8,1.6738055092927132E-4
-NSGAII,ZDT2,GD,9,1.7544480509619947E-4
-NSGAII,ZDT2,GD,10,1.595246239996391E-4
-NSGAII,ZDT2,GD,11,3.999410219923528E-4
-NSGAII,ZDT2,GD,12,2.428227526287431E-4
-NSGAII,ZDT2,GD,13,2.1402753416316866E-4
-NSGAII,ZDT2,GD,14,1.2663074520235748E-4
-NSGAII,ZDT2,GD,15,1.6891744271048905E-4
-NSGAII,ZDT2,GD,16,1.602315108096394E-4
-NSGAII,ZDT2,GD,17,2.194459015183316E-4
-NSGAII,ZDT2,GD,18,1.9741604947322335E-4
-NSGAII,ZDT2,GD,19,1.556241107131718E-4
-NSGAII,ZDT2,GD,20,1.605789297087175E-4
-NSGAII,ZDT2,GD,21,1.8244153686087573E-4
-NSGAII,ZDT2,GD,22,2.0341589182096831E-4
-NSGAII,ZDT2,GD,23,1.1117276068492634E-4
-NSGAII,ZDT2,GD,24,1.3147352793109712E-4
-NSGAII,ZDT3,GD,0,1.0937235051686608E-4
-NSGAII,ZDT3,GD,1,1.5287405297093753E-4
-NSGAII,ZDT3,GD,2,1.50833775678303E-4
-NSGAII,ZDT3,GD,3,1.1309415962817556E-4
-NSGAII,ZDT3,GD,4,1.2045526185838175E-4
-NSGAII,ZDT3,GD,5,1.2311117118543903E-4
-NSGAII,ZDT3,GD,6,1.3633120708231322E-4
-NSGAII,ZDT3,GD,7,1.1274690536632746E-4
-NSGAII,ZDT3,GD,8,1.1394574510881836E-4
-NSGAII,ZDT3,GD,9,1.2025117904657078E-4
-NSGAII,ZDT3,GD,10,1.1577222390386038E-4
-NSGAII,ZDT3,GD,11,1.2434629330699033E-4
-NSGAII,ZDT3,GD,12,1.2125441331339729E-4
-NSGAII,ZDT3,GD,13,1.2788770545046104E-4
-NSGAII,ZDT3,GD,14,1.3719611578337604E-4
-NSGAII,ZDT3,GD,15,1.2111117801028155E-4
-NSGAII,ZDT3,GD,16,1.3553899616209E-4
-NSGAII,ZDT3,GD,17,1.1710463859208004E-4
-NSGAII,ZDT3,GD,18,1.3767968578072762E-4
-NSGAII,ZDT3,GD,19,1.20825898959204E-4
-NSGAII,ZDT3,GD,20,1.470009832978193E-4
-NSGAII,ZDT3,GD,21,1.2311257457359507E-4
-NSGAII,ZDT3,GD,22,1.37703516447675E-4
-NSGAII,ZDT3,GD,23,3.150976280410627E-4
-NSGAII,ZDT3,GD,24,1.35658690681134E-4
-NSGAII,ZDT4,GD,0,3.608458156381102E-4
-NSGAII,ZDT4,GD,1,6.406232720942602E-4
-NSGAII,ZDT4,GD,2,3.170921277064755E-4
-NSGAII,ZDT4,GD,3,5.826758090092568E-4
-NSGAII,ZDT4,GD,4,3.08635807961378E-4
-NSGAII,ZDT4,GD,5,3.3039804958511025E-4
-NSGAII,ZDT4,GD,6,4.4046614828868784E-4
-NSGAII,ZDT4,GD,7,4.743198095445196E-4
-NSGAII,ZDT4,GD,8,3.1183778263573587E-4
-NSGAII,ZDT4,GD,9,2.2175689190644335E-4
-NSGAII,ZDT4,GD,10,1.1540553683072568E-4
-NSGAII,ZDT4,GD,11,5.793803842903835E-4
-NSGAII,ZDT4,GD,12,2.573662618210853E-4
-NSGAII,ZDT4,GD,13,1.3405326002886966E-4
-NSGAII,ZDT4,GD,14,1.22464614311244E-4
-NSGAII,ZDT4,GD,15,8.579673871052569E-4
-NSGAII,ZDT4,GD,16,4.885479045137222E-4
-NSGAII,ZDT4,GD,17,2.12930632533785E-4
-NSGAII,ZDT4,GD,18,2.603174276311929E-4
-NSGAII,ZDT4,GD,19,2.480809146106399E-4
-NSGAII,ZDT4,GD,20,8.986610069474981E-4
-NSGAII,ZDT4,GD,21,1.824548263647749E-4
-NSGAII,ZDT4,GD,22,5.620076492066746E-4
-NSGAII,ZDT4,GD,23,4.693354093234209E-4
-NSGAII,ZDT4,GD,24,2.619152058959204E-4
-NSGAII,ZDT6,GD,0,0.009674144450964406
-NSGAII,ZDT6,GD,1,0.010249717215591455
-NSGAII,ZDT6,GD,2,0.01008458993767556
-NSGAII,ZDT6,GD,3,0.010096953380154306
-NSGAII,ZDT6,GD,4,0.010051462581692048
-NSGAII,ZDT6,GD,5,0.009612899897872736
-NSGAII,ZDT6,GD,6,0.010432723046976898
-NSGAII,ZDT6,GD,7,0.010456674187410381
-NSGAII,ZDT6,GD,8,0.009955845701360063
-NSGAII,ZDT6,GD,9,0.011195065541870006
-NSGAII,ZDT6,GD,10,0.010527350447442123
-NSGAII,ZDT6,GD,11,0.009536283798940955
-NSGAII,ZDT6,GD,12,0.01024816921130911
-NSGAII,ZDT6,GD,13,0.009773169106677209
-NSGAII,ZDT6,GD,14,0.009506058497713165
-NSGAII,ZDT6,GD,15,0.009462908314705169
-NSGAII,ZDT6,GD,16,0.010424578042576927
-NSGAII,ZDT6,GD,17,0.010566579122160573
-NSGAII,ZDT6,GD,18,0.009246649875944646
-NSGAII,ZDT6,GD,19,0.01002783465830843
-NSGAII,ZDT6,GD,20,0.010180970702036002
-NSGAII,ZDT6,GD,21,0.00941097013612811
-NSGAII,ZDT6,GD,22,0.010282274036475842
-NSGAII,ZDT6,GD,23,0.010907016498904196
-NSGAII,ZDT6,GD,24,0.01082070809221524
-SMPSO,ZDT1,GD,0,8.756305747733648E-5
-SMPSO,ZDT1,GD,1,7.99377015346084E-5
-SMPSO,ZDT1,GD,2,1.1268934045231137E-4
-SMPSO,ZDT1,GD,3,1.16395655040693E-4
-SMPSO,ZDT1,GD,4,1.6591811492116742E-4
-SMPSO,ZDT1,GD,5,1.2624629521942052E-4
-SMPSO,ZDT1,GD,6,1.718849209481798E-4
-SMPSO,ZDT1,GD,7,1.5386092499429407E-4
-SMPSO,ZDT1,GD,8,8.046917706805875E-5
-SMPSO,ZDT1,GD,9,1.3270020599177095E-4
-SMPSO,ZDT1,GD,10,1.1164539719074955E-4
-SMPSO,ZDT1,GD,11,8.692498869620998E-5
-SMPSO,ZDT1,GD,12,8.569065214746739E-5
-SMPSO,ZDT1,GD,13,9.941816274905305E-5
-SMPSO,ZDT1,GD,14,1.234348215173722E-4
-SMPSO,ZDT1,GD,15,9.388016358157289E-5
-SMPSO,ZDT1,GD,16,1.5537259673498418E-4
-SMPSO,ZDT1,GD,17,1.109162504269394E-4
-SMPSO,ZDT1,GD,18,7.522961568098435E-5
-SMPSO,ZDT1,GD,19,9.129908966273544E-5
-SMPSO,ZDT1,GD,20,1.3310115736905805E-4
-SMPSO,ZDT1,GD,21,1.1387043566507398E-4
-SMPSO,ZDT1,GD,22,1.744534100912469E-4
-SMPSO,ZDT1,GD,23,1.4746120073174166E-4
-SMPSO,ZDT1,GD,24,1.0899831691223646E-4
-SMPSO,ZDT2,GD,0,5.7056585747435565E-5
-SMPSO,ZDT2,GD,1,5.211542736585956E-5
-SMPSO,ZDT2,GD,2,4.921508736634621E-5
-SMPSO,ZDT2,GD,3,4.847661857792864E-5
-SMPSO,ZDT2,GD,4,5.4215618587061506E-5
-SMPSO,ZDT2,GD,5,4.6140354678790524E-5
-SMPSO,ZDT2,GD,6,6.028496725217576E-5
-SMPSO,ZDT2,GD,7,4.483222430297044E-5
-SMPSO,ZDT2,GD,8,4.9165222426417516E-5
-SMPSO,ZDT2,GD,9,4.776312927625184E-5
-SMPSO,ZDT2,GD,10,5.0432059186558054E-5
-SMPSO,ZDT2,GD,11,4.9322218760251626E-5
-SMPSO,ZDT2,GD,12,5.299241033251549E-5
-SMPSO,ZDT2,GD,13,4.8000083776998076E-5
-SMPSO,ZDT2,GD,14,5.321210329777704E-5
-SMPSO,ZDT2,GD,15,4.688700677063098E-5
-SMPSO,ZDT2,GD,16,5.633796265627763E-5
-SMPSO,ZDT2,GD,17,5.176286270251643E-5
-SMPSO,ZDT2,GD,18,5.518186241246494E-5
-SMPSO,ZDT2,GD,19,4.847800283391208E-5
-SMPSO,ZDT2,GD,20,4.888045093213861E-5
-SMPSO,ZDT2,GD,21,6.0245157824915765E-5
-SMPSO,ZDT2,GD,22,5.699812927150809E-5
-SMPSO,ZDT2,GD,23,5.232597718191072E-5
-SMPSO,ZDT2,GD,24,4.940587172515022E-5
-SMPSO,ZDT3,GD,0,9.443062309693905E-5
-SMPSO,ZDT3,GD,1,9.174699986153119E-5
-SMPSO,ZDT3,GD,2,1.2436168984856932E-4
-SMPSO,ZDT3,GD,3,9.638055852107117E-5
-SMPSO,ZDT3,GD,4,1.0282461913507984E-4
-SMPSO,ZDT3,GD,5,6.397395006145317E-4
-SMPSO,ZDT3,GD,6,1.0741840172092347E-4
-SMPSO,ZDT3,GD,7,1.0650548037478431E-4
-SMPSO,ZDT3,GD,8,1.0818398920702537E-4
-SMPSO,ZDT3,GD,9,1.3878630504992812E-4
-SMPSO,ZDT3,GD,10,9.385895329572106E-5
-SMPSO,ZDT3,GD,11,1.0659756383860922E-4
-SMPSO,ZDT3,GD,12,1.0851520784220154E-4
-SMPSO,ZDT3,GD,13,9.578302051953121E-5
-SMPSO,ZDT3,GD,14,9.460495764500686E-5
-SMPSO,ZDT3,GD,15,9.231602430381859E-5
-SMPSO,ZDT3,GD,16,1.0026479964692723E-4
-SMPSO,ZDT3,GD,17,1.5479499471051934E-4
-SMPSO,ZDT3,GD,18,1.4908082661344336E-4
-SMPSO,ZDT3,GD,19,9.068508623392589E-5
-SMPSO,ZDT3,GD,20,1.2207444928839082E-4
-SMPSO,ZDT3,GD,21,9.803731563332924E-5
-SMPSO,ZDT3,GD,22,0.0038202549464953686
-SMPSO,ZDT3,GD,23,1.2024337753094145E-4
-SMPSO,ZDT3,GD,24,1.0416113369601068E-4
-SMPSO,ZDT4,GD,0,9.349759851264288E-5
-SMPSO,ZDT4,GD,1,1.0095992245812346E-4
-SMPSO,ZDT4,GD,2,8.432193317512538E-5
-SMPSO,ZDT4,GD,3,8.648206849481659E-5
-SMPSO,ZDT4,GD,4,7.783966097154496E-5
-SMPSO,ZDT4,GD,5,7.554316200237495E-5
-SMPSO,ZDT4,GD,6,9.888400058382452E-5
-SMPSO,ZDT4,GD,7,6.902695307461023E-5
-SMPSO,ZDT4,GD,8,7.233668347864135E-5
-SMPSO,ZDT4,GD,9,9.319916868514459E-5
-SMPSO,ZDT4,GD,10,9.345795485095176E-5
-SMPSO,ZDT4,GD,11,8.651843293385284E-5
-SMPSO,ZDT4,GD,12,8.181314043013567E-5
-SMPSO,ZDT4,GD,13,1.0410214766322547E-4
-SMPSO,ZDT4,GD,14,1.0852182886646205E-4
-SMPSO,ZDT4,GD,15,7.858438356406421E-5
-SMPSO,ZDT4,GD,16,9.065437335067065E-5
-SMPSO,ZDT4,GD,17,9.23582877907349E-5
-SMPSO,ZDT4,GD,18,7.535536380244322E-5
-SMPSO,ZDT4,GD,19,8.497400108319372E-5
-SMPSO,ZDT4,GD,20,9.892203769408238E-5
-SMPSO,ZDT4,GD,21,6.838177404800699E-5
-SMPSO,ZDT4,GD,22,9.337036550420589E-5
-SMPSO,ZDT4,GD,23,8.105936087390804E-5
-SMPSO,ZDT4,GD,24,1.0740143604935337E-4
-SMPSO,ZDT6,GD,0,0.009559506510694166
-SMPSO,ZDT6,GD,1,0.00994794413043489
-SMPSO,ZDT6,GD,2,0.009848604878239553
-SMPSO,ZDT6,GD,3,0.009667884587962881
-SMPSO,ZDT6,GD,4,0.009831710921347271
-SMPSO,ZDT6,GD,5,0.009900874270187085
-SMPSO,ZDT6,GD,6,0.00989487714076343
-SMPSO,ZDT6,GD,7,0.010269789994747158
-SMPSO,ZDT6,GD,8,0.010062823683986066
-SMPSO,ZDT6,GD,9,0.01009082848662369
-SMPSO,ZDT6,GD,10,0.00992218374987762
-SMPSO,ZDT6,GD,11,0.009929752393801158
-SMPSO,ZDT6,GD,12,0.010099978683175583
-SMPSO,ZDT6,GD,13,0.009824708915298384
-SMPSO,ZDT6,GD,14,0.009842810412943213
-SMPSO,ZDT6,GD,15,0.009882609994590412
-SMPSO,ZDT6,GD,16,0.01021327091674396
-SMPSO,ZDT6,GD,17,0.010187827607112017
-SMPSO,ZDT6,GD,18,0.0098857384481666
-SMPSO,ZDT6,GD,19,0.010098800363579456
-SMPSO,ZDT6,GD,20,0.009803338167842415
-SMPSO,ZDT6,GD,21,0.009978579360924495
-SMPSO,ZDT6,GD,22,0.009584910500729005
-SMPSO,ZDT6,GD,23,0.009685987689326308
-SMPSO,ZDT6,GD,24,0.0098799356943527
-MOEAD,ZDT1,GD,0,0.0014624860142875451
-MOEAD,ZDT1,GD,1,0.00166629093533206
-MOEAD,ZDT1,GD,2,0.0011868042429592231
-MOEAD,ZDT1,GD,3,0.0016027503872292704
-MOEAD,ZDT1,GD,4,0.0020442307550967956
-MOEAD,ZDT1,GD,5,8.028477182946706E-4
-MOEAD,ZDT1,GD,6,0.0010255529531713688
-MOEAD,ZDT1,GD,7,0.0012254816868432128
-MOEAD,ZDT1,GD,8,0.001078993688225891
-MOEAD,ZDT1,GD,9,5.375479015609906E-4
-MOEAD,ZDT1,GD,10,0.0022994661217464853
-MOEAD,ZDT1,GD,11,0.001516801457323727
-MOEAD,ZDT1,GD,12,0.0029468396380576984
-MOEAD,ZDT1,GD,13,0.0013846650010471038
-MOEAD,ZDT1,GD,14,0.0016915465592409356
-MOEAD,ZDT1,GD,15,0.0016408850073009857
-MOEAD,ZDT1,GD,16,0.0014727875501346888
-MOEAD,ZDT1,GD,17,0.0010415982199822793
-MOEAD,ZDT1,GD,18,0.0013383153756673003
-MOEAD,ZDT1,GD,19,0.0024660103296862386
-MOEAD,ZDT1,GD,20,0.0013381773119784033
-MOEAD,ZDT1,GD,21,0.0013175266703396278
-MOEAD,ZDT1,GD,22,0.0014225621073800923
-MOEAD,ZDT1,GD,23,0.001869688432027875
-MOEAD,ZDT1,GD,24,0.0012803828532795317
-MOEAD,ZDT2,GD,0,0.0015250936986242318
-MOEAD,ZDT2,GD,1,0.0012528249283678802
-MOEAD,ZDT2,GD,2,9.374726637464534E-4
-MOEAD,ZDT2,GD,3,9.405497715076464E-4
-MOEAD,ZDT2,GD,4,0.00116883311176346
-MOEAD,ZDT2,GD,5,0.001953922110013262
-MOEAD,ZDT2,GD,6,0.0010321476867262993
-MOEAD,ZDT2,GD,7,0.001109735322285211
-MOEAD,ZDT2,GD,8,0.0016739454558649877
-MOEAD,ZDT2,GD,9,0.0013561241470399826
-MOEAD,ZDT2,GD,10,0.001482746100709651
-MOEAD,ZDT2,GD,11,0.0016316556445202255
-MOEAD,ZDT2,GD,12,9.734601934598552E-4
-MOEAD,ZDT2,GD,13,0.0013661531521134609
-MOEAD,ZDT2,GD,14,0.0011508885552311383
-MOEAD,ZDT2,GD,15,0.0027201902226532126
-MOEAD,ZDT2,GD,16,0.0013007670758049214
-MOEAD,ZDT2,GD,17,0.002079477499711306
-MOEAD,ZDT2,GD,18,9.21830736382743E-4
-MOEAD,ZDT2,GD,19,0.0014840416660958156
-MOEAD,ZDT2,GD,20,0.0013620547798811906
-MOEAD,ZDT2,GD,21,0.0014537173118211873
-MOEAD,ZDT2,GD,22,5.612721653291216E-4
-MOEAD,ZDT2,GD,23,0.0016286892899216629
-MOEAD,ZDT2,GD,24,0.002622058989428266
-MOEAD,ZDT3,GD,0,0.005207077963004493
-MOEAD,ZDT3,GD,1,0.0031247245497885725
-MOEAD,ZDT3,GD,2,0.0032775949317405393
-MOEAD,ZDT3,GD,3,0.0030932809153118475
-MOEAD,ZDT3,GD,4,0.003534515721788214
-MOEAD,ZDT3,GD,5,0.004362102635373381
-MOEAD,ZDT3,GD,6,0.0016632343977770459
-MOEAD,ZDT3,GD,7,0.0046997008685006605
-MOEAD,ZDT3,GD,8,0.002396822431403416
-MOEAD,ZDT3,GD,9,0.003161221359397811
-MOEAD,ZDT3,GD,10,0.0035660001045286368
-MOEAD,ZDT3,GD,11,0.001734354236207693
-MOEAD,ZDT3,GD,12,0.005696349675524288
-MOEAD,ZDT3,GD,13,0.004412959008817827
-MOEAD,ZDT3,GD,14,0.003787957097524116
-MOEAD,ZDT3,GD,15,0.0026104975051220143
-MOEAD,ZDT3,GD,16,0.001815439166703957
-MOEAD,ZDT3,GD,17,0.0029272338318247697
-MOEAD,ZDT3,GD,18,0.004059089681606415
-MOEAD,ZDT3,GD,19,0.0021179106403057327
-MOEAD,ZDT3,GD,20,0.0037222102578513454
-MOEAD,ZDT3,GD,21,0.004292787448409201
-MOEAD,ZDT3,GD,22,0.006154789360396531
-MOEAD,ZDT3,GD,23,0.0026791175049533417
-MOEAD,ZDT3,GD,24,0.003352180732991098
-MOEAD,ZDT4,GD,0,0.018636364026388783
-MOEAD,ZDT4,GD,1,0.002627417405909505
-MOEAD,ZDT4,GD,2,0.07603879880235552
-MOEAD,ZDT4,GD,3,0.040097395415564986
-MOEAD,ZDT4,GD,4,0.04195193522668974
-MOEAD,ZDT4,GD,5,0.0374745137862947
-MOEAD,ZDT4,GD,6,0.012768816128745619
-MOEAD,ZDT4,GD,7,0.021467743369782438
-MOEAD,ZDT4,GD,8,0.04316307178529687
-MOEAD,ZDT4,GD,9,0.028710064636483144
-MOEAD,ZDT4,GD,10,0.02621965446433664
-MOEAD,ZDT4,GD,11,0.08231015472223314
-MOEAD,ZDT4,GD,12,0.07166551286097134
-MOEAD,ZDT4,GD,13,0.03519319019542508
-MOEAD,ZDT4,GD,14,0.00348891718726379
-MOEAD,ZDT4,GD,15,0.03181662982957441
-MOEAD,ZDT4,GD,16,0.020881704136617003
-MOEAD,ZDT4,GD,17,0.03688876552288248
-MOEAD,ZDT4,GD,18,0.07283894201121173
-MOEAD,ZDT4,GD,19,0.042440096078471566
-MOEAD,ZDT4,GD,20,0.002380139189591592
-MOEAD,ZDT4,GD,21,0.037466167159992174
-MOEAD,ZDT4,GD,22,0.012461726627088698
-MOEAD,ZDT4,GD,23,0.054854921671065905
-MOEAD,ZDT4,GD,24,0.0336850398580634
-MOEAD,ZDT6,GD,0,0.012018492174938585
-MOEAD,ZDT6,GD,1,0.012018431831231843
-MOEAD,ZDT6,GD,2,0.012017662950774942
-MOEAD,ZDT6,GD,3,0.012028324506776742
-MOEAD,ZDT6,GD,4,0.012022344942422351
-MOEAD,ZDT6,GD,5,0.012019423120223433
-MOEAD,ZDT6,GD,6,0.012024001142250688
-MOEAD,ZDT6,GD,7,0.01202165233546473
-MOEAD,ZDT6,GD,8,0.012023460790620322
-MOEAD,ZDT6,GD,9,0.012021818897274172
-MOEAD,ZDT6,GD,10,0.012032516565007343
-MOEAD,ZDT6,GD,11,0.012016083066571471
-MOEAD,ZDT6,GD,12,0.012018224651247814
-MOEAD,ZDT6,GD,13,0.012017640372214922
-MOEAD,ZDT6,GD,14,0.012018629033665107
-MOEAD,ZDT6,GD,15,0.01202119198234078
-MOEAD,ZDT6,GD,16,0.012025370930061643
-MOEAD,ZDT6,GD,17,0.012035072622049283
-MOEAD,ZDT6,GD,18,0.01201542555522233
-MOEAD,ZDT6,GD,19,0.01202431168689998
-MOEAD,ZDT6,GD,20,0.01202025740207397
-MOEAD,ZDT6,GD,21,0.012020546059676451
-MOEAD,ZDT6,GD,22,0.012020535753223004
-MOEAD,ZDT6,GD,23,0.012018427250274404
-MOEAD,ZDT6,GD,24,0.012031351209471046
-GDE3,ZDT1,GD,0,1.3097571965015224E-4
-GDE3,ZDT1,GD,1,1.1113668512818661E-4
-GDE3,ZDT1,GD,2,8.720794048760932E-5
-GDE3,ZDT1,GD,3,8.811063424484036E-5
-GDE3,ZDT1,GD,4,8.773784964242925E-5
-GDE3,ZDT1,GD,5,9.92683944429716E-5
-GDE3,ZDT1,GD,6,1.5501462708921175E-4
-GDE3,ZDT1,GD,7,1.2620465144581316E-4
-GDE3,ZDT1,GD,8,1.4675330548701457E-4
-GDE3,ZDT1,GD,9,1.3277168572311128E-4
-GDE3,ZDT1,GD,10,1.6422704884591153E-4
-GDE3,ZDT1,GD,11,1.3839869969688295E-4
-GDE3,ZDT1,GD,12,1.466020128071639E-4
-GDE3,ZDT1,GD,13,1.4315306143920494E-4
-GDE3,ZDT1,GD,14,1.2766481437678236E-4
-GDE3,ZDT1,GD,15,1.3077127044423562E-4
-GDE3,ZDT1,GD,16,1.5965511328482464E-4
-GDE3,ZDT1,GD,17,1.668001802618075E-4
-GDE3,ZDT1,GD,18,1.5675006881158066E-4
-GDE3,ZDT1,GD,19,1.3726929642177125E-4
-GDE3,ZDT1,GD,20,1.0864778890329113E-4
-GDE3,ZDT1,GD,21,1.6250343898713358E-4
-GDE3,ZDT1,GD,22,1.6589325335046283E-4
-GDE3,ZDT1,GD,23,1.6744767908017538E-4
-GDE3,ZDT1,GD,24,1.504639687713064E-4
-GDE3,ZDT2,GD,0,5.892115529053196E-5
-GDE3,ZDT2,GD,1,5.3672510809439855E-5
-GDE3,ZDT2,GD,2,4.6991663753209776E-5
-GDE3,ZDT2,GD,3,5.625831089110682E-5
-GDE3,ZDT2,GD,4,5.8061471147113536E-5
-GDE3,ZDT2,GD,5,5.288873964765895E-5
-GDE3,ZDT2,GD,6,5.4775406101212015E-5
-GDE3,ZDT2,GD,7,5.34450664892529E-5
-GDE3,ZDT2,GD,8,5.647696473878455E-5
-GDE3,ZDT2,GD,9,4.9827054476465394E-5
-GDE3,ZDT2,GD,10,6.143559319860418E-5
-GDE3,ZDT2,GD,11,5.5934417016392545E-5
-GDE3,ZDT2,GD,12,5.065477491214464E-5
-GDE3,ZDT2,GD,13,5.6230962835067747E-5
-GDE3,ZDT2,GD,14,5.205982385011042E-5
-GDE3,ZDT2,GD,15,5.263821523993074E-5
-GDE3,ZDT2,GD,16,5.7680380521855484E-5
-GDE3,ZDT2,GD,17,5.2165531217308124E-5
-GDE3,ZDT2,GD,18,5.388675401300904E-5
-GDE3,ZDT2,GD,19,5.7819992951271576E-5
-GDE3,ZDT2,GD,20,5.6685861231735094E-5
-GDE3,ZDT2,GD,21,5.418125846705564E-5
-GDE3,ZDT2,GD,22,5.59118810282583E-5
-GDE3,ZDT2,GD,23,5.1828351620112684E-5
-GDE3,ZDT2,GD,24,5.861000532606196E-5
-GDE3,ZDT3,GD,0,8.953723109600803E-5
-GDE3,ZDT3,GD,1,8.9863578606991E-5
-GDE3,ZDT3,GD,2,9.950931897879538E-5
-GDE3,ZDT3,GD,3,1.030547600525185E-4
-GDE3,ZDT3,GD,4,7.894588759177224E-5
-GDE3,ZDT3,GD,5,9.77378663554958E-5
-GDE3,ZDT3,GD,6,1.0383090555562456E-4
-GDE3,ZDT3,GD,7,8.694995826733402E-5
-GDE3,ZDT3,GD,8,9.911887949523689E-5
-GDE3,ZDT3,GD,9,9.722793002114375E-5
-GDE3,ZDT3,GD,10,8.889871496303868E-5
-GDE3,ZDT3,GD,11,9.48732309862076E-5
-GDE3,ZDT3,GD,12,1.1156683854136408E-4
-GDE3,ZDT3,GD,13,1.1233686526656339E-4
-GDE3,ZDT3,GD,14,1.0698057320241996E-4
-GDE3,ZDT3,GD,15,1.047012164097712E-4
-GDE3,ZDT3,GD,16,9.66292385636607E-5
-GDE3,ZDT3,GD,17,1.0870828814288805E-4
-GDE3,ZDT3,GD,18,8.896900362674317E-5
-GDE3,ZDT3,GD,19,9.651458269766707E-5
-GDE3,ZDT3,GD,20,8.181028497808912E-5
-GDE3,ZDT3,GD,21,9.426146413221454E-5
-GDE3,ZDT3,GD,22,1.0247836893941576E-4
-GDE3,ZDT3,GD,23,9.426580247309819E-5
-GDE3,ZDT3,GD,24,9.720269894919284E-5
-GDE3,ZDT4,GD,0,2.4756006533992805
-GDE3,ZDT4,GD,1,1.3023660679019715
-GDE3,ZDT4,GD,2,1.9326703223602042
-GDE3,ZDT4,GD,3,1.75208477186907
-GDE3,ZDT4,GD,4,1.6780831090244375
-GDE3,ZDT4,GD,5,1.9000652281459618
-GDE3,ZDT4,GD,6,1.854528364170821
-GDE3,ZDT4,GD,7,1.9900795320982103
-GDE3,ZDT4,GD,8,2.576013633209484
-GDE3,ZDT4,GD,9,2.1628809734642758
-GDE3,ZDT4,GD,10,2.3823634712464195
-GDE3,ZDT4,GD,11,2.252278219512697
-GDE3,ZDT4,GD,12,3.4221112122063166
-GDE3,ZDT4,GD,13,2.459700603810915
-GDE3,ZDT4,GD,14,2.2285846335359847
-GDE3,ZDT4,GD,15,3.0789335897036922
-GDE3,ZDT4,GD,16,1.978394220542441
-GDE3,ZDT4,GD,17,1.4251759463305782
-GDE3,ZDT4,GD,18,2.3498763029412175
-GDE3,ZDT4,GD,19,3.597421191798785
-GDE3,ZDT4,GD,20,1.9258993659643053
-GDE3,ZDT4,GD,21,2.046990825533748
-GDE3,ZDT4,GD,22,2.9738869323708177
-GDE3,ZDT4,GD,23,2.181567477424159
-GDE3,ZDT4,GD,24,2.872099347314348
-GDE3,ZDT6,GD,0,0.010690663599005034
-GDE3,ZDT6,GD,1,0.009567014879057761
-GDE3,ZDT6,GD,2,0.01160104521403133
-GDE3,ZDT6,GD,3,0.009345353404019995
-GDE3,ZDT6,GD,4,0.009522036652045308
-GDE3,ZDT6,GD,5,0.008943568265693131
-GDE3,ZDT6,GD,6,0.010066581496547773
-GDE3,ZDT6,GD,7,0.010172379580126241
-GDE3,ZDT6,GD,8,0.0100306494993726
-GDE3,ZDT6,GD,9,0.00988667210495818
-GDE3,ZDT6,GD,10,0.010262528525607488
-GDE3,ZDT6,GD,11,0.011074185856870795
-GDE3,ZDT6,GD,12,0.009621955585641936
-GDE3,ZDT6,GD,13,0.00931917838651066
-GDE3,ZDT6,GD,14,0.008660075504397718
-GDE3,ZDT6,GD,15,0.008823622265830191
-GDE3,ZDT6,GD,16,0.010820724039043099
-GDE3,ZDT6,GD,17,0.009929237092671213
-GDE3,ZDT6,GD,18,0.011375071322164582
-GDE3,ZDT6,GD,19,0.010125983532501706
-GDE3,ZDT6,GD,20,0.010055016987473102
-GDE3,ZDT6,GD,21,0.010828883120629115
-GDE3,ZDT6,GD,22,0.011354033484649605
-GDE3,ZDT6,GD,23,0.010228711019654496
-GDE3,ZDT6,GD,24,0.011172521685338426
-MOCell,ZDT1,GD,0,1.695041314343622E-4
-MOCell,ZDT1,GD,1,1.778470672987743E-4
-MOCell,ZDT1,GD,2,1.8267911815622286E-4
-MOCell,ZDT1,GD,3,1.8701204951276858E-4
-MOCell,ZDT1,GD,4,1.296032515372839E-4
-MOCell,ZDT1,GD,5,1.7957774473116236E-4
-MOCell,ZDT1,GD,6,1.367903917397361E-4
-MOCell,ZDT1,GD,7,1.419795024314026E-4
-MOCell,ZDT1,GD,8,1.7541157918108557E-4
-MOCell,ZDT1,GD,9,1.74428546427947E-4
-MOCell,ZDT1,GD,10,1.76197277796979E-4
-MOCell,ZDT1,GD,11,1.796777906470786E-4
-MOCell,ZDT1,GD,12,1.477890872850946E-4
-MOCell,ZDT1,GD,13,1.3850394534136815E-4
-MOCell,ZDT1,GD,14,1.5836960536307724E-4
-MOCell,ZDT1,GD,15,1.7849034275023234E-4
-MOCell,ZDT1,GD,16,1.6562414994557948E-4
-MOCell,ZDT1,GD,17,2.788727236550297E-4
-MOCell,ZDT1,GD,18,1.7660794869486804E-4
-MOCell,ZDT1,GD,19,1.6587271759739195E-4
-MOCell,ZDT1,GD,20,1.678364471083911E-4
-MOCell,ZDT1,GD,21,1.7633918013845715E-4
-MOCell,ZDT1,GD,22,1.5222751598918457E-4
-MOCell,ZDT1,GD,23,1.835463005782221E-4
-MOCell,ZDT1,GD,24,1.642880511665989E-4
-MOCell,ZDT2,GD,0,4.889320542559805E-5
-MOCell,ZDT2,GD,1,5.1402560056929896E-5
-MOCell,ZDT2,GD,2,5.042386979121811E-5
-MOCell,ZDT2,GD,3,7.629481699729847E-5
-MOCell,ZDT2,GD,4,5.8112939509001604E-5
-MOCell,ZDT2,GD,5,9.240147873266415E-5
-MOCell,ZDT2,GD,6,9.64145953512699E-5
-MOCell,ZDT2,GD,7,5.215346638941425E-5
-MOCell,ZDT2,GD,8,4.9287778599306506E-5
-MOCell,ZDT2,GD,9,4.8953027255290605E-5
-MOCell,ZDT2,GD,10,4.6934794672925366E-5
-MOCell,ZDT2,GD,11,5.178168998244124E-5
-MOCell,ZDT2,GD,12,4.9631386434903086E-5
-MOCell,ZDT2,GD,13,5.8385470481537116E-5
-MOCell,ZDT2,GD,14,5.302432516114761E-5
-MOCell,ZDT2,GD,15,5.657060426030947E-5
-MOCell,ZDT2,GD,16,5.3342062527933405E-5
-MOCell,ZDT2,GD,17,4.747025984657659E-5
-MOCell,ZDT2,GD,18,6.712531644725812E-5
-MOCell,ZDT2,GD,19,5.1052509150611366E-5
-MOCell,ZDT2,GD,20,4.5324078663505196E-5
-MOCell,ZDT2,GD,21,5.889916794648412E-5
-MOCell,ZDT2,GD,22,5.58188586493591E-5
-MOCell,ZDT2,GD,23,1.465328291232917E-4
-MOCell,ZDT2,GD,24,5.20577973994384E-5
-MOCell,ZDT3,GD,0,1.5300484183226976E-4
-MOCell,ZDT3,GD,1,1.0370356573487393E-4
-MOCell,ZDT3,GD,2,1.0559376939999379E-4
-MOCell,ZDT3,GD,3,1.285778202216474E-4
-MOCell,ZDT3,GD,4,1.0685471174461209E-4
-MOCell,ZDT3,GD,5,1.2065755134129653E-4
-MOCell,ZDT3,GD,6,1.0665193146071762E-4
-MOCell,ZDT3,GD,7,1.0160566892334841E-4
-MOCell,ZDT3,GD,8,9.352272367207741E-5
-MOCell,ZDT3,GD,9,1.0589726600117701E-4
-MOCell,ZDT3,GD,10,1.0116015810553932E-4
-MOCell,ZDT3,GD,11,9.953223491835499E-5
-MOCell,ZDT3,GD,12,1.0964410770889012E-4
-MOCell,ZDT3,GD,13,1.1556264486890944E-4
-MOCell,ZDT3,GD,14,9.850633926766017E-5
-MOCell,ZDT3,GD,15,1.0366415014448368E-4
-MOCell,ZDT3,GD,16,1.1019425467654698E-4
-MOCell,ZDT3,GD,17,1.018369401390261E-4
-MOCell,ZDT3,GD,18,1.019416799588241E-4
-MOCell,ZDT3,GD,19,3.2761479951278546E-4
-MOCell,ZDT3,GD,20,1.1641722790013806E-4
-MOCell,ZDT3,GD,21,1.014370422009263E-4
-MOCell,ZDT3,GD,22,1.1152025186055534E-4
-MOCell,ZDT3,GD,23,1.1331857941242631E-4
-MOCell,ZDT3,GD,24,1.2817629959462965E-4
-MOCell,ZDT4,GD,0,4.4669525864639656E-4
-MOCell,ZDT4,GD,1,2.1228433366669158E-4
-MOCell,ZDT4,GD,2,2.8549032011001164E-4
-MOCell,ZDT4,GD,3,3.421303163292431E-4
-MOCell,ZDT4,GD,4,4.6668886984779355E-4
-MOCell,ZDT4,GD,5,2.03388713350843E-4
-MOCell,ZDT4,GD,6,3.3901219045174034E-4
-MOCell,ZDT4,GD,7,3.935225484158651E-4
-MOCell,ZDT4,GD,8,3.218537797824686E-4
-MOCell,ZDT4,GD,9,2.5494028804132245E-4
-MOCell,ZDT4,GD,10,2.548183563190738E-4
-MOCell,ZDT4,GD,11,2.544248271525397E-4
-MOCell,ZDT4,GD,12,2.7396687730898896E-4
-MOCell,ZDT4,GD,13,2.400498729009665E-4
-MOCell,ZDT4,GD,14,5.387527560466162E-4
-MOCell,ZDT4,GD,15,1.6381497318642202E-4
-MOCell,ZDT4,GD,16,5.740733900911202E-4
-MOCell,ZDT4,GD,17,3.832588293137834E-4
-MOCell,ZDT4,GD,18,1.4657147747304387E-4
-MOCell,ZDT4,GD,19,2.8904148012649496E-4
-MOCell,ZDT4,GD,20,3.267224358345864E-4
-MOCell,ZDT4,GD,21,1.7872910403944067E-4
-MOCell,ZDT4,GD,22,2.4078625842941924E-4
-MOCell,ZDT4,GD,23,3.5179163605014984E-4
-MOCell,ZDT4,GD,24,3.742971123706523E-4
-MOCell,ZDT6,GD,0,0.009570300112361983
-MOCell,ZDT6,GD,1,0.009719941540076153
-MOCell,ZDT6,GD,2,0.009613436651083497
-MOCell,ZDT6,GD,3,0.009143199057671577
-MOCell,ZDT6,GD,4,0.009687866557538831
-MOCell,ZDT6,GD,5,0.009679534234142077
-MOCell,ZDT6,GD,6,0.009303388895993614
-MOCell,ZDT6,GD,7,0.009659686145789317
-MOCell,ZDT6,GD,8,0.009669034439930215
-MOCell,ZDT6,GD,9,0.009231638375800037
-MOCell,ZDT6,GD,10,0.009903234757997956
-MOCell,ZDT6,GD,11,0.009603748453513068
-MOCell,ZDT6,GD,12,0.009784141575563373
-MOCell,ZDT6,GD,13,0.010152046783938738
-MOCell,ZDT6,GD,14,0.009596729723509464
-MOCell,ZDT6,GD,15,0.00968298299577785
-MOCell,ZDT6,GD,16,0.009523725842265067
-MOCell,ZDT6,GD,17,0.009680430520961562
-MOCell,ZDT6,GD,18,0.009679832378986
-MOCell,ZDT6,GD,19,0.010129757851457574
-MOCell,ZDT6,GD,20,0.008997220815793877
-MOCell,ZDT6,GD,21,0.009955666418940029
-MOCell,ZDT6,GD,22,0.00963973413130193
-MOCell,ZDT6,GD,23,0.00972809789105228
-MOCell,ZDT6,GD,24,0.01007096502188541
-NSGAII,ZDT1,HV,0,0.6596674382379438
-NSGAII,ZDT1,HV,1,0.659470177400303
-NSGAII,ZDT1,HV,2,0.6594797213377943
-NSGAII,ZDT1,HV,3,0.6593173635704132
-NSGAII,ZDT1,HV,4,0.6595740517766562
-NSGAII,ZDT1,HV,5,0.6593723786153594
-NSGAII,ZDT1,HV,6,0.6594284795524821
-NSGAII,ZDT1,HV,7,0.6597252242233
-NSGAII,ZDT1,HV,8,0.6595884825692222
-NSGAII,ZDT1,HV,9,0.6596684205922297
-NSGAII,ZDT1,HV,10,0.6591918319111695
-NSGAII,ZDT1,HV,11,0.6589320526494217
-NSGAII,ZDT1,HV,12,0.659665764646122
-NSGAII,ZDT1,HV,13,0.6590390757077339
-NSGAII,ZDT1,HV,14,0.6595924963125979
-NSGAII,ZDT1,HV,15,0.6594183021862379
-NSGAII,ZDT1,HV,16,0.6589420108240199
-NSGAII,ZDT1,HV,17,0.6592197624023175
-NSGAII,ZDT1,HV,18,0.6598487133963665
-NSGAII,ZDT1,HV,19,0.6591838068003638
-NSGAII,ZDT1,HV,20,0.6600707632707135
-NSGAII,ZDT1,HV,21,0.6593525825511815
-NSGAII,ZDT1,HV,22,0.6590294316331213
-NSGAII,ZDT1,HV,23,0.6592255988177964
-NSGAII,ZDT1,HV,24,0.6594430429704293
-NSGAII,ZDT2,HV,0,0.3262473162561972
-NSGAII,ZDT2,HV,1,0.32567923366564655
-NSGAII,ZDT2,HV,2,0.3266853578092682
-NSGAII,ZDT2,HV,3,0.3260812105855568
-NSGAII,ZDT2,HV,4,0.32623755327305354
-NSGAII,ZDT2,HV,5,0.32612448651002635
-NSGAII,ZDT2,HV,6,0.3260412743016939
-NSGAII,ZDT2,HV,7,0.32628219328618185
-NSGAII,ZDT2,HV,8,0.326411361240446
-NSGAII,ZDT2,HV,9,0.325726165010001
-NSGAII,ZDT2,HV,10,0.3263041453194259
-NSGAII,ZDT2,HV,11,0.3262216453700739
-NSGAII,ZDT2,HV,12,0.3262065936209966
-NSGAII,ZDT2,HV,13,0.32532441259320577
-NSGAII,ZDT2,HV,14,0.3264108956816241
-NSGAII,ZDT2,HV,15,0.32641861627814855
-NSGAII,ZDT2,HV,16,0.3264737314038592
-NSGAII,ZDT2,HV,17,0.32578420972107597
-NSGAII,ZDT2,HV,18,0.3261043594008805
-NSGAII,ZDT2,HV,19,0.326502608720826
-NSGAII,ZDT2,HV,20,0.3267084617109164
-NSGAII,ZDT2,HV,21,0.32644302812421044
-NSGAII,ZDT2,HV,22,0.32613582199405
-NSGAII,ZDT2,HV,23,0.326922177534683
-NSGAII,ZDT2,HV,24,0.32673523391791554
-NSGAII,ZDT3,HV,0,0.5148171255794652
-NSGAII,ZDT3,HV,1,0.5147451206683611
-NSGAII,ZDT3,HV,2,0.5145937382252257
-NSGAII,ZDT3,HV,3,0.5149226306115005
-NSGAII,ZDT3,HV,4,0.5148105875016808
-NSGAII,ZDT3,HV,5,0.5147141914108949
-NSGAII,ZDT3,HV,6,0.5148599039589249
-NSGAII,ZDT3,HV,7,0.5116913377305874
-NSGAII,ZDT3,HV,8,0.5149730571705968
-NSGAII,ZDT3,HV,9,0.5148441978121647
-NSGAII,ZDT3,HV,10,0.5148180017592143
-NSGAII,ZDT3,HV,11,0.5147704117447536
-NSGAII,ZDT3,HV,12,0.5144753817847988
-NSGAII,ZDT3,HV,13,0.514531613822736
-NSGAII,ZDT3,HV,14,0.5148465942376588
-NSGAII,ZDT3,HV,15,0.5144263805669596
-NSGAII,ZDT3,HV,16,0.5146508570619331
-NSGAII,ZDT3,HV,17,0.5147208512003302
-NSGAII,ZDT3,HV,18,0.5142911823795522
-NSGAII,ZDT3,HV,19,0.5148999532955071
-NSGAII,ZDT3,HV,20,0.514600560443487
-NSGAII,ZDT3,HV,21,0.5149309173330878
-NSGAII,ZDT3,HV,22,0.5144651819347799
-NSGAII,ZDT3,HV,23,0.5148937275679443
-NSGAII,ZDT3,HV,24,0.5147432112466873
-NSGAII,ZDT4,HV,0,0.6566262468913387
-NSGAII,ZDT4,HV,1,0.6522857290514688
-NSGAII,ZDT4,HV,2,0.657075950313813
-NSGAII,ZDT4,HV,3,0.6530027231658528
-NSGAII,ZDT4,HV,4,0.657067215376618
-NSGAII,ZDT4,HV,5,0.6563051458100408
-NSGAII,ZDT4,HV,6,0.6554497261363655
-NSGAII,ZDT4,HV,7,0.6545325009138822
-NSGAII,ZDT4,HV,8,0.6568523993102139
-NSGAII,ZDT4,HV,9,0.6584262368821011
-NSGAII,ZDT4,HV,10,0.6597698256998311
-NSGAII,ZDT4,HV,11,0.653526887667674
-NSGAII,ZDT4,HV,12,0.6577393989551814
-NSGAII,ZDT4,HV,13,0.6595039739511255
-NSGAII,ZDT4,HV,14,0.6594889094608478
-NSGAII,ZDT4,HV,15,0.6497963142639962
-NSGAII,ZDT4,HV,16,0.6544083243178896
-NSGAII,ZDT4,HV,17,0.6583448144369844
-NSGAII,ZDT4,HV,18,0.6571332626693175
-NSGAII,ZDT4,HV,19,0.6576606373033068
-NSGAII,ZDT4,HV,20,0.6488759350423347
-NSGAII,ZDT4,HV,21,0.6588058245425044
-NSGAII,ZDT4,HV,22,0.6535276476088335
-NSGAII,ZDT4,HV,23,0.654601707360511
-NSGAII,ZDT4,HV,24,0.6577847594646381
-NSGAII,ZDT6,HV,0,0.38767681553595756
-NSGAII,ZDT6,HV,1,0.3883853589300281
-NSGAII,ZDT6,HV,2,0.38947086764475575
-NSGAII,ZDT6,HV,3,0.3848321714719695
-NSGAII,ZDT6,HV,4,0.3883550690553744
-NSGAII,ZDT6,HV,5,0.3880153728236537
-NSGAII,ZDT6,HV,6,0.3893056302899565
-NSGAII,ZDT6,HV,7,0.3901100397304212
-NSGAII,ZDT6,HV,8,0.3894485910697963
-NSGAII,ZDT6,HV,9,0.3885321093077025
-NSGAII,ZDT6,HV,10,0.3892105938192266
-NSGAII,ZDT6,HV,11,0.3878304225316375
-NSGAII,ZDT6,HV,12,0.38816022330265276
-NSGAII,ZDT6,HV,13,0.38636536287559636
-NSGAII,ZDT6,HV,14,0.3896776226554373
-NSGAII,ZDT6,HV,15,0.3867277052742061
-NSGAII,ZDT6,HV,16,0.3889717339603766
-NSGAII,ZDT6,HV,17,0.38732455679917194
-NSGAII,ZDT6,HV,18,0.38953443663914444
-NSGAII,ZDT6,HV,19,0.38687343544419184
-NSGAII,ZDT6,HV,20,0.38804157851528337
-NSGAII,ZDT6,HV,21,0.3883396103120588
-NSGAII,ZDT6,HV,22,0.38870693843786885
-NSGAII,ZDT6,HV,23,0.3873062548313202
-NSGAII,ZDT6,HV,24,0.39223963173358617
-SMPSO,ZDT1,HV,0,0.661680271154288
-SMPSO,ZDT1,HV,1,0.6618990245166101
-SMPSO,ZDT1,HV,2,0.6617379062912201
-SMPSO,ZDT1,HV,3,0.6618000101339541
-SMPSO,ZDT1,HV,4,0.6618212071679128
-SMPSO,ZDT1,HV,5,0.6618426216584797
-SMPSO,ZDT1,HV,6,0.6618747422062984
-SMPSO,ZDT1,HV,7,0.6616761353358108
-SMPSO,ZDT1,HV,8,0.6617318123009753
-SMPSO,ZDT1,HV,9,0.6618023920413888
-SMPSO,ZDT1,HV,10,0.6617838591845502
-SMPSO,ZDT1,HV,11,0.6617836181829913
-SMPSO,ZDT1,HV,12,0.6618981930460632
-SMPSO,ZDT1,HV,13,0.6616287560549415
-SMPSO,ZDT1,HV,14,0.6616412775019593
-SMPSO,ZDT1,HV,15,0.6615899419686381
-SMPSO,ZDT1,HV,16,0.6618229532606984
-SMPSO,ZDT1,HV,17,0.661884980606794
-SMPSO,ZDT1,HV,18,0.6617770946368792
-SMPSO,ZDT1,HV,19,0.6618096799776709
-SMPSO,ZDT1,HV,20,0.6618379963373542
-SMPSO,ZDT1,HV,21,0.6616059695430075
-SMPSO,ZDT1,HV,22,0.6618059419172877
-SMPSO,ZDT1,HV,23,0.6617294237194365
-SMPSO,ZDT1,HV,24,0.6618756066373589
-SMPSO,ZDT2,HV,0,0.32842187359501424
-SMPSO,ZDT2,HV,1,0.3285129675012795
-SMPSO,ZDT2,HV,2,0.3285969519203459
-SMPSO,ZDT2,HV,3,0.32861142997333304
-SMPSO,ZDT2,HV,4,0.3286008577288132
-SMPSO,ZDT2,HV,5,0.32864972259623737
-SMPSO,ZDT2,HV,6,0.32837554818522424
-SMPSO,ZDT2,HV,7,0.3285713966255168
-SMPSO,ZDT2,HV,8,0.3286071394555639
-SMPSO,ZDT2,HV,9,0.3286513220317218
-SMPSO,ZDT2,HV,10,0.32867045116335064
-SMPSO,ZDT2,HV,11,0.32851636052679906
-SMPSO,ZDT2,HV,12,0.328558155680237
-SMPSO,ZDT2,HV,13,0.3286118138509092
-SMPSO,ZDT2,HV,14,0.3284415395795028
-SMPSO,ZDT2,HV,15,0.3286293342521165
-SMPSO,ZDT2,HV,16,0.3285199408258851
-SMPSO,ZDT2,HV,17,0.328586183237436
-SMPSO,ZDT2,HV,18,0.3284930099707691
-SMPSO,ZDT2,HV,19,0.3286194775726362
-SMPSO,ZDT2,HV,20,0.3285824428872012
-SMPSO,ZDT2,HV,21,0.3283878191475994
-SMPSO,ZDT2,HV,22,0.32846442672925874
-SMPSO,ZDT2,HV,23,0.32849310782315316
-SMPSO,ZDT2,HV,24,0.32859111200447433
-SMPSO,ZDT3,HV,0,0.515498777737343
-SMPSO,ZDT3,HV,1,0.5155606819048927
-SMPSO,ZDT3,HV,2,0.5147577135651359
-SMPSO,ZDT3,HV,3,0.5157763195408988
-SMPSO,ZDT3,HV,4,0.5155514232496051
-SMPSO,ZDT3,HV,5,0.5021268266225979
-SMPSO,ZDT3,HV,6,0.5152853068373467
-SMPSO,ZDT3,HV,7,0.5149069986732514
-SMPSO,ZDT3,HV,8,0.5153716450484283
-SMPSO,ZDT3,HV,9,0.5145808711888556
-SMPSO,ZDT3,HV,10,0.5157607018819529
-SMPSO,ZDT3,HV,11,0.51516820237302
-SMPSO,ZDT3,HV,12,0.515462443038098
-SMPSO,ZDT3,HV,13,0.51537893361834
-SMPSO,ZDT3,HV,14,0.515720076820107
-SMPSO,ZDT3,HV,15,0.5155906855429828
-SMPSO,ZDT3,HV,16,0.5153834715200386
-SMPSO,ZDT3,HV,17,0.5142774234431203
-SMPSO,ZDT3,HV,18,0.5144712372288207
-SMPSO,ZDT3,HV,19,0.5154605330138949
-SMPSO,ZDT3,HV,20,0.5152525916769501
-SMPSO,ZDT3,HV,21,0.5155587070406803
-SMPSO,ZDT3,HV,22,0.44527786164138006
-SMPSO,ZDT3,HV,23,0.5149950139563001
-SMPSO,ZDT3,HV,24,0.5153598756255847
-SMPSO,ZDT4,HV,0,0.6612691888638362
-SMPSO,ZDT4,HV,1,0.6612059979936424
-SMPSO,ZDT4,HV,2,0.6615412767542362
-SMPSO,ZDT4,HV,3,0.6613615919872756
-SMPSO,ZDT4,HV,4,0.6614689152616052
-SMPSO,ZDT4,HV,5,0.6615653162541832
-SMPSO,ZDT4,HV,6,0.6612874624535293
-SMPSO,ZDT4,HV,7,0.6615412524557936
-SMPSO,ZDT4,HV,8,0.6615605185578114
-SMPSO,ZDT4,HV,9,0.6613723812555125
-SMPSO,ZDT4,HV,10,0.6614644611444904
-SMPSO,ZDT4,HV,11,0.6614661969746628
-SMPSO,ZDT4,HV,12,0.6616396169293127
-SMPSO,ZDT4,HV,13,0.661350817565232
-SMPSO,ZDT4,HV,14,0.661029915112226
-SMPSO,ZDT4,HV,15,0.6615124527962596
-SMPSO,ZDT4,HV,16,0.6613222853238893
-SMPSO,ZDT4,HV,17,0.6613987663673012
-SMPSO,ZDT4,HV,18,0.661532437513847
-SMPSO,ZDT4,HV,19,0.661499356576172
-SMPSO,ZDT4,HV,20,0.6612694736522376
-SMPSO,ZDT4,HV,21,0.661653397002484
-SMPSO,ZDT4,HV,22,0.6614108504736106
-SMPSO,ZDT4,HV,23,0.6614970459632715
-SMPSO,ZDT4,HV,24,0.6611538171193488
-SMPSO,ZDT6,HV,0,0.40028409375930213
-SMPSO,ZDT6,HV,1,0.4001244692901411
-SMPSO,ZDT6,HV,2,0.4002235518661146
-SMPSO,ZDT6,HV,3,0.4001564625984546
-SMPSO,ZDT6,HV,4,0.4002021652977347
-SMPSO,ZDT6,HV,5,0.4001183697962979
-SMPSO,ZDT6,HV,6,0.4002735580202672
-SMPSO,ZDT6,HV,7,0.39998234281563505
-SMPSO,ZDT6,HV,8,0.4001592052856525
-SMPSO,ZDT6,HV,9,0.40011355625426026
-SMPSO,ZDT6,HV,10,0.4002181389523058
-SMPSO,ZDT6,HV,11,0.40010355117880975
-SMPSO,ZDT6,HV,12,0.400037847612584
-SMPSO,ZDT6,HV,13,0.4001542722908817
-SMPSO,ZDT6,HV,14,0.400297319388959
-SMPSO,ZDT6,HV,15,0.40014957628388886
-SMPSO,ZDT6,HV,16,0.400125799532873
-SMPSO,ZDT6,HV,17,0.40018779067120774
-SMPSO,ZDT6,HV,18,0.4001393859871228
-SMPSO,ZDT6,HV,19,0.40016249815565363
-SMPSO,ZDT6,HV,20,0.4002179101295227
-SMPSO,ZDT6,HV,21,0.4002168780737628
-SMPSO,ZDT6,HV,22,0.40025472135651224
-SMPSO,ZDT6,HV,23,0.400181707520363
-SMPSO,ZDT6,HV,24,0.4001701459583521
-MOEAD,ZDT1,HV,0,0.6418698326855584
-MOEAD,ZDT1,HV,1,0.6391547564107927
-MOEAD,ZDT1,HV,2,0.6455038358424413
-MOEAD,ZDT1,HV,3,0.6395303146774766
-MOEAD,ZDT1,HV,4,0.6344136557698604
-MOEAD,ZDT1,HV,5,0.6510647995063821
-MOEAD,ZDT1,HV,6,0.6479023056149447
-MOEAD,ZDT1,HV,7,0.6448605524232898
-MOEAD,ZDT1,HV,8,0.6471833718145431
-MOEAD,ZDT1,HV,9,0.6546063744740984
-MOEAD,ZDT1,HV,10,0.6307323965139039
-MOEAD,ZDT1,HV,11,0.6409213978978171
-MOEAD,ZDT1,HV,12,0.6210275436137306
-MOEAD,ZDT1,HV,13,0.643073073297061
-MOEAD,ZDT1,HV,14,0.6398585502141585
-MOEAD,ZDT1,HV,15,0.6380110914898953
-MOEAD,ZDT1,HV,16,0.6419790524615777
-MOEAD,ZDT1,HV,17,0.6472546061639535
-MOEAD,ZDT1,HV,18,0.6437443944999469
-MOEAD,ZDT1,HV,19,0.628259585524155
-MOEAD,ZDT1,HV,20,0.6435283196903396
-MOEAD,ZDT1,HV,21,0.644109604041448
-MOEAD,ZDT1,HV,22,0.6424037373087536
-MOEAD,ZDT1,HV,23,0.6354509634604811
-MOEAD,ZDT1,HV,24,0.6442425367451925
-MOEAD,ZDT2,HV,0,0.30886404293550074
-MOEAD,ZDT2,HV,1,0.31137203812333686
-MOEAD,ZDT2,HV,2,0.31750640520910306
-MOEAD,ZDT2,HV,3,0.31491728142806985
-MOEAD,ZDT2,HV,4,0.3141523182414004
-MOEAD,ZDT2,HV,5,0.3039476846972539
-MOEAD,ZDT2,HV,6,0.3173507266483068
-MOEAD,ZDT2,HV,7,0.3132394356592684
-MOEAD,ZDT2,HV,8,0.3055385272095288
-MOEAD,ZDT2,HV,9,0.3122334184744042
-MOEAD,ZDT2,HV,10,0.30876940599013014
-MOEAD,ZDT2,HV,11,0.30661112548369013
-MOEAD,ZDT2,HV,12,0.3158896574144293
-MOEAD,ZDT2,HV,13,0.3100749089616367
-MOEAD,ZDT2,HV,14,0.31176382981079065
-MOEAD,ZDT2,HV,15,0.2954080897849449
-MOEAD,ZDT2,HV,16,0.31335722314233627
-MOEAD,ZDT2,HV,17,0.3026550652947773
-MOEAD,ZDT2,HV,18,0.31560493204726964
-MOEAD,ZDT2,HV,19,0.3075718611030239
-MOEAD,ZDT2,HV,20,0.31227669721275597
-MOEAD,ZDT2,HV,21,0.3121405444704738
-MOEAD,ZDT2,HV,22,0.32129912789523174
-MOEAD,ZDT2,HV,23,0.3072093697112917
-MOEAD,ZDT2,HV,24,0.2932608849700256
-MOEAD,ZDT3,HV,0,0.40147474267469074
-MOEAD,ZDT3,HV,1,0.455428377823896
-MOEAD,ZDT3,HV,2,0.44079133414386784
-MOEAD,ZDT3,HV,3,0.45050263526729
-MOEAD,ZDT3,HV,4,0.43958010938631803
-MOEAD,ZDT3,HV,5,0.4263880744391857
-MOEAD,ZDT3,HV,6,0.4798631714359265
-MOEAD,ZDT3,HV,7,0.416841584931706
-MOEAD,ZDT3,HV,8,0.46463075240653473
-MOEAD,ZDT3,HV,9,0.4482530529286708
-MOEAD,ZDT3,HV,10,0.4377851839618148
-MOEAD,ZDT3,HV,11,0.4781991594594919
-MOEAD,ZDT3,HV,12,0.3988717157661732
-MOEAD,ZDT3,HV,13,0.4114574834717198
-MOEAD,ZDT3,HV,14,0.4311634467426434
-MOEAD,ZDT3,HV,15,0.4587125194441906
-MOEAD,ZDT3,HV,16,0.47285723942997826
-MOEAD,ZDT3,HV,17,0.4563051076740457
-MOEAD,ZDT3,HV,18,0.42767006677635305
-MOEAD,ZDT3,HV,19,0.4700577376525832
-MOEAD,ZDT3,HV,20,0.4334631670582554
-MOEAD,ZDT3,HV,21,0.4159882897985247
-MOEAD,ZDT3,HV,22,0.3866786655437304
-MOEAD,ZDT3,HV,23,0.45528569046809986
-MOEAD,ZDT3,HV,24,0.4418046794646858
-MOEAD,ZDT4,HV,0,0.4780482843532255
-MOEAD,ZDT4,HV,1,0.6233651238586595
-MOEAD,ZDT4,HV,2,0.10620075818180692
-MOEAD,ZDT4,HV,3,0.21388637017757975
-MOEAD,ZDT4,HV,4,0.14235545359310814
-MOEAD,ZDT4,HV,5,0.26450498068831924
-MOEAD,ZDT4,HV,6,0.5009390371296281
-MOEAD,ZDT4,HV,7,0.41499597401329225
-MOEAD,ZDT4,HV,8,0.2197466253248915
-MOEAD,ZDT4,HV,9,0.18177261960547778
-MOEAD,ZDT4,HV,10,0.33379143681718204
-MOEAD,ZDT4,HV,11,0.0014526826098896252
-MOEAD,ZDT4,HV,12,0.02931733593817855
-MOEAD,ZDT4,HV,13,0.27972746301372964
-MOEAD,ZDT4,HV,14,0.6130958290822801
-MOEAD,ZDT4,HV,15,0.28236287017027434
-MOEAD,ZDT4,HV,16,0.4107608633749926
-MOEAD,ZDT4,HV,17,0.27561999501568657
-MOEAD,ZDT4,HV,18,0.02335826552690143
-MOEAD,ZDT4,HV,19,0.19893250353313963
-MOEAD,ZDT4,HV,20,0.6279813744475864
-MOEAD,ZDT4,HV,21,0.24009510987518703
-MOEAD,ZDT4,HV,22,0.5204084730857245
-MOEAD,ZDT4,HV,23,0.09739430924141362
-MOEAD,ZDT4,HV,24,0.32830718357146205
-MOEAD,ZDT6,HV,0,0.3998561826971289
-MOEAD,ZDT6,HV,1,0.39985745438861914
-MOEAD,ZDT6,HV,2,0.3998575745966448
-MOEAD,ZDT6,HV,3,0.3998508446286513
-MOEAD,ZDT6,HV,4,0.3998549555016591
-MOEAD,ZDT6,HV,5,0.399854411925881
-MOEAD,ZDT6,HV,6,0.39985671334812356
-MOEAD,ZDT6,HV,7,0.39985479406455454
-MOEAD,ZDT6,HV,8,0.39985626149628667
-MOEAD,ZDT6,HV,9,0.3998563566527993
-MOEAD,ZDT6,HV,10,0.39985428874293977
-MOEAD,ZDT6,HV,11,0.39985714868106004
-MOEAD,ZDT6,HV,12,0.3998568225680054
-MOEAD,ZDT6,HV,13,0.39985694926596677
-MOEAD,ZDT6,HV,14,0.39985692663121064
-MOEAD,ZDT6,HV,15,0.3998565825422889
-MOEAD,ZDT6,HV,16,0.399793288242866
-MOEAD,ZDT6,HV,17,0.39964121445764683
-MOEAD,ZDT6,HV,18,0.39985773839080596
-MOEAD,ZDT6,HV,19,0.39985473536902894
-MOEAD,ZDT6,HV,20,0.3998539060735038
-MOEAD,ZDT6,HV,21,0.39985384763926063
-MOEAD,ZDT6,HV,22,0.3998537233332323
-MOEAD,ZDT6,HV,23,0.39985633758330974
-MOEAD,ZDT6,HV,24,0.3998505432334966
-GDE3,ZDT1,HV,0,0.6607091637114094
-GDE3,ZDT1,HV,1,0.660768727012671
-GDE3,ZDT1,HV,2,0.6608342736559706
-GDE3,ZDT1,HV,3,0.6605730961253672
-GDE3,ZDT1,HV,4,0.6606318084980471
-GDE3,ZDT1,HV,5,0.6607230668962483
-GDE3,ZDT1,HV,6,0.660991785324021
-GDE3,ZDT1,HV,7,0.6605529057564536
-GDE3,ZDT1,HV,8,0.6608582956930895
-GDE3,ZDT1,HV,9,0.6604259255193008
-GDE3,ZDT1,HV,10,0.6607367815148147
-GDE3,ZDT1,HV,11,0.6610248783081452
-GDE3,ZDT1,HV,12,0.6607296702142874
-GDE3,ZDT1,HV,13,0.6607578837754585
-GDE3,ZDT1,HV,14,0.6611078323785866
-GDE3,ZDT1,HV,15,0.6606763667543964
-GDE3,ZDT1,HV,16,0.6604248460123778
-GDE3,ZDT1,HV,17,0.660863899892046
-GDE3,ZDT1,HV,18,0.6608606245424945
-GDE3,ZDT1,HV,19,0.6606104506649577
-GDE3,ZDT1,HV,20,0.6607901895281978
-GDE3,ZDT1,HV,21,0.6608038988604392
-GDE3,ZDT1,HV,22,0.6607868340227966
-GDE3,ZDT1,HV,23,0.6606692897594026
-GDE3,ZDT1,HV,24,0.6608581808765899
-GDE3,ZDT2,HV,0,0.3275678476111142
-GDE3,ZDT2,HV,1,0.32707698532818136
-GDE3,ZDT2,HV,2,0.32742476784720503
-GDE3,ZDT2,HV,3,0.327294919283716
-GDE3,ZDT2,HV,4,0.3272092433031152
-GDE3,ZDT2,HV,5,0.3274077695645094
-GDE3,ZDT2,HV,6,0.3275838743056617
-GDE3,ZDT2,HV,7,0.32733195599775305
-GDE3,ZDT2,HV,8,0.3276114758949669
-GDE3,ZDT2,HV,9,0.32768273258832925
-GDE3,ZDT2,HV,10,0.3274149003854107
-GDE3,ZDT2,HV,11,0.3274919450118912
-GDE3,ZDT2,HV,12,0.327322878519974
-GDE3,ZDT2,HV,13,0.32737561921246927
-GDE3,ZDT2,HV,14,0.32746177418976724
-GDE3,ZDT2,HV,15,0.32724401046814516
-GDE3,ZDT2,HV,16,0.3274168765779822
-GDE3,ZDT2,HV,17,0.3276659394377254
-GDE3,ZDT2,HV,18,0.3273412565664178
-GDE3,ZDT2,HV,19,0.3270343250572955
-GDE3,ZDT2,HV,20,0.3270272004225098
-GDE3,ZDT2,HV,21,0.32768667813066216
-GDE3,ZDT2,HV,22,0.32772665817574026
-GDE3,ZDT2,HV,23,0.32761503303384737
-GDE3,ZDT2,HV,24,0.3271363303679648
-GDE3,ZDT3,HV,0,0.5154809628121831
-GDE3,ZDT3,HV,1,0.5154424681051969
-GDE3,ZDT3,HV,2,0.5154818920896972
-GDE3,ZDT3,HV,3,0.5152351967566948
-GDE3,ZDT3,HV,4,0.5153279631566893
-GDE3,ZDT3,HV,5,0.515322115844475
-GDE3,ZDT3,HV,6,0.5154743493634308
-GDE3,ZDT3,HV,7,0.5154194210937428
-GDE3,ZDT3,HV,8,0.5153339181177335
-GDE3,ZDT3,HV,9,0.5154557483186867
-GDE3,ZDT3,HV,10,0.5154234358932407
-GDE3,ZDT3,HV,11,0.5152624169226361
-GDE3,ZDT3,HV,12,0.51538793577471
-GDE3,ZDT3,HV,13,0.515454714755581
-GDE3,ZDT3,HV,14,0.5154496670040251
-GDE3,ZDT3,HV,15,0.5153430180899542
-GDE3,ZDT3,HV,16,0.5152262657002962
-GDE3,ZDT3,HV,17,0.515272984396863
-GDE3,ZDT3,HV,18,0.5153821714069033
-GDE3,ZDT3,HV,19,0.5154609570459703
-GDE3,ZDT3,HV,20,0.5152924658037874
-GDE3,ZDT3,HV,21,0.5153209839877099
-GDE3,ZDT3,HV,22,0.5153319798119319
-GDE3,ZDT3,HV,23,0.5154043286890266
-GDE3,ZDT3,HV,24,0.5154429897874653
-GDE3,ZDT4,HV,0,0.0
-GDE3,ZDT4,HV,1,0.0
-GDE3,ZDT4,HV,2,0.0
-GDE3,ZDT4,HV,3,0.0
-GDE3,ZDT4,HV,4,0.0
-GDE3,ZDT4,HV,5,0.0
-GDE3,ZDT4,HV,6,0.0
-GDE3,ZDT4,HV,7,0.0
-GDE3,ZDT4,HV,8,0.0
-GDE3,ZDT4,HV,9,0.0
-GDE3,ZDT4,HV,10,0.0
-GDE3,ZDT4,HV,11,0.0
-GDE3,ZDT4,HV,12,0.0
-GDE3,ZDT4,HV,13,0.0
-GDE3,ZDT4,HV,14,0.0
-GDE3,ZDT4,HV,15,0.0
-GDE3,ZDT4,HV,16,0.0
-GDE3,ZDT4,HV,17,0.0
-GDE3,ZDT4,HV,18,0.0
-GDE3,ZDT4,HV,19,0.0
-GDE3,ZDT4,HV,20,0.0
-GDE3,ZDT4,HV,21,0.0
-GDE3,ZDT4,HV,22,0.0
-GDE3,ZDT4,HV,23,0.0
-GDE3,ZDT4,HV,24,0.0
-GDE3,ZDT6,HV,0,0.396900637475238
-GDE3,ZDT6,HV,1,0.396975005507167
-GDE3,ZDT6,HV,2,0.39707311480556956
-GDE3,ZDT6,HV,3,0.39684339941660174
-GDE3,ZDT6,HV,4,0.39737682737616303
-GDE3,ZDT6,HV,5,0.39792278819067983
-GDE3,ZDT6,HV,6,0.3976557640997993
-GDE3,ZDT6,HV,7,0.39727148087074177
-GDE3,ZDT6,HV,8,0.39721737608095986
-GDE3,ZDT6,HV,9,0.39790800252157915
-GDE3,ZDT6,HV,10,0.3965405861339216
-GDE3,ZDT6,HV,11,0.39753114623317753
-GDE3,ZDT6,HV,12,0.39767016034579483
-GDE3,ZDT6,HV,13,0.3976547899585265
-GDE3,ZDT6,HV,14,0.3971577531389863
-GDE3,ZDT6,HV,15,0.3976912640872602
-GDE3,ZDT6,HV,16,0.39751831644887864
-GDE3,ZDT6,HV,17,0.3972878879782356
-GDE3,ZDT6,HV,18,0.39616599975911504
-GDE3,ZDT6,HV,19,0.3971518390836397
-GDE3,ZDT6,HV,20,0.39627890408174216
-GDE3,ZDT6,HV,21,0.3975339769894485
-GDE3,ZDT6,HV,22,0.39724960915700863
-GDE3,ZDT6,HV,23,0.397957029809294
-GDE3,ZDT6,HV,24,0.39786734890270137
-MOCell,ZDT1,HV,0,0.6610202223279676
-MOCell,ZDT1,HV,1,0.6607538186107258
-MOCell,ZDT1,HV,2,0.6610803121375075
-MOCell,ZDT1,HV,3,0.6608002321070601
-MOCell,ZDT1,HV,4,0.6610974029501147
-MOCell,ZDT1,HV,5,0.6609922246821962
-MOCell,ZDT1,HV,6,0.6611133447229337
-MOCell,ZDT1,HV,7,0.6609983003922818
-MOCell,ZDT1,HV,8,0.6609374471771291
-MOCell,ZDT1,HV,9,0.66115065560486
-MOCell,ZDT1,HV,10,0.66092513864237
-MOCell,ZDT1,HV,11,0.6608704337086211
-MOCell,ZDT1,HV,12,0.6611263748093185
-MOCell,ZDT1,HV,13,0.6612174072867774
-MOCell,ZDT1,HV,14,0.661347630060518
-MOCell,ZDT1,HV,15,0.6613088581086213
-MOCell,ZDT1,HV,16,0.6609546601997832
-MOCell,ZDT1,HV,17,0.661066764812887
-MOCell,ZDT1,HV,18,0.6610250855818632
-MOCell,ZDT1,HV,19,0.6609104696673175
-MOCell,ZDT1,HV,20,0.6611054250232606
-MOCell,ZDT1,HV,21,0.6612087543626565
-MOCell,ZDT1,HV,22,0.6613493138556853
-MOCell,ZDT1,HV,23,0.6610736537003911
-MOCell,ZDT1,HV,24,0.6611139692089171
-MOCell,ZDT2,HV,0,0.3284658506609464
-MOCell,ZDT2,HV,1,0.3284599912828044
-MOCell,ZDT2,HV,2,0.3285268384821532
-MOCell,ZDT2,HV,3,0.3279714346076269
-MOCell,ZDT2,HV,4,0.3283648530322395
-MOCell,ZDT2,HV,5,0.3276735983964854
-MOCell,ZDT2,HV,6,0.3276054730486165
-MOCell,ZDT2,HV,7,0.32849477282154127
-MOCell,ZDT2,HV,8,0.3286190833915896
-MOCell,ZDT2,HV,9,0.32847339996694713
-MOCell,ZDT2,HV,10,0.3286078334211205
-MOCell,ZDT2,HV,11,0.32858896027413903
-MOCell,ZDT2,HV,12,0.3285204434415439
-MOCell,ZDT2,HV,13,0.3283197149613581
-MOCell,ZDT2,HV,14,0.32839498897008884
-MOCell,ZDT2,HV,15,0.3283503791921066
-MOCell,ZDT2,HV,16,0.328495215514298
-MOCell,ZDT2,HV,17,0.3286995419431569
-MOCell,ZDT2,HV,18,0.3281081115671845
-MOCell,ZDT2,HV,19,0.3284878369587457
-MOCell,ZDT2,HV,20,0.32859261839161763
-MOCell,ZDT2,HV,21,0.3283274031830863
-MOCell,ZDT2,HV,22,0.3283236130936536
-MOCell,ZDT2,HV,23,0.3278850751369577
-MOCell,ZDT2,HV,24,0.3284391629811501
-MOCell,ZDT3,HV,0,0.5146453022572535
-MOCell,ZDT3,HV,1,0.5151926951915374
-MOCell,ZDT3,HV,2,0.5114525645305689
-MOCell,ZDT3,HV,3,0.513975425711914
-MOCell,ZDT3,HV,4,0.514827788628639
-MOCell,ZDT3,HV,5,0.5146996155386158
-MOCell,ZDT3,HV,6,0.5152023373976603
-MOCell,ZDT3,HV,7,0.5114803603251931
-MOCell,ZDT3,HV,8,0.5116073991561323
-MOCell,ZDT3,HV,9,0.5149454213973894
-MOCell,ZDT3,HV,10,0.5148823437308694
-MOCell,ZDT3,HV,11,0.5150467812404486
-MOCell,ZDT3,HV,12,0.514855673124559
-MOCell,ZDT3,HV,13,0.5145816184371325
-MOCell,ZDT3,HV,14,0.5151789924211332
-MOCell,ZDT3,HV,15,0.5149123919994778
-MOCell,ZDT3,HV,16,0.5148907798849773
-MOCell,ZDT3,HV,17,0.5114458911782287
-MOCell,ZDT3,HV,18,0.5152092885823419
-MOCell,ZDT3,HV,19,0.5148201477078492
-MOCell,ZDT3,HV,20,0.5147431775232758
-MOCell,ZDT3,HV,21,0.5147757656172791
-MOCell,ZDT3,HV,22,0.5149905269593235
-MOCell,ZDT3,HV,23,0.5150432787212481
-MOCell,ZDT3,HV,24,0.5146395186977016
-MOCell,ZDT4,HV,0,0.6562473367461709
-MOCell,ZDT4,HV,1,0.6592535952474377
-MOCell,ZDT4,HV,2,0.6580880020540683
-MOCell,ZDT4,HV,3,0.6575215475988813
-MOCell,ZDT4,HV,4,0.6558254304300443
-MOCell,ZDT4,HV,5,0.6592604350729538
-MOCell,ZDT4,HV,6,0.6575887977305597
-MOCell,ZDT4,HV,7,0.6567453688648004
-MOCell,ZDT4,HV,8,0.6577240542239489
-MOCell,ZDT4,HV,9,0.6586638394077869
-MOCell,ZDT4,HV,10,0.6588262296411445
-MOCell,ZDT4,HV,11,0.656493323262239
-MOCell,ZDT4,HV,12,0.6585499575908095
-MOCell,ZDT4,HV,13,0.658863971950687
-MOCell,ZDT4,HV,14,0.6547535563447561
-MOCell,ZDT4,HV,15,0.6600559165098899
-MOCell,ZDT4,HV,16,0.6543183386455101
-MOCell,ZDT4,HV,17,0.6569531391228203
-MOCell,ZDT4,HV,18,0.6602586264202942
-MOCell,ZDT4,HV,19,0.6587996668905522
-MOCell,ZDT4,HV,20,0.6577805346673927
-MOCell,ZDT4,HV,21,0.6597452181113629
-MOCell,ZDT4,HV,22,0.6588170868480593
-MOCell,ZDT4,HV,23,0.6572820312771193
-MOCell,ZDT4,HV,24,0.6569981463900361
-MOCell,ZDT6,HV,0,0.39833728079340536
-MOCell,ZDT6,HV,1,0.3972619209030329
-MOCell,ZDT6,HV,2,0.3980518844122263
-MOCell,ZDT6,HV,3,0.3952596352018353
-MOCell,ZDT6,HV,4,0.3964632052296538
-MOCell,ZDT6,HV,5,0.39856947212516675
-MOCell,ZDT6,HV,6,0.39784209112061464
-MOCell,ZDT6,HV,7,0.39594219538768854
-MOCell,ZDT6,HV,8,0.3976177330627499
-MOCell,ZDT6,HV,9,0.3965974083788016
-MOCell,ZDT6,HV,10,0.3970976597349287
-MOCell,ZDT6,HV,11,0.3973087803934713
-MOCell,ZDT6,HV,12,0.39622544329630754
-MOCell,ZDT6,HV,13,0.3968376539672969
-MOCell,ZDT6,HV,14,0.39650537198389707
-MOCell,ZDT6,HV,15,0.39675509332012476
-MOCell,ZDT6,HV,16,0.3971508182273168
-MOCell,ZDT6,HV,17,0.3984118619692102
-MOCell,ZDT6,HV,18,0.3973116351695734
-MOCell,ZDT6,HV,19,0.3983522883531634
-MOCell,ZDT6,HV,20,0.3977988693501152
-MOCell,ZDT6,HV,21,0.3968509837231065
-MOCell,ZDT6,HV,22,0.39710423930666744
-MOCell,ZDT6,HV,23,0.39752127860992603
-MOCell,ZDT6,HV,24,0.39571114039842137
-NSGAII,ZDT1,IGD,0,1.8833664242441092E-4
-NSGAII,ZDT1,IGD,1,1.8080865650096537E-4
-NSGAII,ZDT1,IGD,2,1.7933336904366016E-4
-NSGAII,ZDT1,IGD,3,1.7816482353405125E-4
-NSGAII,ZDT1,IGD,4,1.772607492093996E-4
-NSGAII,ZDT1,IGD,5,1.8091997391352248E-4
-NSGAII,ZDT1,IGD,6,1.794049598037331E-4
-NSGAII,ZDT1,IGD,7,1.754597111606606E-4
-NSGAII,ZDT1,IGD,8,1.8747759245930817E-4
-NSGAII,ZDT1,IGD,9,1.8003320140116396E-4
-NSGAII,ZDT1,IGD,10,2.190675212498742E-4
-NSGAII,ZDT1,IGD,11,1.930511407039031E-4
-NSGAII,ZDT1,IGD,12,1.815045628030219E-4
-NSGAII,ZDT1,IGD,13,1.9824313793244134E-4
-NSGAII,ZDT1,IGD,14,1.892107378011814E-4
-NSGAII,ZDT1,IGD,15,1.8226364429864945E-4
-NSGAII,ZDT1,IGD,16,1.9046384948614555E-4
-NSGAII,ZDT1,IGD,17,1.8252499342338044E-4
-NSGAII,ZDT1,IGD,18,1.7461894497419379E-4
-NSGAII,ZDT1,IGD,19,1.8707413763325564E-4
-NSGAII,ZDT1,IGD,20,1.7308996378572063E-4
-NSGAII,ZDT1,IGD,21,1.9029120074685646E-4
-NSGAII,ZDT1,IGD,22,1.863226564386424E-4
-NSGAII,ZDT1,IGD,23,1.8746135136945882E-4
-NSGAII,ZDT1,IGD,24,1.8080173707270413E-4
-NSGAII,ZDT2,IGD,0,1.8238561484982936E-4
-NSGAII,ZDT2,IGD,1,1.9609946144997888E-4
-NSGAII,ZDT2,IGD,2,2.0089577182217074E-4
-NSGAII,ZDT2,IGD,3,1.8809733294237948E-4
-NSGAII,ZDT2,IGD,4,2.0266119372931734E-4
-NSGAII,ZDT2,IGD,5,1.839778562801473E-4
-NSGAII,ZDT2,IGD,6,1.913938207084915E-4
-NSGAII,ZDT2,IGD,7,1.8681770461976662E-4
-NSGAII,ZDT2,IGD,8,1.897542494166084E-4
-NSGAII,ZDT2,IGD,9,2.053202126540806E-4
-NSGAII,ZDT2,IGD,10,1.934377763330334E-4
-NSGAII,ZDT2,IGD,11,1.9359564990093856E-4
-NSGAII,ZDT2,IGD,12,1.796375836019978E-4
-NSGAII,ZDT2,IGD,13,1.974248458393956E-4
-NSGAII,ZDT2,IGD,14,1.942996078026385E-4
-NSGAII,ZDT2,IGD,15,1.7554336621605985E-4
-NSGAII,ZDT2,IGD,16,1.9018776376561437E-4
-NSGAII,ZDT2,IGD,17,2.0569337848900634E-4
-NSGAII,ZDT2,IGD,18,1.894975526120542E-4
-NSGAII,ZDT2,IGD,19,1.9834736623410752E-4
-NSGAII,ZDT2,IGD,20,1.915242047496319E-4
-NSGAII,ZDT2,IGD,21,1.853970753573947E-4
-NSGAII,ZDT2,IGD,22,1.8370000804406847E-4
-NSGAII,ZDT2,IGD,23,1.786892678976075E-4
-NSGAII,ZDT2,IGD,24,1.7645354107081947E-4
-NSGAII,ZDT3,IGD,0,1.433792162861537E-4
-NSGAII,ZDT3,IGD,1,1.258721585126749E-4
-NSGAII,ZDT3,IGD,2,1.2502834703831587E-4
-NSGAII,ZDT3,IGD,3,1.298122484132023E-4
-NSGAII,ZDT3,IGD,4,1.247053507998086E-4
-NSGAII,ZDT3,IGD,5,1.2768345826253452E-4
-NSGAII,ZDT3,IGD,6,1.297008770567078E-4
-NSGAII,ZDT3,IGD,7,0.00253219015653856
-NSGAII,ZDT3,IGD,8,1.2117232846383977E-4
-NSGAII,ZDT3,IGD,9,1.4253195084276633E-4
-NSGAII,ZDT3,IGD,10,1.2616974738495127E-4
-NSGAII,ZDT3,IGD,11,1.376368067306963E-4
-NSGAII,ZDT3,IGD,12,1.3883361601105712E-4
-NSGAII,ZDT3,IGD,13,1.3094383959492989E-4
-NSGAII,ZDT3,IGD,14,1.2911542356856492E-4
-NSGAII,ZDT3,IGD,15,1.4383315270980796E-4
-NSGAII,ZDT3,IGD,16,1.3451174613490733E-4
-NSGAII,ZDT3,IGD,17,1.20446071963263E-4
-NSGAII,ZDT3,IGD,18,1.5743393826732813E-4
-NSGAII,ZDT3,IGD,19,1.2797755984075284E-4
-NSGAII,ZDT3,IGD,20,1.3038290700949067E-4
-NSGAII,ZDT3,IGD,21,1.255326450713504E-4
-NSGAII,ZDT3,IGD,22,1.3666150364985503E-4
-NSGAII,ZDT3,IGD,23,1.2735402943107822E-4
-NSGAII,ZDT3,IGD,24,1.2778999690962593E-4
-NSGAII,ZDT4,IGD,0,2.0336974013333836E-4
-NSGAII,ZDT4,IGD,1,2.6891290668465325E-4
-NSGAII,ZDT4,IGD,2,2.093352133671252E-4
-NSGAII,ZDT4,IGD,3,2.5592613321499856E-4
-NSGAII,ZDT4,IGD,4,1.9592595454451473E-4
-NSGAII,ZDT4,IGD,5,2.145660128618822E-4
-NSGAII,ZDT4,IGD,6,2.1572658772116927E-4
-NSGAII,ZDT4,IGD,7,2.3462872592921576E-4
-NSGAII,ZDT4,IGD,8,2.0247991491372636E-4
-NSGAII,ZDT4,IGD,9,1.7765145461460412E-4
-NSGAII,ZDT4,IGD,10,1.7832974012184128E-4
-NSGAII,ZDT4,IGD,11,2.466372714259319E-4
-NSGAII,ZDT4,IGD,12,1.98017971331275E-4
-NSGAII,ZDT4,IGD,13,1.746645565675423E-4
-NSGAII,ZDT4,IGD,14,1.856981486835864E-4
-NSGAII,ZDT4,IGD,15,3.192384419596279E-4
-NSGAII,ZDT4,IGD,16,2.3274480639764054E-4
-NSGAII,ZDT4,IGD,17,1.8516508197341435E-4
-NSGAII,ZDT4,IGD,18,2.1226039369519749E-4
-NSGAII,ZDT4,IGD,19,2.0006935230151816E-4
-NSGAII,ZDT4,IGD,20,3.37556876160161E-4
-NSGAII,ZDT4,IGD,21,1.78073386293443E-4
-NSGAII,ZDT4,IGD,22,2.46308292912196E-4
-NSGAII,ZDT4,IGD,23,2.3446130352194387E-4
-NSGAII,ZDT4,IGD,24,1.903712817254072E-4
-NSGAII,ZDT6,IGD,0,3.4241123690058415E-4
-NSGAII,ZDT6,IGD,1,3.243912196477429E-4
-NSGAII,ZDT6,IGD,2,3.0519981876626944E-4
-NSGAII,ZDT6,IGD,3,3.835620070812266E-4
-NSGAII,ZDT6,IGD,4,3.244250795803923E-4
-NSGAII,ZDT6,IGD,5,3.2651914698259303E-4
-NSGAII,ZDT6,IGD,6,3.0886401874535705E-4
-NSGAII,ZDT6,IGD,7,2.9540603687239284E-4
-NSGAII,ZDT6,IGD,8,3.053463524782681E-4
-NSGAII,ZDT6,IGD,9,3.234914982025726E-4
-NSGAII,ZDT6,IGD,10,3.0241848747936063E-4
-NSGAII,ZDT6,IGD,11,3.3069546337932736E-4
-NSGAII,ZDT6,IGD,12,3.255761095747894E-4
-NSGAII,ZDT6,IGD,13,3.762551239446793E-4
-NSGAII,ZDT6,IGD,14,2.9676833542140494E-4
-NSGAII,ZDT6,IGD,15,3.5432919532154796E-4
-NSGAII,ZDT6,IGD,16,3.1903959047064923E-4
-NSGAII,ZDT6,IGD,17,3.3802174216706905E-4
-NSGAII,ZDT6,IGD,18,3.022645090083654E-4
-NSGAII,ZDT6,IGD,19,3.486872024667784E-4
-NSGAII,ZDT6,IGD,20,3.303440383881005E-4
-NSGAII,ZDT6,IGD,21,3.322423977897537E-4
-NSGAII,ZDT6,IGD,22,3.1255483648132706E-4
-NSGAII,ZDT6,IGD,23,3.3870529314107003E-4
-NSGAII,ZDT6,IGD,24,2.587074250488702E-4
-SMPSO,ZDT1,IGD,0,1.347781793769338E-4
-SMPSO,ZDT1,IGD,1,1.338592691335904E-4
-SMPSO,ZDT1,IGD,2,1.3419010393070564E-4
-SMPSO,ZDT1,IGD,3,1.350984652120823E-4
-SMPSO,ZDT1,IGD,4,1.3550972520241564E-4
-SMPSO,ZDT1,IGD,5,1.3486448722492878E-4
-SMPSO,ZDT1,IGD,6,1.3515160680859E-4
-SMPSO,ZDT1,IGD,7,1.350746460547505E-4
-SMPSO,ZDT1,IGD,8,1.3498161366165524E-4
-SMPSO,ZDT1,IGD,9,1.3506462518344506E-4
-SMPSO,ZDT1,IGD,10,1.3439727128513058E-4
-SMPSO,ZDT1,IGD,11,1.360011603141862E-4
-SMPSO,ZDT1,IGD,12,1.340503122654314E-4
-SMPSO,ZDT1,IGD,13,1.3586462540137289E-4
-SMPSO,ZDT1,IGD,14,1.3472575666657205E-4
-SMPSO,ZDT1,IGD,15,1.3473981770750453E-4
-SMPSO,ZDT1,IGD,16,1.3527050516796757E-4
-SMPSO,ZDT1,IGD,17,1.343401011335702E-4
-SMPSO,ZDT1,IGD,18,1.3419812223876848E-4
-SMPSO,ZDT1,IGD,19,1.3522510666260179E-4
-SMPSO,ZDT1,IGD,20,1.350428016673193E-4
-SMPSO,ZDT1,IGD,21,1.3451838206076592E-4
-SMPSO,ZDT1,IGD,22,1.3509389458746216E-4
-SMPSO,ZDT1,IGD,23,1.3633485335515507E-4
-SMPSO,ZDT1,IGD,24,1.3382289720253E-4
-SMPSO,ZDT2,IGD,0,1.384350481613363E-4
-SMPSO,ZDT2,IGD,1,1.403029776623121E-4
-SMPSO,ZDT2,IGD,2,1.39865070385901E-4
-SMPSO,ZDT2,IGD,3,1.4056150214270978E-4
-SMPSO,ZDT2,IGD,4,1.3998704215556327E-4
-SMPSO,ZDT2,IGD,5,1.4158918371759944E-4
-SMPSO,ZDT2,IGD,6,1.405803448943494E-4
-SMPSO,ZDT2,IGD,7,1.3869679081919556E-4
-SMPSO,ZDT2,IGD,8,1.3934032399220384E-4
-SMPSO,ZDT2,IGD,9,1.415260347637763E-4
-SMPSO,ZDT2,IGD,10,1.4016956792319571E-4
-SMPSO,ZDT2,IGD,11,1.3993603478787975E-4
-SMPSO,ZDT2,IGD,12,1.3933625416310684E-4
-SMPSO,ZDT2,IGD,13,1.4076489683982027E-4
-SMPSO,ZDT2,IGD,14,1.3842752918962343E-4
-SMPSO,ZDT2,IGD,15,1.3936172825530256E-4
-SMPSO,ZDT2,IGD,16,1.430820426781854E-4
-SMPSO,ZDT2,IGD,17,1.407471327860264E-4
-SMPSO,ZDT2,IGD,18,1.4176783437500772E-4
-SMPSO,ZDT2,IGD,19,1.4051300797401626E-4
-SMPSO,ZDT2,IGD,20,1.3926063999410588E-4
-SMPSO,ZDT2,IGD,21,1.4148134047248356E-4
-SMPSO,ZDT2,IGD,22,1.3899030281851513E-4
-SMPSO,ZDT2,IGD,23,1.3958172720310975E-4
-SMPSO,ZDT2,IGD,24,1.3829383437945748E-4
-SMPSO,ZDT3,IGD,0,1.0003888428846355E-4
-SMPSO,ZDT3,IGD,1,1.0294833039284476E-4
-SMPSO,ZDT3,IGD,2,1.0217250623283579E-4
-SMPSO,ZDT3,IGD,3,9.914077205671434E-5
-SMPSO,ZDT3,IGD,4,1.0104029243056633E-4
-SMPSO,ZDT3,IGD,5,3.352403969360658E-4
-SMPSO,ZDT3,IGD,6,1.0309129510847693E-4
-SMPSO,ZDT3,IGD,7,1.0115977110528363E-4
-SMPSO,ZDT3,IGD,8,1.0395876608586175E-4
-SMPSO,ZDT3,IGD,9,1.0571204694644283E-4
-SMPSO,ZDT3,IGD,10,9.7858109837827E-5
-SMPSO,ZDT3,IGD,11,1.0427103996680496E-4
-SMPSO,ZDT3,IGD,12,9.99188390989214E-5
-SMPSO,ZDT3,IGD,13,9.871835896117895E-5
-SMPSO,ZDT3,IGD,14,9.932688472791742E-5
-SMPSO,ZDT3,IGD,15,1.0243214386539319E-4
-SMPSO,ZDT3,IGD,16,1.0161638333048238E-4
-SMPSO,ZDT3,IGD,17,1.1423392080829078E-4
-SMPSO,ZDT3,IGD,18,1.0660670014521694E-4
-SMPSO,ZDT3,IGD,19,9.936841876063569E-5
-SMPSO,ZDT3,IGD,20,1.0860897260135763E-4
-SMPSO,ZDT3,IGD,21,1.0081706615044334E-4
-SMPSO,ZDT3,IGD,22,0.001363738192388883
-SMPSO,ZDT3,IGD,23,1.0085273232813133E-4
-SMPSO,ZDT3,IGD,24,9.850938783339523E-5
-SMPSO,ZDT4,IGD,0,1.3843797888989573E-4
-SMPSO,ZDT4,IGD,1,1.3803143218807856E-4
-SMPSO,ZDT4,IGD,2,1.370634807165399E-4
-SMPSO,ZDT4,IGD,3,1.381378979499549E-4
-SMPSO,ZDT4,IGD,4,1.3659510822786362E-4
-SMPSO,ZDT4,IGD,5,1.375651113920898E-4
-SMPSO,ZDT4,IGD,6,1.3835330994082487E-4
-SMPSO,ZDT4,IGD,7,1.3662015361451158E-4
-SMPSO,ZDT4,IGD,8,1.3654785718518234E-4
-SMPSO,ZDT4,IGD,9,1.3688603513084996E-4
-SMPSO,ZDT4,IGD,10,1.3642351849020218E-4
-SMPSO,ZDT4,IGD,11,1.367982209639073E-4
-SMPSO,ZDT4,IGD,12,1.3545915346724596E-4
-SMPSO,ZDT4,IGD,13,1.3739990399684623E-4
-SMPSO,ZDT4,IGD,14,1.4207301900244905E-4
-SMPSO,ZDT4,IGD,15,1.3564896865905367E-4
-SMPSO,ZDT4,IGD,16,1.3802120064644453E-4
-SMPSO,ZDT4,IGD,17,1.3605217033898825E-4
-SMPSO,ZDT4,IGD,18,1.369593026815621E-4
-SMPSO,ZDT4,IGD,19,1.3642052826902355E-4
-SMPSO,ZDT4,IGD,20,1.3717114112059674E-4
-SMPSO,ZDT4,IGD,21,1.368016067822751E-4
-SMPSO,ZDT4,IGD,22,1.3695698333598166E-4
-SMPSO,ZDT4,IGD,23,1.3767950380056952E-4
-SMPSO,ZDT4,IGD,24,1.3911615979706604E-4
-SMPSO,ZDT6,IGD,0,1.6141068827119664E-4
-SMPSO,ZDT6,IGD,1,1.631989106739636E-4
-SMPSO,ZDT6,IGD,2,1.6152677251597404E-4
-SMPSO,ZDT6,IGD,3,1.6321781570484143E-4
-SMPSO,ZDT6,IGD,4,1.6307128521652218E-4
-SMPSO,ZDT6,IGD,5,1.634872261761511E-4
-SMPSO,ZDT6,IGD,6,1.618483285913355E-4
-SMPSO,ZDT6,IGD,7,1.6627589046496028E-4
-SMPSO,ZDT6,IGD,8,1.632443410076662E-4
-SMPSO,ZDT6,IGD,9,1.65069540413467E-4
-SMPSO,ZDT6,IGD,10,1.6383244772443824E-4
-SMPSO,ZDT6,IGD,11,1.644699416701146E-4
-SMPSO,ZDT6,IGD,12,1.6510971888077021E-4
-SMPSO,ZDT6,IGD,13,1.6621654972534563E-4
-SMPSO,ZDT6,IGD,14,1.6276016853834595E-4
-SMPSO,ZDT6,IGD,15,1.630286319845905E-4
-SMPSO,ZDT6,IGD,16,1.6627061245807218E-4
-SMPSO,ZDT6,IGD,17,1.6453685559581532E-4
-SMPSO,ZDT6,IGD,18,1.6384015543874968E-4
-SMPSO,ZDT6,IGD,19,1.6436871042316097E-4
-SMPSO,ZDT6,IGD,20,1.6313361387663026E-4
-SMPSO,ZDT6,IGD,21,1.6243382557049458E-4
-SMPSO,ZDT6,IGD,22,1.6280968959568162E-4
-SMPSO,ZDT6,IGD,23,1.6337702046959217E-4
-SMPSO,ZDT6,IGD,24,1.6336465774830495E-4
-MOEAD,ZDT1,IGD,0,4.7682155947782436E-4
-MOEAD,ZDT1,IGD,1,5.55688989986941E-4
-MOEAD,ZDT1,IGD,2,4.4240570098893193E-4
-MOEAD,ZDT1,IGD,3,5.516931408953574E-4
-MOEAD,ZDT1,IGD,4,7.341406888274701E-4
-MOEAD,ZDT1,IGD,5,2.878209998119567E-4
-MOEAD,ZDT1,IGD,6,3.4769628010318103E-4
-MOEAD,ZDT1,IGD,7,4.44889076927305E-4
-MOEAD,ZDT1,IGD,8,3.6999637578234105E-4
-MOEAD,ZDT1,IGD,9,2.2466744541454938E-4
-MOEAD,ZDT1,IGD,10,7.72346830264958E-4
-MOEAD,ZDT1,IGD,11,5.071060408399627E-4
-MOEAD,ZDT1,IGD,12,9.895789285423963E-4
-MOEAD,ZDT1,IGD,13,5.004382375207709E-4
-MOEAD,ZDT1,IGD,14,6.224765605346007E-4
-MOEAD,ZDT1,IGD,15,5.692225196322151E-4
-MOEAD,ZDT1,IGD,16,5.373042936692662E-4
-MOEAD,ZDT1,IGD,17,3.870164225808099E-4
-MOEAD,ZDT1,IGD,18,4.987716667880003E-4
-MOEAD,ZDT1,IGD,19,7.728951509739557E-4
-MOEAD,ZDT1,IGD,20,4.4095127390420544E-4
-MOEAD,ZDT1,IGD,21,4.4523774157669693E-4
-MOEAD,ZDT1,IGD,22,5.212912278723373E-4
-MOEAD,ZDT1,IGD,23,6.817038926403996E-4
-MOEAD,ZDT1,IGD,24,4.313153155505207E-4
-MOEAD,ZDT2,IGD,0,4.811750330918356E-4
-MOEAD,ZDT2,IGD,1,4.022506985007478E-4
-MOEAD,ZDT2,IGD,2,3.0102077325136744E-4
-MOEAD,ZDT2,IGD,3,3.2803947286166364E-4
-MOEAD,ZDT2,IGD,4,3.6815567421134485E-4
-MOEAD,ZDT2,IGD,5,6.320729649473834E-4
-MOEAD,ZDT2,IGD,6,3.319312730671185E-4
-MOEAD,ZDT2,IGD,7,3.7794098625788645E-4
-MOEAD,ZDT2,IGD,8,5.347335625713767E-4
-MOEAD,ZDT2,IGD,9,4.352761883786031E-4
-MOEAD,ZDT2,IGD,10,4.7133723679427603E-4
-MOEAD,ZDT2,IGD,11,5.20061908975121E-4
-MOEAD,ZDT2,IGD,12,3.173829370958391E-4
-MOEAD,ZDT2,IGD,13,4.411765944671989E-4
-MOEAD,ZDT2,IGD,14,3.930050099559731E-4
-MOEAD,ZDT2,IGD,15,8.19262008469521E-4
-MOEAD,ZDT2,IGD,16,4.032895068860748E-4
-MOEAD,ZDT2,IGD,17,6.181354596402032E-4
-MOEAD,ZDT2,IGD,18,3.1692217896816323E-4
-MOEAD,ZDT2,IGD,19,4.817766258796298E-4
-MOEAD,ZDT2,IGD,20,4.1850074815642986E-4
-MOEAD,ZDT2,IGD,21,4.2716674992142263E-4
-MOEAD,ZDT2,IGD,22,2.1872805462018772E-4
-MOEAD,ZDT2,IGD,23,5.145008670539361E-4
-MOEAD,ZDT2,IGD,24,8.385592283484091E-4
-MOEAD,ZDT3,IGD,0,0.0027987988941478325
-MOEAD,ZDT3,IGD,1,0.001515835846558366
-MOEAD,ZDT3,IGD,2,0.001728792129116636
-MOEAD,ZDT3,IGD,3,0.0015563379811101253
-MOEAD,ZDT3,IGD,4,0.0018799890636335306
-MOEAD,ZDT3,IGD,5,0.0023510870259227296
-MOEAD,ZDT3,IGD,6,6.58282874341803E-4
-MOEAD,ZDT3,IGD,7,0.0023817998466407237
-MOEAD,ZDT3,IGD,8,0.0011449105405804021
-MOEAD,ZDT3,IGD,9,0.0015213167860628437
-MOEAD,ZDT3,IGD,10,0.0017572415259370074
-MOEAD,ZDT3,IGD,11,7.760876163862238E-4
-MOEAD,ZDT3,IGD,12,0.0030516945841567167
-MOEAD,ZDT3,IGD,13,0.0021361299433491792
-MOEAD,ZDT3,IGD,14,0.0019288776413790036
-MOEAD,ZDT3,IGD,15,0.0012523141514340311
-MOEAD,ZDT3,IGD,16,7.731740065567918E-4
-MOEAD,ZDT3,IGD,17,0.0014614390043163168
-MOEAD,ZDT3,IGD,18,0.00210170652621468
-MOEAD,ZDT3,IGD,19,9.053699537753747E-4
-MOEAD,ZDT3,IGD,20,0.0018938854583224743
-MOEAD,ZDT3,IGD,21,0.0021310095289833754
-MOEAD,ZDT3,IGD,22,0.0034455674441160075
-MOEAD,ZDT3,IGD,23,0.0012238748790044515
-MOEAD,ZDT3,IGD,24,0.0016269994430431066
-MOEAD,ZDT4,IGD,0,0.004847623017046451
-MOEAD,ZDT4,IGD,1,9.184785262309381E-4
-MOEAD,ZDT4,IGD,2,0.013526946768815268
-MOEAD,ZDT4,IGD,3,0.013984823540061544
-MOEAD,ZDT4,IGD,4,0.015125341054725776
-MOEAD,ZDT4,IGD,5,0.010201216024169424
-MOEAD,ZDT4,IGD,6,0.004108548417487761
-MOEAD,ZDT4,IGD,7,0.005498453088058285
-MOEAD,ZDT4,IGD,8,0.013568312154372084
-MOEAD,ZDT4,IGD,9,0.015898676028648723
-MOEAD,ZDT4,IGD,10,0.00835957866585282
-MOEAD,ZDT4,IGD,11,0.024525554721850727
-MOEAD,ZDT4,IGD,12,0.021324412659287362
-MOEAD,ZDT4,IGD,13,0.010453072659935456
-MOEAD,ZDT4,IGD,14,0.0011183771010444092
-MOEAD,ZDT4,IGD,15,0.009588776803982173
-MOEAD,ZDT4,IGD,16,0.006166347147296605
-MOEAD,ZDT4,IGD,17,0.009543649053067382
-MOEAD,ZDT4,IGD,18,0.021586485535914447
-MOEAD,ZDT4,IGD,19,0.012072687162291248
-MOEAD,ZDT4,IGD,20,8.031246441215164E-4
-MOEAD,ZDT4,IGD,21,0.01173232910387586
-MOEAD,ZDT4,IGD,22,0.003384911495566995
-MOEAD,ZDT4,IGD,23,0.015301942731248299
-MOEAD,ZDT4,IGD,24,0.00793844882237393
-MOEAD,ZDT6,IGD,0,1.8217689992821342E-4
-MOEAD,ZDT6,IGD,1,1.8211506969720984E-4
-MOEAD,ZDT6,IGD,2,1.8212558333516367E-4
-MOEAD,ZDT6,IGD,3,1.8236049912169472E-4
-MOEAD,ZDT6,IGD,4,1.822086678472033E-4
-MOEAD,ZDT6,IGD,5,1.822160625975425E-4
-MOEAD,ZDT6,IGD,6,1.8213204902052434E-4
-MOEAD,ZDT6,IGD,7,1.8218227269403356E-4
-MOEAD,ZDT6,IGD,8,1.8217146403861576E-4
-MOEAD,ZDT6,IGD,9,1.8208511494281272E-4
-MOEAD,ZDT6,IGD,10,1.8211858070235837E-4
-MOEAD,ZDT6,IGD,11,1.8208239063525604E-4
-MOEAD,ZDT6,IGD,12,1.8209085427707173E-4
-MOEAD,ZDT6,IGD,13,1.820995009564811E-4
-MOEAD,ZDT6,IGD,14,1.8209791082805788E-4
-MOEAD,ZDT6,IGD,15,1.8206671955848535E-4
-MOEAD,ZDT6,IGD,16,1.8250602928605977E-4
-MOEAD,ZDT6,IGD,17,1.8267907756570342E-4
-MOEAD,ZDT6,IGD,18,1.8207783718120603E-4
-MOEAD,ZDT6,IGD,19,1.8220481204749825E-4
-MOEAD,ZDT6,IGD,20,1.8228194902643192E-4
-MOEAD,ZDT6,IGD,21,1.8238415974397912E-4
-MOEAD,ZDT6,IGD,22,1.8219041499236365E-4
-MOEAD,ZDT6,IGD,23,1.8211020223319864E-4
-MOEAD,ZDT6,IGD,24,1.8241834706584565E-4
-GDE3,ZDT1,IGD,0,1.7551395131030657E-4
-GDE3,ZDT1,IGD,1,1.8043443213960395E-4
-GDE3,ZDT1,IGD,2,1.7377812778058578E-4
-GDE3,ZDT1,IGD,3,1.8114181370827324E-4
-GDE3,ZDT1,IGD,4,1.9127173755041204E-4
-GDE3,ZDT1,IGD,5,1.762546000423145E-4
-GDE3,ZDT1,IGD,6,1.6731715465641528E-4
-GDE3,ZDT1,IGD,7,1.8470339248753722E-4
-GDE3,ZDT1,IGD,8,1.7531535557054498E-4
-GDE3,ZDT1,IGD,9,1.9207270089744571E-4
-GDE3,ZDT1,IGD,10,1.899937228013097E-4
-GDE3,ZDT1,IGD,11,1.7050347943787296E-4
-GDE3,ZDT1,IGD,12,1.8497695024921728E-4
-GDE3,ZDT1,IGD,13,1.7055427721001575E-4
-GDE3,ZDT1,IGD,14,1.6043395740233756E-4
-GDE3,ZDT1,IGD,15,1.771502949960489E-4
-GDE3,ZDT1,IGD,16,1.9492697106896165E-4
-GDE3,ZDT1,IGD,17,1.7508427125864892E-4
-GDE3,ZDT1,IGD,18,1.6992136571746693E-4
-GDE3,ZDT1,IGD,19,1.8355329598249736E-4
-GDE3,ZDT1,IGD,20,1.7503264466431717E-4
-GDE3,ZDT1,IGD,21,1.7936077392629286E-4
-GDE3,ZDT1,IGD,22,1.7935204239902326E-4
-GDE3,ZDT1,IGD,23,1.8023389030095082E-4
-GDE3,ZDT1,IGD,24,1.7425946880092176E-4
-GDE3,ZDT2,IGD,0,1.7108103369868329E-4
-GDE3,ZDT2,IGD,1,2.0098251348070367E-4
-GDE3,ZDT2,IGD,2,1.8036465271793355E-4
-GDE3,ZDT2,IGD,3,1.9645686734212866E-4
-GDE3,ZDT2,IGD,4,1.8605513593673826E-4
-GDE3,ZDT2,IGD,5,1.8220974190696795E-4
-GDE3,ZDT2,IGD,6,1.8003622383448378E-4
-GDE3,ZDT2,IGD,7,1.917995316194731E-4
-GDE3,ZDT2,IGD,8,1.8027779906302745E-4
-GDE3,ZDT2,IGD,9,1.6476752205240195E-4
-GDE3,ZDT2,IGD,10,1.765215396254085E-4
-GDE3,ZDT2,IGD,11,1.8134636606762164E-4
-GDE3,ZDT2,IGD,12,1.7956246080081265E-4
-GDE3,ZDT2,IGD,13,1.8008872174204502E-4
-GDE3,ZDT2,IGD,14,1.870988318727817E-4
-GDE3,ZDT2,IGD,15,1.8696174256984408E-4
-GDE3,ZDT2,IGD,16,1.7589597595589815E-4
-GDE3,ZDT2,IGD,17,1.7294845755191153E-4
-GDE3,ZDT2,IGD,18,1.8432271632832552E-4
-GDE3,ZDT2,IGD,19,1.9235476319704757E-4
-GDE3,ZDT2,IGD,20,2.2464669746274539E-4
-GDE3,ZDT2,IGD,21,1.658257774892998E-4
-GDE3,ZDT2,IGD,22,1.712792470609082E-4
-GDE3,ZDT2,IGD,23,1.700841518641556E-4
-GDE3,ZDT2,IGD,24,1.8748261715876107E-4
-GDE3,ZDT3,IGD,0,1.1324635839193617E-4
-GDE3,ZDT3,IGD,1,1.2165853553071441E-4
-GDE3,ZDT3,IGD,2,1.1818445229884213E-4
-GDE3,ZDT3,IGD,3,1.3598916858123595E-4
-GDE3,ZDT3,IGD,4,1.2231430244626567E-4
-GDE3,ZDT3,IGD,5,1.2791759649836303E-4
-GDE3,ZDT3,IGD,6,1.1461741540544899E-4
-GDE3,ZDT3,IGD,7,1.230621957747829E-4
-GDE3,ZDT3,IGD,8,1.143327319234801E-4
-GDE3,ZDT3,IGD,9,1.2156011425249635E-4
-GDE3,ZDT3,IGD,10,1.2410284376266836E-4
-GDE3,ZDT3,IGD,11,1.2979282877502367E-4
-GDE3,ZDT3,IGD,12,1.2671594627111828E-4
-GDE3,ZDT3,IGD,13,1.2274252700064775E-4
-GDE3,ZDT3,IGD,14,1.2186419746001862E-4
-GDE3,ZDT3,IGD,15,1.1962765506441027E-4
-GDE3,ZDT3,IGD,16,1.3844033534363696E-4
-GDE3,ZDT3,IGD,17,1.2321529408578408E-4
-GDE3,ZDT3,IGD,18,1.2791903541724216E-4
-GDE3,ZDT3,IGD,19,1.193102514246129E-4
-GDE3,ZDT3,IGD,20,1.2536343008224672E-4
-GDE3,ZDT3,IGD,21,1.262697289428084E-4
-GDE3,ZDT3,IGD,22,1.2003772386054166E-4
-GDE3,ZDT3,IGD,23,1.187057726974845E-4
-GDE3,ZDT3,IGD,24,1.2214443418783144E-4
-GDE3,ZDT4,IGD,0,0.14332055149679218
-GDE3,ZDT4,IGD,1,0.11126255142748888
-GDE3,ZDT4,IGD,2,0.10341860551893081
-GDE3,ZDT4,IGD,3,0.09514793309589925
-GDE3,ZDT4,IGD,4,0.07474500183171605
-GDE3,ZDT4,IGD,5,0.10596841187556459
-GDE3,ZDT4,IGD,6,0.09885463701931113
-GDE3,ZDT4,IGD,7,0.11781658915093789
-GDE3,ZDT4,IGD,8,0.1658529146967705
-GDE3,ZDT4,IGD,9,0.13495729176183063
-GDE3,ZDT4,IGD,10,0.12619133427815482
-GDE3,ZDT4,IGD,11,0.0984344276207068
-GDE3,ZDT4,IGD,12,0.1553790102316686
-GDE3,ZDT4,IGD,13,0.12108518757516362
-GDE3,ZDT4,IGD,14,0.09507993506519732
-GDE3,ZDT4,IGD,15,0.12005026089723483
-GDE3,ZDT4,IGD,16,0.11931730541492527
-GDE3,ZDT4,IGD,17,0.0624126917967038
-GDE3,ZDT4,IGD,18,0.12989893897233015
-GDE3,ZDT4,IGD,19,0.16256628830057485
-GDE3,ZDT4,IGD,20,0.10927454688785075
-GDE3,ZDT4,IGD,21,0.17642701005767586
-GDE3,ZDT4,IGD,22,0.12583699533513207
-GDE3,ZDT4,IGD,23,0.11638106721153166
-GDE3,ZDT4,IGD,24,0.13063011223499643
-GDE3,ZDT6,IGD,0,2.7316785515516434E-4
-GDE3,ZDT6,IGD,1,2.7711041639281954E-4
-GDE3,ZDT6,IGD,2,2.680715187347817E-4
-GDE3,ZDT6,IGD,3,2.750970226182351E-4
-GDE3,ZDT6,IGD,4,2.741695341961667E-4
-GDE3,ZDT6,IGD,5,2.4851602773164424E-4
-GDE3,ZDT6,IGD,6,2.593527798737855E-4
-GDE3,ZDT6,IGD,7,2.60215642590584E-4
-GDE3,ZDT6,IGD,8,2.77018125979499E-4
-GDE3,ZDT6,IGD,9,2.490925839418155E-4
-GDE3,ZDT6,IGD,10,2.9386289023032217E-4
-GDE3,ZDT6,IGD,11,2.606758890566831E-4
-GDE3,ZDT6,IGD,12,2.55970275345395E-4
-GDE3,ZDT6,IGD,13,2.5449393221252273E-4
-GDE3,ZDT6,IGD,14,2.7342583377712703E-4
-GDE3,ZDT6,IGD,15,2.5110398414651577E-4
-GDE3,ZDT6,IGD,16,2.6114474422085003E-4
-GDE3,ZDT6,IGD,17,2.758103237512577E-4
-GDE3,ZDT6,IGD,18,3.256765874361149E-4
-GDE3,ZDT6,IGD,19,2.7351319375137147E-4
-GDE3,ZDT6,IGD,20,3.025562860987361E-4
-GDE3,ZDT6,IGD,21,2.623237603922685E-4
-GDE3,ZDT6,IGD,22,2.7259296663423435E-4
-GDE3,ZDT6,IGD,23,2.4584005707768697E-4
-GDE3,ZDT6,IGD,24,2.422633777235995E-4
-MOCell,ZDT1,IGD,0,1.369317448447296E-4
-MOCell,ZDT1,IGD,1,1.3930757913748498E-4
-MOCell,ZDT1,IGD,2,1.373504070011177E-4
-MOCell,ZDT1,IGD,3,1.3860741644095218E-4
-MOCell,ZDT1,IGD,4,1.373243358757292E-4
-MOCell,ZDT1,IGD,5,1.3849390792208778E-4
-MOCell,ZDT1,IGD,6,1.367636225884187E-4
-MOCell,ZDT1,IGD,7,1.3756895553091646E-4
-MOCell,ZDT1,IGD,8,1.3885904161862496E-4
-MOCell,ZDT1,IGD,9,1.3726355483811213E-4
-MOCell,ZDT1,IGD,10,1.3777577266675572E-4
-MOCell,ZDT1,IGD,11,1.3910816556330678E-4
-MOCell,ZDT1,IGD,12,1.3676727364702473E-4
-MOCell,ZDT1,IGD,13,1.3591530785945921E-4
-MOCell,ZDT1,IGD,14,1.366795859695948E-4
-MOCell,ZDT1,IGD,15,1.368231684630265E-4
-MOCell,ZDT1,IGD,16,1.3816964715280004E-4
-MOCell,ZDT1,IGD,17,1.3827139415234404E-4
-MOCell,ZDT1,IGD,18,1.3755590366042755E-4
-MOCell,ZDT1,IGD,19,1.374224532268976E-4
-MOCell,ZDT1,IGD,20,1.372142081233496E-4
-MOCell,ZDT1,IGD,21,1.369055926645171E-4
-MOCell,ZDT1,IGD,22,1.3549686395559674E-4
-MOCell,ZDT1,IGD,23,1.3770382844696598E-4
-MOCell,ZDT1,IGD,24,1.3678637710827688E-4
-MOCell,ZDT2,IGD,0,1.3813613862375694E-4
-MOCell,ZDT2,IGD,1,1.4007629980486325E-4
-MOCell,ZDT2,IGD,2,1.406041886499339E-4
-MOCell,ZDT2,IGD,3,1.4326583294115976E-4
-MOCell,ZDT2,IGD,4,1.4005731153029325E-4
-MOCell,ZDT2,IGD,5,1.4439986812859895E-4
-MOCell,ZDT2,IGD,6,1.4858031560883867E-4
-MOCell,ZDT2,IGD,7,1.3829356802558823E-4
-MOCell,ZDT2,IGD,8,1.4108339177780555E-4
-MOCell,ZDT2,IGD,9,1.4014924843136058E-4
-MOCell,ZDT2,IGD,10,1.390343067742192E-4
-MOCell,ZDT2,IGD,11,1.410471123008479E-4
-MOCell,ZDT2,IGD,12,1.3762215259176358E-4
-MOCell,ZDT2,IGD,13,1.4029497054088153E-4
-MOCell,ZDT2,IGD,14,1.3914412769828994E-4
-MOCell,ZDT2,IGD,15,1.4398416692273713E-4
-MOCell,ZDT2,IGD,16,1.3944762871489352E-4
-MOCell,ZDT2,IGD,17,1.3955820014146568E-4
-MOCell,ZDT2,IGD,18,1.4159669847146715E-4
-MOCell,ZDT2,IGD,19,1.3850231117789008E-4
-MOCell,ZDT2,IGD,20,1.389200635975345E-4
-MOCell,ZDT2,IGD,21,1.3878826149691078E-4
-MOCell,ZDT2,IGD,22,1.3835445933388786E-4
-MOCell,ZDT2,IGD,23,1.4884118569211935E-4
-MOCell,ZDT2,IGD,24,1.3875342813453686E-4
-MOCell,ZDT3,IGD,0,1.0269313907094705E-4
-MOCell,ZDT3,IGD,1,1.0281794434178123E-4
-MOCell,ZDT3,IGD,2,0.002545927575317387
-MOCell,ZDT3,IGD,3,1.0742434938829601E-4
-MOCell,ZDT3,IGD,4,1.0307690969259035E-4
-MOCell,ZDT3,IGD,5,1.0465025838928635E-4
-MOCell,ZDT3,IGD,6,1.0117786761854797E-4
-MOCell,ZDT3,IGD,7,0.00252903095725414
-MOCell,ZDT3,IGD,8,0.0025314837677209196
-MOCell,ZDT3,IGD,9,9.950977668569667E-5
-MOCell,ZDT3,IGD,10,1.081830106225972E-4
-MOCell,ZDT3,IGD,11,9.913400537167682E-5
-MOCell,ZDT3,IGD,12,1.0139001393836761E-4
-MOCell,ZDT3,IGD,13,1.0327998004903062E-4
-MOCell,ZDT3,IGD,14,1.0166173184433744E-4
-MOCell,ZDT3,IGD,15,1.0195157593932486E-4
-MOCell,ZDT3,IGD,16,1.0146237526847564E-4
-MOCell,ZDT3,IGD,17,0.002534111409988324
-MOCell,ZDT3,IGD,18,1.0146781442426372E-4
-MOCell,ZDT3,IGD,19,1.0434169229560554E-4
-MOCell,ZDT3,IGD,20,1.0305310398873465E-4
-MOCell,ZDT3,IGD,21,1.0276814662722606E-4
-MOCell,ZDT3,IGD,22,1.0003169389802891E-4
-MOCell,ZDT3,IGD,23,1.0283834560432795E-4
-MOCell,ZDT3,IGD,24,1.0430981342432838E-4
-MOCell,ZDT4,IGD,0,1.995884262065083E-4
-MOCell,ZDT4,IGD,1,1.5137615762558223E-4
-MOCell,ZDT4,IGD,2,2.547139556060984E-4
-MOCell,ZDT4,IGD,3,1.7652077420693253E-4
-MOCell,ZDT4,IGD,4,2.0423532948229828E-4
-MOCell,ZDT4,IGD,5,2.1604668712380562E-4
-MOCell,ZDT4,IGD,6,1.7498902872153482E-4
-MOCell,ZDT4,IGD,7,1.8982404366192998E-4
-MOCell,ZDT4,IGD,8,1.694785664013619E-4
-MOCell,ZDT4,IGD,9,1.593865492413681E-4
-MOCell,ZDT4,IGD,10,1.5775052535965255E-4
-MOCell,ZDT4,IGD,11,7.295721317798411E-4
-MOCell,ZDT4,IGD,12,1.6048357050256002E-4
-MOCell,ZDT4,IGD,13,1.5588201391531967E-4
-MOCell,ZDT4,IGD,14,2.2222398206427123E-4
-MOCell,ZDT4,IGD,15,1.4544582540230097E-4
-MOCell,ZDT4,IGD,16,2.3330398769421512E-4
-MOCell,ZDT4,IGD,17,1.8242014535590072E-4
-MOCell,ZDT4,IGD,18,1.456223463447213E-4
-MOCell,ZDT4,IGD,19,1.6838627848099024E-4
-MOCell,ZDT4,IGD,20,1.7347250534786138E-4
-MOCell,ZDT4,IGD,21,1.4569799957036818E-4
-MOCell,ZDT4,IGD,22,1.569513666605842E-4
-MOCell,ZDT4,IGD,23,1.7744366303576806E-4
-MOCell,ZDT4,IGD,24,1.811431073972424E-4
-MOCell,ZDT6,IGD,0,1.6869867363141544E-4
-MOCell,ZDT6,IGD,1,1.7658438441020777E-4
-MOCell,ZDT6,IGD,2,1.6887075024992225E-4
-MOCell,ZDT6,IGD,3,1.9947241546232157E-4
-MOCell,ZDT6,IGD,4,1.8591502306472814E-4
-MOCell,ZDT6,IGD,5,1.685850876047339E-4
-MOCell,ZDT6,IGD,6,1.7129713102492856E-4
-MOCell,ZDT6,IGD,7,1.914510791878081E-4
-MOCell,ZDT6,IGD,8,1.7394514403285422E-4
-MOCell,ZDT6,IGD,9,1.8248190380770548E-4
-MOCell,ZDT6,IGD,10,1.7794511574697756E-4
-MOCell,ZDT6,IGD,11,1.7666437979505209E-4
-MOCell,ZDT6,IGD,12,1.8825065508114641E-4
-MOCell,ZDT6,IGD,13,1.8217999027354755E-4
-MOCell,ZDT6,IGD,14,1.839783918408391E-4
-MOCell,ZDT6,IGD,15,1.817487974771613E-4
-MOCell,ZDT6,IGD,16,1.7835010294419876E-4
-MOCell,ZDT6,IGD,17,1.6789030316732484E-4
-MOCell,ZDT6,IGD,18,1.769475346629575E-4
-MOCell,ZDT6,IGD,19,1.7066313233361638E-4
-MOCell,ZDT6,IGD,20,1.709710659077241E-4
-MOCell,ZDT6,IGD,21,1.8146926732382905E-4
-MOCell,ZDT6,IGD,22,1.7882395958534154E-4
-MOCell,ZDT6,IGD,23,1.7412607980398285E-4
-MOCell,ZDT6,IGD,24,1.9376841574372732E-4
-NSGAII,ZDT1,IGD+,0,0.0036538516563392226
-NSGAII,ZDT1,IGD+,1,0.003766343193642582
-NSGAII,ZDT1,IGD+,2,0.0038186538309511356
-NSGAII,ZDT1,IGD+,3,0.003762479927028851
-NSGAII,ZDT1,IGD+,4,0.003623087943043963
-NSGAII,ZDT1,IGD+,5,0.0038477180569169646
-NSGAII,ZDT1,IGD+,6,0.003797680371479332
-NSGAII,ZDT1,IGD+,7,0.0035858102082387744
-NSGAII,ZDT1,IGD+,8,0.0037530959076192546
-NSGAII,ZDT1,IGD+,9,0.0037026706324062115
-NSGAII,ZDT1,IGD+,10,0.003990780671303197
-NSGAII,ZDT1,IGD+,11,0.003994336044821988
-NSGAII,ZDT1,IGD+,12,0.0036179802955125647
-NSGAII,ZDT1,IGD+,13,0.0040734712764524585
-NSGAII,ZDT1,IGD+,14,0.0036982797821275082
-NSGAII,ZDT1,IGD+,15,0.0037676977248065433
-NSGAII,ZDT1,IGD+,16,0.004111808553395746
-NSGAII,ZDT1,IGD+,17,0.003931531005475458
-NSGAII,ZDT1,IGD+,18,0.0035868125183913134
-NSGAII,ZDT1,IGD+,19,0.00392222576161714
-NSGAII,ZDT1,IGD+,20,0.00334596461334393
-NSGAII,ZDT1,IGD+,21,0.003906531658582851
-NSGAII,ZDT1,IGD+,22,0.003990190835337706
-NSGAII,ZDT1,IGD+,23,0.00390821656647502
-NSGAII,ZDT1,IGD+,24,0.0037543436276724325
-NSGAII,ZDT2,IGD+,0,0.003475805550837327
-NSGAII,ZDT2,IGD+,1,0.0037775862894412473
-NSGAII,ZDT2,IGD+,2,0.003325833528818712
-NSGAII,ZDT2,IGD+,3,0.0035211729893766196
-NSGAII,ZDT2,IGD+,4,0.0034761711904323354
-NSGAII,ZDT2,IGD+,5,0.0035299530085625736
-NSGAII,ZDT2,IGD+,6,0.0035998049457374565
-NSGAII,ZDT2,IGD+,7,0.003432684267450064
-NSGAII,ZDT2,IGD+,8,0.0034034960255409415
-NSGAII,ZDT2,IGD+,9,0.003686313532368477
-NSGAII,ZDT2,IGD+,10,0.003417164482127648
-NSGAII,ZDT2,IGD+,11,0.0034843627981558673
-NSGAII,ZDT2,IGD+,12,0.003500500771346999
-NSGAII,ZDT2,IGD+,13,0.003932820824649873
-NSGAII,ZDT2,IGD+,14,0.0033411443401526564
-NSGAII,ZDT2,IGD+,15,0.0033029377021580124
-NSGAII,ZDT2,IGD+,16,0.0033035298135105566
-NSGAII,ZDT2,IGD+,17,0.0037435660617244734
-NSGAII,ZDT2,IGD+,18,0.0034643036519100283
-NSGAII,ZDT2,IGD+,19,0.003314246593165419
-NSGAII,ZDT2,IGD+,20,0.0032613686590353404
-NSGAII,ZDT2,IGD+,21,0.003350332399927114
-NSGAII,ZDT2,IGD+,22,0.0034781947956715594
-NSGAII,ZDT2,IGD+,23,0.0030768560874517136
-NSGAII,ZDT2,IGD+,24,0.003197619178830799
-NSGAII,ZDT3,IGD+,0,0.002193429477013086
-NSGAII,ZDT3,IGD+,1,0.0020956920803063277
-NSGAII,ZDT3,IGD+,2,0.002115720048222836
-NSGAII,ZDT3,IGD+,3,0.0019158308171155546
-NSGAII,ZDT3,IGD+,4,0.0020754761516581003
-NSGAII,ZDT3,IGD+,5,0.0021075821490143423
-NSGAII,ZDT3,IGD+,6,0.0020865709161044595
-NSGAII,ZDT3,IGD+,7,0.013006275087675651
-NSGAII,ZDT3,IGD+,8,0.0018825075639187277
-NSGAII,ZDT3,IGD+,9,0.001981225105731886
-NSGAII,ZDT3,IGD+,10,0.0019846088405269502
-NSGAII,ZDT3,IGD+,11,0.002218284266168037
-NSGAII,ZDT3,IGD+,12,0.0021450060655514016
-NSGAII,ZDT3,IGD+,13,0.002137348290291977
-NSGAII,ZDT3,IGD+,14,0.0020117505454338262
-NSGAII,ZDT3,IGD+,15,0.0023311219575814428
-NSGAII,ZDT3,IGD+,16,0.002217236684095812
-NSGAII,ZDT3,IGD+,17,0.0019284015199071767
-NSGAII,ZDT3,IGD+,18,0.002336346925038904
-NSGAII,ZDT3,IGD+,19,0.001981980907827754
-NSGAII,ZDT3,IGD+,20,0.002094957095640919
-NSGAII,ZDT3,IGD+,21,0.0020503576476915203
-NSGAII,ZDT3,IGD+,22,0.0022360661236852986
-NSGAII,ZDT3,IGD+,23,0.00200155281353622
-NSGAII,ZDT3,IGD+,24,0.001974369327392537
-NSGAII,ZDT4,IGD+,0,0.005382207384163871
-NSGAII,ZDT4,IGD+,1,0.008042171985663997
-NSGAII,ZDT4,IGD+,2,0.005211545784023463
-NSGAII,ZDT4,IGD+,3,0.007554735346560344
-NSGAII,ZDT4,IGD+,4,0.005157164781002703
-NSGAII,ZDT4,IGD+,5,0.0054232761403751285
-NSGAII,ZDT4,IGD+,6,0.006064197723414103
-NSGAII,ZDT4,IGD+,7,0.0066649641608903755
-NSGAII,ZDT4,IGD+,8,0.005184797220894514
-NSGAII,ZDT4,IGD+,9,0.004330902969758695
-NSGAII,ZDT4,IGD+,10,0.003582824973707195
-NSGAII,ZDT4,IGD+,11,0.007335501458042791
-NSGAII,ZDT4,IGD+,12,0.0047205494663144325
-NSGAII,ZDT4,IGD+,13,0.0037429795649051058
-NSGAII,ZDT4,IGD+,14,0.0037294963377296946
-NSGAII,ZDT4,IGD+,15,0.009685417833933284
-NSGAII,ZDT4,IGD+,16,0.006721862216816117
-NSGAII,ZDT4,IGD+,17,0.004364699938295399
-NSGAII,ZDT4,IGD+,18,0.005100619228050088
-NSGAII,ZDT4,IGD+,19,0.004796177088663124
-NSGAII,ZDT4,IGD+,20,0.010301303729310107
-NSGAII,ZDT4,IGD+,21,0.004121129521972493
-NSGAII,ZDT4,IGD+,22,0.007255363320649331
-NSGAII,ZDT4,IGD+,23,0.0066406906248360365
-NSGAII,ZDT4,IGD+,24,0.004738884975641028
-NSGAII,ZDT6,IGD+,0,0.010368945020389967
-NSGAII,ZDT6,IGD+,1,0.009767849381419447
-NSGAII,ZDT6,IGD+,2,0.009103783356875991
-NSGAII,ZDT6,IGD+,3,0.011866658614045534
-NSGAII,ZDT6,IGD+,4,0.009742630599048183
-NSGAII,ZDT6,IGD+,5,0.00987051356969489
-NSGAII,ZDT6,IGD+,6,0.009138206675581692
-NSGAII,ZDT6,IGD+,7,0.008663518078650019
-NSGAII,ZDT6,IGD+,8,0.009064644299250928
-NSGAII,ZDT6,IGD+,9,0.009555720625136589
-NSGAII,ZDT6,IGD+,10,0.009137575146779849
-NSGAII,ZDT6,IGD+,11,0.010076837089612548
-NSGAII,ZDT6,IGD+,12,0.00987097798596196
-NSGAII,ZDT6,IGD+,13,0.010757160720917988
-NSGAII,ZDT6,IGD+,14,0.00883546356681015
-NSGAII,ZDT6,IGD+,15,0.01081499718200124
-NSGAII,ZDT6,IGD+,16,0.009337697834715535
-NSGAII,ZDT6,IGD+,17,0.010417768293392847
-NSGAII,ZDT6,IGD+,18,0.009030146493835453
-NSGAII,ZDT6,IGD+,19,0.010493982970735229
-NSGAII,ZDT6,IGD+,20,0.009879009503858014
-NSGAII,ZDT6,IGD+,21,0.009804594407081884
-NSGAII,ZDT6,IGD+,22,0.009527169272602857
-NSGAII,ZDT6,IGD+,23,0.010224544456885944
-NSGAII,ZDT6,IGD+,24,0.007452033849368808
-SMPSO,ZDT1,IGD+,0,0.0025704971936322835
-SMPSO,ZDT1,IGD+,1,0.002464509317351617
-SMPSO,ZDT1,IGD+,2,0.002543093389687099
-SMPSO,ZDT1,IGD+,3,0.0025212702871122675
-SMPSO,ZDT1,IGD+,4,0.0025077458781601124
-SMPSO,ZDT1,IGD+,5,0.0024928815506192374
-SMPSO,ZDT1,IGD+,6,0.0024804099622342942
-SMPSO,ZDT1,IGD+,7,0.002586546527665065
-SMPSO,ZDT1,IGD+,8,0.0025511536842527244
-SMPSO,ZDT1,IGD+,9,0.0025206817443358272
-SMPSO,ZDT1,IGD+,10,0.002531508409494323
-SMPSO,ZDT1,IGD+,11,0.002537477547045414
-SMPSO,ZDT1,IGD+,12,0.002470224639376898
-SMPSO,ZDT1,IGD+,13,0.0026021444476141604
-SMPSO,ZDT1,IGD+,14,0.00259199786256163
-SMPSO,ZDT1,IGD+,15,0.002607861197007186
-SMPSO,ZDT1,IGD+,16,0.002502909013623235
-SMPSO,ZDT1,IGD+,17,0.0024731593567748973
-SMPSO,ZDT1,IGD+,18,0.002525426938949069
-SMPSO,ZDT1,IGD+,19,0.0025184221865862566
-SMPSO,ZDT1,IGD+,20,0.0025054074078564377
-SMPSO,ZDT1,IGD+,21,0.002610202714654309
-SMPSO,ZDT1,IGD+,22,0.002503417611716515
-SMPSO,ZDT1,IGD+,23,0.002562238510122149
-SMPSO,ZDT1,IGD+,24,0.0024704022337960763
-SMPSO,ZDT2,IGD+,0,0.0023426533543949857
-SMPSO,ZDT2,IGD+,1,0.0023225605406994965
-SMPSO,ZDT2,IGD+,2,0.0022681604146064785
-SMPSO,ZDT2,IGD+,3,0.0022639719544747653
-SMPSO,ZDT2,IGD+,4,0.002265967944279428
-SMPSO,ZDT2,IGD+,5,0.0022478584331419504
-SMPSO,ZDT2,IGD+,6,0.0023680371166269246
-SMPSO,ZDT2,IGD+,7,0.0022596584093916793
-SMPSO,ZDT2,IGD+,8,0.002268751905041246
-SMPSO,ZDT2,IGD+,9,0.0022376280833408717
-SMPSO,ZDT2,IGD+,10,0.00223418056668914
-SMPSO,ZDT2,IGD+,11,0.0022860908594259832
-SMPSO,ZDT2,IGD+,12,0.0022762476134924256
-SMPSO,ZDT2,IGD+,13,0.002239974594430149
-SMPSO,ZDT2,IGD+,14,0.002322127515548601
-SMPSO,ZDT2,IGD+,15,0.00224723209140235
-SMPSO,ZDT2,IGD+,16,0.0023154164288119532
-SMPSO,ZDT2,IGD+,17,0.0022957609602470928
-SMPSO,ZDT2,IGD+,18,0.002337791278390278
-SMPSO,ZDT2,IGD+,19,0.0022596311813777963
-SMPSO,ZDT2,IGD+,20,0.0022640615053163876
-SMPSO,ZDT2,IGD+,21,0.0023670077449833155
-SMPSO,ZDT2,IGD+,22,0.0023298701639152403
-SMPSO,ZDT2,IGD+,23,0.0023098320430720146
-SMPSO,ZDT2,IGD+,24,0.002260549092285233
-SMPSO,ZDT3,IGD+,0,0.001555062097846651
-SMPSO,ZDT3,IGD+,1,0.001617083514917169
-SMPSO,ZDT3,IGD+,2,0.0016870327785372884
-SMPSO,ZDT3,IGD+,3,0.0014436878868279907
-SMPSO,ZDT3,IGD+,4,0.0015527586869946465
-SMPSO,ZDT3,IGD+,5,0.007191233119775952
-SMPSO,ZDT3,IGD+,6,0.001747344112397131
-SMPSO,ZDT3,IGD+,7,0.001754868933915383
-SMPSO,ZDT3,IGD+,8,0.001703229786292777
-SMPSO,ZDT3,IGD+,9,0.001954773515610203
-SMPSO,ZDT3,IGD+,10,0.0013901441351303785
-SMPSO,ZDT3,IGD+,11,0.0017347369353034393
-SMPSO,ZDT3,IGD+,12,0.0015492185596493627
-SMPSO,ZDT3,IGD+,13,0.001533571928493229
-SMPSO,ZDT3,IGD+,14,0.0014281633219417646
-SMPSO,ZDT3,IGD+,15,0.0015034578025159685
-SMPSO,ZDT3,IGD+,16,0.0015602127712848056
-SMPSO,ZDT3,IGD+,17,0.0022128747015135774
-SMPSO,ZDT3,IGD+,18,0.0019673282782403383
-SMPSO,ZDT3,IGD+,19,0.0015762312302707545
-SMPSO,ZDT3,IGD+,20,0.0017123508954740518
-SMPSO,ZDT3,IGD+,21,0.0015017720897941363
-SMPSO,ZDT3,IGD+,22,0.036696465711057946
-SMPSO,ZDT3,IGD+,23,0.0016458534815251833
-SMPSO,ZDT3,IGD+,24,0.0016076132626773633
-SMPSO,ZDT4,IGD+,0,0.0027840383979106276
-SMPSO,ZDT4,IGD+,1,0.002841472142935717
-SMPSO,ZDT4,IGD+,2,0.0026668215444737883
-SMPSO,ZDT4,IGD+,3,0.002770832860339889
-SMPSO,ZDT4,IGD+,4,0.0026718048422327357
-SMPSO,ZDT4,IGD+,5,0.0026647459982869137
-SMPSO,ZDT4,IGD+,6,0.002804156037151731
-SMPSO,ZDT4,IGD+,7,0.0026606160431027763
-SMPSO,ZDT4,IGD+,8,0.0026530033905410692
-SMPSO,ZDT4,IGD+,9,0.0027531388638480894
-SMPSO,ZDT4,IGD+,10,0.0026905740348103294
-SMPSO,ZDT4,IGD+,11,0.0026995897358823126
-SMPSO,ZDT4,IGD+,12,0.002582616976540285
-SMPSO,ZDT4,IGD+,13,0.002736304092872021
-SMPSO,ZDT4,IGD+,14,0.002957858456747637
-SMPSO,ZDT4,IGD+,15,0.002689698585556516
-SMPSO,ZDT4,IGD+,16,0.002774705876931168
-SMPSO,ZDT4,IGD+,17,0.0027092879825707165
-SMPSO,ZDT4,IGD+,18,0.002672651125020605
-SMPSO,ZDT4,IGD+,19,0.00269395496649329
-SMPSO,ZDT4,IGD+,20,0.002817424777780969
-SMPSO,ZDT4,IGD+,21,0.002591920637786135
-SMPSO,ZDT4,IGD+,22,0.0027179889108544515
-SMPSO,ZDT4,IGD+,23,0.0027148212746784706
-SMPSO,ZDT4,IGD+,24,0.002880753321180851
-SMPSO,ZDT6,IGD+,0,0.003058019438035192
-SMPSO,ZDT6,IGD+,1,0.0031332845380958973
-SMPSO,ZDT6,IGD+,2,0.003075248112365929
-SMPSO,ZDT6,IGD+,3,0.0030887305248846644
-SMPSO,ZDT6,IGD+,4,0.003098735643947915
-SMPSO,ZDT6,IGD+,5,0.003126912386273806
-SMPSO,ZDT6,IGD+,6,0.003049091897541983
-SMPSO,ZDT6,IGD+,7,0.003210642352093969
-SMPSO,ZDT6,IGD+,8,0.0031255559438148916
-SMPSO,ZDT6,IGD+,9,0.0031208417134998136
-SMPSO,ZDT6,IGD+,10,0.0030992104099673706
-SMPSO,ZDT6,IGD+,11,0.0031547800444853575
-SMPSO,ZDT6,IGD+,12,0.0031585739554195564
-SMPSO,ZDT6,IGD+,13,0.0031284591814878145
-SMPSO,ZDT6,IGD+,14,0.0030675635681283804
-SMPSO,ZDT6,IGD+,15,0.003117138258630156
-SMPSO,ZDT6,IGD+,16,0.003160265141023335
-SMPSO,ZDT6,IGD+,17,0.0030981685857972936
-SMPSO,ZDT6,IGD+,18,0.003125435160022528
-SMPSO,ZDT6,IGD+,19,0.0031331287184031185
-SMPSO,ZDT6,IGD+,20,0.0030868662220745317
-SMPSO,ZDT6,IGD+,21,0.003085669709896924
-SMPSO,ZDT6,IGD+,22,0.003092961439994297
-SMPSO,ZDT6,IGD+,23,0.0031134771183593556
-SMPSO,ZDT6,IGD+,24,0.003112034487650021
-MOEAD,ZDT1,IGD+,0,0.014743003665521155
-MOEAD,ZDT1,IGD+,1,0.0172309588834096
-MOEAD,ZDT1,IGD+,2,0.013156370239726288
-MOEAD,ZDT1,IGD+,3,0.016684542922767706
-MOEAD,ZDT1,IGD+,4,0.021713471450009153
-MOEAD,ZDT1,IGD+,5,0.008629091127687694
-MOEAD,ZDT1,IGD+,6,0.01068196544864487
-MOEAD,ZDT1,IGD+,7,0.0131244877849222
-MOEAD,ZDT1,IGD+,8,0.011403115897868783
-MOEAD,ZDT1,IGD+,9,0.006367746716664103
-MOEAD,ZDT1,IGD+,10,0.02389688859962484
-MOEAD,ZDT1,IGD+,11,0.015775749622822962
-MOEAD,ZDT1,IGD+,12,0.03050539967567498
-MOEAD,ZDT1,IGD+,13,0.014993088883966537
-MOEAD,ZDT1,IGD+,14,0.017940624970120226
-MOEAD,ZDT1,IGD+,15,0.017516285514829803
-MOEAD,ZDT1,IGD+,16,0.01592994327604289
-MOEAD,ZDT1,IGD+,17,0.01157221417366897
-MOEAD,ZDT1,IGD+,18,0.014648872588561538
-MOEAD,ZDT1,IGD+,19,0.024270355700948786
-MOEAD,ZDT1,IGD+,20,0.013734879996246835
-MOEAD,ZDT1,IGD+,21,0.013730733023091694
-MOEAD,ZDT1,IGD+,22,0.015479402726204907
-MOEAD,ZDT1,IGD+,23,0.020260619712482993
-MOEAD,ZDT1,IGD+,24,0.013371022548442649
-MOEAD,ZDT2,IGD+,0,0.012845801267418055
-MOEAD,ZDT2,IGD+,1,0.011185909135638118
-MOEAD,ZDT2,IGD+,2,0.007513894885393476
-MOEAD,ZDT2,IGD+,3,0.009019697529632154
-MOEAD,ZDT2,IGD+,4,0.00946449724846815
-MOEAD,ZDT2,IGD+,5,0.015895739561918122
-MOEAD,ZDT2,IGD+,6,0.0076741190243368885
-MOEAD,ZDT2,IGD+,7,0.010416435693777254
-MOEAD,ZDT2,IGD+,8,0.015097279271292828
-MOEAD,ZDT2,IGD+,9,0.010842810157182463
-MOEAD,ZDT2,IGD+,10,0.012999005868575612
-MOEAD,ZDT2,IGD+,11,0.014608214075646308
-MOEAD,ZDT2,IGD+,12,0.008626271473232132
-MOEAD,ZDT2,IGD+,13,0.011787315147868132
-MOEAD,ZDT2,IGD+,14,0.012029301784868008
-MOEAD,ZDT2,IGD+,15,0.019576443616645112
-MOEAD,ZDT2,IGD+,16,0.009983268286837581
-MOEAD,ZDT2,IGD+,17,0.015562468223544295
-MOEAD,ZDT2,IGD+,18,0.0091058303895782
-MOEAD,ZDT2,IGD+,19,0.013907471890088128
-MOEAD,ZDT2,IGD+,20,0.010492079190546372
-MOEAD,ZDT2,IGD+,21,0.010172688801050793
-MOEAD,ZDT2,IGD+,22,0.005616249434584656
-MOEAD,ZDT2,IGD+,23,0.013670766461148131
-MOEAD,ZDT2,IGD+,24,0.022914811062319233
-MOEAD,ZDT3,IGD+,0,0.0774905390505069
-MOEAD,ZDT3,IGD+,1,0.039822247782968466
-MOEAD,ZDT3,IGD+,2,0.046806058315263854
-MOEAD,ZDT3,IGD+,3,0.04128967759705379
-MOEAD,ZDT3,IGD+,4,0.04968876375055366
-MOEAD,ZDT3,IGD+,5,0.06151332407202586
-MOEAD,ZDT3,IGD+,6,0.018318576300095216
-MOEAD,ZDT3,IGD+,7,0.06469284260645944
-MOEAD,ZDT3,IGD+,8,0.030897905145016922
-MOEAD,ZDT3,IGD+,9,0.04139802123917152
-MOEAD,ZDT3,IGD+,10,0.04862133405512769
-MOEAD,ZDT3,IGD+,11,0.02109807131327159
-MOEAD,ZDT3,IGD+,12,0.08375157535051204
-MOEAD,ZDT3,IGD+,13,0.06146399247014498
-MOEAD,ZDT3,IGD+,14,0.053181523990074454
-MOEAD,ZDT3,IGD+,15,0.033953062695657385
-MOEAD,ZDT3,IGD+,16,0.021727523941762677
-MOEAD,ZDT3,IGD+,17,0.03808082279986645
-MOEAD,ZDT3,IGD+,18,0.057375287545029734
-MOEAD,ZDT3,IGD+,19,0.02560185725033565
-MOEAD,ZDT3,IGD+,20,0.051643976306931495
-MOEAD,ZDT3,IGD+,21,0.060001396994917515
-MOEAD,ZDT3,IGD+,22,0.09429494716511004
-MOEAD,ZDT3,IGD+,23,0.0343710258086954
-MOEAD,ZDT3,IGD+,24,0.04512460578941693
-MOEAD,ZDT4,IGD+,0,0.12549855042542268
-MOEAD,ZDT4,IGD+,1,0.027457660093210847
-MOEAD,ZDT4,IGD+,2,0.4114205858090999
-MOEAD,ZDT4,IGD+,3,0.4118273433385756
-MOEAD,ZDT4,IGD+,4,0.4694583856870889
-MOEAD,ZDT4,IGD+,5,0.31018343528627423
-MOEAD,ZDT4,IGD+,6,0.12497685634551009
-MOEAD,ZDT4,IGD+,7,0.17208472784782722
-MOEAD,ZDT4,IGD+,8,0.40225768573385523
-MOEAD,ZDT4,IGD+,9,0.4598279554111598
-MOEAD,ZDT4,IGD+,10,0.2613366357863832
-MOEAD,ZDT4,IGD+,11,0.7697347079660773
-MOEAD,ZDT4,IGD+,12,0.669906655872961
-MOEAD,ZDT4,IGD+,13,0.3198601306751039
-MOEAD,ZDT4,IGD+,14,0.03420731558264183
-MOEAD,ZDT4,IGD+,15,0.30279285947734264
-MOEAD,ZDT4,IGD+,16,0.19226635022585736
-MOEAD,ZDT4,IGD+,17,0.2991499162270619
-MOEAD,ZDT4,IGD+,18,0.6612033307278448
-MOEAD,ZDT4,IGD+,19,0.38130182935036505
-MOEAD,ZDT4,IGD+,20,0.024644168251596398
-MOEAD,ZDT4,IGD+,21,0.3632144325858105
-MOEAD,ZDT4,IGD+,22,0.09018146830572384
-MOEAD,ZDT4,IGD+,23,0.4780470422491492
-MOEAD,ZDT4,IGD+,24,0.23679112870333624
-MOEAD,ZDT6,IGD+,0,0.0033313163526452146
-MOEAD,ZDT6,IGD+,1,0.003330802138722678
-MOEAD,ZDT6,IGD+,2,0.0033300483791175364
-MOEAD,ZDT6,IGD+,3,0.0033349501267545606
-MOEAD,ZDT6,IGD+,4,0.0033297941226974564
-MOEAD,ZDT6,IGD+,5,0.003331740846675678
-MOEAD,ZDT6,IGD+,6,0.0033314299750869625
-MOEAD,ZDT6,IGD+,7,0.003330998355258151
-MOEAD,ZDT6,IGD+,8,0.0033306265070497548
-MOEAD,ZDT6,IGD+,9,0.0033295968175623826
-MOEAD,ZDT6,IGD+,10,0.003332057589962712
-MOEAD,ZDT6,IGD+,11,0.003330575272718907
-MOEAD,ZDT6,IGD+,12,0.003330374043236869
-MOEAD,ZDT6,IGD+,13,0.003331094829499719
-MOEAD,ZDT6,IGD+,14,0.0033301679661751856
-MOEAD,ZDT6,IGD+,15,0.0033307085424552703
-MOEAD,ZDT6,IGD+,16,0.0033584391302463666
-MOEAD,ZDT6,IGD+,17,0.0034331439602630666
-MOEAD,ZDT6,IGD+,18,0.003329242397450832
-MOEAD,ZDT6,IGD+,19,0.0033313256443103776
-MOEAD,ZDT6,IGD+,20,0.003331065698899763
-MOEAD,ZDT6,IGD+,21,0.0033368678850907827
-MOEAD,ZDT6,IGD+,22,0.003331732400353886
-MOEAD,ZDT6,IGD+,23,0.003329964549080166
-MOEAD,ZDT6,IGD+,24,0.0033331015346720018
-GDE3,ZDT1,IGD+,0,0.003114551866611787
-GDE3,ZDT1,IGD+,1,0.0031402489067582067
-GDE3,ZDT1,IGD+,2,0.0030828865782875957
-GDE3,ZDT1,IGD+,3,0.0031571974530794074
-GDE3,ZDT1,IGD+,4,0.003185967877238929
-GDE3,ZDT1,IGD+,5,0.003115894629174022
-GDE3,ZDT1,IGD+,6,0.0030032428038729354
-GDE3,ZDT1,IGD+,7,0.0032017295361863422
-GDE3,ZDT1,IGD+,8,0.0030604536610144444
-GDE3,ZDT1,IGD+,9,0.003338436626175336
-GDE3,ZDT1,IGD+,10,0.003131699938199242
-GDE3,ZDT1,IGD+,11,0.0029624974119765884
-GDE3,ZDT1,IGD+,12,0.0031312140453840557
-GDE3,ZDT1,IGD+,13,0.0030756106600501104
-GDE3,ZDT1,IGD+,14,0.002910120264756339
-GDE3,ZDT1,IGD+,15,0.003125334345069418
-GDE3,ZDT1,IGD+,16,0.003284994916239487
-GDE3,ZDT1,IGD+,17,0.0030737640055286566
-GDE3,ZDT1,IGD+,18,0.002981863027706343
-GDE3,ZDT1,IGD+,19,0.0031537639527469325
-GDE3,ZDT1,IGD+,20,0.0030308188209307555
-GDE3,ZDT1,IGD+,21,0.0030846025212508837
-GDE3,ZDT1,IGD+,22,0.0030766247510955014
-GDE3,ZDT1,IGD+,23,0.003154782517154321
-GDE3,ZDT1,IGD+,24,0.003099677973809702
-GDE3,ZDT2,IGD+,0,0.002762582572459264
-GDE3,ZDT2,IGD+,1,0.003055848909155972
-GDE3,ZDT2,IGD+,2,0.0028671717814483834
-GDE3,ZDT2,IGD+,3,0.0029243667278764586
-GDE3,ZDT2,IGD+,4,0.002936034208628515
-GDE3,ZDT2,IGD+,5,0.0028438553723543723
-GDE3,ZDT2,IGD+,6,0.0027664129704307212
-GDE3,ZDT2,IGD+,7,0.002918702257681159
-GDE3,ZDT2,IGD+,8,0.0027684365018198352
-GDE3,ZDT2,IGD+,9,0.0026787338078251765
-GDE3,ZDT2,IGD+,10,0.002857734698746211
-GDE3,ZDT2,IGD+,11,0.0028243339577404165
-GDE3,ZDT2,IGD+,12,0.0029017340566634795
-GDE3,ZDT2,IGD+,13,0.0028813424389446357
-GDE3,ZDT2,IGD+,14,0.0028186585458303223
-GDE3,ZDT2,IGD+,15,0.0028950990162195473
-GDE3,ZDT2,IGD+,16,0.0028259886982404817
-GDE3,ZDT2,IGD+,17,0.0027243820934583552
-GDE3,ZDT2,IGD+,18,0.002856946037840108
-GDE3,ZDT2,IGD+,19,0.003028092340113784
-GDE3,ZDT2,IGD+,20,0.003194106833520321
-GDE3,ZDT2,IGD+,21,0.0027154696273837676
-GDE3,ZDT2,IGD+,22,0.002722436412314031
-GDE3,ZDT2,IGD+,23,0.0027062445128781527
-GDE3,ZDT2,IGD+,24,0.0029606697403095597
-GDE3,ZDT3,IGD+,0,0.0015800601991153888
-GDE3,ZDT3,IGD+,1,0.0015909147417793531
-GDE3,ZDT3,IGD+,2,0.001633867241737091
-GDE3,ZDT3,IGD+,3,0.0019421422556653216
-GDE3,ZDT3,IGD+,4,0.0016477031149277582
-GDE3,ZDT3,IGD+,5,0.0017910603266699235
-GDE3,ZDT3,IGD+,6,0.0015655683470361984
-GDE3,ZDT3,IGD+,7,0.0016806778020705332
-GDE3,ZDT3,IGD+,8,0.001635717460379089
-GDE3,ZDT3,IGD+,9,0.0017235084841619162
-GDE3,ZDT3,IGD+,10,0.0017623347519157347
-GDE3,ZDT3,IGD+,11,0.001768323691354113
-GDE3,ZDT3,IGD+,12,0.0018506523755005724
-GDE3,ZDT3,IGD+,13,0.001696881299527917
-GDE3,ZDT3,IGD+,14,0.0016935735800615518
-GDE3,ZDT3,IGD+,15,0.0016175640143162092
-GDE3,ZDT3,IGD+,16,0.0018597327786054995
-GDE3,ZDT3,IGD+,17,0.0016820869370542133
-GDE3,ZDT3,IGD+,18,0.0016564123449976573
-GDE3,ZDT3,IGD+,19,0.0016605737726102965
-GDE3,ZDT3,IGD+,20,0.0018171510784807086
-GDE3,ZDT3,IGD+,21,0.0017806090113459485
-GDE3,ZDT3,IGD+,22,0.0016345435890710387
-GDE3,ZDT3,IGD+,23,0.0016399856736911095
-GDE3,ZDT3,IGD+,24,0.0016446325238842964
-GDE3,ZDT4,IGD+,0,4.527480433803914
-GDE3,ZDT4,IGD+,1,3.5129220057606045
-GDE3,ZDT4,IGD+,2,3.2541333947305913
-GDE3,ZDT4,IGD+,3,2.999691234000889
-GDE3,ZDT4,IGD+,4,2.355982420911209
-GDE3,ZDT4,IGD+,5,3.3331114581799075
-GDE3,ZDT4,IGD+,6,3.1137745488748383
-GDE3,ZDT4,IGD+,7,3.720679088628233
-GDE3,ZDT4,IGD+,8,5.234573756652635
-GDE3,ZDT4,IGD+,9,4.263065892720821
-GDE3,ZDT4,IGD+,10,3.985531174275028
-GDE3,ZDT4,IGD+,11,3.1071379761664963
-GDE3,ZDT4,IGD+,12,4.897157487264481
-GDE3,ZDT4,IGD+,13,3.8202618455343273
-GDE3,ZDT4,IGD+,14,2.981774436981867
-GDE3,ZDT4,IGD+,15,3.7446162158187035
-GDE3,ZDT4,IGD+,16,3.7669065407574993
-GDE3,ZDT4,IGD+,17,1.9643881481979062
-GDE3,ZDT4,IGD+,18,4.097240472556085
-GDE3,ZDT4,IGD+,19,5.126919746367736
-GDE3,ZDT4,IGD+,20,3.441359235653734
-GDE3,ZDT4,IGD+,21,5.575193738705882
-GDE3,ZDT4,IGD+,22,3.9350182171881642
-GDE3,ZDT4,IGD+,23,3.660712050487169
-GDE3,ZDT4,IGD+,24,4.121723246786709
-GDE3,ZDT6,IGD+,0,0.004787966247621047
-GDE3,ZDT6,IGD+,1,0.00477770149840233
-GDE3,ZDT6,IGD+,2,0.004557753893777766
-GDE3,ZDT6,IGD+,3,0.004767304861409371
-GDE3,ZDT6,IGD+,4,0.004604901303506638
-GDE3,ZDT6,IGD+,5,0.004229078401836004
-GDE3,ZDT6,IGD+,6,0.004370104132205489
-GDE3,ZDT6,IGD+,7,0.004536989955047777
-GDE3,ZDT6,IGD+,8,0.004706421590885042
-GDE3,ZDT6,IGD+,9,0.004362132493105282
-GDE3,ZDT6,IGD+,10,0.004918994345388781
-GDE3,ZDT6,IGD+,11,0.004429090848924392
-GDE3,ZDT6,IGD+,12,0.004396329119725386
-GDE3,ZDT6,IGD+,13,0.004351761819552947
-GDE3,ZDT6,IGD+,14,0.004657394943268442
-GDE3,ZDT6,IGD+,15,0.004342081466292783
-GDE3,ZDT6,IGD+,16,0.004478118323108197
-GDE3,ZDT6,IGD+,17,0.004661000472083505
-GDE3,ZDT6,IGD+,18,0.0052404628905733785
-GDE3,ZDT6,IGD+,19,0.004626805008779729
-GDE3,ZDT6,IGD+,20,0.005068649455412276
-GDE3,ZDT6,IGD+,21,0.004586064678466827
-GDE3,ZDT6,IGD+,22,0.0046084939370956155
-GDE3,ZDT6,IGD+,23,0.004240503843868541
-GDE3,ZDT6,IGD+,24,0.0042619631629918515
-MOCell,ZDT1,IGD+,0,0.0029427475344729827
-MOCell,ZDT1,IGD+,1,0.003092825416889442
-MOCell,ZDT1,IGD+,2,0.002908442488611761
-MOCell,ZDT1,IGD+,3,0.003060801327763119
-MOCell,ZDT1,IGD+,4,0.002906548944641528
-MOCell,ZDT1,IGD+,5,0.002974276718115533
-MOCell,ZDT1,IGD+,6,0.002900025198582549
-MOCell,ZDT1,IGD+,7,0.0029616911098249428
-MOCell,ZDT1,IGD+,8,0.003006468373656858
-MOCell,ZDT1,IGD+,9,0.002877739002290994
-MOCell,ZDT1,IGD+,10,0.003005173536740305
-MOCell,ZDT1,IGD+,11,0.003052896551908018
-MOCell,ZDT1,IGD+,12,0.002888878419358071
-MOCell,ZDT1,IGD+,13,0.002829576903682733
-MOCell,ZDT1,IGD+,14,0.0027812190194561144
-MOCell,ZDT1,IGD+,15,0.0027969865838576263
-MOCell,ZDT1,IGD+,16,0.0029921349802211985
-MOCell,ZDT1,IGD+,17,0.002917508025400673
-MOCell,ZDT1,IGD+,18,0.002939763032696586
-MOCell,ZDT1,IGD+,19,0.0030066128343230933
-MOCell,ZDT1,IGD+,20,0.002891095875842829
-MOCell,ZDT1,IGD+,21,0.0028495003425685447
-MOCell,ZDT1,IGD+,22,0.0027647071930609877
-MOCell,ZDT1,IGD+,23,0.0029251807486919278
-MOCell,ZDT1,IGD+,24,0.002881537124043798
-MOCell,ZDT2,IGD+,0,0.0023185098768686604
-MOCell,ZDT2,IGD+,1,0.002343875930564226
-MOCell,ZDT2,IGD+,2,0.0023201204448186226
-MOCell,ZDT2,IGD+,3,0.0026004931207106253
-MOCell,ZDT2,IGD+,4,0.0024150234435010454
-MOCell,ZDT2,IGD+,5,0.0027835889608808927
-MOCell,ZDT2,IGD+,6,0.002820926075426104
-MOCell,ZDT2,IGD+,7,0.0023154719039621572
-MOCell,ZDT2,IGD+,8,0.002260790695436672
-MOCell,ZDT2,IGD+,9,0.0023294630562346315
-MOCell,ZDT2,IGD+,10,0.0022504910876087374
-MOCell,ZDT2,IGD+,11,0.0022881083664332705
-MOCell,ZDT2,IGD+,12,0.0022942377998476397
-MOCell,ZDT2,IGD+,13,0.0024189730822732295
-MOCell,ZDT2,IGD+,14,0.0023581080544177522
-MOCell,ZDT2,IGD+,15,0.00242049149945794
-MOCell,ZDT2,IGD+,16,0.0023230852966633683
-MOCell,ZDT2,IGD+,17,0.0022033547327087386
-MOCell,ZDT2,IGD+,18,0.002512657246715727
-MOCell,ZDT2,IGD+,19,0.0023311165432614157
-MOCell,ZDT2,IGD+,20,0.002257518672802266
-MOCell,ZDT2,IGD+,21,0.0024090530535100453
-MOCell,ZDT2,IGD+,22,0.002389935724615965
-MOCell,ZDT2,IGD+,23,0.0026536472676135852
-MOCell,ZDT2,IGD+,24,0.002347824338659468
-MOCell,ZDT3,IGD+,0,0.0018237342612474716
-MOCell,ZDT3,IGD+,1,0.0016706554071786105
-MOCell,ZDT3,IGD+,2,0.012946209988189416
-MOCell,ZDT3,IGD+,3,0.00204623713615972
-MOCell,ZDT3,IGD+,4,0.0017512389094730026
-MOCell,ZDT3,IGD+,5,0.001741651006992724
-MOCell,ZDT3,IGD+,6,0.001656761433166619
-MOCell,ZDT3,IGD+,7,0.012938433528709685
-MOCell,ZDT3,IGD+,8,0.012899997446478038
-MOCell,ZDT3,IGD+,9,0.0016731745770410822
-MOCell,ZDT3,IGD+,10,0.0018434772865121589
-MOCell,ZDT3,IGD+,11,0.00163808429047543
-MOCell,ZDT3,IGD+,12,0.0017541534768560358
-MOCell,ZDT3,IGD+,13,0.001816498344395494
-MOCell,ZDT3,IGD+,14,0.0016723229249665011
-MOCell,ZDT3,IGD+,15,0.0017707865750173433
-MOCell,ZDT3,IGD+,16,0.0017323317778991253
-MOCell,ZDT3,IGD+,17,0.012987035716276317
-MOCell,ZDT3,IGD+,18,0.0016544136153535068
-MOCell,ZDT3,IGD+,19,0.0018042746824270548
-MOCell,ZDT3,IGD+,20,0.001774554419556041
-MOCell,ZDT3,IGD+,21,0.0017777555293163755
-MOCell,ZDT3,IGD+,22,0.0016933636591684755
-MOCell,ZDT3,IGD+,23,0.0017011266803414454
-MOCell,ZDT3,IGD+,24,0.0018894153382624872
-MOCell,ZDT4,IGD+,0,0.005694094154583216
-MOCell,ZDT4,IGD+,1,0.003910650955458837
-MOCell,ZDT4,IGD+,2,0.004888754686771486
-MOCell,ZDT4,IGD+,3,0.004891040997053827
-MOCell,ZDT4,IGD+,4,0.005979984277077565
-MOCell,ZDT4,IGD+,5,0.0040658076794025085
-MOCell,ZDT4,IGD+,6,0.004887848569169688
-MOCell,ZDT4,IGD+,7,0.005391458756288634
-MOCell,ZDT4,IGD+,8,0.004805686939784163
-MOCell,ZDT4,IGD+,9,0.004260004311353432
-MOCell,ZDT4,IGD+,10,0.00417198491428415
-MOCell,ZDT4,IGD+,11,0.006824655892594371
-MOCell,ZDT4,IGD+,12,0.0043241892697341066
-MOCell,ZDT4,IGD+,13,0.0041422038797300316
-MOCell,ZDT4,IGD+,14,0.006629237479426721
-MOCell,ZDT4,IGD+,15,0.0034669243745428678
-MOCell,ZDT4,IGD+,16,0.006956079861886179
-MOCell,ZDT4,IGD+,17,0.005277351705923884
-MOCell,ZDT4,IGD+,18,0.0033837996976397635
-MOCell,ZDT4,IGD+,19,0.00424733962164166
-MOCell,ZDT4,IGD+,20,0.004798350081705475
-MOCell,ZDT4,IGD+,21,0.003636734917474538
-MOCell,ZDT4,IGD+,22,0.004190386236919324
-MOCell,ZDT4,IGD+,23,0.005100632891709077
-MOCell,ZDT4,IGD+,24,0.005239829765603362
-MOCell,ZDT6,IGD+,0,0.004053688862616921
-MOCell,ZDT6,IGD+,1,0.004645317339273392
-MOCell,ZDT6,IGD+,2,0.004211563961622427
-MOCell,ZDT6,IGD+,3,0.005754600090827199
-MOCell,ZDT6,IGD+,4,0.005093056031989868
-MOCell,ZDT6,IGD+,5,0.003947587188776663
-MOCell,ZDT6,IGD+,6,0.004325205450700433
-MOCell,ZDT6,IGD+,7,0.005376540697131323
-MOCell,ZDT6,IGD+,8,0.004453261868644431
-MOCell,ZDT6,IGD+,9,0.004990890932491175
-MOCell,ZDT6,IGD+,10,0.0047236632442629305
-MOCell,ZDT6,IGD+,11,0.004617744085983106
-MOCell,ZDT6,IGD+,12,0.00520994499213532
-MOCell,ZDT6,IGD+,13,0.004849566277811615
-MOCell,ZDT6,IGD+,14,0.005041043754226762
-MOCell,ZDT6,IGD+,15,0.004906469052673553
-MOCell,ZDT6,IGD+,16,0.0047270515618790705
-MOCell,ZDT6,IGD+,17,0.004026191739608422
-MOCell,ZDT6,IGD+,18,0.004607470726032608
-MOCell,ZDT6,IGD+,19,0.004078591570801857
-MOCell,ZDT6,IGD+,20,0.004350125810885379
-MOCell,ZDT6,IGD+,21,0.004839748389877005
-MOCell,ZDT6,IGD+,22,0.0047265135903854704
-MOCell,ZDT6,IGD+,23,0.004496215669027173
-MOCell,ZDT6,IGD+,24,0.005483899232523609
\ No newline at end of file
+Algorithm,Problem,ExecutionId,IndicatorName,IndicatorValue
diff --git a/examples/experiment/comparison.py b/examples/experiment/comparison.py
index 09217215..5b654d7a 100644
--- a/examples/experiment/comparison.py
+++ b/examples/experiment/comparison.py
@@ -24,7 +24,7 @@ def configure_experiment(problems: dict, n_run: int):
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables,
distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
),
algorithm_tag='NSGAII',
problem_tag=problem_tag,
@@ -38,7 +38,7 @@ def configure_experiment(problems: dict, n_run: int):
population_size=100,
cr=0.5,
f=0.5,
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
),
algorithm_tag='GDE3',
problem_tag=problem_tag,
@@ -53,7 +53,7 @@ def configure_experiment(problems: dict, n_run: int):
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables,
distribution_index=20),
leaders=CrowdingDistanceArchive(100),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
),
algorithm_tag='SMPSO',
problem_tag=problem_tag,
@@ -66,7 +66,7 @@ def configure_experiment(problems: dict, n_run: int):
if __name__ == '__main__':
# Configure the experiments
- jobs = configure_experiment(problems={'ZDT1': ZDT1(), 'ZDT2': ZDT2(), 'ZDT3': ZDT3()}, n_run=31)
+ jobs = configure_experiment(problems={'ZDT1': ZDT1(), 'ZDT2': ZDT2(), 'ZDT3': ZDT3()}, n_run=25)
# Run the study
output_directory = 'data'
@@ -77,6 +77,6 @@ def configure_experiment(problems: dict, n_run: int):
# Generate summary file
generate_summary_from_experiment(
input_dir=output_directory,
- reference_fronts='/home/user/jMetalPy/resources/reference_front',
+ reference_fronts='resources/reference_front',
quality_indicators=[GenerationalDistance(), EpsilonIndicator(), HyperVolume([1.0, 1.0])]
)
diff --git a/examples/multiobjective/gde3/dynamic_gde3.py b/examples/multiobjective/gde3/dynamic_gde3.py
index 73940795..cd92568f 100644
--- a/examples/multiobjective/gde3/dynamic_gde3.py
+++ b/examples/multiobjective/gde3/dynamic_gde3.py
@@ -16,7 +16,7 @@
population_size=100,
cr=0.5,
f=0.5,
- termination_criterion=StoppingByEvaluations(max=500)
+ termination_criterion=StoppingByEvaluations(max_evaluations=500)
)
algorithm.observable.register(observer=PlotFrontToFileObserver('dynamic_front_vis'))
diff --git a/examples/multiobjective/gde3/gde3_spark_evaluator.py b/examples/multiobjective/gde3/gde3_spark_evaluator.py
index c92cec6b..7f47ca66 100644
--- a/examples/multiobjective/gde3/gde3_spark_evaluator.py
+++ b/examples/multiobjective/gde3/gde3_spark_evaluator.py
@@ -1,5 +1,5 @@
-from examples.multiobjective.zdt1_modified import ZDT1Modified
from jmetal.algorithm.multiobjective.gde3 import GDE3
+from jmetal.problem.multiobjective.zdt import ZDT1Modified
from jmetal.util.evaluator import SparkEvaluator
from jmetal.util.solution import print_function_values_to_file, print_variables_to_file
from jmetal.util.termination_criterion import StoppingByEvaluations
@@ -12,7 +12,7 @@
population_size=10,
cr=0.5,
f=0.5,
- termination_criterion=StoppingByEvaluations(max=100),
+ termination_criterion=StoppingByEvaluations(max_evaluations=100),
population_evaluator=SparkEvaluator()
)
diff --git a/examples/multiobjective/gde3/ggde3_zdt2.py b/examples/multiobjective/gde3/ggde3_zdt2.py
index 8f210d33..ed3564cf 100644
--- a/examples/multiobjective/gde3/ggde3_zdt2.py
+++ b/examples/multiobjective/gde3/ggde3_zdt2.py
@@ -16,7 +16,7 @@
population_size=100,
cr=0.5,
f=0.5,
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
dominance_comparator=GDominanceComparator(reference_point)
)
diff --git a/examples/multiobjective/ibea/ibea_zdt1.py b/examples/multiobjective/ibea/ibea_zdt1.py
index cbff415c..ad2b71ad 100644
--- a/examples/multiobjective/ibea/ibea_zdt1.py
+++ b/examples/multiobjective/ibea/ibea_zdt1.py
@@ -15,7 +15,7 @@
offspring_population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(25000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=25000)
)
algorithm.run()
diff --git a/examples/multiobjective/mocell/mocell_zdt1.py b/examples/multiobjective/mocell/mocell_zdt1.py
index adaaf6b8..617b72d1 100644
--- a/examples/multiobjective/mocell/mocell_zdt1.py
+++ b/examples/multiobjective/mocell/mocell_zdt1.py
@@ -1,12 +1,10 @@
from jmetal.util.solution_list import print_function_values_to_file, print_variables_to_file
from jmetal.algorithm.multiobjective.mocell import MOCell
-from jmetal.lab.visualization import Plot
from jmetal.operator import SBXCrossover, PolynomialMutation
from jmetal.problem import ZDT1
from jmetal.util.archive import CrowdingDistanceArchive
from jmetal.util.neighborhood import C9
-from jmetal.util.observer import ProgressBarObserver
from jmetal.util.solution import read_solutions
from jmetal.util.termination_criterion import StoppingByEvaluations
@@ -22,7 +20,7 @@
archive=CrowdingDistanceArchive(100),
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/moead/moead_dtlz2.py b/examples/multiobjective/moead/moead_dtlz2.py
index 53634c38..7763809f 100644
--- a/examples/multiobjective/moead/moead_dtlz2.py
+++ b/examples/multiobjective/moead/moead_dtlz2.py
@@ -21,7 +21,7 @@
neighbourhood_selection_probability=0.9,
max_number_of_replaced_solutions=2,
weight_files_path='resources/MOEAD_weights',
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/moead/moead_iepsilon_lircmop1.py b/examples/multiobjective/moead/moead_iepsilon_lircmop1.py
index bc0f6773..08f036d5 100644
--- a/examples/multiobjective/moead/moead_iepsilon_lircmop1.py
+++ b/examples/multiobjective/moead/moead_iepsilon_lircmop1.py
@@ -22,7 +22,7 @@
neighbourhood_selection_probability=0.9,
max_number_of_replaced_solutions=2,
weight_files_path='resources/MOEAD_weights',
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/moead/moead_lz09.py b/examples/multiobjective/moead/moead_lz09.py
index f7944e19..a716e4d7 100644
--- a/examples/multiobjective/moead/moead_lz09.py
+++ b/examples/multiobjective/moead/moead_lz09.py
@@ -22,7 +22,7 @@
neighbourhood_selection_probability=0.9,
max_number_of_replaced_solutions=2,
weight_files_path='resources/MOEAD_weights',
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/moead/moeaddra_lz09.py b/examples/multiobjective/moead/moeaddra_lz09.py
index 755a2215..93c188ba 100644
--- a/examples/multiobjective/moead/moeaddra_lz09.py
+++ b/examples/multiobjective/moead/moeaddra_lz09.py
@@ -21,7 +21,7 @@
neighbourhood_selection_probability=0.9,
max_number_of_replaced_solutions=2,
weight_files_path='resources/MOEAD_weights',
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/nsgaii/distributed_nsgaii.py b/examples/multiobjective/nsgaii/distributed_nsgaii_with_dask.py
similarity index 83%
rename from examples/multiobjective/nsgaii/distributed_nsgaii.py
rename to examples/multiobjective/nsgaii/distributed_nsgaii_with_dask.py
index a9ea08ac..1b266b51 100644
--- a/examples/multiobjective/nsgaii/distributed_nsgaii.py
+++ b/examples/multiobjective/nsgaii/distributed_nsgaii_with_dask.py
@@ -1,11 +1,15 @@
from dask.distributed import Client
from distributed import LocalCluster
-from examples.multiobjective.zdt1_modified import ZDT1Modified
from jmetal.algorithm.multiobjective.nsgaii import DistributedNSGAII
from jmetal.operator import PolynomialMutation, SBXCrossover
+from jmetal.problem.multiobjective.zdt import ZDT1Modified
from jmetal.util.termination_criterion import StoppingByEvaluations
+"""
+Distributed (asynchronous) version of NSGA-II using Dask.
+"""
+
if __name__ == '__main__':
problem = ZDT1Modified()
@@ -23,7 +27,7 @@
population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
number_of_cores=ncores,
client=client
)
diff --git a/examples/multiobjective/nsgaii/nsgaii_dask_evaluator.py b/examples/multiobjective/nsgaii/distributed_nsgaii_with_dask_evaluator.py
similarity index 84%
rename from examples/multiobjective/nsgaii/nsgaii_dask_evaluator.py
rename to examples/multiobjective/nsgaii/distributed_nsgaii_with_dask_evaluator.py
index 8d762ab9..4230b469 100644
--- a/examples/multiobjective/nsgaii/nsgaii_dask_evaluator.py
+++ b/examples/multiobjective/nsgaii/distributed_nsgaii_with_dask_evaluator.py
@@ -1,10 +1,13 @@
-from examples.multiobjective.zdt1_modified import ZDT1Modified
from jmetal.algorithm.multiobjective.nsgaii import NSGAII
from jmetal.operator import SBXCrossover, PolynomialMutation
+from jmetal.problem.multiobjective.zdt import ZDT1Modified
from jmetal.util.evaluator import DaskEvaluator
from jmetal.util.solution import print_function_values_to_file, print_variables_to_file
from jmetal.util.termination_criterion import StoppingByEvaluations
+"""
+Distributed (synchronous) version of NSGA-II using Dask.
+"""
if __name__ == '__main__':
problem = ZDT1Modified()
@@ -17,7 +20,7 @@
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
population_evaluator=DaskEvaluator(),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
@@ -31,4 +34,3 @@
print(f'Problem: ${problem.get_name()}')
print(f'Computing time: ${algorithm.total_computing_time}')
-
diff --git a/examples/multiobjective/nsgaii/nsgaii_spark_evaluator.py b/examples/multiobjective/nsgaii/distributed_nsgaii_with_spark_evaluator.py
similarity index 83%
rename from examples/multiobjective/nsgaii/nsgaii_spark_evaluator.py
rename to examples/multiobjective/nsgaii/distributed_nsgaii_with_spark_evaluator.py
index 84b17e4a..1d585d24 100644
--- a/examples/multiobjective/nsgaii/nsgaii_spark_evaluator.py
+++ b/examples/multiobjective/nsgaii/distributed_nsgaii_with_spark_evaluator.py
@@ -1,10 +1,14 @@
-from examples.multiobjective.zdt1_modified import ZDT1Modified
from jmetal.algorithm.multiobjective.nsgaii import NSGAII
from jmetal.operator import SBXCrossover, PolynomialMutation
+from jmetal.problem.multiobjective.zdt import ZDT1Modified
from jmetal.util.evaluator import SparkEvaluator
from jmetal.util.solution import print_function_values_to_file, print_variables_to_file
from jmetal.util.termination_criterion import StoppingByEvaluations
+"""
+Distributed (synchronous) version of NSGA-II using Apache Spark.
+"""
+
if __name__ == '__main__':
problem = ZDT1Modified()
@@ -17,7 +21,7 @@
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
population_evaluator=SparkEvaluator(),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/nsgaii/dynamic_nsgaii.py b/examples/multiobjective/nsgaii/dynamic_nsgaii_solving_fda2.py
similarity index 92%
rename from examples/multiobjective/nsgaii/dynamic_nsgaii.py
rename to examples/multiobjective/nsgaii/dynamic_nsgaii_solving_fda2.py
index e3fe46fe..6ba30bc3 100644
--- a/examples/multiobjective/nsgaii/dynamic_nsgaii.py
+++ b/examples/multiobjective/nsgaii/dynamic_nsgaii_solving_fda2.py
@@ -19,7 +19,7 @@
offspring_population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.observable.register(observer=PlotFrontToFileObserver('dynamic_front_vis'))
diff --git a/examples/multiobjective/nsgaii/gnsgaii_solving_zdt2_with_reference_point.py b/examples/multiobjective/nsgaii/gnsgaii_solving_zdt2_with_reference_point.py
new file mode 100644
index 00000000..b84dd8e1
--- /dev/null
+++ b/examples/multiobjective/nsgaii/gnsgaii_solving_zdt2_with_reference_point.py
@@ -0,0 +1,55 @@
+from jmetal.algorithm.multiobjective.nsgaii import NSGAII
+from jmetal.lab.visualization import Plot, InteractivePlot
+from jmetal.operator import SBXCrossover, PolynomialMutation
+from jmetal.problem import ZDT2
+from jmetal.util.comparator import GDominanceComparator
+from jmetal.util.observer import ProgressBarObserver, VisualizerObserver
+from jmetal.util.solution import print_function_values_to_file, print_variables_to_file, read_solutions
+from jmetal.util.termination_criterion import StoppingByEvaluations
+
+"""
+Program to configure and run G-NSGA-II (NSGA-II with G-Dominance) to solve problem ZDT2 with
+reference point = [0.2, 0.5].
+"""
+
+if __name__ == '__main__':
+ problem = ZDT2()
+ problem.reference_front = read_solutions(filename='resources/reference_front/ZDT2.pf')
+
+ reference_point = [0.2, 0.5]
+
+ max_evaluations = 25000
+ algorithm = NSGAII(
+ problem=problem,
+ population_size=100,
+ offspring_population_size=100,
+ mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
+ crossover=SBXCrossover(probability=1.0, distribution_index=20),
+ dominance_comparator=GDominanceComparator(reference_point),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
+ )
+
+ algorithm.observable.register(observer=ProgressBarObserver(max=max_evaluations))
+ algorithm.observable.register(
+ observer=VisualizerObserver(reference_front=problem.reference_front, reference_point=reference_point))
+
+ algorithm.run()
+ front = algorithm.get_result()
+
+ # Plot front
+ plot_front = Plot(title='Pareto front approximation. Problem: ' + problem.get_name(),
+ reference_front=problem.reference_front, axis_labels=problem.obj_labels)
+ plot_front.plot(front, label=algorithm.label, filename=algorithm.get_name())
+
+ # Plot interactive front
+ plot_front = InteractivePlot(title='Pareto front approximation. Problem: ' + problem.get_name(),
+ reference_front=problem.reference_front, axis_labels=problem.obj_labels)
+ plot_front.plot(front, label=algorithm.label, filename=algorithm.get_name())
+
+ # Save results to file
+ print_function_values_to_file(front, 'FUN.' + algorithm.label)
+ print_variables_to_file(front, 'VAR.' + algorithm.label)
+
+ print('Algorithm (continuous problem): ' + algorithm.get_name())
+ print('Problem: ' + problem.get_name())
+ print('Computing time: ' + str(algorithm.total_computing_time))
diff --git a/examples/multiobjective/nsgaii/nsgaii_defining_schaffer_problem_on_the_fly.py b/examples/multiobjective/nsgaii/nsgaii_defining_schaffer_problem_on_the_fly.py
new file mode 100644
index 00000000..7c0a8a51
--- /dev/null
+++ b/examples/multiobjective/nsgaii/nsgaii_defining_schaffer_problem_on_the_fly.py
@@ -0,0 +1,49 @@
+from jmetal.algorithm.multiobjective.nsgaii import NSGAII
+from jmetal.core.problem import OnTheFlyFloatProblem
+from jmetal.operator import SBXCrossover, PolynomialMutation
+from jmetal.util.solution import get_non_dominated_solutions, read_solutions, print_function_values_to_file, \
+ print_variables_to_file
+from jmetal.util.termination_criterion import StoppingByEvaluations
+
+"""
+Program to configure and run the NSGA-II algorithm configured with standard settings.
+"""
+
+if __name__ == '__main__':
+ # Defining problem Schaffer on the fly
+ def f1(x: [float]):
+ return x[0] * x[0]
+
+ def f2(x: [float]):
+ return (x[0] - 2) * (x[0] - 2)
+
+ problem = OnTheFlyFloatProblem()
+ problem \
+ .set_name('Schaffer') \
+ .add_variable(-10000.0, 10000.0) \
+ .add_function(f1) \
+ .add_function(f2)
+
+ problem.reference_front = read_solutions(filename='resources/reference_front/ZDT1.pf')
+
+ max_evaluations = 25000
+ algorithm = NSGAII(
+ problem=problem,
+ population_size=100,
+ offspring_population_size=100,
+ mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
+ crossover=SBXCrossover(probability=1.0, distribution_index=20),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
+ )
+
+ algorithm.run()
+ front = get_non_dominated_solutions(algorithm.get_result())
+
+ # Save results to file
+ print_function_values_to_file(front, 'FUN.' + algorithm.label)
+ print_variables_to_file(front, 'VAR.'+ algorithm.label)
+
+ print('Algorithm (continuous problem): ' + algorithm.get_name())
+ print('Problem: ' + problem.get_name())
+ print('Computing time: ' + str(algorithm.total_computing_time))
+
diff --git a/examples/multiobjective/nsgaii/nsgaii_defining_srinivas_problem_on_the_fly.py b/examples/multiobjective/nsgaii/nsgaii_defining_srinivas_problem_on_the_fly.py
new file mode 100644
index 00000000..a017bfcd
--- /dev/null
+++ b/examples/multiobjective/nsgaii/nsgaii_defining_srinivas_problem_on_the_fly.py
@@ -0,0 +1,61 @@
+from jmetal.algorithm.multiobjective.nsgaii import NSGAII
+from jmetal.core.problem import OnTheFlyFloatProblem
+from jmetal.operator import SBXCrossover, PolynomialMutation
+from jmetal.util.solution import get_non_dominated_solutions, read_solutions, print_function_values_to_file, \
+ print_variables_to_file
+from jmetal.util.termination_criterion import StoppingByEvaluations
+
+"""
+Program to configure and run the NSGA-II algorithm configured with standard settings.
+"""
+
+if __name__ == '__main__':
+ # Defining problem Srinivas on the fly
+ def f1(x: [float]):
+ return 2.0 + (x[0] - 2.0) * (x[0] - 2.0) + (x[1] - 1.0) * (x[1] - 1.0)
+
+
+ def f2(x: [float]):
+ return 9.0 * x[0] - (x[1] - 1.0) * (x[1] - 1.0)
+
+
+ def c1(x: [float]):
+ return 1.0 - (x[0] * x[0] + x[1] * x[1]) / 225.0
+
+
+ def c2(x: [float]):
+ return (3.0 * x[1] - x[0]) / 10.0 - 1.0
+
+
+ problem = OnTheFlyFloatProblem() \
+ .set_name('Srinivas') \
+ .add_variable(-20.0, 20.0) \
+ .add_variable(-20.0, 20.0) \
+ .add_function(f1) \
+ .add_function(f2) \
+ .add_constraint(c1) \
+ .add_constraint(c2)
+
+ problem.reference_front = read_solutions(filename='resources/reference_front/Srinivas.pf')
+
+ max_evaluations = 25000
+ algorithm = NSGAII(
+ problem=problem,
+ population_size=100,
+ offspring_population_size=100,
+ mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
+ crossover=SBXCrossover(probability=1.0, distribution_index=20),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
+ )
+
+ algorithm.run()
+ front = get_non_dominated_solutions(algorithm.get_result())
+
+ # Save results to file
+ print_function_values_to_file(front, 'FUN.' + algorithm.label)
+ print_variables_to_file(front, 'VAR.'+ algorithm.label)
+
+ print('Algorithm (continuous problem): ' + algorithm.get_name())
+ print('Problem: ' + problem.get_name())
+ print('Computing time: ' + str(algorithm.total_computing_time))
+
diff --git a/examples/multiobjective/nsgaii/nsgaii_dtlz1.py b/examples/multiobjective/nsgaii/nsgaii_solving_3D_problem.py
similarity index 93%
rename from examples/multiobjective/nsgaii/nsgaii_dtlz1.py
rename to examples/multiobjective/nsgaii/nsgaii_solving_3D_problem.py
index 1103e6c5..c8dcb7bd 100644
--- a/examples/multiobjective/nsgaii/nsgaii_dtlz1.py
+++ b/examples/multiobjective/nsgaii/nsgaii_solving_3D_problem.py
@@ -16,7 +16,7 @@
offspring_population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
dominance_comparator=DominanceComparator()
)
diff --git a/examples/multiobjective/nsgaii/nsgaii_binary.py b/examples/multiobjective/nsgaii/nsgaii_solving_binary_problem.py
similarity index 77%
rename from examples/multiobjective/nsgaii/nsgaii_binary.py
rename to examples/multiobjective/nsgaii/nsgaii_solving_binary_problem.py
index 94b50934..73bacf7f 100644
--- a/examples/multiobjective/nsgaii/nsgaii_binary.py
+++ b/examples/multiobjective/nsgaii/nsgaii_solving_binary_problem.py
@@ -4,6 +4,11 @@
from jmetal.util.solution import print_function_values_to_file, print_variables_to_file
from jmetal.util.termination_criterion import StoppingByEvaluations
+"""
+Program to configure and run the NSGA-II algorithm configured to solve a binary problem, OneZeroMax, which is
+multiobjective version of the ONE_MAX problem where the numbers of 1s and 0s have to be maximized at the same time.
+"""
+
if __name__ == '__main__':
binary_string_length = 512
problem = OneZeroMax(binary_string_length)
@@ -15,7 +20,7 @@
offspring_population_size=100,
mutation=BitFlipMutation(probability=1.0 / binary_string_length),
crossover=SPXCrossover(probability=1.0),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/nsgaii/nsgaii_srinivas.py b/examples/multiobjective/nsgaii/nsgaii_solving_constrained_srinivas_problem.py
similarity index 89%
rename from examples/multiobjective/nsgaii/nsgaii_srinivas.py
rename to examples/multiobjective/nsgaii/nsgaii_solving_constrained_srinivas_problem.py
index 0bcb9be2..180a5f53 100644
--- a/examples/multiobjective/nsgaii/nsgaii_srinivas.py
+++ b/examples/multiobjective/nsgaii/nsgaii_solving_constrained_srinivas_problem.py
@@ -1,5 +1,4 @@
-from jmetal.algorithm.multiobjective.nsgaii import NSGAII
-
+from jmetal.algorithm.multiobjective import NSGAII
from jmetal.operator import SBXCrossover, PolynomialMutation
from jmetal.problem import Srinivas
from jmetal.util.comparator import DominanceComparator
@@ -17,7 +16,7 @@
offspring_population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
dominance_comparator=DominanceComparator()
)
diff --git a/examples/multiobjective/nsgaii/nsgaii_solving_mixed_encoding_problem.py b/examples/multiobjective/nsgaii/nsgaii_solving_mixed_encoding_problem.py
new file mode 100644
index 00000000..b859d11d
--- /dev/null
+++ b/examples/multiobjective/nsgaii/nsgaii_solving_mixed_encoding_problem.py
@@ -0,0 +1,33 @@
+from jmetal.algorithm.multiobjective.nsgaii import NSGAII
+from jmetal.operator import SBXCrossover, PolynomialMutation, IntegerPolynomialMutation
+from jmetal.operator.crossover import CompositeCrossover, IntegerSBXCrossover
+from jmetal.operator.mutation import CompositeMutation
+from jmetal.problem.multiobjective.unconstrained import MixedIntegerFloatProblem
+from jmetal.util.solution import get_non_dominated_solutions, print_function_values_to_file, \
+ print_variables_to_file
+from jmetal.util.termination_criterion import StoppingByEvaluations
+
+if __name__ == '__main__':
+ problem = MixedIntegerFloatProblem(10, 10, 100, -100, -1000, 1000)
+
+ max_evaluations = 25000
+ algorithm = NSGAII(
+ problem=problem,
+ population_size=100,
+ offspring_population_size=100,
+ mutation=CompositeMutation([IntegerPolynomialMutation(0.01, 20), PolynomialMutation(0.01, 20.0)]),
+ crossover=CompositeCrossover([IntegerSBXCrossover(probability=1.0, distribution_index=20),
+ SBXCrossover(probability=1.0, distribution_index=20)]),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
+ )
+
+ algorithm.run()
+ front = get_non_dominated_solutions(algorithm.get_result())
+
+ # Save results to file
+ print_function_values_to_file(front, 'FUN.' + algorithm.label)
+ print_variables_to_file(front, 'VAR.' + algorithm.label)
+
+ print('Algorithm (continuous problem): ' + algorithm.get_name())
+ print('Problem: ' + problem.get_name())
+ print('Computing time: ' + str(algorithm.total_computing_time))
diff --git a/examples/multiobjective/nsgaii/nsgaii_ssp.py b/examples/multiobjective/nsgaii/nsgaii_ssp.py
index a43ec22b..7e40df07 100644
--- a/examples/multiobjective/nsgaii/nsgaii_ssp.py
+++ b/examples/multiobjective/nsgaii/nsgaii_ssp.py
@@ -30,7 +30,7 @@
offspring_population_size=100,
mutation=BitFlipMutation(probability=0.5),
crossover=SPXCrossover(probability=0.8),
- termination_criterion=StoppingByEvaluations(max=25000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=25000)
)
algorithm.run()
diff --git a/examples/multiobjective/nsgaii/nsgaii_zdt1.py b/examples/multiobjective/nsgaii/nsgaii_standard_settings.py
similarity index 87%
rename from examples/multiobjective/nsgaii/nsgaii_zdt1.py
rename to examples/multiobjective/nsgaii/nsgaii_standard_settings.py
index 9d453ba7..1c711c03 100644
--- a/examples/multiobjective/nsgaii/nsgaii_zdt1.py
+++ b/examples/multiobjective/nsgaii/nsgaii_standard_settings.py
@@ -5,6 +5,11 @@
print_variables_to_file
from jmetal.util.termination_criterion import StoppingByEvaluations
+
+"""
+Program to configure and run the NSGA-II algorithm configured with standard settings.
+"""
+
if __name__ == '__main__':
problem = ZDT1()
problem.reference_front = read_solutions(filename='resources/reference_front/ZDT1.pf')
@@ -16,7 +21,7 @@
offspring_population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/nsgaii/nsgaii_standard_settings_with_real_time_plotting.py b/examples/multiobjective/nsgaii/nsgaii_standard_settings_with_real_time_plotting.py
new file mode 100644
index 00000000..bd968147
--- /dev/null
+++ b/examples/multiobjective/nsgaii/nsgaii_standard_settings_with_real_time_plotting.py
@@ -0,0 +1,48 @@
+from jmetal.algorithm.multiobjective.nsgaii import NSGAII
+from jmetal.lab.visualization import Plot, InteractivePlot
+from jmetal.operator import SBXCrossover, PolynomialMutation
+from jmetal.problem import ZDT1
+from jmetal.util.observer import ProgressBarObserver, VisualizerObserver
+from jmetal.util.solution import read_solutions, print_function_values_to_file, \
+ print_variables_to_file
+from jmetal.util.termination_criterion import StoppingByEvaluations
+
+"""
+Program to configure and run the NSGA-II algorithm configured with standard settings.
+"""
+
+if __name__ == '__main__':
+ problem = ZDT1()
+ problem.reference_front = read_solutions(filename='resources/reference_front/ZDT1.pf')
+
+ max_evaluations = 25000
+ algorithm = NSGAII(
+ problem=problem,
+ population_size=100,
+ offspring_population_size=100,
+ mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
+ crossover=SBXCrossover(probability=1.0, distribution_index=20),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
+ )
+
+ algorithm.observable.register(observer=ProgressBarObserver(max=max_evaluations))
+ algorithm.observable.register(observer=VisualizerObserver(reference_front=problem.reference_front))
+
+ algorithm.run()
+ front = algorithm.get_result()
+
+ # Plot front
+ plot_front = Plot(title='Pareto front approximation. Problem: ' + problem.get_name(), reference_front=problem.reference_front, axis_labels=problem.obj_labels)
+ plot_front.plot(front, label=algorithm.label, filename=algorithm.get_name())
+
+ # Plot interactive front
+ plot_front = InteractivePlot(title='Pareto front approximation. Problem: ' + problem.get_name(), reference_front=problem.reference_front, axis_labels=problem.obj_labels)
+ plot_front.plot(front, label=algorithm.label, filename=algorithm.get_name())
+
+ # Save results to file
+ print_function_values_to_file(front, 'FUN.' + algorithm.label)
+ print_variables_to_file(front, 'VAR.'+ algorithm.label)
+
+ print('Algorithm (continuous problem): ' + algorithm.get_name())
+ print('Problem: ' + problem.get_name())
+ print('Computing time: ' + str(algorithm.total_computing_time))
\ No newline at end of file
diff --git a/examples/multiobjective/nsgaii/gnsgaii_zdt2.py b/examples/multiobjective/nsgaii/nsgaii_steady_state.py
similarity index 51%
rename from examples/multiobjective/nsgaii/gnsgaii_zdt2.py
rename to examples/multiobjective/nsgaii/nsgaii_steady_state.py
index 85a328f9..2101c506 100644
--- a/examples/multiobjective/nsgaii/gnsgaii_zdt2.py
+++ b/examples/multiobjective/nsgaii/nsgaii_steady_state.py
@@ -1,34 +1,36 @@
from jmetal.algorithm.multiobjective.nsgaii import NSGAII
from jmetal.operator import SBXCrossover, PolynomialMutation
-from jmetal.problem import ZDT2
-from jmetal.util.comparator import GDominanceComparator
-from jmetal.util.solution import print_function_values_to_file, print_variables_to_file, read_solutions
+from jmetal.problem import ZDT1
+from jmetal.util.solution import get_non_dominated_solutions, read_solutions, print_function_values_to_file, \
+ print_variables_to_file
from jmetal.util.termination_criterion import StoppingByEvaluations
-if __name__ == '__main__':
- problem = ZDT2()
- problem.reference_front = read_solutions(filename='resources/reference_front/ZDT2.pf')
+"""
+Program to configure and run a steady-state version of the NSGA-II algorithm (configured with standard settings).
+"""
- reference_point = [0.2, 0.5]
+if __name__ == '__main__':
+ problem = ZDT1()
+ problem.reference_front = read_solutions(filename='resources/reference_front/ZDT1.pf')
max_evaluations = 25000
algorithm = NSGAII(
problem=problem,
population_size=100,
- offspring_population_size=100,
+ offspring_population_size=1,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- dominance_comparator=GDominanceComparator(reference_point),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
- front = algorithm.get_result()
+ front = get_non_dominated_solutions(algorithm.get_result())
# Save results to file
print_function_values_to_file(front, 'FUN.' + algorithm.label)
print_variables_to_file(front, 'VAR.'+ algorithm.label)
- print(f'Algorithm: ${algorithm.get_name()}')
- print(f'Problem: ${problem.get_name()}')
- print(f'Computing time: ${algorithm.total_computing_time}')
+ print('Algorithm (continuous problem): ' + algorithm.get_name())
+ print('Problem: ' + problem.get_name())
+ print('Computing time: ' + str(algorithm.total_computing_time))
+
diff --git a/examples/multiobjective/nsgaii/nsgaii_steady_state_with_real_time_plotting.py b/examples/multiobjective/nsgaii/nsgaii_steady_state_with_real_time_plotting.py
new file mode 100644
index 00000000..17304b10
--- /dev/null
+++ b/examples/multiobjective/nsgaii/nsgaii_steady_state_with_real_time_plotting.py
@@ -0,0 +1,54 @@
+from jmetal.algorithm.multiobjective.nsgaii import NSGAII
+from jmetal.lab.visualization import InteractivePlot, Plot
+from jmetal.operator import SBXCrossover, PolynomialMutation
+from jmetal.problem import ZDT1
+from jmetal.util.observer import ProgressBarObserver, VisualizerObserver
+from jmetal.util.solution import read_solutions, print_function_values_to_file, \
+ print_variables_to_file
+from jmetal.util.termination_criterion import StoppingByEvaluations
+
+"""
+Program to configure and run the steady-state NSGA-II algorithm with a real-time plotting observer. The display
+update frequency is set to 100 evaluations.
+"""
+
+if __name__ == '__main__':
+ problem = ZDT1()
+ problem.reference_front = read_solutions(filename='resources/reference_front/ZDT1.pf')
+
+ max_evaluations = 25000
+ algorithm = NSGAII(
+ problem=problem,
+ population_size=100,
+ offspring_population_size=1,
+ mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
+ crossover=SBXCrossover(probability=1.0, distribution_index=20),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
+ )
+
+ algorithm.observable.register(observer=ProgressBarObserver(max=max_evaluations))
+ algorithm.observable.register(
+ observer=VisualizerObserver(reference_front=problem.reference_front, display_frequency=100))
+
+ algorithm.run()
+ front = algorithm.get_result()
+
+ # Plot front
+ plot_front = Plot(title='Pareto front approximation. Problem: ' + problem.get_name(),
+ reference_front=problem.reference_front,
+ axis_labels=problem.obj_labels)
+ plot_front.plot(front, label=algorithm.label, filename=algorithm.get_name())
+
+ # Plot interactive front
+ plot_front = InteractivePlot(title='Pareto front approximation. Problem: ' + problem.get_name(),
+ reference_front=problem.reference_front,
+ axis_labels=problem.obj_labels)
+ plot_front.plot(front, label=algorithm.label, filename=algorithm.get_name())
+
+ # Save results to file
+ print_function_values_to_file(front, 'FUN.' + algorithm.label)
+ print_variables_to_file(front, 'VAR.' + algorithm.label)
+
+ print('Algorithm (continuous problem): ' + algorithm.get_name())
+ print('Problem: ' + problem.get_name())
+ print('Computing time: ' + str(algorithm.total_computing_time))
diff --git a/examples/multiobjective/nsgaii/nsgaii_multiprocess_evaluator.py b/examples/multiobjective/nsgaii/parallel_nsgaii_with_multiprocess_evaluator.py
similarity index 88%
rename from examples/multiobjective/nsgaii/nsgaii_multiprocess_evaluator.py
rename to examples/multiobjective/nsgaii/parallel_nsgaii_with_multiprocess_evaluator.py
index 1b1df5ca..eb7f4615 100644
--- a/examples/multiobjective/nsgaii/nsgaii_multiprocess_evaluator.py
+++ b/examples/multiobjective/nsgaii/parallel_nsgaii_with_multiprocess_evaluator.py
@@ -1,6 +1,6 @@
-from examples.multiobjective.zdt1_modified import ZDT1Modified
from jmetal.algorithm.multiobjective.nsgaii import NSGAII
from jmetal.operator import SBXCrossover, PolynomialMutation
+from jmetal.problem.multiobjective.zdt import ZDT1Modified
from jmetal.util.evaluator import MultiprocessEvaluator
from jmetal.util.solution import print_function_values_to_file, print_variables_to_file
from jmetal.util.termination_criterion import StoppingByEvaluations
@@ -17,7 +17,7 @@
offspring_population_size=10,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/nsgaii/sequential_nsgaii.py b/examples/multiobjective/nsgaii/sequential_nsgaii.py
deleted file mode 100644
index 3fb1b88d..00000000
--- a/examples/multiobjective/nsgaii/sequential_nsgaii.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from examples.multiobjective.zdt1_modified import ZDT1Modified
-from jmetal.algorithm.multiobjective.nsgaii import NSGAII
-from jmetal.operator import SBXCrossover, PolynomialMutation
-from jmetal.util.solution import print_function_values_to_file, print_variables_to_file
-from jmetal.util.termination_criterion import StoppingByEvaluations
-
-if __name__ == '__main__':
- problem = ZDT1Modified()
-
- max_evaluations = 100
-
- algorithm = NSGAII(
- problem=problem,
- population_size=10,
- offspring_population_size=10,
- mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
- crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
- )
-
- algorithm.run()
- front = algorithm.get_result()
-
- # Save results to file
- print_function_values_to_file(front, 'FUN.NSGAII.ZDT1')
- print_variables_to_file(front, 'VAR.NSGAII.ZDT1')
-
- print('Algorithm (continuous problem): ' + algorithm.get_name())
- print('Problem: ' + problem.get_name())
- print('Computing time: ' + str(algorithm.total_computing_time))
diff --git a/examples/multiobjective/nsgaiii/nsgaiii_dtlz2.py b/examples/multiobjective/nsgaiii/nsgaiii_dtlz2.py
index 3af21ffb..1ffb9059 100644
--- a/examples/multiobjective/nsgaiii/nsgaiii_dtlz2.py
+++ b/examples/multiobjective/nsgaiii/nsgaiii_dtlz2.py
@@ -16,7 +16,7 @@
reference_directions=UniformReferenceDirectionFactory(3, n_points=91),
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=30),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/omopso/omopso_spark_evaluator.py b/examples/multiobjective/omopso/omopso_spark_evaluator.py
index f686af1e..16b52115 100644
--- a/examples/multiobjective/omopso/omopso_spark_evaluator.py
+++ b/examples/multiobjective/omopso/omopso_spark_evaluator.py
@@ -1,7 +1,7 @@
-from examples.multiobjective.zdt1_modified import ZDT1Modified
from jmetal.algorithm.multiobjective.omopso import OMOPSO
from jmetal.operator import UniformMutation
from jmetal.operator.mutation import NonUniformMutation
+from jmetal.problem.multiobjective.zdt import ZDT1Modified
from jmetal.util.archive import CrowdingDistanceArchive
from jmetal.util.evaluator import SparkEvaluator
from jmetal.util.solution import print_function_values_to_file, print_variables_to_file, read_solutions
@@ -19,9 +19,10 @@
swarm_size=swarm_size,
epsilon=0.0075,
uniform_mutation=UniformMutation(probability=mutation_probability, perturbation=0.5),
- non_uniform_mutation=NonUniformMutation(mutation_probability, perturbation=0.5, max_iterations = max_evaluations/swarm_size),
+ non_uniform_mutation=NonUniformMutation(mutation_probability, perturbation=0.5,
+ max_iterations=max_evaluations / swarm_size),
leaders=CrowdingDistanceArchive(10),
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
swarm_evaluator=SparkEvaluator(),
)
@@ -30,7 +31,7 @@
# Save results to file
print_function_values_to_file(front, 'FUN.' + algorithm.get_name() + "." + problem.get_name())
- print_variables_to_file(front, 'VAR.'+ algorithm.get_name() + "." + problem.get_name())
+ print_variables_to_file(front, 'VAR.' + algorithm.get_name() + "." + problem.get_name())
print('Algorithm (continuous problem): ' + algorithm.get_name())
print('Problem: ' + problem.get_name())
diff --git a/examples/multiobjective/omopso/omopso_zdt1.py b/examples/multiobjective/omopso/omopso_zdt1.py
index 94934454..9bf19f5a 100644
--- a/examples/multiobjective/omopso/omopso_zdt1.py
+++ b/examples/multiobjective/omopso/omopso_zdt1.py
@@ -23,7 +23,7 @@
non_uniform_mutation=NonUniformMutation(mutation_probability, perturbation=0.5,
max_iterations=int(max_evaluations / swarm_size)),
leaders=CrowdingDistanceArchive(100),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/preferences/ggde3_zdt2.py b/examples/multiobjective/preferences/ggde3_zdt2.py
index 38a8e8f5..76ded1e6 100644
--- a/examples/multiobjective/preferences/ggde3_zdt2.py
+++ b/examples/multiobjective/preferences/ggde3_zdt2.py
@@ -1,10 +1,10 @@
+from jmetal.util.solutions import read_solutions, print_function_values_to_file, print_variables_to_file
+from jmetal.util.solutions.comparator import GDominanceComparator
+
from jmetal.algorithm.multiobjective.gde3 import GDE3
from jmetal.lab.visualization import Plot, InteractivePlot
from jmetal.problem import ZDT2
-
from jmetal.util.observer import VisualizerObserver
-from jmetal.util.solutions import read_solutions, print_function_values_to_file, print_variables_to_file
-from jmetal.util.solutions.comparator import GDominanceComparator
from jmetal.util.termination_criterion import StoppingByEvaluations
if __name__ == '__main__':
@@ -19,7 +19,7 @@
population_size=100,
cr=0.5,
f=0.5,
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
dominance_comparator=GDominanceComparator(reference_point)
)
diff --git a/examples/multiobjective/random_search/random_search_zdt1.py b/examples/multiobjective/random_search/random_search_zdt1.py
index 84b9ff7e..8d7a3106 100644
--- a/examples/multiobjective/random_search/random_search_zdt1.py
+++ b/examples/multiobjective/random_search/random_search_zdt1.py
@@ -10,7 +10,7 @@
max_evaluations = 1000
algorithm = RandomSearch(
problem=problem,
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/smpso/dynamic_smpso.py b/examples/multiobjective/smpso/dynamic_smpso.py
index 5c89280c..7cfb6ecf 100644
--- a/examples/multiobjective/smpso/dynamic_smpso.py
+++ b/examples/multiobjective/smpso/dynamic_smpso.py
@@ -23,7 +23,7 @@
swarm_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
leaders=CrowdingDistanceArchive(100),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.observable.register(observer=PlotFrontToFileObserver('dynamic_front_vis'))
diff --git a/examples/multiobjective/smpso/smpso_schaffer_on_the_fly.py b/examples/multiobjective/smpso/smpso_schaffer_on_the_fly.py
index 4458dc72..39a61cc3 100644
--- a/examples/multiobjective/smpso/smpso_schaffer_on_the_fly.py
+++ b/examples/multiobjective/smpso/smpso_schaffer_on_the_fly.py
@@ -28,7 +28,7 @@ def f2(x: [float]):
swarm_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
leaders=CrowdingDistanceArchive(100),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/smpso/smpso_spark_evaluator.py b/examples/multiobjective/smpso/smpso_spark_evaluator.py
index e74b3c1d..fd790a2c 100644
--- a/examples/multiobjective/smpso/smpso_spark_evaluator.py
+++ b/examples/multiobjective/smpso/smpso_spark_evaluator.py
@@ -1,4 +1,5 @@
from examples.multiobjective.zdt1_modified import ZDT1Modified
+
from jmetal.algorithm.multiobjective.smpso import SMPSO
from jmetal.operator import PolynomialMutation
from jmetal.util.archive import CrowdingDistanceArchive
@@ -17,7 +18,7 @@
swarm_size=10,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
leaders=CrowdingDistanceArchive(10),
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
swarm_evaluator=SparkEvaluator(),
)
diff --git a/examples/multiobjective/smpso/smpso_srinivas.py b/examples/multiobjective/smpso/smpso_srinivas.py
index e2c9bfea..5480245e 100644
--- a/examples/multiobjective/smpso/smpso_srinivas.py
+++ b/examples/multiobjective/smpso/smpso_srinivas.py
@@ -16,7 +16,7 @@
swarm_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
leaders=CrowdingDistanceArchive(100),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/smpso/smpso_srinivas_on_the_fly.py b/examples/multiobjective/smpso/smpso_srinivas_on_the_fly.py
index 6baef103..0083df06 100644
--- a/examples/multiobjective/smpso/smpso_srinivas_on_the_fly.py
+++ b/examples/multiobjective/smpso/smpso_srinivas_on_the_fly.py
@@ -38,7 +38,7 @@ def c2(x: [float]):
swarm_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
leaders=CrowdingDistanceArchive(100),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/smpso/smpso_zdt4.py b/examples/multiobjective/smpso/smpso_zdt4.py
index 8318c970..19c77523 100644
--- a/examples/multiobjective/smpso/smpso_zdt4.py
+++ b/examples/multiobjective/smpso/smpso_zdt4.py
@@ -16,7 +16,7 @@
swarm_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
leaders=CrowdingDistanceArchive(100),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/smpso/smpsorp_zdt4.py b/examples/multiobjective/smpso/smpsorp_zdt4.py
index d1902957..e2f4c7d0 100644
--- a/examples/multiobjective/smpso/smpsorp_zdt4.py
+++ b/examples/multiobjective/smpso/smpsorp_zdt4.py
@@ -1,21 +1,14 @@
+from jmetal.lab.visualization import Plot, InteractivePlot
+from jmetal.util.observer import ProgressBarObserver, VisualizerObserver
+from jmetal.util.solution import print_function_values_to_file, print_variables_to_file, read_solutions
+
+from jmetal.util.termination_criterion import StoppingByEvaluations
+
from jmetal.algorithm.multiobjective.smpso import SMPSORP
from jmetal.operator import PolynomialMutation
from jmetal.problem import ZDT4, ZDT1
from jmetal.util.archive import CrowdingDistanceArchiveWithReferencePoint
-<<<<<<< HEAD:examples/multiobjective/smpso/smpsorp_zdt4.py
-from jmetal.util.solution import read_solutions, print_variables_to_file, print_function_values_to_file
-=======
-from jmetal.util.solutions import read_solutions
-if __name__ == '__main__':
- problem = ZDT4()
- problem.reference_front = read_solutions(filename='resources/reference_front/ZDT4.pf')
-
-from jmetal.util.observer import VisualizerObserver
-from jmetal.util.solutions import read_solutions, print_function_values_to_file, print_variables_to_file
->>>>>>> develop:examples/multiobjective/preferences/smpsorp_zdt4.py
-from jmetal.util.termination_criterion import StoppingByEvaluations
-from jmetal.lab.visualization import InteractivePlot, Plot
if __name__ == '__main__':
problem = ZDT1()
@@ -38,16 +31,29 @@
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
reference_points=reference_point,
leaders=archives_with_reference_points,
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
+ algorithm.observable.register(
+ observer=VisualizerObserver(reference_front=problem.reference_front, reference_point=reference_point))
+
algorithm.run()
front = algorithm.get_result()
+ # Plot front
+ plot_front = Plot(title='Pareto front approximation. Problem: ' + problem.get_name(),
+ reference_front=problem.reference_front, axis_labels=problem.obj_labels)
+ plot_front.plot(front, label=algorithm.label, filename=algorithm.get_name())
+
+ # Plot interactive front
+ plot_front = InteractivePlot(title='Pareto front approximation. Problem: ' + problem.get_name(),
+ reference_front=problem.reference_front, axis_labels=problem.obj_labels)
+ plot_front.plot(front, label=algorithm.label, filename=algorithm.get_name())
+
# Save results to file
print_function_values_to_file(front, 'FUN.' + algorithm.label)
- print_variables_to_file(front, 'VAR.'+ algorithm.label)
+ print_variables_to_file(front, 'VAR.' + algorithm.label)
- print(f'Algorithm: ${algorithm.get_name()}')
- print(f'Problem: ${problem.get_name()}')
- print(f'Computing time: ${algorithm.total_computing_time}')
+ print('Algorithm (continuous problem): ' + algorithm.get_name())
+ print('Problem: ' + problem.get_name())
+ print('Computing time: ' + str(algorithm.total_computing_time))
diff --git a/examples/multiobjective/spea2/gspea2_zdt1.py b/examples/multiobjective/spea2/gspea2_zdt1.py
index d78ce9fa..d2bd2441 100644
--- a/examples/multiobjective/spea2/gspea2_zdt1.py
+++ b/examples/multiobjective/spea2/gspea2_zdt1.py
@@ -18,7 +18,7 @@
offspring_population_size=40,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
dominance_comparator=GDominanceComparator(reference_point)
)
diff --git a/examples/multiobjective/spea2/spea2_dtlz1.py b/examples/multiobjective/spea2/spea2_dtlz1.py
index 9e0d41af..1f58a3b4 100644
--- a/examples/multiobjective/spea2/spea2_dtlz1.py
+++ b/examples/multiobjective/spea2/spea2_dtlz1.py
@@ -15,7 +15,7 @@
offspring_population_size=20,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/multiobjective/spea2/spea2_zdt1.py b/examples/multiobjective/spea2/spea2_zdt1.py
index 20a3eb53..1f010bff 100644
--- a/examples/multiobjective/spea2/spea2_zdt1.py
+++ b/examples/multiobjective/spea2/spea2_zdt1.py
@@ -15,7 +15,7 @@
offspring_population_size=40,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/singleobjective/evolution_strategy/evolution_strategy_binary.py b/examples/singleobjective/evolution_strategy/evolution_strategy_binary.py
index b0e76d0d..a6766639 100644
--- a/examples/singleobjective/evolution_strategy/evolution_strategy_binary.py
+++ b/examples/singleobjective/evolution_strategy/evolution_strategy_binary.py
@@ -12,7 +12,7 @@
lambda_=10,
mutation=BitFlipMutation(probability=1.0 / problem.number_of_bits),
elitist=True,
- termination_criterion=StoppingByEvaluations(max=25000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=25000)
)
algorithm.run()
diff --git a/examples/singleobjective/evolution_strategy/evolution_strategy_float.py b/examples/singleobjective/evolution_strategy/evolution_strategy_float.py
index 39acde30..3a1c3833 100644
--- a/examples/singleobjective/evolution_strategy/evolution_strategy_float.py
+++ b/examples/singleobjective/evolution_strategy/evolution_strategy_float.py
@@ -12,7 +12,7 @@
lambda_=10,
elitist=True,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables),
- termination_criterion=StoppingByEvaluations(max=25000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=25000)
)
algorithm.run()
diff --git a/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_binary.py b/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_binary.py
index 64f6498f..d205175a 100644
--- a/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_binary.py
+++ b/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_binary.py
@@ -13,7 +13,7 @@
mutation=BitFlipMutation(1.0 / problem.number_of_bits),
crossover=SPXCrossover(1.0),
selection=BinaryTournamentSelection(),
- termination_criterion=StoppingByEvaluations(max=20000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=20000)
)
algorithm.run()
diff --git a/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_float.py b/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_float.py
index 7c09886e..e3aff749 100644
--- a/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_float.py
+++ b/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_float.py
@@ -13,7 +13,7 @@
mutation=PolynomialMutation(1.0 / problem.number_of_variables, 20.0),
crossover=SBXCrossover(0.9, 20.0),
selection=BinaryTournamentSelection(),
- termination_criterion=StoppingByEvaluations(max=500000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=500000)
)
algorithm.run()
diff --git a/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_tsp.py b/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_tsp.py
index 3b06a6de..e0b076ee 100644
--- a/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_tsp.py
+++ b/examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_tsp.py
@@ -22,7 +22,7 @@
selection=BinaryTournamentSelection(
MultiComparator([FastNonDominatedRanking.get_comparator(),
CrowdingDistance.get_comparator()])),
- termination_criterion=StoppingByEvaluations(max=2500000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=2500000)
)
algorithm.run()
diff --git a/examples/singleobjective/genetic_algorithm/steady_state_genetic_algorithm.py b/examples/singleobjective/genetic_algorithm/steady_state_genetic_algorithm.py
index c50a4663..e2337f19 100644
--- a/examples/singleobjective/genetic_algorithm/steady_state_genetic_algorithm.py
+++ b/examples/singleobjective/genetic_algorithm/steady_state_genetic_algorithm.py
@@ -30,7 +30,7 @@
mutation=BitFlipMutation(probability=0.1),
crossover=SPXCrossover(probability=0.8),
selection=BinaryTournamentSelection(),
- termination_criterion=StoppingByEvaluations(max=25000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=25000)
)
algorithm.run()
diff --git a/examples/singleobjective/genetic_algorithm/steady_state_genetic_algorithm_with_knapsack_problem.py b/examples/singleobjective/genetic_algorithm/steady_state_genetic_algorithm_with_knapsack_problem.py
index 94c44225..a8dd133d 100644
--- a/examples/singleobjective/genetic_algorithm/steady_state_genetic_algorithm_with_knapsack_problem.py
+++ b/examples/singleobjective/genetic_algorithm/steady_state_genetic_algorithm_with_knapsack_problem.py
@@ -13,7 +13,7 @@
mutation=BitFlipMutation(probability=0.1),
crossover=SPXCrossover(probability=0.8),
selection=BinaryTournamentSelection(),
- termination_criterion=StoppingByEvaluations(max=25000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=25000)
)
algorithm.run()
diff --git a/examples/singleobjective/local_search/local_search_binary.py b/examples/singleobjective/local_search/local_search_binary.py
index bd040217..cb4ec22f 100644
--- a/examples/singleobjective/local_search/local_search_binary.py
+++ b/examples/singleobjective/local_search/local_search_binary.py
@@ -11,7 +11,7 @@
algorithm = LocalSearch(
problem=problem,
mutation=BitFlipMutation(probability=1.0 / problem.number_of_bits),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/singleobjective/local_search/local_search_float.py b/examples/singleobjective/local_search/local_search_float.py
index 3607d8c4..73db5a24 100644
--- a/examples/singleobjective/local_search/local_search_float.py
+++ b/examples/singleobjective/local_search/local_search_float.py
@@ -12,7 +12,7 @@
algorithm = LocalSearch(
problem=problem,
mutation=PolynomialMutation(1.0 / problem.number_of_variables, 20.0),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/singleobjective/nsgaii/nsgaii_single_objective_binary.py b/examples/singleobjective/nsgaii/nsgaii_single_objective_binary.py
index c23d93bd..587ba1ce 100644
--- a/examples/singleobjective/nsgaii/nsgaii_single_objective_binary.py
+++ b/examples/singleobjective/nsgaii/nsgaii_single_objective_binary.py
@@ -17,7 +17,7 @@
offspring_population_size=1,
mutation=BitFlipMutation(probability=1.0 / binary_string_length),
crossover=SPXCrossover(probability=1.0),
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
dominance_comparator=DominanceComparator()
)
diff --git a/examples/singleobjective/nsgaii/nsgaii_single_objective_float.py b/examples/singleobjective/nsgaii/nsgaii_single_objective_float.py
index 179e905a..3679a6d4 100644
--- a/examples/singleobjective/nsgaii/nsgaii_single_objective_float.py
+++ b/examples/singleobjective/nsgaii/nsgaii_single_objective_float.py
@@ -15,7 +15,7 @@
offspring_population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20.0),
crossover=SBXCrossover(probability=0.9, distribution_index=20.0),
- termination_criterion=StoppingByEvaluations(max=max_evaluations),
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations),
dominance_comparator=DominanceComparator()
)
diff --git a/examples/singleobjective/simulated_annealing/simulated_annealing_binary.py b/examples/singleobjective/simulated_annealing/simulated_annealing_binary.py
index 1a0bea46..7320448e 100644
--- a/examples/singleobjective/simulated_annealing/simulated_annealing_binary.py
+++ b/examples/singleobjective/simulated_annealing/simulated_annealing_binary.py
@@ -12,7 +12,7 @@
algorithm = SimulatedAnnealing(
problem=problem,
mutation=BitFlipMutation(probability=1.0 / problem.number_of_bits),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/examples/singleobjective/simulated_annealing/simulated_annealing_float.py b/examples/singleobjective/simulated_annealing/simulated_annealing_float.py
index ea14220c..23b40432 100644
--- a/examples/singleobjective/simulated_annealing/simulated_annealing_float.py
+++ b/examples/singleobjective/simulated_annealing/simulated_annealing_float.py
@@ -12,7 +12,7 @@
algorithm = SimulatedAnnealing(
problem=problem,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20.0),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
diff --git a/jmetal/algorithm/multiobjective/mocell.py b/jmetal/algorithm/multiobjective/mocell.py
index cf2fa633..fd6c282f 100644
--- a/jmetal/algorithm/multiobjective/mocell.py
+++ b/jmetal/algorithm/multiobjective/mocell.py
@@ -8,12 +8,12 @@
from jmetal.core.problem import Problem
from jmetal.operator import BinaryTournamentSelection
from jmetal.util.archive import BoundedArchive
+from jmetal.util.comparator import Comparator, MultiComparator
from jmetal.util.density_estimator import CrowdingDistance, DensityEstimator
from jmetal.util.evaluator import Evaluator
from jmetal.util.generator import Generator
from jmetal.util.neighborhood import Neighborhood
from jmetal.util.ranking import FastNonDominatedRanking, Ranking
-from jmetal.util.comparator import Comparator, MultiComparator
from jmetal.util.termination_criterion import TerminationCriterion
S = TypeVar('S')
diff --git a/jmetal/algorithm/multiobjective/nsgaiii.py b/jmetal/algorithm/multiobjective/nsgaiii.py
index 204e1bd4..1b8de042 100644
--- a/jmetal/algorithm/multiobjective/nsgaiii.py
+++ b/jmetal/algorithm/multiobjective/nsgaiii.py
@@ -2,7 +2,6 @@
from typing import TypeVar, List
import numpy as np
-from jmetal.util.solutions import Evaluator, Generator
from numpy.linalg import LinAlgError
from scipy import special
diff --git a/jmetal/algorithm/multiobjective/spea2.py b/jmetal/algorithm/multiobjective/spea2.py
index fe494e06..5b7dea5f 100644
--- a/jmetal/algorithm/multiobjective/spea2.py
+++ b/jmetal/algorithm/multiobjective/spea2.py
@@ -5,12 +5,12 @@
from jmetal.core.operator import Mutation, Crossover
from jmetal.core.problem import Problem
from jmetal.operator import BinaryTournamentSelection
+from jmetal.util.comparator import Comparator, MultiComparator
from jmetal.util.density_estimator import KNearestNeighborDensityEstimator
from jmetal.util.evaluator import Evaluator
from jmetal.util.generator import Generator
from jmetal.util.ranking import StrengthRanking
from jmetal.util.replacement import RankingAndDensityEstimatorReplacement, RemovalPolicyType
-from jmetal.util.comparator import Comparator, MultiComparator
from jmetal.util.termination_criterion import TerminationCriterion
S = TypeVar('S')
diff --git a/jmetal/algorithm/singleobjective/simulated_annealing.py b/jmetal/algorithm/singleobjective/simulated_annealing.py
index 4bf7ebc0..7d36f7c0 100644
--- a/jmetal/algorithm/singleobjective/simulated_annealing.py
+++ b/jmetal/algorithm/singleobjective/simulated_annealing.py
@@ -6,10 +6,12 @@
import numpy
+from jmetal.config import store
from jmetal.core.algorithm import Algorithm
from jmetal.core.operator import Mutation
from jmetal.core.problem import Problem
from jmetal.core.solution import Solution
+from jmetal.util.generator import Generator
from jmetal.util.termination_criterion import TerminationCriterion
S = TypeVar('S')
@@ -18,7 +20,7 @@
"""
.. module:: simulated_annealing
:platform: Unix, Windows
- :synopsis: Implementation of Local search.
+ :synopsis: Implementation of Simulated Annealing.
.. moduleauthor:: Antonio J. Nebro , Antonio BenÃtez-Hidalgo
"""
@@ -29,11 +31,13 @@ class SimulatedAnnealing(Algorithm[S, R], threading.Thread):
def __init__(self,
problem: Problem[S],
mutation: Mutation,
- termination_criterion: TerminationCriterion):
+ termination_criterion: TerminationCriterion,
+ solution_generator: Generator = store.default_generator):
super(SimulatedAnnealing, self).__init__()
self.problem = problem
self.mutation = mutation
self.termination_criterion = termination_criterion
+ self.solution_generator = solution_generator
self.observable.register(termination_criterion)
self.temperature = 1.0
self.minimum_temperature = 0.000001
@@ -41,8 +45,7 @@ def __init__(self,
self.counter = 0
def create_initial_solutions(self) -> List[S]:
- self.solutions.append(self.problem.create_solution())
- return self.solutions
+ return [self.solution_generator.new(self.problem)]
def evaluate(self, solutions: List[S]) -> List[S]:
return [self.problem.evaluate(solutions[0])]
diff --git a/jmetal/algorithm/test/test_algorithm.py b/jmetal/algorithm/test/ittest_algorithm.py
similarity index 84%
rename from jmetal/algorithm/test/test_algorithm.py
rename to jmetal/algorithm/test/ittest_algorithm.py
index 2685e0fa..9a7c5415 100644
--- a/jmetal/algorithm/test/test_algorithm.py
+++ b/jmetal/algorithm/test/ittest_algorithm.py
@@ -27,7 +27,7 @@ def test_NSGAII(self):
offspring_population_size=self.offspring_size,
mutation=self.mutation,
crossover=self.crossover,
- termination_criterion=StoppingByEvaluations(max=1000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=1000)
).run()
def test_SMPSO(self):
@@ -36,7 +36,7 @@ def test_SMPSO(self):
swarm_size=self.population_size,
mutation=self.mutation,
leaders=CrowdingDistanceArchive(100),
- termination_criterion=StoppingByEvaluations(max=1000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=1000)
).run()
@@ -53,14 +53,14 @@ def test_should_NSGAII_work_when_solving_problem_ZDT1_with_standard_settings(sel
offspring_population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
- termination_criterion=StoppingByEvaluations(max=max_evaluations)
+ termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations)
)
algorithm.run()
front = algorithm.get_result()
hv = HyperVolume(reference_point=[1, 1])
- value = hv.compute(front)
+ value = hv.compute([front[i].objectives for i in range(len(front))])
self.assertTrue(value >= 0.65)
@@ -72,14 +72,14 @@ def test_should_SMPSO_work_when_solving_problem_ZDT1_with_standard_settings(self
swarm_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
leaders=CrowdingDistanceArchive(100),
- termination_criterion=StoppingByEvaluations(max=25000)
+ termination_criterion=StoppingByEvaluations(max_evaluations=25000)
)
algorithm.run()
front = algorithm.get_result()
hv = HyperVolume(reference_point=[1, 1])
- value = hv.compute(front)
+ value = hv.compute([front[i].objectives for i in range(len(front))])
self.assertTrue(value >= 0.655)
diff --git a/jmetal/config.py b/jmetal/config.py
index ea2c416d..51597da3 100644
--- a/jmetal/config.py
+++ b/jmetal/config.py
@@ -22,7 +22,7 @@ def default_generator(self):
@property
def default_termination_criteria(self):
- return StoppingByEvaluations(max=25000)
+ return StoppingByEvaluations(max_evaluations=25000)
@property
def default_comparator(self):
diff --git a/jmetal/core/problem.py b/jmetal/core/problem.py
index 4694ad98..9519fac5 100644
--- a/jmetal/core/problem.py
+++ b/jmetal/core/problem.py
@@ -22,7 +22,7 @@ def __init__(self):
self.number_of_objectives: int = 0
self.number_of_constraints: int = 0
- self.reference_front: List[S] = None
+ self.reference_front: List[S] = []
self.directions: List[int] = []
self.labels: List[str] = []
@@ -80,7 +80,8 @@ def create_solution(self) -> FloatSolution:
self.number_of_objectives,
self.number_of_constraints)
new_solution.variables = \
- [random.uniform(self.lower_bound[i]*1.0, self.upper_bound[i]*1.0) for i in range(self.number_of_variables)]
+ [random.uniform(self.lower_bound[i] * 1.0, self.upper_bound[i] * 1.0) for i in
+ range(self.number_of_variables)]
return new_solution
@@ -100,7 +101,7 @@ def create_solution(self) -> IntegerSolution:
self.number_of_objectives,
self.number_of_constraints)
new_solution.variables = \
- [int(random.uniform(self.lower_bound[i]*1.0, self.upper_bound[i]*1.0))
+ [int(random.uniform(self.lower_bound[i] * 1.0, self.upper_bound[i] * 1.0))
for i in range(self.number_of_variables)]
return new_solution
@@ -140,6 +141,7 @@ class OnTheFlyFloatProblem(FloatProblem):
.add_constraint(c1)\
.add_constraint(c2)
"""
+
def __init__(self):
super(OnTheFlyFloatProblem, self).__init__()
self.functions = []
diff --git a/jmetal/core/quality_indicator.py b/jmetal/core/quality_indicator.py
index cac0db84..d56d3aa4 100644
--- a/jmetal/core/quality_indicator.py
+++ b/jmetal/core/quality_indicator.py
@@ -1,19 +1,8 @@
from abc import ABC, abstractmethod
-from typing import TypeVar, List
import numpy as np
from scipy import spatial
-S = TypeVar('S')
-
-"""
-.. module:: indicator
- :platform: Unix, Windows
- :synopsis: Quality indicators implementation.
-
-.. moduleauthor:: Antonio BenÃtez-Hidalgo , Simon Wessing
-"""
-
class QualityIndicator(ABC):
@@ -21,20 +10,28 @@ def __init__(self, is_minimization: bool):
self.is_minimization = is_minimization
@abstractmethod
- def compute(self, solutions: List[S]):
+ def compute(self, solutions: np.array):
+ """
+ :param solutions: [m, n] bi-dimensional numpy array, being m the number of solutions and n the dimension of
+ each solution
+ :return: the value of the quality indicator
+ """
pass
@abstractmethod
def get_name(self) -> str:
pass
+ @abstractmethod
+ def get_short_name(self) -> str:
+ pass
-class FitnessValue(QualityIndicator):
+class FitnessValue(QualityIndicator):
def __init__(self, is_minimization: bool = True):
super(FitnessValue, self).__init__(is_minimization=is_minimization)
- def compute(self, solutions: List[S]):
+ def compute(self, solutions: np.array):
if self.is_minimization:
mean = np.mean([s.objectives for s in solutions])
else:
@@ -45,76 +42,69 @@ def compute(self, solutions: List[S]):
def get_name(self) -> str:
return 'Fitness'
+ def get_short_name(self) -> str:
+ return 'Fitness'
-class GenerationalDistance(QualityIndicator):
- def __init__(self, reference_front: List[S] = None, p: float = 2.0):
+class GenerationalDistance(QualityIndicator):
+ def __init__(self, reference_front: np.array=None):
"""
* Van Veldhuizen, D.A., Lamont, G.B.: Multiobjective Evolutionary Algorithm Research: A History and Analysis.
Technical Report TR-98-03, Dept. Elec. Comput. Eng., Air Force. Inst. Technol. (1998)
"""
super(GenerationalDistance, self).__init__(is_minimization=True)
self.reference_front = reference_front
- self.p = p
- def compute(self, solutions: List[S]):
- if not self.reference_front:
+ def compute(self, solutions: np.array):
+ if self.reference_front is None:
raise Exception('Reference front is none')
- reference_front = [s.objectives for s in self.reference_front]
- solutions = [s.objectives for s in solutions]
-
- distances = spatial.distance.cdist(np.asarray(solutions), np.asarray(reference_front))
+ distances = spatial.distance.cdist(solutions, self.reference_front)
return np.mean(np.min(distances, axis=1))
- def get_name(self) -> str:
+ def get_short_name(self) -> str:
return 'GD'
+ def get_name(self) -> str:
+ return 'Generational Distance'
+
class InvertedGenerationalDistance(QualityIndicator):
-
- def __init__(self, reference_front: List[S] = None, p: float = 2.0):
+ def __init__(self, reference_front: np.array):
super(InvertedGenerationalDistance, self).__init__(is_minimization=True)
self.reference_front = reference_front
- self.p = p
- def compute(self, solutions: List[S]):
- if not self.reference_front:
+ def compute(self, solutions: np.array = None):
+ if self.reference_front is None:
raise Exception('Reference front is none')
- reference_front = [s.objectives for s in self.reference_front]
- solutions = [s.objectives for s in solutions]
-
- distances = spatial.distance.cdist(np.asarray(reference_front), np.asarray(solutions))
+ distances = spatial.distance.cdist(self.reference_front, solutions)
return np.mean(np.min(distances, axis=1))
- def get_name(self) -> str:
+ def get_short_name(self) -> str:
return 'IGD'
+ def get_name(self) -> str:
+ return 'Inverted Generational Distance'
-class EpsilonIndicator(QualityIndicator):
-
- def __init__(self, reference_front: List[S] = None):
- """ Epsilon indicator in the paper:
- * Zitzler, E. Thiele, L. Laummanns, M., Fonseca, C., and Grunert da Fonseca. V (2003): Performance Assessment of Multiobjective Optimizers: An Analysis and Review.
- """
+class EpsilonIndicator(QualityIndicator):
+ def __init__(self, reference_front: np.array = None):
super(EpsilonIndicator, self).__init__(is_minimization=True)
self.reference_front = reference_front
- def compute(self, solutions: List[S]):
- if not self.reference_front:
- raise Exception('Reference front is none')
-
+ def compute(self, front: np.array) -> float:
return max([min(
- [max([s2.objectives[k] - s1.objectives[k] for k in range(s2.number_of_objectives)]) for s2 in
- solutions]) for s1 in self.reference_front])
+ [max([s2[k] - s1[k] for k in range(len(s2))]) for s2 in front]) for s1 in self.reference_front])
- def get_name(self) -> str:
+ def get_short_name(self) -> str:
return 'EP'
+ def get_name(self) -> str:
+ return "Additive Epsilon"
+
class HyperVolume(QualityIndicator):
""" Hypervolume computation based on variant 3 of the algorithm in the paper:
@@ -126,17 +116,17 @@ class HyperVolume(QualityIndicator):
Minimization is implicitly assumed here!
"""
- def __init__(self, reference_point: List[float]):
+ def __init__(self, reference_point: [float] = None):
super(HyperVolume, self).__init__(is_minimization=False)
self.referencePoint = reference_point
self.list: MultiList = []
- def compute(self, solutions: List[S]):
+ def compute(self, solutions: np.array):
"""Before the HV computation, front and reference point are translated, so that the reference point is [0, ..., 0].
:return: The hypervolume that is dominated by a non-dominated front.
"""
- front = [s.objectives for s in solutions]
+ front = solutions
def weakly_dominates(point, other):
for i in range(len(point)):
@@ -260,9 +250,12 @@ def _sort_by_dimension(self, nodes, i):
# write back to original list
nodes[:] = [node for (_, node) in decorated]
- def get_name(self) -> str:
+ def get_short_name(self) -> str:
return 'HV'
+ def get_name(self) -> str:
+ return "Hypervolume (Fonseca et al. implementation)"
+
class MultiList:
"""A special front structure needed by FonsecaHyperVolume.
@@ -361,4 +354,3 @@ def reinsert(self, node, index, bounds):
node.next[i].prev[i] = node
if bounds[i] > node.cargo[i]:
bounds[i] = node.cargo[i]
-
diff --git a/jmetal/core/solution.py b/jmetal/core/solution.py
index 83f07bc3..6d8a994f 100644
--- a/jmetal/core/solution.py
+++ b/jmetal/core/solution.py
@@ -1,6 +1,8 @@
from abc import ABC
from typing import List, Generic, TypeVar
+from jmetal.util.ckecking import Check
+
BitSet = List[bool]
S = TypeVar('S')
@@ -11,10 +13,10 @@ class Solution(Generic[S], ABC):
def __init__(self, number_of_variables: int, number_of_objectives: int, number_of_constraints: int = 0):
self.number_of_variables = number_of_variables
self.number_of_objectives = number_of_objectives
- self.number_of_constrains = number_of_constraints
+ self.number_of_constraints = number_of_constraints
self.variables = [[] for _ in range(self.number_of_variables)]
self.objectives = [0.0 for _ in range(self.number_of_objectives)]
- self.constraints = [0.0 for _ in range(self.number_of_constrains)]
+ self.constraints = [0.0 for _ in range(self.number_of_constraints)]
self.attributes = {}
def __eq__(self, solution) -> bool:
@@ -72,15 +74,13 @@ def __copy__(self):
self.lower_bound,
self.upper_bound,
self.number_of_objectives,
- self.number_of_constrains)
+ self.number_of_constraints)
new_solution.objectives = self.objectives[:]
new_solution.variables = self.variables[:]
new_solution.constraints = self.constraints[:]
new_solution.attributes = self.attributes.copy()
- new_solution.attributes = self.attributes.copy()
-
return new_solution
@@ -98,7 +98,7 @@ def __copy__(self):
self.lower_bound,
self.upper_bound,
self.number_of_objectives,
- self.number_of_constrains)
+ self.number_of_constraints)
new_solution.objectives = self.objectives[:]
new_solution.variables = self.variables[:]
new_solution.constraints = self.constraints[:]
@@ -108,6 +108,41 @@ def __copy__(self):
return new_solution
+class CompositeSolution(Solution):
+ """ Class representing solutions composed of a list of solutions. The idea is that each decision variable can
+ be a solution of any type, so we can create mixed solutions (e.g., solutions combining any of the existing
+ encodings). The adopted approach has the advantage of easing the reuse of existing variation operators, but all the
+ solutions in the list will need to have the same function and constraint violation values.
+
+ It is assumed that problems using instances of this class will properly manage the solutions it contains.
+ """
+
+ def __init__(self, solutions: List[Solution]):
+ super(CompositeSolution, self).__init__(len(solutions), solutions[0].number_of_objectives,
+ solutions[0].number_of_constraints)
+ Check.is_not_none(solutions)
+ Check.collection_is_not_empty(solutions)
+
+ for solution in solutions:
+ Check.that(solution.number_of_objectives == solutions[0].number_of_objectives,
+ "The solutions in the list must have the same number of objectives: " + str(
+ solutions[0].number_of_objectives))
+ Check.that(solution.number_of_constraints == solutions[0].number_of_constraints,
+ "The solutions in the list must have the same number of constraints: " + str(
+ solutions[0].number_of_constraints))
+
+ self.variables = solutions
+
+ def __copy__(self):
+ new_solution = CompositeSolution(self.variables)
+
+ new_solution.objectives = self.objectives[:]
+ new_solution.constraints = self.constraints[:]
+ new_solution.attributes = self.attributes.copy()
+
+ return new_solution
+
+
class PermutationSolution(Solution):
""" Class representing permutation solutions """
diff --git a/jmetal/core/test/ZDT1.pf b/jmetal/core/test/ZDT1.pf
new file mode 100644
index 00000000..78593afa
--- /dev/null
+++ b/jmetal/core/test/ZDT1.pf
@@ -0,0 +1,1001 @@
+0 1
+0.001 0.968377
+0.002 0.955279
+0.003 0.945228
+0.004 0.936754
+0.005 0.929289
+0.006 0.92254
+0.007 0.916334
+0.008 0.910557
+0.009 0.905132
+0.01 0.9
+0.011 0.895119
+0.012 0.890455
+0.013 0.885982
+0.014 0.881678
+0.015 0.877526
+0.016 0.873509
+0.017 0.869616
+0.018 0.865836
+0.019 0.86216
+0.02 0.858579
+0.021 0.855086
+0.022 0.851676
+0.023 0.848342
+0.024 0.845081
+0.025 0.841886
+0.026 0.838755
+0.027 0.835683
+0.028 0.832668
+0.029 0.829706
+0.03 0.826795
+0.031 0.823932
+0.032 0.821115
+0.033 0.818341
+0.034 0.815609
+0.035 0.812917
+0.036 0.810263
+0.037 0.807646
+0.038 0.805064
+0.039 0.802516
+0.04 0.8
+0.041 0.797515
+0.042 0.795061
+0.043 0.792636
+0.044 0.790238
+0.045 0.787868
+0.046 0.785524
+0.047 0.783205
+0.048 0.780911
+0.049 0.778641
+0.05 0.776393
+0.051 0.774168
+0.052 0.771965
+0.053 0.769783
+0.054 0.767621
+0.055 0.765479
+0.056 0.763357
+0.057 0.761253
+0.058 0.759168
+0.059 0.757101
+0.06 0.755051
+0.061 0.753018
+0.062 0.751002
+0.063 0.749002
+0.064 0.747018
+0.065 0.745049
+0.066 0.743095
+0.067 0.741156
+0.068 0.739232
+0.069 0.737321
+0.07 0.735425
+0.071 0.733542
+0.072 0.731672
+0.073 0.729815
+0.074 0.727971
+0.075 0.726139
+0.076 0.724319
+0.077 0.722511
+0.078 0.720715
+0.079 0.718931
+0.08 0.717157
+0.081 0.715395
+0.082 0.713644
+0.083 0.711903
+0.084 0.710172
+0.085 0.708452
+0.086 0.706742
+0.087 0.705042
+0.088 0.703352
+0.089 0.701671
+0.09 0.7
+0.091 0.698338
+0.092 0.696685
+0.093 0.695041
+0.094 0.693406
+0.095 0.691779
+0.096 0.690161
+0.097 0.688552
+0.098 0.68695
+0.099 0.685357
+0.1 0.683772
+0.101 0.682195
+0.102 0.680626
+0.103 0.679064
+0.104 0.67751
+0.105 0.675963
+0.106 0.674424
+0.107 0.672891
+0.108 0.671366
+0.109 0.669849
+0.11 0.668338
+0.111 0.666833
+0.112 0.665336
+0.113 0.663845
+0.114 0.662361
+0.115 0.660884
+0.116 0.659412
+0.117 0.657947
+0.118 0.656489
+0.119 0.655036
+0.12 0.65359
+0.121 0.652149
+0.122 0.650715
+0.123 0.649286
+0.124 0.647864
+0.125 0.646447
+0.126 0.645035
+0.127 0.643629
+0.128 0.642229
+0.129 0.640834
+0.13 0.639445
+0.131 0.638061
+0.132 0.636682
+0.133 0.635308
+0.134 0.63394
+0.135 0.632577
+0.136 0.631218
+0.137 0.629865
+0.138 0.628516
+0.139 0.627173
+0.14 0.625834
+0.141 0.6245
+0.142 0.623171
+0.143 0.621847
+0.144 0.620527
+0.145 0.619211
+0.146 0.617901
+0.147 0.616594
+0.148 0.615292
+0.149 0.613995
+0.15 0.612702
+0.151 0.611413
+0.152 0.610128
+0.153 0.608848
+0.154 0.607572
+0.155 0.6063
+0.156 0.605032
+0.157 0.603768
+0.158 0.602508
+0.159 0.601252
+0.16 0.6
+0.161 0.598752
+0.162 0.597508
+0.163 0.596267
+0.164 0.595031
+0.165 0.593798
+0.166 0.592569
+0.167 0.591344
+0.168 0.590122
+0.169 0.588904
+0.17 0.587689
+0.171 0.586479
+0.172 0.585271
+0.173 0.584067
+0.174 0.582867
+0.175 0.58167
+0.176 0.580476
+0.177 0.579286
+0.178 0.5781
+0.179 0.576916
+0.18 0.575736
+0.181 0.574559
+0.182 0.573385
+0.183 0.572215
+0.184 0.571048
+0.185 0.569884
+0.186 0.568723
+0.187 0.567565
+0.188 0.56641
+0.189 0.565259
+0.19 0.56411
+0.191 0.562965
+0.192 0.561822
+0.193 0.560682
+0.194 0.559546
+0.195 0.558412
+0.196 0.557281
+0.197 0.556153
+0.198 0.555028
+0.199 0.553906
+0.2 0.552786
+0.201 0.55167
+0.202 0.550556
+0.203 0.549445
+0.204 0.548336
+0.205 0.547231
+0.206 0.546128
+0.207 0.545027
+0.208 0.54393
+0.209 0.542835
+0.21 0.541742
+0.211 0.540653
+0.212 0.539565
+0.213 0.538481
+0.214 0.537399
+0.215 0.536319
+0.216 0.535242
+0.217 0.534167
+0.218 0.533095
+0.219 0.532026
+0.22 0.530958
+0.221 0.529894
+0.222 0.528831
+0.223 0.527771
+0.224 0.526714
+0.225 0.525658
+0.226 0.524605
+0.227 0.523555
+0.228 0.522507
+0.229 0.521461
+0.23 0.520417
+0.231 0.519375
+0.232 0.518336
+0.233 0.517299
+0.234 0.516265
+0.235 0.515232
+0.236 0.514202
+0.237 0.513174
+0.238 0.512148
+0.239 0.511124
+0.24 0.510102
+0.241 0.509082
+0.242 0.508065
+0.243 0.50705
+0.244 0.506036
+0.245 0.505025
+0.246 0.504016
+0.247 0.503009
+0.248 0.502004
+0.249 0.501001
+0.25 0.5
+0.251 0.499001
+0.252 0.498004
+0.253 0.497009
+0.254 0.496016
+0.255 0.495025
+0.256 0.494036
+0.257 0.493048
+0.258 0.492063
+0.259 0.49108
+0.26 0.490098
+0.261 0.489118
+0.262 0.488141
+0.263 0.487165
+0.264 0.486191
+0.265 0.485218
+0.266 0.484248
+0.267 0.48328
+0.268 0.482313
+0.269 0.481348
+0.27 0.480385
+0.271 0.479423
+0.272 0.478464
+0.273 0.477506
+0.274 0.47655
+0.275 0.475596
+0.276 0.474643
+0.277 0.473692
+0.278 0.472743
+0.279 0.471795
+0.28 0.47085
+0.281 0.469906
+0.282 0.468963
+0.283 0.468023
+0.284 0.467083
+0.285 0.466146
+0.286 0.46521
+0.287 0.464276
+0.288 0.463344
+0.289 0.462413
+0.29 0.461484
+0.291 0.460556
+0.292 0.45963
+0.293 0.458705
+0.294 0.457782
+0.295 0.456861
+0.296 0.455941
+0.297 0.455023
+0.298 0.454106
+0.299 0.453191
+0.3 0.452277
+0.301 0.451365
+0.302 0.450455
+0.303 0.449546
+0.304 0.448638
+0.305 0.447732
+0.306 0.446827
+0.307 0.445924
+0.308 0.445023
+0.309 0.444122
+0.31 0.443224
+0.311 0.442326
+0.312 0.44143
+0.313 0.440536
+0.314 0.439643
+0.315 0.438751
+0.316 0.437861
+0.317 0.436972
+0.318 0.436085
+0.319 0.435199
+0.32 0.434315
+0.321 0.433431
+0.322 0.43255
+0.323 0.431669
+0.324 0.43079
+0.325 0.429912
+0.326 0.429036
+0.327 0.428161
+0.328 0.427287
+0.329 0.426415
+0.33 0.425544
+0.331 0.424674
+0.332 0.423806
+0.333 0.422938
+0.334 0.422073
+0.335 0.421208
+0.336 0.420345
+0.337 0.419483
+0.338 0.418622
+0.339 0.417763
+0.34 0.416905
+0.341 0.416048
+0.342 0.415192
+0.343 0.414338
+0.344 0.413485
+0.345 0.412633
+0.346 0.411782
+0.347 0.410933
+0.348 0.410085
+0.349 0.409238
+0.35 0.408392
+0.351 0.407547
+0.352 0.406704
+0.353 0.405862
+0.354 0.405021
+0.355 0.404181
+0.356 0.403343
+0.357 0.402505
+0.358 0.401669
+0.359 0.400834
+0.36 0.4
+0.361 0.399167
+0.362 0.398336
+0.363 0.397505
+0.364 0.396676
+0.365 0.395848
+0.366 0.395021
+0.367 0.394195
+0.368 0.39337
+0.369 0.392546
+0.37 0.391724
+0.371 0.390902
+0.372 0.390082
+0.373 0.389263
+0.374 0.388445
+0.375 0.387628
+0.376 0.386812
+0.377 0.385997
+0.378 0.385183
+0.379 0.38437
+0.38 0.383559
+0.381 0.382748
+0.382 0.381939
+0.383 0.38113
+0.384 0.380323
+0.385 0.379516
+0.386 0.378711
+0.387 0.377907
+0.388 0.377104
+0.389 0.376301
+0.39 0.3755
+0.391 0.3747
+0.392 0.373901
+0.393 0.373103
+0.394 0.372306
+0.395 0.37151
+0.396 0.370715
+0.397 0.369921
+0.398 0.369128
+0.399 0.368336
+0.4 0.367544
+0.401 0.366754
+0.402 0.365965
+0.403 0.365177
+0.404 0.36439
+0.405 0.363604
+0.406 0.362819
+0.407 0.362034
+0.408 0.361251
+0.409 0.360469
+0.41 0.359688
+0.411 0.358907
+0.412 0.358128
+0.413 0.357349
+0.414 0.356572
+0.415 0.355795
+0.416 0.355019
+0.417 0.354245
+0.418 0.353471
+0.419 0.352698
+0.42 0.351926
+0.421 0.351155
+0.422 0.350385
+0.423 0.349615
+0.424 0.348847
+0.425 0.34808
+0.426 0.347313
+0.427 0.346548
+0.428 0.345783
+0.429 0.345019
+0.43 0.344256
+0.431 0.343494
+0.432 0.342733
+0.433 0.341973
+0.434 0.341213
+0.435 0.340455
+0.436 0.339697
+0.437 0.33894
+0.438 0.338184
+0.439 0.337429
+0.44 0.336675
+0.441 0.335922
+0.442 0.335169
+0.443 0.334418
+0.444 0.333667
+0.445 0.332917
+0.446 0.332168
+0.447 0.331419
+0.448 0.330672
+0.449 0.329925
+0.45 0.32918
+0.451 0.328435
+0.452 0.327691
+0.453 0.326947
+0.454 0.326205
+0.455 0.325463
+0.456 0.324722
+0.457 0.323982
+0.458 0.323243
+0.459 0.322505
+0.46 0.321767
+0.461 0.32103
+0.462 0.320294
+0.463 0.319559
+0.464 0.318825
+0.465 0.318091
+0.466 0.317358
+0.467 0.316626
+0.468 0.315895
+0.469 0.315164
+0.47 0.314435
+0.471 0.313706
+0.472 0.312977
+0.473 0.31225
+0.474 0.311523
+0.475 0.310798
+0.476 0.310072
+0.477 0.309348
+0.478 0.308625
+0.479 0.307902
+0.48 0.30718
+0.481 0.306458
+0.482 0.305738
+0.483 0.305018
+0.484 0.304299
+0.485 0.303581
+0.486 0.302863
+0.487 0.302146
+0.488 0.30143
+0.489 0.300715
+0.49 0.3
+0.491 0.299286
+0.492 0.298573
+0.493 0.29786
+0.494 0.297149
+0.495 0.296438
+0.496 0.295727
+0.497 0.295018
+0.498 0.294309
+0.499 0.293601
+0.5 0.292893
+0.501 0.292186
+0.502 0.29148
+0.503 0.290775
+0.504 0.29007
+0.505 0.289366
+0.506 0.288663
+0.507 0.287961
+0.508 0.287259
+0.509 0.286558
+0.51 0.285857
+0.511 0.285157
+0.512 0.284458
+0.513 0.28376
+0.514 0.283062
+0.515 0.282365
+0.516 0.281669
+0.517 0.280973
+0.518 0.280278
+0.519 0.279583
+0.52 0.27889
+0.521 0.278197
+0.522 0.277504
+0.523 0.276813
+0.524 0.276122
+0.525 0.275431
+0.526 0.274741
+0.527 0.274052
+0.528 0.273364
+0.529 0.272676
+0.53 0.271989
+0.531 0.271303
+0.532 0.270617
+0.533 0.269932
+0.534 0.269247
+0.535 0.268563
+0.536 0.26788
+0.537 0.267197
+0.538 0.266515
+0.539 0.265834
+0.54 0.265153
+0.541 0.264473
+0.542 0.263794
+0.543 0.263115
+0.544 0.262436
+0.545 0.261759
+0.546 0.261082
+0.547 0.260406
+0.548 0.25973
+0.549 0.259055
+0.55 0.25838
+0.551 0.257706
+0.552 0.257033
+0.553 0.25636
+0.554 0.255688
+0.555 0.255017
+0.556 0.254346
+0.557 0.253676
+0.558 0.253006
+0.559 0.252337
+0.56 0.251669
+0.561 0.251001
+0.562 0.250333
+0.563 0.249667
+0.564 0.249001
+0.565 0.248335
+0.566 0.24767
+0.567 0.247006
+0.568 0.246342
+0.569 0.245679
+0.57 0.245017
+0.571 0.244355
+0.572 0.243693
+0.573 0.243032
+0.574 0.242372
+0.575 0.241712
+0.576 0.241053
+0.577 0.240395
+0.578 0.239737
+0.579 0.23908
+0.58 0.238423
+0.581 0.237766
+0.582 0.237111
+0.583 0.236456
+0.584 0.235801
+0.585 0.235147
+0.586 0.234494
+0.587 0.233841
+0.588 0.233188
+0.589 0.232537
+0.59 0.231885
+0.591 0.231235
+0.592 0.230585
+0.593 0.229935
+0.594 0.229286
+0.595 0.228638
+0.596 0.22799
+0.597 0.227342
+0.598 0.226695
+0.599 0.226049
+0.6 0.225403
+0.601 0.224758
+0.602 0.224113
+0.603 0.223469
+0.604 0.222826
+0.605 0.222183
+0.606 0.22154
+0.607 0.220898
+0.608 0.220256
+0.609 0.219615
+0.61 0.218975
+0.611 0.218335
+0.612 0.217696
+0.613 0.217057
+0.614 0.216418
+0.615 0.215781
+0.616 0.215143
+0.617 0.214507
+0.618 0.21387
+0.619 0.213234
+0.62 0.212599
+0.621 0.211964
+0.622 0.21133
+0.623 0.210697
+0.624 0.210063
+0.625 0.209431
+0.626 0.208798
+0.627 0.208167
+0.628 0.207535
+0.629 0.206905
+0.63 0.206275
+0.631 0.205645
+0.632 0.205016
+0.633 0.204387
+0.634 0.203759
+0.635 0.203131
+0.636 0.202504
+0.637 0.201877
+0.638 0.201251
+0.639 0.200625
+0.64 0.2
+0.641 0.199375
+0.642 0.198751
+0.643 0.198127
+0.644 0.197504
+0.645 0.196881
+0.646 0.196259
+0.647 0.195637
+0.648 0.195016
+0.649 0.194395
+0.65 0.193774
+0.651 0.193154
+0.652 0.192535
+0.653 0.191916
+0.654 0.191297
+0.655 0.190679
+0.656 0.190062
+0.657 0.189445
+0.658 0.188828
+0.659 0.188212
+0.66 0.187596
+0.661 0.186981
+0.662 0.186366
+0.663 0.185752
+0.664 0.185138
+0.665 0.184525
+0.666 0.183912
+0.667 0.183299
+0.668 0.182687
+0.669 0.182076
+0.67 0.181465
+0.671 0.180854
+0.672 0.180244
+0.673 0.179634
+0.674 0.179025
+0.675 0.178416
+0.676 0.177808
+0.677 0.1772
+0.678 0.176592
+0.679 0.175985
+0.68 0.175379
+0.681 0.174773
+0.682 0.174167
+0.683 0.173562
+0.684 0.172957
+0.685 0.172353
+0.686 0.171749
+0.687 0.171145
+0.688 0.170542
+0.689 0.16994
+0.69 0.169338
+0.691 0.168736
+0.692 0.168135
+0.693 0.167534
+0.694 0.166933
+0.695 0.166333
+0.696 0.165734
+0.697 0.165135
+0.698 0.164536
+0.699 0.163938
+0.7 0.16334
+0.701 0.162743
+0.702 0.162146
+0.703 0.161549
+0.704 0.160953
+0.705 0.160357
+0.706 0.159762
+0.707 0.159167
+0.708 0.158573
+0.709 0.157979
+0.71 0.157385
+0.711 0.156792
+0.712 0.156199
+0.713 0.155607
+0.714 0.155015
+0.715 0.154423
+0.716 0.153832
+0.717 0.153241
+0.718 0.152651
+0.719 0.152061
+0.72 0.151472
+0.721 0.150883
+0.722 0.150294
+0.723 0.149706
+0.724 0.149118
+0.725 0.148531
+0.726 0.147944
+0.727 0.147357
+0.728 0.146771
+0.729 0.146185
+0.73 0.1456
+0.731 0.145015
+0.732 0.14443
+0.733 0.143846
+0.734 0.143262
+0.735 0.142679
+0.736 0.142096
+0.737 0.141513
+0.738 0.140931
+0.739 0.140349
+0.74 0.139767
+0.741 0.139186
+0.742 0.138606
+0.743 0.138026
+0.744 0.137446
+0.745 0.136866
+0.746 0.136287
+0.747 0.135708
+0.748 0.13513
+0.749 0.134552
+0.75 0.133975
+0.751 0.133397
+0.752 0.132821
+0.753 0.132244
+0.754 0.131668
+0.755 0.131093
+0.756 0.130517
+0.757 0.129943
+0.758 0.129368
+0.759 0.128794
+0.76 0.12822
+0.761 0.127647
+0.762 0.127074
+0.763 0.126501
+0.764 0.125929
+0.765 0.125357
+0.766 0.124786
+0.767 0.124215
+0.768 0.123644
+0.769 0.123074
+0.77 0.122504
+0.771 0.121934
+0.772 0.121365
+0.773 0.120796
+0.774 0.120227
+0.775 0.119659
+0.776 0.119091
+0.777 0.118524
+0.778 0.117957
+0.779 0.11739
+0.78 0.116824
+0.781 0.116258
+0.782 0.115692
+0.783 0.115127
+0.784 0.114562
+0.785 0.113998
+0.786 0.113434
+0.787 0.11287
+0.788 0.112306
+0.789 0.111743
+0.79 0.111181
+0.791 0.110618
+0.792 0.110056
+0.793 0.109495
+0.794 0.108933
+0.795 0.108372
+0.796 0.107812
+0.797 0.107251
+0.798 0.106692
+0.799 0.106132
+0.8 0.105573
+0.801 0.105014
+0.802 0.104455
+0.803 0.103897
+0.804 0.10334
+0.805 0.102782
+0.806 0.102225
+0.807 0.101668
+0.808 0.101112
+0.809 0.100556
+0.81 0.1
+0.811 0.0994446
+0.812 0.0988896
+0.813 0.0983349
+0.814 0.0977805
+0.815 0.0972265
+0.816 0.0966728
+0.817 0.0961195
+0.818 0.0955665
+0.819 0.0950138
+0.82 0.0944615
+0.821 0.0939095
+0.822 0.0933578
+0.823 0.0928065
+0.824 0.0922555
+0.825 0.0917049
+0.826 0.0911546
+0.827 0.0906046
+0.828 0.0900549
+0.829 0.0895056
+0.83 0.0889566
+0.831 0.088408
+0.832 0.0878597
+0.833 0.0873117
+0.834 0.086764
+0.835 0.0862167
+0.836 0.0856696
+0.837 0.085123
+0.838 0.0845766
+0.839 0.0840306
+0.84 0.0834849
+0.841 0.0829395
+0.842 0.0823944
+0.843 0.0818497
+0.844 0.0813053
+0.845 0.0807612
+0.846 0.0802174
+0.847 0.079674
+0.848 0.0791308
+0.849 0.078588
+0.85 0.0780456
+0.851 0.0775034
+0.852 0.0769615
+0.853 0.07642
+0.854 0.0758788
+0.855 0.0753379
+0.856 0.0747973
+0.857 0.0742571
+0.858 0.0737171
+0.859 0.0731775
+0.86 0.0726382
+0.861 0.0720991
+0.862 0.0715604
+0.863 0.0710221
+0.864 0.070484
+0.865 0.0699462
+0.866 0.0694088
+0.867 0.0688717
+0.868 0.0683348
+0.869 0.0677983
+0.87 0.0672621
+0.871 0.0667262
+0.872 0.0661906
+0.873 0.0656553
+0.874 0.0651203
+0.875 0.0645857
+0.876 0.0640513
+0.877 0.0635172
+0.878 0.0629835
+0.879 0.06245
+0.88 0.0619168
+0.881 0.061384
+0.882 0.0608514
+0.883 0.0603192
+0.884 0.0597873
+0.885 0.0592556
+0.886 0.0587243
+0.887 0.0581932
+0.888 0.0576625
+0.889 0.057132
+0.89 0.0566019
+0.891 0.056072
+0.892 0.0555425
+0.893 0.0550132
+0.894 0.0544843
+0.895 0.0539556
+0.896 0.0534272
+0.897 0.0528992
+0.898 0.0523714
+0.899 0.0518439
+0.9 0.0513167
+0.901 0.0507898
+0.902 0.0502632
+0.903 0.0497369
+0.904 0.0492109
+0.905 0.0486851
+0.906 0.0481597
+0.907 0.0476345
+0.908 0.0471097
+0.909 0.0465851
+0.91 0.0460608
+0.911 0.0455368
+0.912 0.0450131
+0.913 0.0444897
+0.914 0.0439665
+0.915 0.0434437
+0.916 0.0429211
+0.917 0.0423988
+0.918 0.0418768
+0.919 0.0413551
+0.92 0.0408337
+0.921 0.0403126
+0.922 0.0397917
+0.923 0.0392711
+0.924 0.0387508
+0.925 0.0382308
+0.926 0.0377111
+0.927 0.0371916
+0.928 0.0366724
+0.929 0.0361535
+0.93 0.0356349
+0.931 0.0351166
+0.932 0.0345985
+0.933 0.0340807
+0.934 0.0335632
+0.935 0.033046
+0.936 0.0325291
+0.937 0.0320124
+0.938 0.031496
+0.939 0.0309799
+0.94 0.030464
+0.941 0.0299485
+0.942 0.0294332
+0.943 0.0289181
+0.944 0.0284034
+0.945 0.0278889
+0.946 0.0273747
+0.947 0.0268607
+0.948 0.0263471
+0.949 0.0258337
+0.95 0.0253206
+0.951 0.0248077
+0.952 0.0242951
+0.953 0.0237828
+0.954 0.0232708
+0.955 0.022759
+0.956 0.0222475
+0.957 0.0217362
+0.958 0.0212253
+0.959 0.0207145
+0.96 0.0202041
+0.961 0.0196939
+0.962 0.019184
+0.963 0.0186744
+0.964 0.018165
+0.965 0.0176559
+0.966 0.017147
+0.967 0.0166384
+0.968 0.0161301
+0.969 0.015622
+0.97 0.0151142
+0.971 0.0146067
+0.972 0.0140994
+0.973 0.0135924
+0.974 0.0130856
+0.975 0.0125791
+0.976 0.0120729
+0.977 0.0115669
+0.978 0.0110612
+0.979 0.0105557
+0.98 0.0100505
+0.981 0.00954556
+0.982 0.00904087
+0.983 0.00853644
+0.984 0.00803226
+0.985 0.00752834
+0.986 0.00702467
+0.987 0.00652126
+0.988 0.00601811
+0.989 0.00551521
+0.99 0.00501256
+0.991 0.00451017
+0.992 0.00400803
+0.993 0.00350615
+0.994 0.00300451
+0.995 0.00250313
+0.996 0.002002
+0.997 0.00150113
+0.998 0.0010005
+0.999 0.000500125
+1 0
\ No newline at end of file
diff --git a/jmetal/core/test/test_problem.py b/jmetal/core/test/test_problem.py
index a73d9463..ed8c5472 100644
--- a/jmetal/core/test/test_problem.py
+++ b/jmetal/core/test/test_problem.py
@@ -4,26 +4,45 @@
from jmetal.core.solution import FloatSolution, IntegerSolution
-class FloatProblemTestCases(unittest.TestCase):
+class DummyIntegerProblem(IntegerProblem):
+
+ def __init__(self):
+ super(DummyIntegerProblem, self).__init__()
+
+ def evaluate(self, solution: IntegerSolution) -> IntegerSolution:
+ pass
+
+ def get_name(self) -> str:
+ pass
- class DummyFloatProblem(FloatProblem):
- def __init__(self):
- super(FloatProblem, self).__init__()
+class DummyFloatProblem(FloatProblem):
- def evaluate(self, solution: FloatSolution) -> FloatSolution:
- pass
+ def __init__(self):
+ super(DummyFloatProblem, self).__init__()
- def get_name(self) -> str:
- pass
+ def evaluate(self, solution: FloatSolution) -> FloatSolution:
+ pass
+
+ def get_name(self) -> str:
+ pass
+
+
+class FloatProblemTestCases(unittest.TestCase):
def test_should_default_constructor_create_a_valid_problem(self) -> None:
- problem = self.DummyFloatProblem()
- problem.number_of_variables = 1
- problem.number_of_objectives = 2
- problem.number_of_constraints = 0
- problem.lower_bound = [-1.0]
- problem.upper_bound = [1.0]
+ number_of_objectives = 2
+ number_of_constraints = 0
+ lower_bound = [-1.0]
+ upper_bound = [1.0]
+
+ problem = DummyFloatProblem()
+ problem.lower_bound = lower_bound
+ problem.upper_bound = upper_bound
+ problem.number_of_constraints = number_of_constraints
+ problem.number_of_objectives = number_of_objectives
+ problem.number_of_variables = len(lower_bound)
+
self.assertEqual(1, problem.number_of_variables)
self.assertEqual(2, problem.number_of_objectives)
self.assertEqual(0, problem.number_of_constraints)
@@ -31,7 +50,7 @@ def test_should_default_constructor_create_a_valid_problem(self) -> None:
self.assertEqual([1], problem.upper_bound)
def test_should_create_solution_create_a_valid_solution(self) -> None:
- problem = self.DummyFloatProblem()
+ problem = DummyFloatProblem()
problem.number_of_variables = 2
problem.number_of_objectives = 2
problem.number_of_constraints = 0
@@ -46,19 +65,8 @@ def test_should_create_solution_create_a_valid_solution(self) -> None:
class IntegerProblemTestCases(unittest.TestCase):
- class DummyIntegerProblem(IntegerProblem):
-
- def __init__(self):
- super(IntegerProblem, self).__init__()
-
- def evaluate(self, solution: IntegerSolution) -> IntegerSolution:
- pass
-
- def get_name(self) -> str:
- pass
-
def test_should_default_constructor_create_a_valid_problem(self) -> None:
- problem = self.DummyIntegerProblem()
+ problem = DummyIntegerProblem()
problem.number_of_variables = 1
problem.number_of_objectives = 2
problem.number_of_constraints = 0
@@ -72,7 +80,7 @@ def test_should_default_constructor_create_a_valid_problem(self) -> None:
self.assertEqual([1], problem.upper_bound)
def test_should_create_solution_create_a_valid_solution(self) -> None:
- problem = self.DummyIntegerProblem()
+ problem = DummyIntegerProblem()
problem.number_of_variables = 2
problem.number_of_objectives = 2
problem.number_of_constraints = 0
diff --git a/jmetal/core/test/test_quality_indicator.py b/jmetal/core/test/test_quality_indicator.py
index f2bfe324..f1c82048 100644
--- a/jmetal/core/test/test_quality_indicator.py
+++ b/jmetal/core/test/test_quality_indicator.py
@@ -1,78 +1,276 @@
import unittest
from os.path import dirname, join
+from pathlib import Path
-from jmetal.core.quality_indicator import HyperVolume, GenerationalDistance
-from jmetal.core.solution import Solution
-from jmetal.problem import ZDT1
-from jmetal.util.solution import read_solutions
+import numpy as np
+from jmetal.core.quality_indicator import GenerationalDistance, InvertedGenerationalDistance, EpsilonIndicator, \
+ HyperVolume
-class HyperVolumeTestCases(unittest.TestCase):
+class GenerationalDistanceTestCases(unittest.TestCase):
+ """ Class including unit tests for class GenerationalDistance
+ """
- def setUp(self):
- self.file_path = dirname(join(dirname(__file__)))
+ def test_should_constructor_create_a_non_null_object(self) -> None:
+ indicator = GenerationalDistance([])
+ self.assertIsNotNone(indicator)
- def test_should_hypervolume_return_5_0(self):
- reference_point = [2, 2, 2]
+ def test_get_name_return_the_right_value(self):
+ self.assertEqual("Generational Distance", GenerationalDistance([]).get_name())
- solution1 = Solution(1, 3)
- solution1.objectives = [1, 0, 1]
+ def test_get_short_name_return_the_right_value(self):
+ self.assertEqual("GD", GenerationalDistance([]).get_short_name())
- solution2 = Solution(1, 3)
- solution2.objectives = [0, 1, 0]
+ def test_case1(self):
+ """
+ Case 1. Reference front: [[1.0, 1.0]], front: [[1.0, 1.0]]
+ Expected result: the distance to the nearest point of the reference front is 0.0
- front = [solution1, solution2]
+ :return:
+ """
+ indicator = GenerationalDistance(np.array([[1.0, 1.0]]))
+ front = np.array([[1.0, 1.0]])
- hv = HyperVolume(reference_point)
- value = hv.compute(front)
+ result = indicator.compute(front)
- self.assertEqual(5.0, value)
+ self.assertEqual(0.0, result)
- def test_should_hypervolume_return_the_correct_value_when_applied_to_the_ZDT1_reference_front(self):
- problem = ZDT1()
- problem.reference_front = read_solutions(filename='resources/reference_front/ZDT1.pf')
+ def test_case2(self):
+ """
+ Case 2. Reference front: [[1.0, 1.0], [2.0, 2.0], front: [[1.0, 1.0]]
+ Expected result: the distance to the nearest point of the reference front is 0.0
- reference_point = [1, 1]
+ :return:
+ """
+ indicator = GenerationalDistance(np.array([[1.0, 1.0], [2.0, 2.0]]))
+ front = np.array([[1.0, 1.0]])
- hv = HyperVolume(reference_point)
- value = hv.compute(problem.reference_front)
+ result = indicator.compute(front)
- self.assertAlmostEqual(0.666, value, delta=0.001)
+ self.assertEqual(0.0, result)
+ def test_case3(self):
+ """
+ Case 3. Reference front: [[1.0, 1.0, 1.0], [2.0, 2.0, 2.0]], front: [[1.0, 1.0, 1.0]]
+ Expected result: the distance to the nearest point of the reference front is 0.0. Example with three objectives
-class GenerationalDistanceTestCases(unittest.TestCase):
+ :return:
+ """
+ indicator = GenerationalDistance(np.array([[1.0, 1.0, 1.0], [2.0, 2.0, 2.0]]))
+ front = np.array([[1.0, 1.0, 1.0]])
+
+ result = indicator.compute(front)
+
+ self.assertEqual(0.0, result)
+
+ def test_case4(self):
+ """
+ Case 4. reference front: [[1.0, 1.0], [2.0, 2.0]], front: [[1.5, 1.5]]
+ Expected result: the distance to the nearest point of the reference front is the euclidean distance to any of the
+ points of the reference front
+
+ :return:
+ """
+ indicator = GenerationalDistance(np.array([[1.0, 1.0], [2.0, 2.0]]))
+ front = np.array([[1.5, 1.5]])
+
+ result = indicator.compute(front)
- def test_should_gd_return_the_closest_point_case_a(self):
- solution1 = Solution(1, 3)
- solution1.objectives = [1, 1, 1]
+ self.assertEqual(np.sqrt(pow(1.0 - 1.5, 2) + pow(1.0 - 1.5, 2)), result)
+ self.assertEqual(np.sqrt(pow(2.0 - 1.5, 2) + pow(2.0 - 1.5, 2)), result)
- solution2 = Solution(1, 3)
- solution2.objectives = [2, 2, 2]
+ def test_case5(self):
+ """
+ Case 5. reference front: [[1.0, 1.0], [2.1, 2.1]], front: [[1.5, 1.5]]
+ Expected result: the distance to the nearest point of the reference front is the euclidean distance
+ to the nearest point of the reference front ([1.0, 1.0])
- reference_front = [solution1, solution2]
+ :return:
+ """
+ indicator = GenerationalDistance(np.array([[1.0, 1.0], [2.1, 2.1]]))
+ front = np.array([[1.5, 1.5]])
- gd = GenerationalDistance(reference_front)
- value = gd.compute([solution1])
+ result = indicator.compute(front)
- self.assertEqual(0, value)
+ self.assertEqual(np.sqrt(pow(1.0 - 1.5, 2) + pow(1.0 - 1.5, 2)), result)
+ self.assertEqual(np.sqrt(pow(2.0 - 1.5, 2) + pow(2.0 - 1.5, 2)), result)
- def test_should_gd_return_0(self):
- solution1 = Solution(1, 3)
- solution1.objectives = [1, 0, 1]
+ def test_case6(self):
+ """
+ Case 6. reference front: [[1.0, 1.0], [2.1, 2.1]], front: [[1.5, 1.5], [2.2, 2.2]]
+ Expected result: the distance to the nearest point of the reference front is the average of the sum of each point
+ of the front to the nearest point of the reference front
- solution2 = Solution(1, 3)
- solution2.objectives = [0, 1, 0]
+ :return:
+ """
+ indicator = GenerationalDistance(np.array([[1.0, 1.0], [2.1, 2.1]]))
+ front = np.array([[1.5, 1.5], [2.2, 2.2]])
- reference_front = [solution1, solution2]
+ result = indicator.compute(front)
+ distance_of_first_point = np.sqrt(pow(1.0 - 1.5, 2) + pow(1.0 - 1.5, 2))
+ distance_of_second_point = np.sqrt(pow(2.1 - 2.2, 2) + pow(2.1 - 2.2, 2))
- gd = GenerationalDistance(reference_front)
- value = gd.compute(reference_front)
+ self.assertEqual((distance_of_first_point + distance_of_second_point) / 2.0, result)
- self.assertEqual(0.0, value)
+ def test_case7(self):
+ """
+ Case 7. reference front: [[1.0, 1.0], [2.1, 2.1]], front: [[1.5, 1.5], [2.2, 2.2], [1.9, 1.9]]
+ Expected result: the distance to the nearest point of the reference front is the sum of each point of the front to the
+ nearest point of the reference front
+
+ :return:
+ """
+ indicator = GenerationalDistance(np.array([[1.0, 1.0], [2.1, 2.1]]))
+ front = np.array([[1.5, 1.5], [2.2, 2.2], [1.9, 1.9]])
+
+ result = indicator.compute(front)
+ distance_of_first_point = np.sqrt(pow(1.0 - 1.5, 2) + pow(1.0 - 1.5, 2))
+ distance_of_second_point = np.sqrt(pow(2.1 - 2.2, 2) + pow(2.1 - 2.2, 2))
+ distance_of_third_point = np.sqrt(pow(2.1 - 1.9, 2) + pow(2.1 - 1.9, 2))
+
+ self.assertEqual((distance_of_first_point + distance_of_second_point + distance_of_third_point) / 3.0, result)
class InvertedGenerationalDistanceTestCases(unittest.TestCase):
- pass
+ """ Class including unit tests for class InvertedGenerationalDistance
+ """
+
+ def test_should_constructor_create_a_non_null_object(self) -> None:
+ indicator = InvertedGenerationalDistance([])
+ self.assertIsNotNone(indicator)
+
+ def test_get_name_return_the_right_value(self):
+ self.assertEqual("Inverted Generational Distance", InvertedGenerationalDistance([]).get_name())
+
+ def test_get_short_name_return_the_right_value(self):
+ self.assertEqual("IGD", InvertedGenerationalDistance([]).get_short_name())
+
+ def test_case1(self):
+ """
+ Case 1. Reference front: [[1.0, 1.0]], front: [[1.0, 1.0]]
+ Expected result = 0.0
+ Comment: simplest case
+
+ :return:
+ """
+ indicator = InvertedGenerationalDistance(np.array([[1.0, 1.0]]))
+ front = np.array([[1.0, 1.0]])
+
+ result = indicator.compute(front)
+
+ self.assertEqual(0.0, result)
+
+ def test_case2(self):
+ """
+ Case 2. Reference front: [[1.0, 1.0], [2.0, 2.0], front: [[1.0, 1.0]]
+ Expected result: average of the sum of the distances of the points of the reference front to the front
+
+ :return:
+ """
+ indicator = InvertedGenerationalDistance(np.array([[1.0, 1.0], [2.0, 2.0]]))
+ front = np.array([[1.0, 1.0]])
+
+ result = indicator.compute(front)
+
+ distance_of_first_point = np.sqrt(pow(1.0 - 1.0, 2) + pow(1.0 - 1.0, 2))
+ distance_of_second_point = np.sqrt(pow(2.0 - 1.0, 2) + pow(2.0 - 1.0, 2))
+
+ self.assertEqual((distance_of_first_point + distance_of_second_point) / 2.0, result)
+
+ def test_case3(self):
+ """
+ Case 3. Reference front: [[1.0, 1.0, 1.0], [2.0, 2.0, 2.0]], front: [[1.0, 1.0, 1.0]]
+ Expected result: average of the sum of the distances of the points of the reference front to the front.
+ Example with three objectives
+
+ :return:
+ """
+ indicator = InvertedGenerationalDistance(np.array([[1.0, 1.0, 1.0], [2.0, 2.0, 2.0]]))
+ front = np.array([[1.0, 1.0, 1.0]])
+
+ result = indicator.compute(front)
+
+ distance_of_first_point = np.sqrt(pow(1.0 - 1.0, 2) + pow(1.0 - 1.0, 2) + pow(1.0 - 1.0, 2))
+ distance_of_second_point = np.sqrt(pow(2.0 - 1.0, 2) + pow(2.0 - 1.0, 2) + pow(2.0 - 1.0, 2))
+
+ self.assertEqual((distance_of_first_point + distance_of_second_point) / 2.0, result)
+
+ def test_case4(self):
+ """
+ Case 4. reference front: [[1.0, 1.0], [2.1, 2.1]], front: [[1.5, 1.5], [2.2, 2.2]]
+ Expected result: average of the sum of the distances of the points of the reference front to the front.
+ Example with three objectives
+
+ :return:
+ """
+ indicator = InvertedGenerationalDistance(np.array([[1.0, 1.0], [2.1, 2.1]]))
+ front = np.array([[1.5, 1.5], [2.2, 2.2]])
+
+ result = indicator.compute(front)
+ distance_of_first_point = np.sqrt(pow(1.0 - 1.5, 2) + pow(1.0 - 1.5, 2))
+ distance_of_second_point = np.sqrt(pow(2.1 - 2.2, 2) + pow(2.1 - 2.2, 2))
+
+ self.assertEqual((distance_of_first_point + distance_of_second_point) / 2.0, result)
+
+ def test_case5(self):
+ """
+ Case 5. reference front: [[1.0, 1.0], [2.1, 2.1]], front: [[1.5, 1.5], [2.2, 2.2], [1.9, 1.9]]
+ Expected result: average of the sum of the distances of the points of the reference front to the front.
+ Example with three objectives
+
+ :return:
+ """
+ indicator = InvertedGenerationalDistance(np.array([[1.0, 1.0], [2.0, 2.0]]))
+ front = np.array([[1.5, 1.5], [2.2, 2.2], [1.9, 1.9]])
+
+ result = indicator.compute(front)
+ distance_of_first_point = np.sqrt(pow(1.0 - 1.5, 2) + pow(1.0 - 1.5, 2))
+ distance_of_second_point = np.sqrt(pow(2.0 - 1.9, 2) + pow(2.0 - 1.9, 2))
+
+ self.assertEqual((distance_of_first_point + distance_of_second_point) / 2.0, result)
+
+
+class EpsilonIndicatorTestCases(unittest.TestCase):
+ """ Class including unit tests for class EpsilonIndicator
+ """
+
+ def test_should_constructor_create_a_non_null_object(self) -> None:
+ indicator = EpsilonIndicator(np.array([[1.0, 1.0], [2.0, 2.0]]))
+ self.assertIsNotNone(indicator)
+
+
+class HyperVolumeTestCases(unittest.TestCase):
+
+ def setUp(self):
+ self.file_path = dirname(join(dirname(__file__)))
+
+ def test_should_hypervolume_return_5_0(self):
+ reference_point = [2, 2, 2]
+
+ front = np.array([[1, 0, 1], [0, 1, 0]])
+
+ hv = HyperVolume(reference_point)
+ value = hv.compute(front)
+
+ self.assertEqual(5.0, value)
+
+ def test_should_hypervolume_return_the_correct_value_when_applied_to_the_ZDT1_reference_front(self):
+ filename = 'jmetal/core/test/ZDT1.pf'
+ front = []
+ if Path(filename).is_file():
+ with open(filename) as file:
+ for line in file:
+ vector = [float(x) for x in line.split()]
+ front.append(vector)
+ else:
+ print("error")
+
+ reference_point = [1, 1]
+
+ hv = HyperVolume(reference_point)
+ value = hv.compute(np.array(front))
+
+ self.assertAlmostEqual(0.666, value, delta=0.001)
if __name__ == '__main__':
diff --git a/jmetal/core/test/test_solution.py b/jmetal/core/test/test_solution.py
index a53aac0c..a842647b 100644
--- a/jmetal/core/test/test_solution.py
+++ b/jmetal/core/test/test_solution.py
@@ -1,7 +1,8 @@
import copy
import unittest
-from jmetal.core.solution import BinarySolution, FloatSolution, IntegerSolution, Solution
+from jmetal.core.solution import BinarySolution, FloatSolution, IntegerSolution, Solution, CompositeSolution
+from jmetal.util.ckecking import InvalidConditionException
class SolutionTestCase(unittest.TestCase):
@@ -16,7 +17,6 @@ def test_should_default_constructor_create_a_valid_solution(self) -> None:
class BinarySolutionTestCase(unittest.TestCase):
-
def test_should_default_constructor_create_a_valid_solution(self) -> None:
solution = BinarySolution(2, 3)
self.assertEqual(2, solution.number_of_variables)
@@ -52,6 +52,7 @@ def test_should_constructor_create_a_non_null_object(self) -> None:
def test_should_default_constructor_create_a_valid_solution(self) -> None:
solution = FloatSolution([0.0, 0.5], [1.0, 2.0], 3)
+
self.assertEqual(2, solution.number_of_variables)
self.assertEqual(3, solution.number_of_objectives)
self.assertEqual(2, len(solution.variables))
@@ -80,6 +81,7 @@ def test_should_copy_work_properly(self) -> None:
self.assertEqual(solution.attributes, new_solution.attributes)
+
class IntegerSolutionTestCase(unittest.TestCase):
def test_should_constructor_create_a_non_null_object(self) -> None:
@@ -87,12 +89,13 @@ def test_should_constructor_create_a_non_null_object(self) -> None:
self.assertIsNotNone(solution)
def test_should_default_constructor_create_a_valid_solution(self) -> None:
- solution = IntegerSolution([0, 5], [1, 2], 3)
+ solution = IntegerSolution([0, 5], [1, 2], 3, 0)
self.assertEqual(2, solution.number_of_variables)
self.assertEqual(3, solution.number_of_objectives)
self.assertEqual(2, len(solution.variables))
self.assertEqual(3, len(solution.objectives))
+ self.assertEqual(0, len(solution.constraints))
self.assertEqual([0, 5], solution.lower_bound)
self.assertEqual([1, 2], solution.upper_bound)
@@ -116,6 +119,58 @@ def test_should_copy_work_properly(self) -> None:
self.assertIs(solution.upper_bound, solution.upper_bound)
self.assertEqual(solution.attributes, new_solution.attributes)
+class CompositeSolutionTestCase(unittest.TestCase):
+ def test_should_constructor_create_a_valid_not_none_composite_solution_composed_of_a_double_solution(self):
+ composite_solution = CompositeSolution([FloatSolution([1.0], [2.0], 2)])
+ self.assertIsNotNone(composite_solution)
+
+ def test_should_constructor_raise_an_exception_if_the_number_of_objectives_is_not_coherent(self):
+ float_solution: FloatSolution = FloatSolution([1.0], [3.0], 3)
+ integer_solution: IntegerSolution = IntegerSolution([2], [4], 2)
+
+ with self.assertRaises(InvalidConditionException):
+ CompositeSolution([float_solution, integer_solution])
+
+ def test_should_constructor_create_a_valid_soltion_composed_of_a_float_and_an_integer_solutions(self):
+ number_of_objectives = 3
+ number_of_constraints = 1
+ float_solution: FloatSolution = FloatSolution([1.0], [3.0], number_of_objectives, number_of_constraints)
+ integer_solution: IntegerSolution = IntegerSolution([2], [4], number_of_objectives, number_of_constraints)
+
+ solution: CompositeSolution = CompositeSolution([float_solution, integer_solution])
+
+ self.assertIsNotNone(solution)
+ self.assertEqual(2, solution.number_of_variables)
+ self.assertEqual(number_of_objectives, solution.number_of_objectives)
+ self.assertEqual(number_of_constraints, solution.number_of_constraints)
+ self.assertEqual(number_of_objectives, solution.variables[0].number_of_objectives)
+ self.assertEqual(number_of_objectives, solution.variables[1].number_of_objectives)
+ self.assertEqual(number_of_constraints, solution.variables[0].number_of_constraints)
+ self.assertEqual(number_of_constraints, solution.variables[1].number_of_constraints)
+ self.assertTrue(type(solution.variables[0] is FloatSolution))
+ self.assertTrue(type(solution.variables[1] is IntegerSolution))
+
+ def test_should_copy_work_properly(self):
+ number_of_objectives = 3
+ number_of_constraints = 1
+ float_solution: FloatSolution = FloatSolution([1.0], [3.0], number_of_objectives, number_of_constraints)
+ integer_solution: IntegerSolution = IntegerSolution([2], [4], number_of_objectives, number_of_constraints)
+
+ solution: CompositeSolution = CompositeSolution([float_solution, integer_solution])
+ new_solution: CompositeSolution = copy.deepcopy(solution)
+
+ self.assertEqual(solution.number_of_variables, new_solution.number_of_variables)
+ self.assertEqual(solution.number_of_objectives, new_solution.number_of_objectives)
+ self.assertEqual(solution.number_of_constraints, new_solution.number_of_constraints)
+
+ self.assertEqual(solution.variables[0].number_of_variables, new_solution.variables[0].number_of_variables)
+ self.assertEqual(solution.variables[1].number_of_variables, new_solution.variables[1].number_of_variables)
+ self.assertEqual(solution.variables[0], new_solution.variables[0])
+ self.assertEqual(solution.variables[1], new_solution.variables[1])
+
+ self.assertEqual(solution.variables[0].variables, new_solution.variables[0].variables)
+ self.assertEqual(solution.variables[1].variables, new_solution.variables[1].variables)
+
if __name__ == '__main__':
unittest.main()
diff --git a/jmetal/lab/experiment.py b/jmetal/lab/experiment.py
index 2cb40a37..8beb2a40 100644
--- a/jmetal/lab/experiment.py
+++ b/jmetal/lab/experiment.py
@@ -120,22 +120,26 @@ def generate_summary_from_experiment(input_dir: str, quality_indicators: List[Qu
if 'FUN' in filename:
solutions = read_solutions(os.path.join(dirname, filename))
run_tag = [s for s in filename.split('.') if s.isdigit()].pop()
-
for indicator in quality_indicators:
reference_front_file = os.path.join(reference_fronts, problem + '.pf')
# Add reference front if any
if hasattr(indicator, 'reference_front'):
if Path(reference_front_file).is_file():
- indicator.reference_front = read_solutions(reference_front_file)
+ reference_front = []
+ with open(reference_front_file) as file:
+ for line in file:
+ reference_front.append([float(x) for x in line.split()])
+
+ indicator.reference_front = reference_front
else:
LOGGER.warning('Reference front not found at', reference_front_file)
- result = indicator.compute(solutions)
+ result = indicator.compute([solutions[i].objectives for i in range(len(solutions))])
# Save quality indicator value to file
with open('QualityIndicatorSummary.csv', 'a+') as of:
- of.write(','.join([algorithm, problem, run_tag, indicator.get_name(), str(result)]))
+ of.write(','.join([algorithm, problem, run_tag, indicator.get_short_name(), str(result)]))
of.write('\n')
diff --git a/jmetal/operator/crossover.py b/jmetal/operator/crossover.py
index b5621b1a..16603535 100644
--- a/jmetal/operator/crossover.py
+++ b/jmetal/operator/crossover.py
@@ -3,7 +3,9 @@
from typing import List
from jmetal.core.operator import Crossover
-from jmetal.core.solution import Solution, FloatSolution, BinarySolution, PermutationSolution
+from jmetal.core.solution import Solution, FloatSolution, BinarySolution, PermutationSolution, IntegerSolution, \
+ CompositeSolution
+from jmetal.util.ckecking import Check
"""
.. module:: crossover
@@ -142,10 +144,13 @@ class SBXCrossover(Crossover[FloatSolution, FloatSolution]):
def __init__(self, probability: float, distribution_index: float = 20.0):
super(SBXCrossover, self).__init__(probability=probability)
self.distribution_index = distribution_index
+ if distribution_index < 0:
+ raise Exception("The distribution index is negative: " + str(distribution_index))
def execute(self, parents: List[FloatSolution]) -> List[FloatSolution]:
- if len(parents) != 2:
- raise Exception('The number of parents is not two: {}'.format(len(parents)))
+ Check.that(type(parents[0]) is FloatSolution, "Solution type invalid: " + str(type(parents[0])))
+ Check.that(type(parents[1]) is FloatSolution, "Solution type invalid")
+ Check.that(len(parents) == 2, 'The number of parents is not two: {}'.format(len(parents)))
offspring = [copy.deepcopy(parents[0]), copy.deepcopy(parents[1])]
rand = random.random()
@@ -216,14 +221,96 @@ def get_name(self) -> str:
return 'SBX crossover'
+class IntegerSBXCrossover(Crossover[IntegerSolution, IntegerSolution]):
+ __EPS = 1.0e-14
+
+ def __init__(self, probability: float, distribution_index: float = 20.0):
+ super(IntegerSBXCrossover, self).__init__(probability=probability)
+ self.distribution_index = distribution_index
+
+ def execute(self, parents: List[IntegerSolution]) -> List[IntegerSolution]:
+ Check.that(type(parents[0]) is IntegerSolution, "Solution type invalid")
+ Check.that(type(parents[1]) is IntegerSolution, "Solution type invalid")
+ Check.that(len(parents) == 2, 'The number of parents is not two: {}'.format(len(parents)))
+
+ offspring = [copy.deepcopy(parents[0]), copy.deepcopy(parents[1])]
+ rand = random.random()
+
+ if rand <= self.probability:
+ for i in range(parents[0].number_of_variables):
+ value_x1, value_x2 = parents[0].variables[i], parents[1].variables[i]
+
+ if random.random() <= 0.5:
+ if abs(value_x1 - value_x2) > self.__EPS:
+ if value_x1 < value_x2:
+ y1, y2 = value_x1, value_x2
+ else:
+ y1, y2 = value_x2, value_x1
+
+ lower_bound, upper_bound = parents[0].lower_bound[i], parents[1].upper_bound[i]
+
+ beta = 1.0 + (2.0 * (y1 - lower_bound) / (y2 - y1))
+ alpha = 2.0 - pow(beta, -(self.distribution_index + 1.0))
+
+ rand = random.random()
+ if rand <= (1.0 / alpha):
+ betaq = pow(rand * alpha, (1.0 / (self.distribution_index + 1.0)))
+ else:
+ betaq = pow(1.0 / (2.0 - rand * alpha), 1.0 / (self.distribution_index + 1.0))
+
+ c1 = 0.5 * (y1 + y2 - betaq * (y2 - y1))
+ beta = 1.0 + (2.0 * (upper_bound - y2) / (y2 - y1))
+ alpha = 2.0 - pow(beta, -(self.distribution_index + 1.0))
+
+ if rand <= (1.0 / alpha):
+ betaq = pow((rand * alpha), (1.0 / (self.distribution_index + 1.0)))
+ else:
+ betaq = pow(1.0 / (2.0 - rand * alpha), 1.0 / (self.distribution_index + 1.0))
+
+ c2 = 0.5 * (y1 + y2 + betaq * (y2 - y1))
+
+ if c1 < lower_bound:
+ c1 = lower_bound
+ if c2 < lower_bound:
+ c2 = lower_bound
+ if c1 > upper_bound:
+ c1 = upper_bound
+ if c2 > upper_bound:
+ c2 = upper_bound
+
+ if random.random() <= 0.5:
+ offspring[0].variables[i] = int(c2)
+ offspring[1].variables[i] = int(c1)
+ else:
+ offspring[0].variables[i] = int(c1)
+ offspring[1].variables[i] = int(c2)
+ else:
+ offspring[0].variables[i] = value_x1
+ offspring[1].variables[i] = value_x2
+ else:
+ offspring[0].variables[i] = value_x1
+ offspring[1].variables[i] = value_x2
+ return offspring
+
+ def get_number_of_parents(self) -> int:
+ return 2
+
+ def get_number_of_children(self) -> int:
+ return 2
+
+ def get_name(self) -> str:
+ return 'Integer SBX crossover'
+
+
class SPXCrossover(Crossover[BinarySolution, BinarySolution]):
def __init__(self, probability: float):
super(SPXCrossover, self).__init__(probability=probability)
def execute(self, parents: List[BinarySolution]) -> List[BinarySolution]:
- if len(parents) != 2:
- raise Exception('The number of parents is not two: {}'.format(len(parents)))
+ Check.that(type(parents[0]) is BinarySolution, "Solution type invalid")
+ Check.that(type(parents[1]) is BinarySolution, "Solution type invalid")
+ Check.that(len(parents) == 2, 'The number of parents is not two: {}'.format(len(parents)))
offspring = [copy.deepcopy(parents[0]), copy.deepcopy(parents[1])]
rand = random.random()
@@ -324,3 +411,44 @@ def get_number_of_children(self) -> int:
def get_name(self) -> str:
return 'Differential Evolution crossover'
+
+
+class CompositeCrossover(Crossover[CompositeSolution, CompositeSolution]):
+ __EPS = 1.0e-14
+
+ def __init__(self, crossover_operator_list:[Crossover]):
+ super(CompositeCrossover, self).__init__(probability=1.0)
+
+ Check.is_not_none(crossover_operator_list)
+ Check.collection_is_not_empty(crossover_operator_list)
+
+ self.crossover_operators_list = []
+ for operator in crossover_operator_list:
+ Check.that(issubclass(operator.__class__, Crossover), "Object is not a subclass of Crossover")
+ self.crossover_operators_list.append(operator)
+
+ def execute(self, solutions: List[CompositeSolution]) -> List[CompositeSolution]:
+ Check.is_not_none(solutions)
+ Check.that(len(solutions) == 2, "The number of parents is not two: " + str(len(solutions)))
+
+ offspring1 = []
+ offspring2 = []
+
+ number_of_solutions_in_composite_solution = solutions[0].number_of_variables
+
+ for i in range(number_of_solutions_in_composite_solution):
+ parents = [solutions[0].variables[i], solutions[1].variables[i]]
+ children = self.crossover_operators_list[i].execute(parents)
+ offspring1.append(children[0])
+ offspring2.append(children[1])
+
+ return [CompositeSolution(offspring1), CompositeSolution(offspring2)]
+
+ def get_number_of_parents(self) -> int:
+ return 2
+
+ def get_number_of_children(self) -> int:
+ return 2
+
+ def get_name(self) -> str:
+ return 'Composite crossover'
diff --git a/jmetal/operator/mutation.py b/jmetal/operator/mutation.py
index d10a5457..cfa3abcc 100644
--- a/jmetal/operator/mutation.py
+++ b/jmetal/operator/mutation.py
@@ -1,7 +1,9 @@
import random
from jmetal.core.operator import Mutation
-from jmetal.core.solution import BinarySolution, Solution, FloatSolution, IntegerSolution, PermutationSolution
+from jmetal.core.solution import BinarySolution, Solution, FloatSolution, IntegerSolution, PermutationSolution, \
+ CompositeSolution
+from jmetal.util.ckecking import Check
"""
.. module:: mutation
@@ -30,6 +32,8 @@ def __init__(self, probability: float):
super(BitFlipMutation, self).__init__(probability=probability)
def execute(self, solution: BinarySolution) -> BinarySolution:
+ Check.that(type(solution) is BinarySolution, "Solution type invalid")
+
for i in range(solution.number_of_variables):
for j in range(len(solution.variables[i])):
rand = random.random()
@@ -49,6 +53,7 @@ def __init__(self, probability: float, distribution_index: float = 0.20):
self.distribution_index = distribution_index
def execute(self, solution: FloatSolution) -> FloatSolution:
+ Check.that(type(solution) is FloatSolution, "Solution type invalid")
for i in range(solution.number_of_variables):
rand = random.random()
@@ -93,6 +98,8 @@ def __init__(self, probability: float, distribution_index: float = 0.20):
self.distribution_index = distribution_index
def execute(self, solution: IntegerSolution) -> IntegerSolution:
+ Check.that(type(solution) is IntegerSolution, "Solution type invalid")
+
for i in range(solution.number_of_variables):
if random.random() <= self.probability:
y = solution.variables[i]
@@ -133,6 +140,8 @@ def __init__(self, probability: float):
super(SimpleRandomMutation, self).__init__(probability=probability)
def execute(self, solution: FloatSolution) -> FloatSolution:
+ Check.that(type(solution) is FloatSolution, "Solution type invalid")
+
for i in range(solution.number_of_variables):
rand = random.random()
if rand <= self.probability:
@@ -151,6 +160,8 @@ def __init__(self, probability: float, perturbation: float = 0.5):
self.perturbation = perturbation
def execute(self, solution: FloatSolution) -> FloatSolution:
+ Check.that(type(solution) is FloatSolution, "Solution type invalid")
+
for i in range(solution.number_of_variables):
rand = random.random()
@@ -180,6 +191,8 @@ def __init__(self, probability: float, perturbation: float = 0.5, max_iterations
self.current_iteration = 0
def execute(self, solution: FloatSolution) -> FloatSolution:
+ Check.that(type(solution) is FloatSolution, "Solution type invalid")
+
for i in range(solution.number_of_variables):
if random.random() <= self.probability:
rand = random.random()
@@ -214,6 +227,8 @@ def get_name(self):
class PermutationSwapMutation(Mutation[PermutationSolution]):
def execute(self, solution: PermutationSolution) -> PermutationSolution:
+ Check.that(type(solution) is PermutationSolution, "Solution type invalid")
+
rand = random.random()
if rand <= self.probability:
@@ -227,6 +242,31 @@ def get_name(self):
return 'Permutation Swap mutation'
+class CompositeMutation(Mutation[Solution]):
+ def __init__(self, mutation_operator_list:[Mutation]):
+ super(CompositeMutation,self).__init__(probability=1.0)
+
+ Check.is_not_none(mutation_operator_list)
+ Check.collection_is_not_empty(mutation_operator_list)
+
+ self.mutation_operators_list = []
+ for operator in mutation_operator_list:
+ Check.that(issubclass(operator.__class__, Mutation), "Object is not a subclass of Mutation")
+ self.mutation_operators_list.append(operator)
+
+ def execute(self, solution: CompositeSolution) -> CompositeSolution:
+ Check.is_not_none(solution)
+
+ mutated_solution_components = []
+ for i in range(solution.number_of_variables):
+ mutated_solution_components.append(self.mutation_operators_list[i].execute(solution.variables[i]))
+
+ return CompositeSolution(mutated_solution_components)
+
+ def get_name(self) -> str:
+ return "Composite mutation operator"
+
+
class ScrambleMutation(Mutation[PermutationSolution]):
def execute(self, solution: PermutationSolution) -> PermutationSolution:
diff --git a/jmetal/operator/selection.py b/jmetal/operator/selection.py
index ad5258ba..40755baa 100644
--- a/jmetal/operator/selection.py
+++ b/jmetal/operator/selection.py
@@ -4,9 +4,9 @@
import numpy as np
from jmetal.core.operator import Selection
+from jmetal.util.comparator import Comparator, DominanceComparator
from jmetal.util.density_estimator import CrowdingDistance
from jmetal.util.ranking import FastNonDominatedRanking
-from jmetal.util.comparator import Comparator, DominanceComparator
S = TypeVar('S')
diff --git a/jmetal/operator/test/test_crossover.py b/jmetal/operator/test/test_crossover.py
index ddb209bb..1974974a 100644
--- a/jmetal/operator/test/test_crossover.py
+++ b/jmetal/operator/test/test_crossover.py
@@ -1,8 +1,11 @@
import unittest
from unittest import mock
-from jmetal.core.solution import BinarySolution, PermutationSolution
-from jmetal.operator.crossover import NullCrossover, SPXCrossover, CXCrossover, PMXCrossover
+from jmetal.core.operator import Crossover
+from jmetal.core.solution import BinarySolution, PermutationSolution, FloatSolution, CompositeSolution, IntegerSolution
+from jmetal.operator.crossover import NullCrossover, SPXCrossover, CXCrossover, PMXCrossover, SBXCrossover, \
+ CompositeCrossover, IntegerSBXCrossover
+from jmetal.util.ckecking import NoneParameterException, EmptyCollectionException, InvalidConditionException
class NullCrossoverTestCases(unittest.TestCase):
@@ -241,5 +244,140 @@ def test_should_the_operator_work_with_two_solutions_with_two_variables(self, ra
self.assertEqual([2, 6, 4, 5, 3], offspring[1].variables[1])
+class SBXCrossoverTestCases(unittest.TestCase):
+ def test_should_constructor_assign_the_correct_probability_value(self):
+ crossover_probability = 0.1
+ crossover: SBXCrossover = SBXCrossover(crossover_probability, 2.0)
+
+ self.assertEqual(crossover_probability, crossover.probability)
+
+ def test_should_constructor_assign_the_correct_distribution_index_value(self):
+ distribution_index = 10.5
+ crossover: SBXCrossover = SBXCrossover(0.1, distribution_index)
+
+ self.assertEqual(distribution_index, crossover.distribution_index)
+
+ def test_should_constructor_raise_an_exception_if_the_probability_is_greater_than_one(self):
+ with self.assertRaises(Exception):
+ SBXCrossover(1.5, 2.0)
+
+ def test_should_constructor_raise_an_exception_if_the_probability_is_negative(self):
+ with self.assertRaises(Exception):
+ SBXCrossover(-0.1, 2.0)
+
+ def test_should_constructor_raise_an_exception_if_the_distribution_index_is_negative(self):
+ with self.assertRaises(Exception):
+ SBXCrossover(0.1, -2.0)
+
+ def test_should_execute_with_an_invalid_solution_list_size_raise_an_exception(self):
+ crossover: SBXCrossover = SBXCrossover(0.1, 20.0)
+
+ solution = FloatSolution([1, 2], [2, 4], 2, 2)
+ with self.assertRaises(Exception):
+ crossover.execute([solution])
+
+ with self.assertRaises(Exception):
+ crossover.execute([solution, solution, solution])
+
+ def test_should_execute_return_the_parents_if_the_crossover_probability_is_zero(self):
+ crossover: SBXCrossover = SBXCrossover(0.0, 20.0)
+
+ solution1 = FloatSolution([1, 2], [2, 4], 2, 2)
+ solution2 = FloatSolution([1, 2], [2, 4], 2, 2)
+
+ solution1.variables = [1.5, 2.7]
+ solution2.variables = [1.7, 3.6]
+
+ offspring = crossover.execute([solution1, solution2])
+
+ self.assertEqual(2, len(offspring))
+ self.assertEqual(solution1.variables, offspring[0].variables)
+ self.assertEqual(solution2.variables, offspring[1].variables)
+
+ def test_should_execute_produce_valid_solutions_when_crossing_two_single_variable_solutions(self):
+ pass
+
+
+class CompositeCrossoverTestCases(unittest.TestCase):
+ def test_should_constructor_raise_an_exception_if_the_parameter_list_is_None(self):
+ with self.assertRaises(NoneParameterException):
+ CompositeCrossover(None)
+
+ def test_should_constructor_raise_an_exception_if_the_parameter_list_is_Empty(self):
+ with self.assertRaises(EmptyCollectionException):
+ CompositeCrossover([])
+
+ def test_should_constructor_create_a_valid_operator_when_adding_a_single_crossover_operator(self):
+ crossover: Crossover = SBXCrossover(0.9, 20.0)
+
+ operator = CompositeCrossover([crossover])
+ self.assertIsNotNone(operator)
+ self.assertEqual(1, len(operator.crossover_operators_list))
+
+ def test_should_constructor_create_a_valid_operator_when_adding_two_crossover_operators(self):
+ sbx_crossover = SBXCrossover(1.0, 20.0)
+ single_point_crossover = SPXCrossover(0.01)
+
+ operator = CompositeCrossover([sbx_crossover, single_point_crossover])
+
+ self.assertIsNotNone(operator)
+ self.assertEqual(2, len(operator.crossover_operators_list))
+ self.assertTrue(issubclass(operator.crossover_operators_list[0].__class__, SBXCrossover))
+ self.assertTrue(issubclass(operator.crossover_operators_list[1].__class__, SPXCrossover))
+
+ def test_should_execute_work_properly_with_a_single_crossover_operator(self):
+ operator = CompositeCrossover([SBXCrossover(0.9, 20.0)])
+
+ float_solution1 = FloatSolution([2.0], [3.9], 3)
+ float_solution1.variables = [3.0]
+ float_solution2 = FloatSolution([2.0], [3.9], 3)
+ float_solution2.variables = [4.0]
+
+ composite_solution1 = CompositeSolution([float_solution1])
+ composite_solution2 = CompositeSolution([float_solution2])
+
+ children = operator.execute([composite_solution1, composite_solution2])
+
+ self.assertIsNotNone(children)
+ self.assertEqual(2, len(children))
+ self.assertEqual(1, children[0].number_of_variables)
+ self.assertEqual(1, children[1].number_of_variables)
+
+ def test_should_execute_work_properly_with_a_two_crossover_operators(self):
+ operator = CompositeCrossover([SBXCrossover(0.9, 20.0), IntegerSBXCrossover(0.1, 20.0)])
+
+ float_solution1 = FloatSolution([2.0], [3.9], 3)
+ float_solution1.variables = [3.0]
+ float_solution2 = FloatSolution([2.0], [3.9], 3)
+ float_solution2.variables = [4.0]
+ integer_solution1 = IntegerSolution([2], [4], 3)
+ integer_solution1.variables = [3.0]
+ integer_solution2 = IntegerSolution([2], [7], 3)
+ integer_solution2.variables = [4.0]
+
+ composite_solution1 = CompositeSolution([float_solution1, integer_solution1])
+ composite_solution2 = CompositeSolution([float_solution2, integer_solution2])
+
+ children = operator.execute([composite_solution1, composite_solution2])
+
+ self.assertIsNotNone(children)
+ self.assertEqual(2, len(children))
+ self.assertEqual(2, children[0].number_of_variables)
+ self.assertEqual(2, children[1].number_of_variables)
+
+ def test_should_execute_raise_and_exception_if_the_types_of_the_solutions_do_not_match_the_operators(self):
+ operator = CompositeCrossover([SBXCrossover(1.0, 5.0), SPXCrossover(0.9)])
+
+ float_solution1 = FloatSolution([2.0], [3.9], 3)
+ float_solution1.variables = [3.0]
+ float_solution2 = FloatSolution([2.0], [3.9], 3)
+ float_solution2.variables = [4.0]
+ composite_solution1 = CompositeSolution([float_solution1, float_solution2])
+ composite_solution2 = CompositeSolution([float_solution1, float_solution2])
+
+ with self.assertRaises(InvalidConditionException):
+ operator.execute([composite_solution1, composite_solution2])
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/jmetal/operator/test/test_mutation.py b/jmetal/operator/test/test_mutation.py
index 1f8530e2..cfd07758 100644
--- a/jmetal/operator/test/test_mutation.py
+++ b/jmetal/operator/test/test_mutation.py
@@ -1,8 +1,10 @@
import unittest
-from jmetal.core.solution import BinarySolution, FloatSolution, IntegerSolution
+from jmetal.core.operator import Mutation
+from jmetal.core.solution import BinarySolution, FloatSolution, IntegerSolution, CompositeSolution
from jmetal.operator.mutation import BitFlipMutation, UniformMutation, SimpleRandomMutation, PolynomialMutation, \
- IntegerPolynomialMutation
+ IntegerPolynomialMutation, CompositeMutation
+from jmetal.util.ckecking import NoneParameterException, EmptyCollectionException, InvalidConditionException
class PolynomialMutationTestMethods(unittest.TestCase):
@@ -252,5 +254,45 @@ def test_should_the_solution_change__if_the_probability_is_one(self):
self.assertEqual([True, True, True], [isinstance(x, int) for x in mutated_solution.variables])
+class CompositeMutationTestCases(unittest.TestCase):
+ def test_should_constructor_raise_an_exception_if_the_parameter_list_is_None(self):
+ with self.assertRaises(NoneParameterException):
+ CompositeMutation(None)
+
+ def test_should_constructor_raise_an_exception_if_the_parameter_list_is_Empty(self):
+ with self.assertRaises(EmptyCollectionException):
+ CompositeMutation([])
+
+ def test_should_constructor_create_a_valid_operator_when_adding_a_single_mutation_operator(self):
+ mutation: Mutation = PolynomialMutation(0.9, 20.0)
+
+ operator = CompositeMutation([mutation])
+ self.assertIsNotNone(operator)
+ self.assertEqual(1, len(operator.mutation_operators_list))
+
+ def test_should_constructor_create_a_valid_operator_when_adding_two_mutation_operators(self):
+ polynomial_mutation = PolynomialMutation(1.0, 20.0)
+ bit_flip_mutation = BitFlipMutation(0.01)
+
+ operator = CompositeMutation([polynomial_mutation, bit_flip_mutation])
+
+ self.assertIsNotNone(operator)
+ self.assertEqual(2, len(operator.mutation_operators_list))
+ self.assertTrue(issubclass(operator.mutation_operators_list[0].__class__, PolynomialMutation))
+ self.assertTrue(issubclass(operator.mutation_operators_list[1].__class__, BitFlipMutation))
+
+ def test_should_execute_raise_and_exception_if_the_types_of_the_solutions_do_not_match_the_operators(self):
+ operator = CompositeMutation([PolynomialMutation(1.0, 5.0), PolynomialMutation(0.9, 25.0)])
+
+ float_solution = FloatSolution([2.0], [3.9], 3)
+ binary_solution = BinarySolution(1, 3, 0)
+ float_solution.variables = [3.0]
+
+ composite_solution = CompositeSolution([float_solution, binary_solution])
+
+ with self.assertRaises(InvalidConditionException):
+ operator.execute(composite_solution)
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/jmetal/problem/multiobjective/unconstrained.py b/jmetal/problem/multiobjective/unconstrained.py
index 1990aa92..36c71aa8 100644
--- a/jmetal/problem/multiobjective/unconstrained.py
+++ b/jmetal/problem/multiobjective/unconstrained.py
@@ -1,8 +1,8 @@
import random
from math import sqrt, exp, pow, sin
-from jmetal.core.problem import FloatProblem, BinaryProblem
-from jmetal.core.solution import FloatSolution, BinarySolution
+from jmetal.core.problem import FloatProblem, BinaryProblem, Problem
+from jmetal.core.solution import FloatSolution, BinarySolution, CompositeSolution, IntegerSolution
"""
.. module:: constrained
@@ -227,3 +227,57 @@ def create_solution(self) -> BinarySolution:
def get_name(self) -> str:
return 'OneZeroMax'
+
+
+class MixedIntegerFloatProblem(Problem):
+ def __init__(self, number_of_integer_variables=10, number_of_float_variables=10, n=100, m=-100, lower_bound=-1000,
+ upper_bound=1000):
+ super(MixedIntegerFloatProblem, self).__init__()
+ self.number_of_objectives = 2
+ self.number_of_variables = 2
+ self.number_of_constraints = 0
+
+ self.n = n
+ self.m = m
+
+ self.float_lower_bound = [lower_bound for _ in range(number_of_float_variables)]
+ self.float_upper_bound = [upper_bound for _ in range(number_of_float_variables)]
+ self.int_lower_bound = [lower_bound for _ in range(number_of_integer_variables)]
+ self.int_upper_bound = [upper_bound for _ in range(number_of_integer_variables)]
+
+ self.obj_directions = [self.MINIMIZE]
+ self.obj_labels = ['Ones']
+
+ def evaluate(self, solution: CompositeSolution) -> CompositeSolution:
+ distance_to_n = sum([abs(self.n - value) for value in solution.variables[0].variables])
+ distance_to_m = sum([abs(self.m - value) for value in solution.variables[0].variables])
+
+ distance_to_n += sum([abs(self.n - value) for value in solution.variables[1].variables])
+ distance_to_m += sum([abs(self.m - value) for value in solution.variables[1].variables])
+
+ solution.objectives[0] = distance_to_n
+ solution.objectives[1] = distance_to_m
+
+ return solution
+
+ def create_solution(self) -> CompositeSolution:
+ integer_solution = IntegerSolution(self.int_lower_bound, self.int_upper_bound, self.number_of_objectives,
+ self.number_of_constraints)
+ float_solution = FloatSolution(
+ self.float_lower_bound,
+ self.float_upper_bound,
+ self.number_of_objectives, self.number_of_constraints)
+
+ float_solution.variables = \
+ [random.uniform(self.float_lower_bound[i] * 1.0, self.float_upper_bound[i] * .01) for i in
+ range(len(self.int_lower_bound))]
+
+ integer_solution.variables = \
+ [random.uniform(self.float_lower_bound[i], self.float_upper_bound[i]) for i in
+ range(len(self.float_lower_bound))]
+
+ return CompositeSolution([integer_solution, float_solution])
+
+ def get_name(self) -> str:
+ return "Mixed Integer Float Problem"
+
diff --git a/jmetal/problem/multiobjective/zdt.py b/jmetal/problem/multiobjective/zdt.py
index 989dbb71..3d61d07f 100644
--- a/jmetal/problem/multiobjective/zdt.py
+++ b/jmetal/problem/multiobjective/zdt.py
@@ -56,6 +56,22 @@ def get_name(self):
return 'ZDT1'
+class ZDT1Modified(ZDT1):
+ """ Problem ZDT1Modified.
+
+ .. note:: Version including a loop for increasing the computing time of the evaluation functions.
+ """
+ def __init__(self, number_of_variables = 30):
+ super(ZDT1Modified, self).__init__(number_of_variables)
+
+ def evaluate(self, solution:FloatSolution) -> FloatSolution:
+ s: float = 0.0
+ for i in range(1000):
+ for j in range(10000):
+ s += i * 0.235 / 1.234 + 1.23525 * j
+ return super().evaluate(solution)
+
+
class ZDT2(ZDT1):
""" Problem ZDT2.
diff --git a/jmetal/util/archive.py b/jmetal/util/archive.py
index a065a301..9281f9c8 100644
--- a/jmetal/util/archive.py
+++ b/jmetal/util/archive.py
@@ -4,9 +4,8 @@
from threading import Lock
from typing import TypeVar, Generic, List
-from jmetal.util.density_estimator import DensityEstimator, CrowdingDistance
-
from jmetal.util.comparator import Comparator, DominanceComparator, SolutionAttributeComparator
+from jmetal.util.density_estimator import DensityEstimator, CrowdingDistance
S = TypeVar('S')
diff --git a/jmetal/util/ckecking.py b/jmetal/util/ckecking.py
index 7641268a..dd13a5b9 100644
--- a/jmetal/util/ckecking.py
+++ b/jmetal/util/ckecking.py
@@ -8,6 +8,57 @@ def __init__(self, message: str):
self.error_message = message
+class EmptyCollectionException(RuntimeError):
+ def __init__(self):
+ super(EmptyCollectionException, self).__init__("The collection is empty")
+
+
+# class InvalidConditionException(RuntimeError):
+# def __init__(self, message):
+# super(InvalidConditionException, self).__init__(message)
+
+
+class InvalidProbabilityValueException(RuntimeError):
+ def __init__(self, value: float):
+ super(InvalidProbabilityValueException, self).__init__(
+ "The parameter " + str(value) + " is not a valid probability value")
+
+
+class ValueOutOfRangeException(RuntimeError):
+ def __init__(self, value: float, lowest_value: float, highest_value: float):
+ super(ValueOutOfRangeException, self).__init__(
+ "The parameter " + str(value) + " is not in the range (" + str(lowest_value) + ", " + str(
+ highest_value) + ")")
+
+
+class Check:
+ @staticmethod
+ def is_not_none(obj):
+ if obj is None:
+ raise NoneParameterException()
+
+ @staticmethod
+ def probability_is_valid(value: float):
+ if value < 0.0 or value > 1.0:
+ raise InvalidProbabilityValueException(value)
+
+ @staticmethod
+ def value_is_in_range(value: float, lowest_value: float, highest_value: float):
+ if value < lowest_value or value > highest_value:
+ raise ValueOutOfRangeException(value, lowest_value, highest_value)
+
+ @staticmethod
+ def collection_is_not_empty(collection):
+ if len(collection) == 0:
+ raise EmptyCollectionException
+
+ @staticmethod
+ def that(expression: bool, message: str):
+ if not expression:
+ raise InvalidConditionException(message)
+
+
+"""
class Check:
@staticmethod
def is_not_null(o: object, message: str = ""):
@@ -18,3 +69,4 @@ def is_not_null(o: object, message: str = ""):
def that(expression: bool, message: str = ""):
if not expression:
raise InvalidConditionException(message)
+"""
diff --git a/jmetal/util/constraint_handling.py b/jmetal/util/constraint_handling.py
index c67e30ab..e7526151 100644
--- a/jmetal/util/constraint_handling.py
+++ b/jmetal/util/constraint_handling.py
@@ -1,5 +1,3 @@
-from jmetal.util.ckecking import Check
-
from jmetal.core.solution import Solution
from jmetal.util.ckecking import Check
diff --git a/jmetal/util/neighborhood.py b/jmetal/util/neighborhood.py
index 4c17aa17..3ba8ae2a 100644
--- a/jmetal/util/neighborhood.py
+++ b/jmetal/util/neighborhood.py
@@ -186,7 +186,7 @@ def __find_neighbors(self, solution_list: [], solution_index: int, neighborhood:
return neighbors
def get_neighbors(self, index: int, solution_list: List[Solution]) -> List[Solution]:
- Check.is_not_null(solution_list)
+ Check.is_not_none(solution_list)
Check.that(len(solution_list) != 0, "The list of solutions is empty")
return self.__find_neighbors(solution_list, index, self.neighborhood)
diff --git a/jmetal/util/observer.py b/jmetal/util/observer.py
index 305e6bc6..d30c0632 100644
--- a/jmetal/util/observer.py
+++ b/jmetal/util/observer.py
@@ -190,7 +190,7 @@ class VisualizerObserver(Observer):
def __init__(self,
reference_front: List[S] = None,
reference_point: list = None,
- display_frequency: float = 1.0) -> None:
+ display_frequency: int = 1) -> None:
self.figure = None
self.display_frequency = display_frequency
diff --git a/jmetal/util/termination_criterion.py b/jmetal/util/termination_criterion.py
index aa741bdc..b2be1cdf 100644
--- a/jmetal/util/termination_criterion.py
+++ b/jmetal/util/termination_criterion.py
@@ -27,9 +27,9 @@ def is_met(self):
class StoppingByEvaluations(TerminationCriterion):
- def __init__(self, max: int):
+ def __init__(self, max_evaluations: int):
super(StoppingByEvaluations, self).__init__()
- self.max_evaluations = max
+ self.max_evaluations = max_evaluations
self.evaluations = 0
def update(self, *args, **kwargs):
diff --git a/jmetal/util/test/test_checking.py b/jmetal/util/test/test_checking.py
new file mode 100644
index 00000000..f9792f7c
--- /dev/null
+++ b/jmetal/util/test/test_checking.py
@@ -0,0 +1,35 @@
+import unittest
+
+from jmetal.util.ckecking import Check, NoneParameterException, InvalidProbabilityValueException, \
+ ValueOutOfRangeException, InvalidConditionException
+
+
+class CheckingTestCases(unittest.TestCase):
+
+ def test_should_is_not_null_raise_an_exception(self) -> None:
+ with self.assertRaises(NoneParameterException):
+ Check.is_not_none(None)
+
+ def test_should_is_valid_probability_raise_an_exception_if_the_value_is_negative(self) -> None:
+ with self.assertRaises(InvalidProbabilityValueException):
+ Check.probability_is_valid(-1.0)
+
+ def test_should_is_valid_probability_raise_an_exception_if_the_value_is_higher_than_one(self) -> None:
+ with self.assertRaises(InvalidProbabilityValueException):
+ Check.probability_is_valid(1.1)
+
+ def test_should_is_value_in_range_raise_an_exception_if_the_value_is_lower_than_the_lower_bound(self) -> None:
+ with self.assertRaises(ValueOutOfRangeException):
+ Check.value_is_in_range(2, 3, 5)
+
+ def test_should_is_value_in_range_raise_an_exception_if_the_value_is_higher_than_the_upper_bound(self) -> None:
+ with self.assertRaises(ValueOutOfRangeException):
+ Check.value_is_in_range(7, 3, 5)
+
+ def test_should_that_raise_an_exception_if_the_expression_is_false(self) -> None:
+ with self.assertRaises(InvalidConditionException):
+ Check.that(False, "The expression is false")
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/jmetal/util/test/test_neighborhood.py b/jmetal/util/test/test_neighborhood.py
index d1025ca4..12d275c2 100644
--- a/jmetal/util/test/test_neighborhood.py
+++ b/jmetal/util/test/test_neighborhood.py
@@ -275,5 +275,6 @@ def test_should_get_neighbors_return_four_neighbors_case4(self):
self.assertEqual(2, result.count(solution_list[1]))
self.assertEqual(2, result.count(solution_list[2]))
+
if __name__ == '__main__':
unittest.main()
diff --git a/setup.py b/setup.py
index 675ccd3c..9dba67f7 100644
--- a/setup.py
+++ b/setup.py
@@ -25,7 +25,7 @@
setup(
name='jmetalpy',
- version='1.5.3',
+ version='1.5.4',
description='Python version of the jMetal framework',
long_description=README,
long_description_content_type='text/markdown',