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' Pareto front approximation ## 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',