├── .github └── workflows │ └── ci.yml ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── docs ├── .buildinfo ├── .nojekyll ├── _images │ ├── api_algorithm_multiobjective_eas_gde3_5_0.png │ ├── api_algorithm_multiobjective_eas_gde3_preference_5_0.png │ ├── api_algorithm_multiobjective_eas_hype_5_0.png │ ├── api_algorithm_multiobjective_eas_ibea_5_0.png │ ├── api_algorithm_multiobjective_eas_mocell_5_0.png │ ├── api_algorithm_multiobjective_eas_moead_5_0.png │ ├── api_algorithm_multiobjective_eas_nsgaii_5_0.png │ ├── api_algorithm_multiobjective_eas_nsgaii_preference_5_0.png │ ├── api_algorithm_multiobjective_eas_spea2_5_0.png │ ├── api_algorithm_multiobjective_psos_omopso_5_0.png │ ├── api_algorithm_multiobjective_psos_smpso_5_0.png │ └── api_algorithm_multiobjective_psos_smpso_preference_5_0.png ├── _modules │ ├── index.html │ └── jmetal │ │ ├── algorithm │ │ ├── multiobjective │ │ │ ├── gde3.html │ │ │ ├── hype.html │ │ │ ├── ibea.html │ │ │ ├── mocell.html │ │ │ ├── moead.html │ │ │ ├── nsgaii.html │ │ │ ├── nsgaiii.html │ │ │ ├── omopso.html │ │ │ ├── smpso.html │ │ │ └── spea2.html │ │ └── singleobjective │ │ │ ├── evolution_strategy.html │ │ │ ├── genetic_algorithm.html │ │ │ ├── local_search.html │ │ │ └── simulated_annealing.html │ │ ├── core │ │ ├── observer.html │ │ └── problem.html │ │ ├── lab │ │ ├── experiment.html │ │ ├── statistical_test │ │ │ ├── apv_procedures.html │ │ │ ├── bayesian.html │ │ │ ├── critical_distance.html │ │ │ └── functions.html │ │ └── visualization │ │ │ ├── chord_plot.html │ │ │ ├── interactive.html │ │ │ ├── plotting.html │ │ │ ├── posterior.html │ │ │ └── streaming.html │ │ ├── operator │ │ ├── crossover.html │ │ ├── mutation.html │ │ └── selection.html │ │ ├── problem │ │ ├── multiobjective │ │ │ ├── constrained.html │ │ │ ├── dtlz.html │ │ │ ├── fda.html │ │ │ ├── lircmop.html │ │ │ ├── lz09.html │ │ │ ├── unconstrained.html │ │ │ └── zdt.html │ │ └── singleobjective │ │ │ ├── knapsack.html │ │ │ ├── tsp.html │ │ │ └── unconstrained.html │ │ └── util │ │ ├── evaluator.html │ │ └── observer.html ├── _sources │ ├── about.rst.txt │ ├── api │ │ ├── algorithm │ │ │ ├── multiobjective │ │ │ │ ├── ea.rst.txt │ │ │ │ ├── eas │ │ │ │ │ ├── gde3.ipynb.txt │ │ │ │ │ ├── gde3_dynamic.ipynb.txt │ │ │ │ │ ├── gde3_preference.ipynb.txt │ │ │ │ │ ├── hype.ipynb.txt │ │ │ │ │ ├── ibea.ipynb.txt │ │ │ │ │ ├── mocell.ipynb.txt │ │ │ │ │ ├── moead.ipynb.txt │ │ │ │ │ ├── nsgaii.ipynb.txt │ │ │ │ │ ├── nsgaii_distributed.ipynb.txt │ │ │ │ │ ├── nsgaii_dynamic.ipynb.txt │ │ │ │ │ ├── nsgaii_preference.ipynb.txt │ │ │ │ │ ├── nsgaiii.ipynb.txt │ │ │ │ │ └── spea2.ipynb.txt │ │ │ │ ├── pso.rst.txt │ │ │ │ └── psos │ │ │ │ │ ├── omopso.ipynb.txt │ │ │ │ │ ├── smpso.ipynb.txt │ │ │ │ │ ├── smpso_dynamic.ipynb.txt │ │ │ │ │ └── smpso_preference.ipynb.txt │ │ │ └── singleobjective │ │ │ │ ├── evolution.strategy.rst.txt │ │ │ │ ├── genetic.algorithm.rst.txt │ │ │ │ ├── local.search.rst.txt │ │ │ │ └── simulated.annealing.rst.txt │ │ ├── jmetal.lab.statistical_test.rst.txt │ │ ├── operator │ │ │ ├── crossover.rst.txt │ │ │ ├── mutation.rst.txt │ │ │ └── selection.rst.txt │ │ └── problem │ │ │ ├── multiobjective.rst.txt │ │ │ └── singleobjective.rst.txt │ ├── contributing.rst.txt │ ├── index.rst.txt │ ├── multiobjective.algorithms.rst.txt │ ├── operators.rst.txt │ ├── problems.rst.txt │ ├── singleobjective.algorithms.rst.txt │ ├── tutorials.rst.txt │ └── tutorials │ │ ├── evaluator.rst.txt │ │ ├── experiment.rst.txt │ │ ├── observer.rst.txt │ │ ├── problem.rst.txt │ │ ├── statistics.rst.txt │ │ └── visualization.rst.txt ├── _static │ ├── 2D.gif │ ├── 3D.gif │ ├── NSGAII-ZDT1.png │ ├── basic.css │ ├── chordplot.gif │ ├── css │ │ ├── bootstrap-grid.css │ │ ├── bootstrap-grid.css.map │ │ ├── bootstrap-grid.min.css │ │ ├── bootstrap-grid.min.css.map │ │ ├── bootstrap-reboot.css │ │ ├── bootstrap-reboot.css.map │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ ├── custom.css │ ├── doctools.js │ ├── documentation_options.js │ ├── file.png │ ├── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ ├── open-sans │ │ │ ├── fonts │ │ │ │ ├── OpenSans-Bold-webfont.eot │ │ │ │ ├── OpenSans-Bold-webfont.svg │ │ │ │ ├── OpenSans-Bold-webfont.ttf │ │ │ │ ├── OpenSans-Bold-webfont.woff │ │ │ │ ├── OpenSans-BoldItalic-webfont.eot │ │ │ │ ├── OpenSans-BoldItalic-webfont.svg │ │ │ │ ├── OpenSans-BoldItalic-webfont.ttf │ │ │ │ ├── OpenSans-BoldItalic-webfont.woff │ │ │ │ ├── OpenSans-ExtraBold-webfont.eot │ │ │ │ ├── OpenSans-ExtraBold-webfont.svg │ │ │ │ ├── OpenSans-ExtraBold-webfont.ttf │ │ │ │ ├── OpenSans-ExtraBold-webfont.woff │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.eot │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.svg │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.ttf │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.woff │ │ │ │ ├── OpenSans-Italic-webfont.eot │ │ │ │ ├── OpenSans-Italic-webfont.svg │ │ │ │ ├── OpenSans-Italic-webfont.ttf │ │ │ │ ├── OpenSans-Italic-webfont.woff │ │ │ │ ├── OpenSans-Light-webfont.eot │ │ │ │ ├── OpenSans-Light-webfont.svg │ │ │ │ ├── OpenSans-Light-webfont.ttf │ │ │ │ ├── OpenSans-Light-webfont.woff │ │ │ │ ├── OpenSans-LightItalic-webfont.eot │ │ │ │ ├── OpenSans-LightItalic-webfont.svg │ │ │ │ ├── OpenSans-LightItalic-webfont.ttf │ │ │ │ ├── OpenSans-LightItalic-webfont.woff │ │ │ │ ├── OpenSans-Regular-webfont.eot │ │ │ │ ├── OpenSans-Regular-webfont.svg │ │ │ │ ├── OpenSans-Regular-webfont.ttf │ │ │ │ ├── OpenSans-Regular-webfont.woff │ │ │ │ ├── OpenSans-Semibold-webfont.eot │ │ │ │ ├── OpenSans-Semibold-webfont.svg │ │ │ │ ├── OpenSans-Semibold-webfont.ttf │ │ │ │ ├── OpenSans-Semibold-webfont.woff │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.eot │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.svg │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.ttf │ │ │ │ └── OpenSans-SemiboldItalic-webfont.woff │ │ │ └── stylesheet.css │ │ └── source-serif-pro │ │ │ ├── EOT │ │ │ ├── SourceSerifPro-Black.eot │ │ │ ├── SourceSerifPro-Bold.eot │ │ │ ├── SourceSerifPro-ExtraLight.eot │ │ │ ├── SourceSerifPro-Light.eot │ │ │ ├── SourceSerifPro-Regular.eot │ │ │ └── SourceSerifPro-Semibold.eot │ │ │ ├── LICENSE.txt │ │ │ ├── OTF │ │ │ ├── SourceSerifPro-Black.otf │ │ │ ├── SourceSerifPro-Bold.otf │ │ │ ├── SourceSerifPro-ExtraLight.otf │ │ │ ├── SourceSerifPro-Light.otf │ │ │ ├── SourceSerifPro-Regular.otf │ │ │ └── SourceSerifPro-Semibold.otf │ │ │ ├── README.md │ │ │ ├── ReadMe.html │ │ │ ├── SourceSerifProReadMe.html │ │ │ ├── TTF │ │ │ ├── SourceSerifPro-Black.ttf │ │ │ ├── SourceSerifPro-Bold.ttf │ │ │ ├── SourceSerifPro-ExtraLight.ttf │ │ │ ├── SourceSerifPro-Light.ttf │ │ │ ├── SourceSerifPro-Regular.ttf │ │ │ └── SourceSerifPro-Semibold.ttf │ │ │ ├── WOFF │ │ │ ├── OTF │ │ │ │ ├── SourceSerifPro-Black.otf.woff │ │ │ │ ├── SourceSerifPro-Bold.otf.woff │ │ │ │ ├── SourceSerifPro-ExtraLight.otf.woff │ │ │ │ ├── SourceSerifPro-Light.otf.woff │ │ │ │ ├── SourceSerifPro-Regular.otf.woff │ │ │ │ └── SourceSerifPro-Semibold.otf.woff │ │ │ └── TTF │ │ │ │ ├── SourceSerifPro-Black.ttf.woff │ │ │ │ ├── SourceSerifPro-Bold.ttf.woff │ │ │ │ ├── SourceSerifPro-ExtraLight.ttf.woff │ │ │ │ ├── SourceSerifPro-Light.ttf.woff │ │ │ │ ├── SourceSerifPro-Regular.ttf.woff │ │ │ │ └── SourceSerifPro-Semibold.ttf.woff │ │ │ ├── bower.json │ │ │ └── source-serif-pro.css │ ├── guzzle.css │ ├── jmetalpy.png │ ├── jquery.js │ ├── jquery.min.map │ ├── js │ │ ├── bootstrap.bundle.js │ │ ├── bootstrap.bundle.js.map │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ └── bootstrap.min.js.map │ ├── language_data.js │ ├── minus.png │ ├── nbsphinx-broken-thumbnail.svg │ ├── nbsphinx-code-cells.css │ ├── nbsphinx-gallery.css │ ├── nbsphinx-no-thumbnail.svg │ ├── p-c.gif │ ├── plus.png │ ├── pygments.css │ ├── searchtools.js │ └── sphinx_highlight.js ├── about.html ├── api │ ├── algorithm │ │ ├── multiobjective │ │ │ ├── ea.html │ │ │ ├── eas │ │ │ │ ├── gde3.html │ │ │ │ ├── gde3.ipynb │ │ │ │ ├── gde3_dynamic.html │ │ │ │ ├── gde3_dynamic.ipynb │ │ │ │ ├── gde3_preference.html │ │ │ │ ├── gde3_preference.ipynb │ │ │ │ ├── hype.html │ │ │ │ ├── hype.ipynb │ │ │ │ ├── ibea.html │ │ │ │ ├── ibea.ipynb │ │ │ │ ├── mocell.html │ │ │ │ ├── mocell.ipynb │ │ │ │ ├── moead.html │ │ │ │ ├── moead.ipynb │ │ │ │ ├── nsgaii.html │ │ │ │ ├── nsgaii.ipynb │ │ │ │ ├── nsgaii_distributed.html │ │ │ │ ├── nsgaii_distributed.ipynb │ │ │ │ ├── nsgaii_dynamic.html │ │ │ │ ├── nsgaii_dynamic.ipynb │ │ │ │ ├── nsgaii_preference.html │ │ │ │ ├── nsgaii_preference.ipynb │ │ │ │ ├── nsgaiii.html │ │ │ │ ├── nsgaiii.ipynb │ │ │ │ ├── spea2.html │ │ │ │ └── spea2.ipynb │ │ │ ├── pso.html │ │ │ └── psos │ │ │ │ ├── omopso.html │ │ │ │ ├── omopso.ipynb │ │ │ │ ├── smpso.html │ │ │ │ ├── smpso.ipynb │ │ │ │ ├── smpso_dynamic.html │ │ │ │ ├── smpso_dynamic.ipynb │ │ │ │ ├── smpso_preference.html │ │ │ │ └── smpso_preference.ipynb │ │ └── singleobjective │ │ │ ├── evolution.strategy.html │ │ │ ├── genetic.algorithm.html │ │ │ ├── local.search.html │ │ │ └── simulated.annealing.html │ ├── jmetal.lab.statistical_test.html │ ├── operator │ │ ├── crossover.html │ │ ├── mutation.html │ │ └── selection.html │ └── problem │ │ ├── multiobjective.html │ │ └── singleobjective.html ├── contributing.html ├── genindex.html ├── index.html ├── multiobjective.algorithms.html ├── objects.inv ├── operators.html ├── problems.html ├── py-modindex.html ├── search.html ├── searchindex.js ├── singleobjective.algorithms.html ├── source │ ├── _static │ │ ├── 2D.gif │ │ ├── 3D.gif │ │ ├── NSGAII-ZDT1.png │ │ ├── chordplot.gif │ │ ├── custom.css │ │ ├── jmetalpy.png │ │ └── p-c.gif │ ├── _templates │ │ └── guzzle │ │ │ ├── comments.html │ │ │ ├── globaltoc.html │ │ │ ├── layout.html │ │ │ ├── localtoc.html │ │ │ ├── logo-text.html │ │ │ ├── search.html │ │ │ ├── searchbox.html │ │ │ ├── static │ │ │ ├── css │ │ │ │ ├── bootstrap-grid.css │ │ │ │ ├── bootstrap-grid.css.map │ │ │ │ ├── bootstrap-grid.min.css │ │ │ │ ├── bootstrap-grid.min.css.map │ │ │ │ ├── bootstrap-reboot.css │ │ │ │ ├── bootstrap-reboot.css.map │ │ │ │ ├── bootstrap-reboot.min.css │ │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── bootstrap.min.css.map │ │ │ ├── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ ├── open-sans │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── OpenSans-Bold-webfont.eot │ │ │ │ │ │ ├── OpenSans-Bold-webfont.svg │ │ │ │ │ │ ├── OpenSans-Bold-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Bold-webfont.woff │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.eot │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.svg │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.ttf │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.woff │ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.eot │ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.svg │ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.ttf │ │ │ │ │ │ ├── OpenSans-ExtraBold-webfont.woff │ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.eot │ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.svg │ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.ttf │ │ │ │ │ │ ├── OpenSans-ExtraBoldItalic-webfont.woff │ │ │ │ │ │ ├── OpenSans-Italic-webfont.eot │ │ │ │ │ │ ├── OpenSans-Italic-webfont.svg │ │ │ │ │ │ ├── OpenSans-Italic-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Italic-webfont.woff │ │ │ │ │ │ ├── OpenSans-Light-webfont.eot │ │ │ │ │ │ ├── OpenSans-Light-webfont.svg │ │ │ │ │ │ ├── OpenSans-Light-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Light-webfont.woff │ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.eot │ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.svg │ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.ttf │ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.woff │ │ │ │ │ │ ├── OpenSans-Regular-webfont.eot │ │ │ │ │ │ ├── OpenSans-Regular-webfont.svg │ │ │ │ │ │ ├── OpenSans-Regular-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Regular-webfont.woff │ │ │ │ │ │ ├── OpenSans-Semibold-webfont.eot │ │ │ │ │ │ ├── OpenSans-Semibold-webfont.svg │ │ │ │ │ │ ├── OpenSans-Semibold-webfont.ttf │ │ │ │ │ │ ├── OpenSans-Semibold-webfont.woff │ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.eot │ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.svg │ │ │ │ │ │ ├── OpenSans-SemiboldItalic-webfont.ttf │ │ │ │ │ │ └── OpenSans-SemiboldItalic-webfont.woff │ │ │ │ │ └── stylesheet.css │ │ │ │ └── source-serif-pro │ │ │ │ │ ├── EOT │ │ │ │ │ ├── SourceSerifPro-Black.eot │ │ │ │ │ ├── SourceSerifPro-Bold.eot │ │ │ │ │ ├── SourceSerifPro-ExtraLight.eot │ │ │ │ │ ├── SourceSerifPro-Light.eot │ │ │ │ │ ├── SourceSerifPro-Regular.eot │ │ │ │ │ └── SourceSerifPro-Semibold.eot │ │ │ │ │ ├── LICENSE.txt │ │ │ │ │ ├── OTF │ │ │ │ │ ├── SourceSerifPro-Black.otf │ │ │ │ │ ├── SourceSerifPro-Bold.otf │ │ │ │ │ ├── SourceSerifPro-ExtraLight.otf │ │ │ │ │ ├── SourceSerifPro-Light.otf │ │ │ │ │ ├── SourceSerifPro-Regular.otf │ │ │ │ │ └── SourceSerifPro-Semibold.otf │ │ │ │ │ ├── README.md │ │ │ │ │ ├── ReadMe.html │ │ │ │ │ ├── SourceSerifProReadMe.html │ │ │ │ │ ├── TTF │ │ │ │ │ ├── SourceSerifPro-Black.ttf │ │ │ │ │ ├── SourceSerifPro-Bold.ttf │ │ │ │ │ ├── SourceSerifPro-ExtraLight.ttf │ │ │ │ │ ├── SourceSerifPro-Light.ttf │ │ │ │ │ ├── SourceSerifPro-Regular.ttf │ │ │ │ │ └── SourceSerifPro-Semibold.ttf │ │ │ │ │ ├── WOFF │ │ │ │ │ ├── OTF │ │ │ │ │ │ ├── SourceSerifPro-Black.otf.woff │ │ │ │ │ │ ├── SourceSerifPro-Bold.otf.woff │ │ │ │ │ │ ├── SourceSerifPro-ExtraLight.otf.woff │ │ │ │ │ │ ├── SourceSerifPro-Light.otf.woff │ │ │ │ │ │ ├── SourceSerifPro-Regular.otf.woff │ │ │ │ │ │ └── SourceSerifPro-Semibold.otf.woff │ │ │ │ │ └── TTF │ │ │ │ │ │ ├── SourceSerifPro-Black.ttf.woff │ │ │ │ │ │ ├── SourceSerifPro-Bold.ttf.woff │ │ │ │ │ │ ├── SourceSerifPro-ExtraLight.ttf.woff │ │ │ │ │ │ ├── SourceSerifPro-Light.ttf.woff │ │ │ │ │ │ ├── SourceSerifPro-Regular.ttf.woff │ │ │ │ │ │ └── SourceSerifPro-Semibold.ttf.woff │ │ │ │ │ ├── bower.json │ │ │ │ │ └── source-serif-pro.css │ │ │ ├── guzzle.css_t │ │ │ ├── jquery.js │ │ │ ├── jquery.min.map │ │ │ └── js │ │ │ │ ├── bootstrap.bundle.js │ │ │ │ ├── bootstrap.bundle.js.map │ │ │ │ ├── bootstrap.bundle.min.js │ │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.js.map │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── bootstrap.min.js.map │ │ │ └── theme.conf │ ├── about.rst │ ├── api │ │ ├── algorithm │ │ │ ├── multiobjective │ │ │ │ ├── ea.rst │ │ │ │ ├── eas │ │ │ │ │ ├── gde3.ipynb │ │ │ │ │ ├── gde3_dynamic.ipynb │ │ │ │ │ ├── gde3_preference.ipynb │ │ │ │ │ ├── hype.ipynb │ │ │ │ │ ├── ibea.ipynb │ │ │ │ │ ├── mocell.ipynb │ │ │ │ │ ├── moead.ipynb │ │ │ │ │ ├── nsgaii.ipynb │ │ │ │ │ ├── nsgaii_distributed.ipynb │ │ │ │ │ ├── nsgaii_dynamic.ipynb │ │ │ │ │ ├── nsgaii_preference.ipynb │ │ │ │ │ ├── nsgaiii.ipynb │ │ │ │ │ └── spea2.ipynb │ │ │ │ ├── pso.rst │ │ │ │ └── psos │ │ │ │ │ ├── omopso.ipynb │ │ │ │ │ ├── smpso.ipynb │ │ │ │ │ ├── smpso_dynamic.ipynb │ │ │ │ │ └── smpso_preference.ipynb │ │ │ └── singleobjective │ │ │ │ ├── evolution.strategy.rst │ │ │ │ ├── genetic.algorithm.rst │ │ │ │ ├── local.search.rst │ │ │ │ └── simulated.annealing.rst │ │ ├── jmetal.lab.statistical_test.rst │ │ ├── operator │ │ │ ├── crossover.rst │ │ │ ├── mutation.rst │ │ │ └── selection.rst │ │ └── problem │ │ │ ├── multiobjective.rst │ │ │ └── singleobjective.rst │ ├── conf.py │ ├── contributing.rst │ ├── index.rst │ ├── jmetalpy.png │ ├── multiobjective.algorithms.rst │ ├── operators.rst │ ├── problems.rst │ ├── singleobjective.algorithms.rst │ ├── tutorials.rst │ └── tutorials │ │ ├── evaluator.rst │ │ ├── experiment.rst │ │ ├── observer.rst │ │ ├── problem.rst │ │ ├── statistics.rst │ │ └── visualization.rst ├── tutorials.html └── tutorials │ ├── evaluator.html │ ├── experiment.html │ ├── observer.html │ ├── problem.html │ ├── statistics.html │ └── visualization.html ├── examples ├── __init__.py ├── experiment │ ├── QualityIndicatorSummary.csv │ ├── __init__.py │ ├── comparison.py │ ├── generateKolmogorovSmirnovLatexTables.py │ ├── generateMedianAndWilcoxonLatexTables.py │ └── statistical_analysis.py ├── multiobjective │ ├── __init__.py │ ├── gde3 │ │ ├── __init__.py │ │ ├── dynamic_gde3.py │ │ ├── gde3_spark_evaluator.py │ │ ├── gde3_zdt1.py │ │ └── ggde3_zdt2.py │ ├── hype │ │ ├── __init__.py │ │ └── hype_zdt1.py │ ├── ibea │ │ ├── __init__.py │ │ └── ibea_zdt1.py │ ├── mocell │ │ ├── __init__.py │ │ └── mocell_zdt1.py │ ├── moead │ │ ├── __init__.py │ │ ├── moead_dtlz2.py │ │ ├── moead_iepsilon_lircmop1.py │ │ ├── moead_lz09.py │ │ └── moeaddra_lz09.py │ ├── nsgaii │ │ ├── __init__.py │ │ ├── distributed_nsgaii_with_dask.py │ │ ├── distributed_nsgaii_with_dask_evaluator.py │ │ ├── distributed_nsgaii_with_spark_evaluator.py │ │ ├── dynamic_nsgaii_solving_fda2.py │ │ ├── gnsgaii_solving_zdt2_with_reference_point.py │ │ ├── nsgaii_defining_schaffer_problem_on_the_fly.py │ │ ├── nsgaii_defining_srinivas_problem_on_the_fly.py │ │ ├── nsgaii_solving_ZDT5.py │ │ ├── nsgaii_solving_binary_problem.py │ │ ├── nsgaii_solving_constrained_srinivas_problem.py │ │ ├── nsgaii_solving_contrained_problem.py │ │ ├── nsgaii_solving_mixed_encoding_problem.py │ │ ├── nsgaii_ssp.py │ │ ├── nsgaii_standard_settings.py │ │ ├── nsgaii_standard_settings_with_real_time_plotting.py │ │ ├── nsgaii_steady_state.py │ │ ├── nsgaii_steady_state_with_real_time_plotting.py │ │ └── parallel_nsgaii_with_multiprocess_evaluator.py │ ├── nsgaiii │ │ ├── __init__.py │ │ └── nsgaiii_dtlz2.py │ ├── omopso │ │ ├── __init__.py │ │ ├── omopso_spark_evaluator.py │ │ └── omopso_zdt1.py │ ├── preferences │ │ ├── __init__.py │ │ ├── ggde3_zdt2.py │ │ └── gnsgaii_solving_zdt2_with_reference_point.py │ ├── random_search │ │ ├── __init__.py │ │ └── random_search_zdt1.py │ ├── smpso │ │ ├── __init__.py │ │ ├── dynamic_smpso.py │ │ ├── smpso_schaffer_on_the_fly.py │ │ ├── smpso_spark_evaluator.py │ │ ├── smpso_srinivas.py │ │ ├── smpso_srinivas_on_the_fly.py │ │ ├── smpso_tanaka.py │ │ ├── smpso_zdt4.py │ │ └── smpsorp_zdt4.py │ └── spea2 │ │ ├── __init__.py │ │ ├── gspea2_zdt1.py │ │ ├── spea2_dtlz1.py │ │ └── spea2_zdt1.py └── singleobjective │ ├── __init__.py │ ├── evolution_strategy │ ├── __init__.py │ ├── evolution_strategy_binary.py │ ├── evolution_strategy_float.py │ └── evolution_strategy_permutation.py │ ├── gde3 │ ├── __init__.py │ └── gde3_single_objective.py │ ├── genetic_algorithm │ ├── __init__.py │ ├── generational_genetic_algorithm_binary.py │ ├── generational_genetic_algorithm_float.py │ ├── generational_genetic_algorithm_tsp.py │ ├── generational_genetic_algorithm_tsp_with_contraints.py │ ├── steady_state_genetic_algorithm.py │ └── steady_state_genetic_algorithm_with_knapsack_problem.py │ ├── local_search │ ├── __init__.py │ ├── local_search_binary.py │ └── local_search_float.py │ ├── nsgaii │ ├── __init__.py │ ├── nsgaii_single_objective_binary.py │ └── nsgaii_single_objective_float.py │ └── simulated_annealing │ ├── __init__.py │ ├── simulated_annealing_binary.py │ ├── simulated_annealing_float.py │ └── simulated_annealing_permutation.py ├── mypy.ini ├── notebooks ├── NSGAIINotebook.ipynb └── SolvingConstrainedProblems.ipynb ├── pyproject.toml ├── resources ├── Knapsack_instances │ ├── KnapsackInstance_1000_0_8.kp │ ├── KnapsackInstance_1000_1_20.kp │ ├── KnapsackInstance_1000_2_32.kp │ ├── KnapsackInstance_1000_3_44.kp │ ├── KnapsackInstance_1000_4_56.kp │ ├── KnapsackInstance_1000_5_68.kp │ ├── KnapsackInstance_1000_6_80.kp │ ├── KnapsackInstance_1000_7_92.kp │ ├── KnapsackInstance_1000_8_104.kp │ ├── KnapsackInstance_1000_9_116.kp │ ├── KnapsackInstance_100_0_3.kp │ ├── KnapsackInstance_100_1_15.kp │ ├── KnapsackInstance_100_2_27.kp │ ├── KnapsackInstance_100_3_39.kp │ ├── KnapsackInstance_100_4_51.kp │ ├── KnapsackInstance_100_5_63.kp │ ├── KnapsackInstance_100_6_75.kp │ ├── KnapsackInstance_100_7_87.kp │ ├── KnapsackInstance_100_8_99.kp │ ├── KnapsackInstance_100_9_110.kp │ ├── KnapsackInstance_200_0_4.kp │ ├── KnapsackInstance_200_1_16.kp │ ├── KnapsackInstance_200_2_28.kp │ ├── KnapsackInstance_200_3_40.kp │ ├── KnapsackInstance_200_4_52.kp │ ├── KnapsackInstance_200_5_64.kp │ ├── KnapsackInstance_200_6_76.kp │ ├── KnapsackInstance_200_7_88.kp │ ├── KnapsackInstance_200_8_100.kp │ ├── KnapsackInstance_200_9_112.kp │ ├── KnapsackInstance_5000_0_10.kp │ ├── KnapsackInstance_5000_1_22.kp │ ├── KnapsackInstance_5000_2_34.kp │ ├── KnapsackInstance_5000_3_46.kp │ ├── KnapsackInstance_5000_4_58.kp │ ├── KnapsackInstance_5000_5_70.kp │ ├── KnapsackInstance_5000_6_82.kp │ ├── KnapsackInstance_5000_7_94.kp │ ├── KnapsackInstance_5000_8_106.kp │ ├── KnapsackInstance_5000_9_118.kp │ ├── KnapsackInstance_500_0_7.kp │ ├── KnapsackInstance_500_1_19.kp │ ├── KnapsackInstance_500_2_31.kp │ ├── KnapsackInstance_500_3_43.kp │ ├── KnapsackInstance_500_4_55.kp │ ├── KnapsackInstance_500_5_67.kp │ ├── KnapsackInstance_500_6_79.kp │ ├── KnapsackInstance_500_7_91.kp │ ├── KnapsackInstance_500_8_103.kp │ ├── KnapsackInstance_500_9_114.kp │ ├── KnapsackInstance_50_0_0.kp │ ├── KnapsackInstance_50_1_12.kp │ ├── KnapsackInstance_50_2_24.kp │ ├── KnapsackInstance_50_3_36.kp │ ├── KnapsackInstance_50_4_48.kp │ ├── KnapsackInstance_50_5_60.kp │ ├── KnapsackInstance_50_6_72.kp │ ├── KnapsackInstance_50_7_84.kp │ ├── KnapsackInstance_50_8_96.kp │ └── KnapsackInstance_50_9_108.kp ├── MOEAD_weights │ ├── W2D_1000.dat │ ├── W2D_300.dat │ ├── W2D_400.dat │ ├── W2D_500.dat │ ├── W2D_600.dat │ ├── W2D_800.dat │ ├── W3D_100.dat │ ├── W3D_1000.dat │ ├── W3D_1200.dat │ ├── W3D_300.dat │ ├── W3D_500.dat │ ├── W3D_600.dat │ ├── W3D_800.dat │ ├── W3D_91.dat │ ├── W5D_1000.dat │ ├── W5D_1200.dat │ ├── W5D_1500.dat │ ├── W5D_1800.dat │ ├── W5D_2000.dat │ └── W5D_2500.dat ├── TSP_instances │ ├── kroA100.opt.tour │ ├── kroA100.tsp │ └── test.tsp └── reference_front │ ├── Ahmad2017.pf │ ├── Chen2015.pf │ ├── DTLZ1.2D.pf │ ├── DTLZ1.3D.pf │ ├── DTLZ1.4D.pf │ ├── DTLZ1.6D.pf │ ├── DTLZ1.8D.pf │ ├── DTLZ1.pf │ ├── DTLZ2.2D.pf │ ├── DTLZ2.3D.pf │ ├── DTLZ2.4D.pf │ ├── DTLZ2.6D.pf │ ├── DTLZ2.8D.pf │ ├── DTLZ3.2D.pf │ ├── DTLZ3.3D.pf │ ├── DTLZ3.4D.pf │ ├── DTLZ3.6D.pf │ ├── DTLZ3.8D.pf │ ├── DTLZ4.2D.pf │ ├── DTLZ4.3D.pf │ ├── DTLZ4.4D.pf │ ├── DTLZ4.6D.pf │ ├── DTLZ4.8D.pf │ ├── DTLZ5.2D.pf │ ├── DTLZ5.3D.pf │ ├── DTLZ6.2D.pf │ ├── DTLZ6.3D.pf │ ├── DTLZ7.2D.pf │ ├── DTLZ7.3D.pf │ ├── DTLZ7.4D.pf │ ├── DTLZ7.6D.pf │ ├── DTLZ7.8D.pf │ ├── Ganesan2013.pf │ ├── Gao2020.pf │ ├── Goel2007.pf │ ├── Kursawe.pf │ ├── LIRCMOP1.pf │ ├── LIRCMOP10.pf │ ├── LIRCMOP11.pf │ ├── LIRCMOP12.pf │ ├── LIRCMOP13.pf │ ├── LIRCMOP14.pf │ ├── LIRCMOP2.pf │ ├── LIRCMOP3.pf │ ├── LIRCMOP4.pf │ ├── LIRCMOP5.pf │ ├── LIRCMOP6.pf │ ├── LIRCMOP7.pf │ ├── LIRCMOP8.pf │ ├── LIRCMOP9.pf │ ├── LZ09_F1.pf │ ├── LZ09_F2.pf │ ├── LZ09_F3.pf │ ├── LZ09_F4.pf │ ├── LZ09_F5.pf │ ├── LZ09_F6.pf │ ├── LZ09_F7.pf │ ├── LZ09_F8.pf │ ├── LZ09_F9.pf │ ├── Liao2008.pf │ ├── Padhi2016.pf │ ├── Schaffer.pf │ ├── Srinivas.pf │ ├── Subasi2016.pf │ ├── Tanaka.pf │ ├── UF1.pf │ ├── UF10.pf │ ├── UF2.pf │ ├── UF3.pf │ ├── UF4.pf │ ├── UF5.pf │ ├── UF6.pf │ ├── UF7.pf │ ├── UF8.pf │ ├── UF9.pf │ ├── Vaidyanathan2004.pf │ ├── Viennet2.pf │ ├── Viennet3.pf │ ├── Xu2020.pf │ ├── ZDT1.pf │ ├── ZDT2.pf │ ├── ZDT3.pf │ ├── ZDT4.pf │ └── ZDT6.pf ├── src └── jmetal │ ├── __init__.py │ ├── algorithm │ ├── __init__.py │ ├── multiobjective │ │ ├── __init__.py │ │ ├── gde3.py │ │ ├── hype.py │ │ ├── ibea.py │ │ ├── mocell.py │ │ ├── moead.py │ │ ├── nsgaii.py │ │ ├── nsgaiii.py │ │ ├── omopso.py │ │ ├── random_search.py │ │ ├── smpso.py │ │ └── spea2.py │ └── singleobjective │ │ ├── __init__.py │ │ ├── evolution_strategy.py │ │ ├── genetic_algorithm.py │ │ ├── local_search.py │ │ └── simulated_annealing.py │ ├── config.py │ ├── core │ ├── __init__.py │ ├── algorithm.py │ ├── observer.py │ ├── operator.py │ ├── problem.py │ ├── quality_indicator.py │ └── solution.py │ ├── lab │ ├── __init__.py │ ├── experiment.py │ ├── statistical_test │ │ ├── __init__.py │ │ ├── apv_procedures.py │ │ ├── bayesian.py │ │ ├── critical_distance.py │ │ └── functions.py │ └── visualization │ │ ├── __init__.py │ │ ├── chord_plot.py │ │ ├── interactive.py │ │ ├── plotting.py │ │ ├── posterior.py │ │ └── streaming.py │ ├── logger.py │ ├── operator │ ├── __init__.py │ ├── crossover.py │ ├── mutation.py │ └── selection.py │ ├── problem │ ├── __init__.py │ ├── multiobjective │ │ ├── __init__.py │ │ ├── constrained.py │ │ ├── dtlz.py │ │ ├── fda.py │ │ ├── lircmop.py │ │ ├── lz09.py │ │ ├── rwa.py │ │ ├── uf.py │ │ ├── unconstrained.py │ │ └── zdt.py │ └── singleobjective │ │ ├── __init__.py │ │ ├── knapsack.py │ │ ├── tsp.py │ │ └── unconstrained.py │ └── util │ ├── __init__.py │ ├── aggregation_function.py │ ├── archive.py │ ├── ckecking.py │ ├── comparator.py │ ├── constraint_handling.py │ ├── density_estimator.py │ ├── distance.py │ ├── evaluator.py │ ├── generator.py │ ├── neighborhood.py │ ├── observable.py │ ├── observer.py │ ├── point.py │ ├── ranking.py │ ├── replacement.py │ ├── solution.py │ └── termination_criterion.py └── tests ├── algorithm ├── __init__.py └── ittest_algorithm.py ├── core ├── ZDT1.pf ├── __init__.py ├── test_observable.py ├── test_operator.py ├── test_problem.py ├── test_quality_indicator.py └── test_solution.py ├── operator ├── test_crossover.py ├── test_mutation.py └── test_selection.py ├── problem ├── multiobjective │ ├── __init__.py │ ├── test_constrained.py │ ├── test_dtlz.py │ ├── test_lz09.py │ ├── test_rwa.py │ ├── test_unconstrained.py │ └── test_zdt.py └── singleobjective │ ├── __init__.py │ ├── test_knapsack.py │ └── test_unconstrained.py └── util ├── __init__.py ├── test_aggregation_function.py ├── test_archive.py ├── test_checking.py ├── test_comparator.py ├── test_constraint_handling.py ├── test_density_estimator.py ├── test_distance.py ├── test_evaluator.py ├── test_neighborhood.py ├── test_point.py ├── test_ranking.py └── test_replacement.py /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - main 8 | - develop 9 | pull_request: 10 | branches: 11 | - main 12 | - develop 13 | 14 | jobs: 15 | test: 16 | runs-on: ubuntu-latest 17 | strategy: 18 | matrix: 19 | python-version: [ "3.9", "3.10", "3.11" ] 20 | steps: 21 | - uses: actions/checkout@v4 22 | - name: Install Python ${{ matrix.py }} 23 | uses: actions/setup-python@v4 24 | with: 25 | python-version: ${{ matrix.py }} 26 | - name: Get full Python version 27 | shell: bash 28 | run: echo {name}=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") >> $GITHUB_OUTPUT 29 | #run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") 30 | - name: Install dependencies 31 | shell: bash 32 | run: | 33 | python -m pip install --upgrade pip 34 | python -m pip install -e .[test] 35 | - name: Test with pytest 36 | shell: bash 37 | run: | 38 | pip install pytest 39 | pytest 40 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | __pycache__ 3 | build 4 | dist 5 | .vscode 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Antonio J. Nebro 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = jMetalPy 8 | SOURCEDIR = docs/source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # "make github" option to build gh-pages 18 | github: 19 | @make html 20 | @cp -a $(BUILDDIR)/html/. docs 21 | @rm -r $(BUILDDIR) 22 | 23 | # Catch-all target: route all unknown targets to Sphinx using the new 24 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 25 | %: Makefile 26 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 27 | cp -R $(BUILDDIR)/html/* docs 28 | 29 | -------------------------------------------------------------------------------- /docs/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 4b780489226086b8db31ab45dede2a32 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/.nojekyll -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_eas_gde3_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_eas_gde3_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_eas_gde3_preference_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_eas_gde3_preference_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_eas_hype_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_eas_hype_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_eas_ibea_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_eas_ibea_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_eas_mocell_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_eas_mocell_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_eas_moead_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_eas_moead_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_eas_nsgaii_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_eas_nsgaii_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_eas_nsgaii_preference_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_eas_nsgaii_preference_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_eas_spea2_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_eas_spea2_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_psos_omopso_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_psos_omopso_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_psos_smpso_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_psos_smpso_5_0.png -------------------------------------------------------------------------------- /docs/_images/api_algorithm_multiobjective_psos_smpso_preference_5_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_images/api_algorithm_multiobjective_psos_smpso_preference_5_0.png -------------------------------------------------------------------------------- /docs/_sources/about.rst.txt: -------------------------------------------------------------------------------- 1 | About 2 | ============== 3 | 4 | jMetalPy is being developed by `Antonio J. Nebro `_, full professor at the University of Málaga. 5 | 6 | Cite us 7 | ------------------------ 8 | 9 | .. code-block:: LaTeX 10 | 11 | @article{BENITEZHIDALGO2019100598, 12 | title = "jMetalPy: A Python framework for multi-objective optimization with metaheuristics", 13 | journal = "Swarm and Evolutionary Computation", 14 | pages = "100598", 15 | year = "2019", 16 | issn = "2210-6502", 17 | doi = "https://doi.org/10.1016/j.swevo.2019.100598", 18 | url = "http://www.sciencedirect.com/science/article/pii/S2210650219301397", 19 | author = "Antonio Benítez-Hidalgo and Antonio J. Nebro and José García-Nieto and Izaskun Oregi and Javier Del Ser", 20 | keywords = "Multi-objective optimization, Metaheuristics, Software framework, Python, Statistical analysis, Visualization", 21 | } 22 | 23 | References 24 | ------------------------ 25 | 26 | 1. J.J. Durillo, A.J. Nebro jMetal: a Java Framework for Multi-Objective Optimization. Advances in Engineering Software 42 (2011) 760-771. 27 | 2. A.J. Nebro, J.J. Durillo, M. Vergne Redesigning the jMetal Multi-Objective Optimization Framework. GECCO (Companion) 2015, pp: 1093-1100. July 2015. 28 | 3. Nebro A.J. et al. (2018) Extending the Speed-Constrained Multi-objective PSO (SMPSO) with Reference Point Based Preference Articulation. In: Auger A., Fonseca C., Lourenço N., Machado P., Paquete L., Whitley D. (eds) Parallel Problem Solving from Nature – PPSN XV. PPSN 2018. Lecture Notes in Computer Science, vol 11101. Springer, Cham -------------------------------------------------------------------------------- /docs/_sources/api/algorithm/multiobjective/ea.rst.txt: -------------------------------------------------------------------------------- 1 | Evolutionary Algorithms 2 | ======================= 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | :caption: Multi-objective evolutionary algorithms: 7 | 8 | eas/gde3 9 | eas/hype 10 | eas/ibea 11 | eas/mocell 12 | eas/moead 13 | eas/nsgaii 14 | eas/nsgaiii 15 | eas/spea2 16 | -------------------------------------------------------------------------------- /docs/_sources/api/algorithm/multiobjective/eas/nsgaiii.ipynb.txt: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "raw", 5 | "metadata": { 6 | "raw_mimetype": "text/restructuredtext" 7 | }, 8 | "source": [ 9 | ".. _nb_nsgaiii:" 10 | ] 11 | }, 12 | { 13 | "cell_type": "markdown", 14 | "metadata": {}, 15 | "source": [ 16 | "## NSGA-III" 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "metadata": {}, 22 | "source": [ 23 | "### API" 24 | ] 25 | }, 26 | { 27 | "cell_type": "raw", 28 | "metadata": { 29 | "pycharm": { 30 | "is_executing": false, 31 | "name": "#%% raw\n" 32 | }, 33 | "raw_mimetype": "text/restructuredtext" 34 | }, 35 | "source": [ 36 | ".. autoclass:: jmetal.algorithm.multiobjective.nsgaiii.NSGAIII\n", 37 | " :members:\n", 38 | " :undoc-members:\n", 39 | " :show-inheritance:\n" 40 | ] 41 | } 42 | ], 43 | "metadata": { 44 | "celltoolbar": "Raw Cell Format", 45 | "kernelspec": { 46 | "display_name": "Python 3", 47 | "language": "python", 48 | "name": "python3" 49 | }, 50 | "language_info": { 51 | "codemirror_mode": { 52 | "name": "ipython", 53 | "version": 3 54 | }, 55 | "file_extension": ".py", 56 | "mimetype": "text/x-python", 57 | "name": "python", 58 | "nbconvert_exporter": "python", 59 | "pygments_lexer": "ipython3", 60 | "version": "3.7.3" 61 | }, 62 | "pycharm": { 63 | "stem_cell": { 64 | "cell_type": "raw", 65 | "source": [], 66 | "metadata": { 67 | "collapsed": false 68 | } 69 | } 70 | } 71 | }, 72 | "nbformat": 4, 73 | "nbformat_minor": 1 74 | } 75 | -------------------------------------------------------------------------------- /docs/_sources/api/algorithm/multiobjective/pso.rst.txt: -------------------------------------------------------------------------------- 1 | PSO Algorithms 2 | ======================= 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | :caption: Multi-objective particle swarm optimization algorithms: 7 | 8 | psos/omopso 9 | psos/smpso -------------------------------------------------------------------------------- /docs/_sources/api/algorithm/singleobjective/evolution.strategy.rst.txt: -------------------------------------------------------------------------------- 1 | Evolution Strategy 2 | ----------------------------------------------------------- 3 | 4 | .. automodule:: jmetal.algorithm.singleobjective.evolution_strategy 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | :exclude-members: R 9 | -------------------------------------------------------------------------------- /docs/_sources/api/algorithm/singleobjective/genetic.algorithm.rst.txt: -------------------------------------------------------------------------------- 1 | Genetic Algorithm 2 | ---------------------------------------------------------- 3 | 4 | .. automodule:: jmetal.algorithm.singleobjective.genetic_algorithm 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | :exclude-members: R 9 | -------------------------------------------------------------------------------- /docs/_sources/api/algorithm/singleobjective/local.search.rst.txt: -------------------------------------------------------------------------------- 1 | Local Search 2 | ----------------------------------------------------- 3 | 4 | .. automodule:: jmetal.algorithm.singleobjective.local_search 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | :exclude-members: R 9 | -------------------------------------------------------------------------------- /docs/_sources/api/algorithm/singleobjective/simulated.annealing.rst.txt: -------------------------------------------------------------------------------- 1 | Simulated annealing 2 | ------------------------------------------------------------ 3 | 4 | .. automodule:: jmetal.algorithm.singleobjective.simulated_annealing 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | :exclude-members: R 9 | -------------------------------------------------------------------------------- /docs/_sources/api/jmetal.lab.statistical_test.rst.txt: -------------------------------------------------------------------------------- 1 | jmetal.lab.statistical\_test package 2 | ==================================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | jmetal.lab.statistical\_test.apv\_procedures module 8 | --------------------------------------------------- 9 | 10 | .. automodule:: jmetal.lab.statistical_test.apv_procedures 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | jmetal.lab.statistical\_test.bayesian module 16 | -------------------------------------------- 17 | 18 | .. automodule:: jmetal.lab.statistical_test.bayesian 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | jmetal.lab.statistical\_test.critical\_distance module 24 | ------------------------------------------------------ 25 | 26 | .. automodule:: jmetal.lab.statistical_test.critical_distance 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | jmetal.lab.statistical\_test.functions module 32 | --------------------------------------------- 33 | 34 | .. automodule:: jmetal.lab.statistical_test.functions 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | 40 | Module contents 41 | --------------- 42 | 43 | .. automodule:: jmetal.lab.statistical_test 44 | :members: 45 | :undoc-members: 46 | :show-inheritance: 47 | -------------------------------------------------------------------------------- /docs/_sources/api/operator/crossover.rst.txt: -------------------------------------------------------------------------------- 1 | Crossover 2 | ======================= 3 | 4 | .. automodule:: jmetal.operator.crossover 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/_sources/api/operator/mutation.rst.txt: -------------------------------------------------------------------------------- 1 | Mutation 2 | ======================= 3 | 4 | .. automodule:: jmetal.operator.mutation 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/_sources/api/operator/selection.rst.txt: -------------------------------------------------------------------------------- 1 | Selection 2 | ======================= 3 | 4 | .. automodule:: jmetal.operator.selection 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/_sources/api/problem/multiobjective.rst.txt: -------------------------------------------------------------------------------- 1 | Multi-objective problems 2 | ===================================== 3 | 4 | Constrained 5 | ------------------------------------------------ 6 | 7 | .. automodule:: jmetal.problem.multiobjective.constrained 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | 12 | Unconstrained 13 | -------------------------------------------------- 14 | 15 | .. automodule:: jmetal.problem.multiobjective.unconstrained 16 | :members: 17 | :undoc-members: 18 | :show-inheritance: 19 | 20 | ZDT 21 | ---------------------------------------- 22 | 23 | .. automodule:: jmetal.problem.multiobjective.zdt 24 | :members: 25 | :undoc-members: 26 | :show-inheritance: 27 | 28 | DTLZ 29 | ----------------------------------------- 30 | 31 | .. automodule:: jmetal.problem.multiobjective.dtlz 32 | :members: 33 | :undoc-members: 34 | :show-inheritance: 35 | 36 | FDA 37 | ---------------------------------------- 38 | 39 | .. automodule:: jmetal.problem.multiobjective.fda 40 | :members: 41 | :undoc-members: 42 | :show-inheritance: 43 | 44 | LIRCMOP 45 | -------------------------------------------- 46 | 47 | .. automodule:: jmetal.problem.multiobjective.lircmop 48 | :members: 49 | :undoc-members: 50 | :show-inheritance: 51 | 52 | LZ09 53 | ----------------------------------------- 54 | 55 | .. automodule:: jmetal.problem.multiobjective.lz09 56 | :members: 57 | :undoc-members: 58 | :show-inheritance: 59 | -------------------------------------------------------------------------------- /docs/_sources/api/problem/singleobjective.rst.txt: -------------------------------------------------------------------------------- 1 | Single-objective problems 2 | ====================================== 3 | 4 | Unconstrained 5 | --------------------------------------------------- 6 | 7 | .. automodule:: jmetal.problem.singleobjective.unconstrained 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | 12 | Knapsack 13 | ---------------------------------------------- 14 | 15 | .. automodule:: jmetal.problem.singleobjective.knapsack 16 | :members: 17 | :undoc-members: 18 | :show-inheritance: 19 | 20 | TSP 21 | ----------------------------------------- 22 | 23 | .. automodule:: jmetal.problem.singleobjective.tsp 24 | :members: 25 | :undoc-members: 26 | :show-inheritance: 27 | -------------------------------------------------------------------------------- /docs/_sources/multiobjective.algorithms.rst.txt: -------------------------------------------------------------------------------- 1 | Multi-objective algorithms 2 | ================================================ 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: List of multi-objective algorithms: 7 | 8 | api/algorithm/multiobjective/ea 9 | api/algorithm/multiobjective/pso -------------------------------------------------------------------------------- /docs/_sources/operators.rst.txt: -------------------------------------------------------------------------------- 1 | Operators 2 | ================================================ 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: List of genetic operators: 7 | 8 | api/operator/crossover 9 | api/operator/mutation 10 | api/operator/selection -------------------------------------------------------------------------------- /docs/_sources/problems.rst.txt: -------------------------------------------------------------------------------- 1 | Problems 2 | ================== 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: Benchmarking problems: 7 | 8 | api/problem/multiobjective 9 | api/problem/singleobjective -------------------------------------------------------------------------------- /docs/_sources/singleobjective.algorithms.rst.txt: -------------------------------------------------------------------------------- 1 | Single-objective algorithms 2 | ================================================ 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: List of single-objective algorithms: 7 | 8 | api/algorithm/singleobjective/evolution.strategy 9 | api/algorithm/singleobjective/genetic.algorithm 10 | api/algorithm/singleobjective/local.search 11 | api/algorithm/singleobjective/simulated.annealing -------------------------------------------------------------------------------- /docs/_sources/tutorials.rst.txt: -------------------------------------------------------------------------------- 1 | Getting started 2 | ================== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | :caption: First steps: 7 | 8 | tutorials/problem 9 | tutorials/observer 10 | tutorials/evaluator 11 | tutorials/visualization 12 | 13 | .. toctree:: 14 | :maxdepth: 1 15 | :caption: Laboratory: 16 | 17 | tutorials/experiment 18 | tutorials/statistics 19 | -------------------------------------------------------------------------------- /docs/_sources/tutorials/statistics.rst.txt: -------------------------------------------------------------------------------- 1 | Statistical analysis 2 | ======================== 3 | 4 | ToDo -------------------------------------------------------------------------------- /docs/_static/2D.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/2D.gif -------------------------------------------------------------------------------- /docs/_static/3D.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/3D.gif -------------------------------------------------------------------------------- /docs/_static/NSGAII-ZDT1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/NSGAII-ZDT1.png -------------------------------------------------------------------------------- /docs/_static/chordplot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/chordplot.gif -------------------------------------------------------------------------------- /docs/_static/custom.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 13px; 3 | } 4 | 5 | h1 { 6 | font-size: 30px; 7 | } 8 | 9 | h2 { 10 | font-size: 24px; 11 | } 12 | 13 | h3 { 14 | font-size: 20px; 15 | } 16 | 17 | p { 18 | margin: 10px 0 10px; 19 | } 20 | 21 | code, pre, tt { 22 | font-size: 12px; 23 | padding: 10px 0 10px 0; 24 | } 25 | 26 | pre { 27 | padding: 10px 0 10px 20px; 28 | } 29 | 30 | blockquote { 31 | font-size: 13px; 32 | } 33 | 34 | .sidebar-toc { 35 | font-size: 13px; 36 | } 37 | 38 | .admonition { 39 | margin: 20px 0; 40 | padding: 10px 20px; 41 | } 42 | 43 | .admonition-title { 44 | font-size: 13px; 45 | margin: 10px 0 5px; 46 | } 47 | 48 | 49 | /* THEME COLOR */ 50 | 51 | h1 { 52 | background-color: #F9F9F9; 53 | border-bottom: 1px solid #F9F9F9; 54 | } 55 | 56 | a { 57 | color: #0C0C0C; 58 | } 59 | 60 | a > code { 61 | color: #8D1A38; 62 | } 63 | 64 | a:hover { 65 | color: #0C0C0C; 66 | } 67 | 68 | .text-logo { 69 | background-color: #0C0C0C; 70 | } 71 | 72 | .sidebar-toc ul li a:hover { 73 | background-color: #0C0C0C; 74 | } 75 | 76 | a.btn-outline { 77 | color: #0C0C0C; 78 | border-color: #0C0C0C; 79 | } 80 | 81 | a:hover.btn-outline { 82 | color: #0C0C0C; 83 | } -------------------------------------------------------------------------------- /docs/_static/documentation_options.js: -------------------------------------------------------------------------------- 1 | const DOCUMENTATION_OPTIONS = { 2 | VERSION: '1.7.0', 3 | LANGUAGE: 'en', 4 | COLLAPSE_INDEX: false, 5 | BUILDER: 'html', 6 | FILE_SUFFIX: '.html', 7 | LINK_SUFFIX: '.html', 8 | HAS_SOURCE: true, 9 | SOURCELINK_SUFFIX: '.txt', 10 | NAVIGATION_WITH_KEYS: false, 11 | SHOW_SEARCH_SUMMARY: true, 12 | ENABLE_SEARCH_SHORTCUTS: true, 13 | }; -------------------------------------------------------------------------------- /docs/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/file.png -------------------------------------------------------------------------------- /docs/_static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /docs/_static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Bold-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Italic-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Light-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Regular-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Black.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Black.eot -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Bold.eot -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-ExtraLight.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-ExtraLight.eot -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Light.eot -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Regular.eot -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/EOT/SourceSerifPro-Semibold.eot -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Black.otf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Bold.otf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-ExtraLight.otf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Light.otf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Regular.otf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/OTF/SourceSerifPro-Semibold.otf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/README.md: -------------------------------------------------------------------------------- 1 | # Source Serif Pro 2 | 3 | Source Serif Pro is a set of OpenType fonts to complement the [Source Sans Pro](https://github.com/adobe-fonts/source-sans-pro) family. 4 | In addition to a functional OpenType font, this open source project provides all of the source files that were used to build this OpenType font by using the AFDKO makeotf tool. 5 | 6 | ## Installation instructions 7 | 8 | * [Mac OS X](http://support.apple.com/kb/HT2509) 9 | * [Windows](http://windows.microsoft.com/en-us/windows-vista/install-or-uninstall-fonts) 10 | * [Linux/Unix-based systems](https://github.com/adobe-fonts/source-code-pro/issues/17#issuecomment-8967116) 11 | 12 | ## Getting Involved 13 | 14 | Send suggestions for changes to the Source Serif OpenType font project maintainer, [Frank Grießhammer](mailto:opensourcefonts@adobe.com?subject=[GitHub] Source Serif Pro), for consideration. 15 | 16 | ## Further information 17 | 18 | For information about the design and background of Source Serif, please refer to the [official font readme file](http://htmlpreview.github.io/?https://github.com/adobe-fonts/source-serif-pro/blob/master/SourceSerifProReadMe.html). 19 | -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Black.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Bold.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-ExtraLight.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Light.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Regular.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/TTF/SourceSerifPro-Semibold.ttf -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Black.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Black.otf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Bold.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Bold.otf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-ExtraLight.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-ExtraLight.otf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Light.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Light.otf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Regular.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Regular.otf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Semibold.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Semibold.otf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Black.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Black.ttf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Bold.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Bold.ttf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-ExtraLight.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-ExtraLight.ttf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Light.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Light.ttf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Regular.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Regular.ttf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Semibold.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Semibold.ttf.woff -------------------------------------------------------------------------------- /docs/_static/fonts/source-serif-pro/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "source-serif-pro", 3 | "version": "1.014", 4 | "main": "source-serif-pro.css", 5 | "homepage": "https://github.com/adobe-fonts/source-serif-pro", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/adobe-fonts/source-serif-pro.git" 9 | }, 10 | "authors": [ 11 | { "name": "Frank Grießhammer" } 12 | ], 13 | "description": "Source Serif Pro font family by Adobe", 14 | "license": "SIL OFL 1.1" 15 | } 16 | -------------------------------------------------------------------------------- /docs/_static/jmetalpy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/jmetalpy.png -------------------------------------------------------------------------------- /docs/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/minus.png -------------------------------------------------------------------------------- /docs/_static/nbsphinx-gallery.css: -------------------------------------------------------------------------------- 1 | .nbsphinx-gallery { 2 | display: grid; 3 | grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); 4 | gap: 5px; 5 | margin-top: 1em; 6 | margin-bottom: 1em; 7 | } 8 | 9 | .nbsphinx-gallery > a { 10 | padding: 5px; 11 | border: 1px dotted currentColor; 12 | border-radius: 2px; 13 | text-align: center; 14 | } 15 | 16 | .nbsphinx-gallery > a:hover { 17 | border-style: solid; 18 | } 19 | 20 | .nbsphinx-gallery img { 21 | max-width: 100%; 22 | max-height: 100%; 23 | } 24 | 25 | .nbsphinx-gallery > a > div:first-child { 26 | display: flex; 27 | align-items: start; 28 | justify-content: center; 29 | height: 120px; 30 | margin-bottom: 5px; 31 | } 32 | -------------------------------------------------------------------------------- /docs/_static/p-c.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/p-c.gif -------------------------------------------------------------------------------- /docs/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/_static/plus.png -------------------------------------------------------------------------------- /docs/api/algorithm/multiobjective/eas/nsgaiii.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "raw", 5 | "metadata": { 6 | "raw_mimetype": "text/restructuredtext" 7 | }, 8 | "source": [ 9 | ".. _nb_nsgaiii:" 10 | ] 11 | }, 12 | { 13 | "cell_type": "markdown", 14 | "metadata": {}, 15 | "source": [ 16 | "## NSGA-III" 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "metadata": {}, 22 | "source": [ 23 | "### API" 24 | ] 25 | }, 26 | { 27 | "cell_type": "raw", 28 | "metadata": { 29 | "pycharm": { 30 | "is_executing": false, 31 | "name": "#%% raw\n" 32 | }, 33 | "raw_mimetype": "text/restructuredtext" 34 | }, 35 | "source": [ 36 | ".. autoclass:: jmetal.algorithm.multiobjective.nsgaiii.NSGAIII\n", 37 | " :members:\n", 38 | " :undoc-members:\n", 39 | " :show-inheritance:\n" 40 | ] 41 | } 42 | ], 43 | "metadata": { 44 | "celltoolbar": "Raw Cell Format", 45 | "kernelspec": { 46 | "display_name": "Python 3", 47 | "language": "python", 48 | "name": "python3" 49 | }, 50 | "language_info": { 51 | "codemirror_mode": { 52 | "name": "ipython", 53 | "version": 3 54 | }, 55 | "file_extension": ".py", 56 | "mimetype": "text/x-python", 57 | "name": "python", 58 | "nbconvert_exporter": "python", 59 | "pygments_lexer": "ipython3", 60 | "version": "3.7.3" 61 | }, 62 | "pycharm": { 63 | "stem_cell": { 64 | "cell_type": "raw", 65 | "metadata": { 66 | "collapsed": false 67 | }, 68 | "source": [] 69 | } 70 | } 71 | }, 72 | "nbformat": 4, 73 | "nbformat_minor": 1 74 | } 75 | -------------------------------------------------------------------------------- /docs/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/objects.inv -------------------------------------------------------------------------------- /docs/source/_static/2D.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_static/2D.gif -------------------------------------------------------------------------------- /docs/source/_static/3D.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_static/3D.gif -------------------------------------------------------------------------------- /docs/source/_static/NSGAII-ZDT1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_static/NSGAII-ZDT1.png -------------------------------------------------------------------------------- /docs/source/_static/chordplot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_static/chordplot.gif -------------------------------------------------------------------------------- /docs/source/_static/custom.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 13px; 3 | } 4 | 5 | h1 { 6 | font-size: 30px; 7 | } 8 | 9 | h2 { 10 | font-size: 24px; 11 | } 12 | 13 | h3 { 14 | font-size: 20px; 15 | } 16 | 17 | p { 18 | margin: 10px 0 10px; 19 | } 20 | 21 | code, pre, tt { 22 | font-size: 12px; 23 | padding: 10px 0 10px 0; 24 | } 25 | 26 | pre { 27 | padding: 10px 0 10px 20px; 28 | } 29 | 30 | blockquote { 31 | font-size: 13px; 32 | } 33 | 34 | .sidebar-toc { 35 | font-size: 13px; 36 | } 37 | 38 | .admonition { 39 | margin: 20px 0; 40 | padding: 10px 20px; 41 | } 42 | 43 | .admonition-title { 44 | font-size: 13px; 45 | margin: 10px 0 5px; 46 | } 47 | 48 | 49 | /* THEME COLOR */ 50 | 51 | h1 { 52 | background-color: #F9F9F9; 53 | border-bottom: 1px solid #F9F9F9; 54 | } 55 | 56 | a { 57 | color: #0C0C0C; 58 | } 59 | 60 | a > code { 61 | color: #8D1A38; 62 | } 63 | 64 | a:hover { 65 | color: #0C0C0C; 66 | } 67 | 68 | .text-logo { 69 | background-color: #0C0C0C; 70 | } 71 | 72 | .sidebar-toc ul li a:hover { 73 | background-color: #0C0C0C; 74 | } 75 | 76 | a.btn-outline { 77 | color: #0C0C0C; 78 | border-color: #0C0C0C; 79 | } 80 | 81 | a:hover.btn-outline { 82 | color: #0C0C0C; 83 | } -------------------------------------------------------------------------------- /docs/source/_static/jmetalpy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_static/jmetalpy.png -------------------------------------------------------------------------------- /docs/source/_static/p-c.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_static/p-c.gif -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/comments.html: -------------------------------------------------------------------------------- 1 | {% if theme_disqus_comments_shortname %} 2 |
3 |
4 | 13 | 14 | comments powered by Disqus 15 |
16 | {% endif %} 17 | -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/globaltoc.html: -------------------------------------------------------------------------------- 1 | 2 | 15 | -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/localtoc.html: -------------------------------------------------------------------------------- 1 | {%- if display_toc %} 2 | 10 | {%- endif %} 11 | -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/logo-text.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | 11 | -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/searchbox.html: -------------------------------------------------------------------------------- 1 | {%- if pagename != "search" %} 2 | 15 | {%- endif %} 16 | -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBold-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-ExtraBoldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Light-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Light-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-Semibold-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/open-sans/fonts/OpenSans-SemiboldItalic-webfont.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Black.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Black.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Bold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Bold.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-ExtraLight.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-ExtraLight.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Light.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Light.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Regular.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Semibold.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/EOT/SourceSerifPro-Semibold.eot -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Black.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Black.otf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Bold.otf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-ExtraLight.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-ExtraLight.otf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Light.otf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Regular.otf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/OTF/SourceSerifPro-Semibold.otf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/README.md: -------------------------------------------------------------------------------- 1 | # Source Serif Pro 2 | 3 | Source Serif Pro is a set of OpenType fonts to complement the [Source Sans Pro](https://github.com/adobe-fonts/source-sans-pro) family. 4 | In addition to a functional OpenType font, this open source project provides all of the source files that were used to build this OpenType font by using the AFDKO makeotf tool. 5 | 6 | ## Installation instructions 7 | 8 | * [Mac OS X](http://support.apple.com/kb/HT2509) 9 | * [Windows](http://windows.microsoft.com/en-us/windows-vista/install-or-uninstall-fonts) 10 | * [Linux/Unix-based systems](https://github.com/adobe-fonts/source-code-pro/issues/17#issuecomment-8967116) 11 | 12 | ## Getting Involved 13 | 14 | Send suggestions for changes to the Source Serif OpenType font project maintainer, [Frank Grießhammer](mailto:opensourcefonts@adobe.com?subject=[GitHub] Source Serif Pro), for consideration. 15 | 16 | ## Further information 17 | 18 | For information about the design and background of Source Serif, please refer to the [official font readme file](http://htmlpreview.github.io/?https://github.com/adobe-fonts/source-serif-pro/blob/master/SourceSerifProReadMe.html). 19 | -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Black.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Bold.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-ExtraLight.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-ExtraLight.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Light.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Regular.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Semibold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/TTF/SourceSerifPro-Semibold.ttf -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Black.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Black.otf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Bold.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Bold.otf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-ExtraLight.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-ExtraLight.otf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Light.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Light.otf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Regular.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Regular.otf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Semibold.otf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/OTF/SourceSerifPro-Semibold.otf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Black.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Black.ttf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Bold.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Bold.ttf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-ExtraLight.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-ExtraLight.ttf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Light.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Light.ttf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Regular.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Regular.ttf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Semibold.ttf.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/_templates/guzzle/static/fonts/source-serif-pro/WOFF/TTF/SourceSerifPro-Semibold.ttf.woff -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/static/fonts/source-serif-pro/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "source-serif-pro", 3 | "version": "1.014", 4 | "main": "source-serif-pro.css", 5 | "homepage": "https://github.com/adobe-fonts/source-serif-pro", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/adobe-fonts/source-serif-pro.git" 9 | }, 10 | "authors": [ 11 | { "name": "Frank Grießhammer" } 12 | ], 13 | "description": "Source Serif Pro font family by Adobe", 14 | "license": "SIL OFL 1.1" 15 | } 16 | -------------------------------------------------------------------------------- /docs/source/_templates/guzzle/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | 3 | inherit = basic 4 | stylesheet = guzzle.css 5 | 6 | [options] 7 | 8 | # Set to an html template to load custom HTML for the homepage 9 | index_template = 10 | 11 | # Set the name of the project to appear in the left sidebar. 12 | project_nav_name = 13 | 14 | # Set the logo of the project to appear in the left sidebar 15 | project_nav_logo = 16 | 17 | # Path to a touch icon 18 | touch_icon = 19 | 20 | # Set this value to enable Disqus comments 21 | disqus_comments_shortname = 22 | 23 | # Set to enable google analytics 24 | google_analytics_account = 25 | 26 | # Specify a base_url used to generate sitemap.xml links. If not specified, then 27 | # no sitemap will be built. 28 | base_url = 29 | 30 | # Allow a separate homepage from the "master_doc" 31 | homepage = 32 | 33 | # Allow the project link to be overwritten to a custom URL. 34 | projectlink = 35 | 36 | # The maximum depth of the global TOC; set it to -1 to allow unlimited depth 37 | globaltoc_depth = 2 38 | 39 | # If true, TOC entries that are not ancestors of the current page are collapsed 40 | globaltoc_collapse = true 41 | 42 | # If true, the global TOC tree will also contain hidden entries 43 | globaltoc_includehidden = true 44 | -------------------------------------------------------------------------------- /docs/source/about.rst: -------------------------------------------------------------------------------- 1 | About 2 | ============== 3 | 4 | jMetalPy is being developed by `Antonio J. Nebro `_, full professor at the University of Málaga. 5 | 6 | Cite us 7 | ------------------------ 8 | 9 | .. code-block:: LaTeX 10 | 11 | @article{BENITEZHIDALGO2019100598, 12 | title = "jMetalPy: A Python framework for multi-objective optimization with metaheuristics", 13 | journal = "Swarm and Evolutionary Computation", 14 | pages = "100598", 15 | year = "2019", 16 | issn = "2210-6502", 17 | doi = "https://doi.org/10.1016/j.swevo.2019.100598", 18 | url = "http://www.sciencedirect.com/science/article/pii/S2210650219301397", 19 | author = "Antonio Benítez-Hidalgo and Antonio J. Nebro and José García-Nieto and Izaskun Oregi and Javier Del Ser", 20 | keywords = "Multi-objective optimization, Metaheuristics, Software framework, Python, Statistical analysis, Visualization", 21 | } 22 | 23 | References 24 | ------------------------ 25 | 26 | 1. J.J. Durillo, A.J. Nebro jMetal: a Java Framework for Multi-Objective Optimization. Advances in Engineering Software 42 (2011) 760-771. 27 | 2. A.J. Nebro, J.J. Durillo, M. Vergne Redesigning the jMetal Multi-Objective Optimization Framework. GECCO (Companion) 2015, pp: 1093-1100. July 2015. 28 | 3. Nebro A.J. et al. (2018) Extending the Speed-Constrained Multi-objective PSO (SMPSO) with Reference Point Based Preference Articulation. In: Auger A., Fonseca C., Lourenço N., Machado P., Paquete L., Whitley D. (eds) Parallel Problem Solving from Nature – PPSN XV. PPSN 2018. Lecture Notes in Computer Science, vol 11101. Springer, Cham -------------------------------------------------------------------------------- /docs/source/api/algorithm/multiobjective/ea.rst: -------------------------------------------------------------------------------- 1 | Evolutionary Algorithms 2 | ======================= 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | :caption: Multi-objective evolutionary algorithms: 7 | 8 | eas/gde3 9 | eas/hype 10 | eas/ibea 11 | eas/mocell 12 | eas/moead 13 | eas/nsgaii 14 | eas/nsgaiii 15 | eas/spea2 16 | -------------------------------------------------------------------------------- /docs/source/api/algorithm/multiobjective/eas/nsgaiii.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "raw", 5 | "metadata": { 6 | "raw_mimetype": "text/restructuredtext" 7 | }, 8 | "source": [ 9 | ".. _nb_nsgaiii:" 10 | ] 11 | }, 12 | { 13 | "cell_type": "markdown", 14 | "metadata": {}, 15 | "source": [ 16 | "## NSGA-III" 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "metadata": {}, 22 | "source": [ 23 | "### API" 24 | ] 25 | }, 26 | { 27 | "cell_type": "raw", 28 | "metadata": { 29 | "pycharm": { 30 | "is_executing": false, 31 | "name": "#%% raw\n" 32 | }, 33 | "raw_mimetype": "text/restructuredtext" 34 | }, 35 | "source": [ 36 | ".. autoclass:: jmetal.algorithm.multiobjective.nsgaiii.NSGAIII\n", 37 | " :members:\n", 38 | " :undoc-members:\n", 39 | " :show-inheritance:\n" 40 | ] 41 | } 42 | ], 43 | "metadata": { 44 | "celltoolbar": "Raw Cell Format", 45 | "kernelspec": { 46 | "display_name": "Python 3", 47 | "language": "python", 48 | "name": "python3" 49 | }, 50 | "language_info": { 51 | "codemirror_mode": { 52 | "name": "ipython", 53 | "version": 3 54 | }, 55 | "file_extension": ".py", 56 | "mimetype": "text/x-python", 57 | "name": "python", 58 | "nbconvert_exporter": "python", 59 | "pygments_lexer": "ipython3", 60 | "version": "3.7.3" 61 | }, 62 | "pycharm": { 63 | "stem_cell": { 64 | "cell_type": "raw", 65 | "source": [], 66 | "metadata": { 67 | "collapsed": false 68 | } 69 | } 70 | } 71 | }, 72 | "nbformat": 4, 73 | "nbformat_minor": 1 74 | } 75 | -------------------------------------------------------------------------------- /docs/source/api/algorithm/multiobjective/pso.rst: -------------------------------------------------------------------------------- 1 | PSO Algorithms 2 | ======================= 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | :caption: Multi-objective particle swarm optimization algorithms: 7 | 8 | psos/omopso 9 | psos/smpso -------------------------------------------------------------------------------- /docs/source/api/algorithm/singleobjective/evolution.strategy.rst: -------------------------------------------------------------------------------- 1 | Evolution Strategy 2 | ----------------------------------------------------------- 3 | 4 | .. automodule:: jmetal.algorithm.singleobjective.evolution_strategy 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | :exclude-members: R 9 | -------------------------------------------------------------------------------- /docs/source/api/algorithm/singleobjective/genetic.algorithm.rst: -------------------------------------------------------------------------------- 1 | Genetic Algorithm 2 | ---------------------------------------------------------- 3 | 4 | .. automodule:: jmetal.algorithm.singleobjective.genetic_algorithm 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | :exclude-members: R 9 | -------------------------------------------------------------------------------- /docs/source/api/algorithm/singleobjective/local.search.rst: -------------------------------------------------------------------------------- 1 | Local Search 2 | ----------------------------------------------------- 3 | 4 | .. automodule:: jmetal.algorithm.singleobjective.local_search 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | :exclude-members: R 9 | -------------------------------------------------------------------------------- /docs/source/api/algorithm/singleobjective/simulated.annealing.rst: -------------------------------------------------------------------------------- 1 | Simulated annealing 2 | ------------------------------------------------------------ 3 | 4 | .. automodule:: jmetal.algorithm.singleobjective.simulated_annealing 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | :exclude-members: R 9 | -------------------------------------------------------------------------------- /docs/source/api/jmetal.lab.statistical_test.rst: -------------------------------------------------------------------------------- 1 | jmetal.lab.statistical\_test package 2 | ==================================== 3 | 4 | Submodules 5 | ---------- 6 | 7 | jmetal.lab.statistical\_test.apv\_procedures module 8 | --------------------------------------------------- 9 | 10 | .. automodule:: jmetal.lab.statistical_test.apv_procedures 11 | :members: 12 | :undoc-members: 13 | :show-inheritance: 14 | 15 | jmetal.lab.statistical\_test.bayesian module 16 | -------------------------------------------- 17 | 18 | .. automodule:: jmetal.lab.statistical_test.bayesian 19 | :members: 20 | :undoc-members: 21 | :show-inheritance: 22 | 23 | jmetal.lab.statistical\_test.critical\_distance module 24 | ------------------------------------------------------ 25 | 26 | .. automodule:: jmetal.lab.statistical_test.critical_distance 27 | :members: 28 | :undoc-members: 29 | :show-inheritance: 30 | 31 | jmetal.lab.statistical\_test.functions module 32 | --------------------------------------------- 33 | 34 | .. automodule:: jmetal.lab.statistical_test.functions 35 | :members: 36 | :undoc-members: 37 | :show-inheritance: 38 | 39 | 40 | Module contents 41 | --------------- 42 | 43 | .. automodule:: jmetal.lab.statistical_test 44 | :members: 45 | :undoc-members: 46 | :show-inheritance: 47 | -------------------------------------------------------------------------------- /docs/source/api/operator/crossover.rst: -------------------------------------------------------------------------------- 1 | Crossover 2 | ======================= 3 | 4 | .. automodule:: jmetal.operator.crossover 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/source/api/operator/mutation.rst: -------------------------------------------------------------------------------- 1 | Mutation 2 | ======================= 3 | 4 | .. automodule:: jmetal.operator.mutation 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/source/api/operator/selection.rst: -------------------------------------------------------------------------------- 1 | Selection 2 | ======================= 3 | 4 | .. automodule:: jmetal.operator.selection 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/source/api/problem/multiobjective.rst: -------------------------------------------------------------------------------- 1 | Multi-objective problems 2 | ===================================== 3 | 4 | Constrained 5 | ------------------------------------------------ 6 | 7 | .. automodule:: jmetal.problem.multiobjective.constrained 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | 12 | Unconstrained 13 | -------------------------------------------------- 14 | 15 | .. automodule:: jmetal.problem.multiobjective.unconstrained 16 | :members: 17 | :undoc-members: 18 | :show-inheritance: 19 | 20 | ZDT 21 | ---------------------------------------- 22 | 23 | .. automodule:: jmetal.problem.multiobjective.zdt 24 | :members: 25 | :undoc-members: 26 | :show-inheritance: 27 | 28 | DTLZ 29 | ----------------------------------------- 30 | 31 | .. automodule:: jmetal.problem.multiobjective.dtlz 32 | :members: 33 | :undoc-members: 34 | :show-inheritance: 35 | 36 | FDA 37 | ---------------------------------------- 38 | 39 | .. automodule:: jmetal.problem.multiobjective.fda 40 | :members: 41 | :undoc-members: 42 | :show-inheritance: 43 | 44 | LIRCMOP 45 | -------------------------------------------- 46 | 47 | .. automodule:: jmetal.problem.multiobjective.lircmop 48 | :members: 49 | :undoc-members: 50 | :show-inheritance: 51 | 52 | LZ09 53 | ----------------------------------------- 54 | 55 | .. automodule:: jmetal.problem.multiobjective.lz09 56 | :members: 57 | :undoc-members: 58 | :show-inheritance: 59 | -------------------------------------------------------------------------------- /docs/source/api/problem/singleobjective.rst: -------------------------------------------------------------------------------- 1 | Single-objective problems 2 | ====================================== 3 | 4 | Unconstrained 5 | --------------------------------------------------- 6 | 7 | .. automodule:: jmetal.problem.singleobjective.unconstrained 8 | :members: 9 | :undoc-members: 10 | :show-inheritance: 11 | 12 | Knapsack 13 | ---------------------------------------------- 14 | 15 | .. automodule:: jmetal.problem.singleobjective.knapsack 16 | :members: 17 | :undoc-members: 18 | :show-inheritance: 19 | 20 | TSP 21 | ----------------------------------------- 22 | 23 | .. automodule:: jmetal.problem.singleobjective.tsp 24 | :members: 25 | :undoc-members: 26 | :show-inheritance: 27 | -------------------------------------------------------------------------------- /docs/source/jmetalpy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/docs/source/jmetalpy.png -------------------------------------------------------------------------------- /docs/source/multiobjective.algorithms.rst: -------------------------------------------------------------------------------- 1 | Multi-objective algorithms 2 | ================================================ 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: List of multi-objective algorithms: 7 | 8 | api/algorithm/multiobjective/ea 9 | api/algorithm/multiobjective/pso -------------------------------------------------------------------------------- /docs/source/operators.rst: -------------------------------------------------------------------------------- 1 | Operators 2 | ================================================ 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: List of genetic operators: 7 | 8 | api/operator/crossover 9 | api/operator/mutation 10 | api/operator/selection -------------------------------------------------------------------------------- /docs/source/problems.rst: -------------------------------------------------------------------------------- 1 | Problems 2 | ================== 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: Benchmarking problems: 7 | 8 | api/problem/multiobjective 9 | api/problem/singleobjective -------------------------------------------------------------------------------- /docs/source/singleobjective.algorithms.rst: -------------------------------------------------------------------------------- 1 | Single-objective algorithms 2 | ================================================ 3 | 4 | .. toctree:: 5 | :maxdepth: 2 6 | :caption: List of single-objective algorithms: 7 | 8 | api/algorithm/singleobjective/evolution.strategy 9 | api/algorithm/singleobjective/genetic.algorithm 10 | api/algorithm/singleobjective/local.search 11 | api/algorithm/singleobjective/simulated.annealing -------------------------------------------------------------------------------- /docs/source/tutorials.rst: -------------------------------------------------------------------------------- 1 | Getting started 2 | ================== 3 | 4 | .. toctree:: 5 | :maxdepth: 1 6 | :caption: First steps: 7 | 8 | tutorials/problem 9 | tutorials/observer 10 | tutorials/evaluator 11 | tutorials/visualization 12 | 13 | .. toctree:: 14 | :maxdepth: 1 15 | :caption: Laboratory: 16 | 17 | tutorials/experiment 18 | tutorials/statistics 19 | -------------------------------------------------------------------------------- /docs/source/tutorials/statistics.rst: -------------------------------------------------------------------------------- 1 | Statistical analysis 2 | ======================== 3 | 4 | ToDo -------------------------------------------------------------------------------- /examples/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/__init__.py -------------------------------------------------------------------------------- /examples/experiment/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/experiment/__init__.py -------------------------------------------------------------------------------- /examples/experiment/generateKolmogorovSmirnovLatexTables.py: -------------------------------------------------------------------------------- 1 | from jmetal.lab.experiment import ( 2 | generate_kolmogorov_smirnov_latex_tables, 3 | ) 4 | 5 | if __name__ == "__main__": 6 | """ 7 | Generate Latex tables with the results of the Kolmogorov-Smirnov test. The last algorithm is considered as 8 | the reference algorithm, and the cells include a symbol with the p-value < 0.05. 9 | """ 10 | generate_kolmogorov_smirnov_latex_tables(filename="QualityIndicatorSummary.csv") 11 | -------------------------------------------------------------------------------- /examples/experiment/generateMedianAndWilcoxonLatexTables.py: -------------------------------------------------------------------------------- 1 | from jmetal.lab.experiment import ( 2 | generate_median_and_wilcoxon_latex_tables, 3 | ) 4 | 5 | if __name__ == "__main__": 6 | """ 7 | Generate Latex tables including medians and IQRs. Additionally, the last algorithm is considered as the reference 8 | algorithm, and the cells include a symbol indicating whether the differences with the reference algorithm 9 | are significant or not according to the Wilcoxon rank sum test. 10 | """ 11 | generate_median_and_wilcoxon_latex_tables(filename="QualityIndicatorSummary.csv") 12 | -------------------------------------------------------------------------------- /examples/multiobjective/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/gde3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/gde3/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/gde3/dynamic_gde3.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.gde3 import DynamicGDE3 2 | from jmetal.problem.multiobjective.fda import FDA2 3 | from jmetal.util.observable import TimeCounter 4 | from jmetal.util.observer import PlotFrontToFileObserver, WriteFrontToFileObserver 5 | from jmetal.util.termination_criterion import StoppingByEvaluations 6 | 7 | if __name__ == "__main__": 8 | problem = FDA2() 9 | 10 | time_counter = TimeCounter(delay=1) 11 | time_counter.observable.register(problem) 12 | time_counter.start() 13 | 14 | algorithm = DynamicGDE3( 15 | problem=problem, 16 | population_size=100, 17 | cr=0.5, 18 | f=0.5, 19 | termination_criterion=StoppingByEvaluations(max_evaluations=500), 20 | ) 21 | 22 | algorithm.observable.register(observer=PlotFrontToFileObserver("dynamic_front_vis")) 23 | algorithm.observable.register(observer=WriteFrontToFileObserver("dynamic_front")) 24 | 25 | algorithm.run() 26 | -------------------------------------------------------------------------------- /examples/multiobjective/gde3/gde3_spark_evaluator.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.gde3 import GDE3 2 | from jmetal.problem.multiobjective.zdt import ZDT1Modified 3 | from jmetal.util.evaluator import SparkEvaluator 4 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 5 | from jmetal.util.termination_criterion import StoppingByEvaluations 6 | 7 | if __name__ == "__main__": 8 | problem = ZDT1Modified() 9 | 10 | algorithm = GDE3( 11 | problem=problem, 12 | population_size=10, 13 | cr=0.5, 14 | f=0.5, 15 | termination_criterion=StoppingByEvaluations(max_evaluations=100), 16 | population_evaluator=SparkEvaluator(), 17 | ) 18 | 19 | algorithm.run() 20 | front = algorithm.result() 21 | 22 | # Save results to file 23 | print_function_values_to_file(front, "FUN." + algorithm.get_name() + "." + problem.name()) 24 | print_variables_to_file(front, "VAR." + algorithm.get_name() + "." + problem.name()) 25 | 26 | print(f"Algorithm (continuous problem): {algorithm.get_name()}") 27 | print(f"Problem: {problem.name()}") 28 | print(f"Computing time: {algorithm.total_computing_time}") 29 | -------------------------------------------------------------------------------- /examples/multiobjective/gde3/gde3_zdt1.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.gde3 import GDE3 2 | from jmetal.problem import ZDT1 3 | from jmetal.util.solution import ( 4 | print_function_values_to_file, 5 | print_variables_to_file, 6 | read_solutions, 7 | ) 8 | from jmetal.util.termination_criterion import StoppingByKeyboard 9 | 10 | if __name__ == "__main__": 11 | problem = ZDT1() 12 | problem.reference_front = read_solutions(filename="resources/reference_front/ZDT1.pf") 13 | 14 | algorithm = GDE3(problem=problem, population_size=100, cr=0.5, f=0.5, termination_criterion=StoppingByKeyboard()) 15 | 16 | algorithm.run() 17 | front = algorithm.result() 18 | 19 | # Save results to file 20 | print_function_values_to_file(front, "FUN." + algorithm.label) 21 | print_variables_to_file(front, "VAR." + algorithm.label) 22 | 23 | print(f"Algorithm: {algorithm.get_name()}") 24 | print(f"Problem: {problem.name()}") 25 | print(f"Computing time: {algorithm.total_computing_time}") 26 | -------------------------------------------------------------------------------- /examples/multiobjective/gde3/ggde3_zdt2.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.gde3 import GDE3 2 | from jmetal.problem import ZDT2 3 | from jmetal.util.comparator import GDominanceComparator 4 | from jmetal.util.solution import ( 5 | print_function_values_to_file, 6 | print_variables_to_file, 7 | read_solutions, 8 | ) 9 | from jmetal.util.termination_criterion import StoppingByEvaluations 10 | 11 | if __name__ == "__main__": 12 | problem = ZDT2() 13 | problem.reference_front = read_solutions(filename="resources/reference_front/ZDT2.pf") 14 | 15 | max_evaluations = 25000 16 | reference_point = [0.2, 0.5] 17 | 18 | algorithm = GDE3( 19 | problem=problem, 20 | population_size=100, 21 | cr=0.5, 22 | f=0.5, 23 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 24 | dominance_comparator=GDominanceComparator(reference_point), 25 | ) 26 | 27 | algorithm.run() 28 | front = algorithm.result() 29 | 30 | # Save results to file 31 | print_function_values_to_file(front, "FUN." + algorithm.label) 32 | print_variables_to_file(front, "VAR." + algorithm.label) 33 | 34 | print(f"Algorithm: {algorithm.get_name()}") 35 | print(f"Problem: {problem.name()}") 36 | print(f"Computing time: {algorithm.total_computing_time}") 37 | -------------------------------------------------------------------------------- /examples/multiobjective/hype/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/hype/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/hype/hype_zdt1.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.hype import HYPE 2 | from jmetal.core.solution import FloatSolution 3 | from jmetal.operator.crossover import SBXCrossover 4 | from jmetal.operator.mutation import PolynomialMutation 5 | from jmetal.problem import ZDT1 6 | from jmetal.util.solution import ( 7 | print_function_values_to_file, 8 | print_variables_to_file, 9 | read_solutions, 10 | ) 11 | from jmetal.util.termination_criterion import StoppingByEvaluations 12 | 13 | if __name__ == "__main__": 14 | problem = ZDT1() 15 | problem.reference_front = read_solutions(filename="resources/reference_front/ZDT1.pf") 16 | 17 | reference_point = FloatSolution( 18 | [0], 19 | [1], 20 | problem.number_of_objectives(), 21 | ) 22 | reference_point.objectives = [1.0, 1.0] # Mandatory for HYPE 23 | 24 | algorithm = HYPE( 25 | problem=problem, 26 | reference_point=reference_point, 27 | population_size=100, 28 | offspring_population_size=100, 29 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 30 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 31 | termination_criterion=StoppingByEvaluations(25000), 32 | ) 33 | 34 | algorithm.run() 35 | front = algorithm.result() 36 | 37 | # Save results to file 38 | print_function_values_to_file(front, "FUN." + algorithm.label) 39 | print_variables_to_file(front, "VAR." + algorithm.label) 40 | 41 | print(f"Algorithm: {algorithm.get_name()}") 42 | print(f"Problem: {problem.name()}") 43 | print(f"Computing time: {algorithm.total_computing_time}") 44 | -------------------------------------------------------------------------------- /examples/multiobjective/ibea/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/ibea/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/ibea/ibea_zdt1.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.ibea import IBEA 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem import ZDT1 5 | from jmetal.util.solution import ( 6 | print_function_values_to_file, 7 | print_variables_to_file, 8 | read_solutions, 9 | ) 10 | from jmetal.util.termination_criterion import StoppingByEvaluations 11 | 12 | if __name__ == "__main__": 13 | problem = ZDT1() 14 | problem.reference_front = read_solutions(filename="resources/reference_front/ZDT1.pf") 15 | 16 | algorithm = IBEA( 17 | problem=problem, 18 | kappa=1.0, 19 | population_size=100, 20 | offspring_population_size=100, 21 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 22 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 23 | termination_criterion=StoppingByEvaluations(max_evaluations=25000), 24 | ) 25 | 26 | algorithm.run() 27 | front = algorithm.result() 28 | 29 | # Save results to file 30 | print_function_values_to_file(front, "FUN." + algorithm.label) 31 | print_variables_to_file(front, "VAR." + algorithm.label) 32 | 33 | print(f"Algorithm: {algorithm.get_name()}") 34 | print(f"Problem: {problem.name()}") 35 | print(f"Computing time: {algorithm.total_computing_time}") 36 | -------------------------------------------------------------------------------- /examples/multiobjective/mocell/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/mocell/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/mocell/mocell_zdt1.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.mocell import MOCell 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem import ZDT1 5 | from jmetal.util.archive import CrowdingDistanceArchive 6 | from jmetal.util.neighborhood import C9 7 | from jmetal.util.solution import ( 8 | print_function_values_to_file, 9 | print_variables_to_file, 10 | read_solutions, 11 | ) 12 | from jmetal.util.termination_criterion import StoppingByEvaluations 13 | 14 | if __name__ == "__main__": 15 | problem = ZDT1() 16 | problem.reference_front = read_solutions(filename="resources/reference_front/ZDT1.pf") 17 | 18 | max_evaluations = 25000 19 | algorithm = MOCell( 20 | problem=problem, 21 | population_size=100, 22 | neighborhood=C9(10, 10), 23 | archive=CrowdingDistanceArchive(100), 24 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 25 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 26 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 27 | ) 28 | 29 | algorithm.run() 30 | front = algorithm.result() 31 | 32 | # Save results to file 33 | print_function_values_to_file(front, "FUN." + algorithm.label) 34 | print_variables_to_file(front, "VAR." + algorithm.label) 35 | 36 | print(f"Algorithm: {algorithm.get_name()}") 37 | print(f"Problem: {problem.name()}") 38 | print(f"Computing time: {algorithm.total_computing_time}") 39 | -------------------------------------------------------------------------------- /examples/multiobjective/moead/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/moead/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/nsgaii/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/distributed_nsgaii_with_dask.py: -------------------------------------------------------------------------------- 1 | from dask.distributed import Client 2 | from distributed import LocalCluster 3 | 4 | from jmetal.algorithm.multiobjective.nsgaii import DistributedNSGAII 5 | from jmetal.operator.crossover import SBXCrossover 6 | from jmetal.operator.mutation import PolynomialMutation 7 | from jmetal.problem.multiobjective.zdt import ZDT1Modified 8 | from jmetal.util.termination_criterion import StoppingByEvaluations 9 | 10 | """ 11 | Distributed (asynchronous) version of NSGA-II using Dask. 12 | """ 13 | 14 | if __name__ == "__main__": 15 | problem = ZDT1Modified() 16 | 17 | # setup Dask client 18 | client = Client(LocalCluster(n_workers=10)) 19 | 20 | ncores = sum(client.ncores().values()) 21 | print(f"{ncores} cores available") 22 | 23 | # creates the algorithm 24 | max_evaluations = 25000 25 | 26 | algorithm = DistributedNSGAII( 27 | problem=problem, 28 | population_size=100, 29 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 30 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 31 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 32 | number_of_cores=ncores, 33 | client=client, 34 | ) 35 | 36 | algorithm.run() 37 | front = algorithm.result() 38 | 39 | print(f"Algorithm: {algorithm.get_name()}") 40 | print(f"Problem: {problem.name()}") 41 | print(f"Computing time: {algorithm.total_computing_time}") 42 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/distributed_nsgaii_with_dask_evaluator.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import NSGAII 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem.multiobjective.zdt import ZDT1Modified 5 | from jmetal.util.evaluator import DaskEvaluator 6 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 7 | from jmetal.util.termination_criterion import StoppingByEvaluations 8 | 9 | """ 10 | Distributed (synchronous) version of NSGA-II using Dask. 11 | """ 12 | if __name__ == "__main__": 13 | problem = ZDT1Modified() 14 | 15 | max_evaluations = 100 16 | 17 | algorithm = NSGAII( 18 | problem=problem, 19 | population_size=100, 20 | offspring_population_size=100, 21 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 22 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 23 | population_evaluator=DaskEvaluator(number_of_cores=8), 24 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 25 | ) 26 | 27 | algorithm.run() 28 | front = algorithm.result() 29 | 30 | # Save results to file 31 | print_function_values_to_file(front, "FUN." + algorithm.label) 32 | print_variables_to_file(front, "VAR." + algorithm.label) 33 | 34 | print(f"Algorithm: {algorithm.get_name()}") 35 | print(f"Problem: {problem.name()}") 36 | print(f"Computing time: {algorithm.total_computing_time}") 37 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/distributed_nsgaii_with_spark_evaluator.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import NSGAII 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem.multiobjective.zdt import ZDT1Modified 5 | from jmetal.util.evaluator import SparkEvaluator 6 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 7 | from jmetal.util.termination_criterion import StoppingByEvaluations 8 | 9 | """ 10 | Distributed (synchronous) version of NSGA-II using Apache Spark. 11 | """ 12 | 13 | if __name__ == "__main__": 14 | problem = ZDT1Modified() 15 | 16 | max_evaluations = 100 17 | 18 | algorithm = NSGAII( 19 | problem=problem, 20 | population_size=10, 21 | offspring_population_size=10, 22 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20), 23 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 24 | population_evaluator=SparkEvaluator(), 25 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 26 | ) 27 | 28 | algorithm.run() 29 | front = algorithm.result() 30 | 31 | # Save results to file 32 | print_function_values_to_file(front, "FUN." + algorithm.label) 33 | print_variables_to_file(front, "VAR." + algorithm.label) 34 | 35 | print(f"Algorithm: {algorithm.get_name()}") 36 | print(f"Problem: {problem.get_name()}") 37 | print(f"Computing time: {algorithm.total_computing_time}") 38 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/dynamic_nsgaii_solving_fda2.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import DynamicNSGAII 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem.multiobjective.fda import FDA2 5 | from jmetal.util.observable import TimeCounter 6 | from jmetal.util.observer import PlotFrontToFileObserver, WriteFrontToFileObserver 7 | from jmetal.util.termination_criterion import StoppingByEvaluations 8 | 9 | if __name__ == "__main__": 10 | problem = FDA2() 11 | 12 | time_counter = TimeCounter(delay=1) 13 | time_counter.observable.register(problem) 14 | time_counter.start() 15 | 16 | max_evaluations = 25000 17 | algorithm = DynamicNSGAII( 18 | problem=problem, 19 | population_size=100, 20 | offspring_population_size=100, 21 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20), 22 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 23 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 24 | ) 25 | 26 | algorithm.observable.register(observer=PlotFrontToFileObserver("dynamic_front_vis")) 27 | algorithm.observable.register(observer=WriteFrontToFileObserver("dynamic_front")) 28 | 29 | algorithm.run() 30 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/nsgaii_solving_ZDT5.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import NSGAII 2 | from jmetal.operator.crossover import SPXCrossover 3 | from jmetal.operator.mutation import BitFlipMutation 4 | from jmetal.problem import ZDT5 5 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 6 | from jmetal.util.termination_criterion import StoppingByEvaluations 7 | 8 | """ 9 | Program to configure and run the NSGA-II algorithm configured to solve a binary problem, OneZeroMax, which is 10 | multiobjective version of the ONE_MAX problem where the numbers of 1s and 0s have to be maximized at the same time. 11 | """ 12 | 13 | if __name__ == "__main__": 14 | problem = ZDT5() 15 | 16 | max_evaluations = 30000 17 | algorithm = NSGAII( 18 | problem=problem, 19 | population_size=100, 20 | offspring_population_size=100, 21 | mutation=BitFlipMutation(probability=1.0 / problem.total_number_of_bits()), 22 | crossover=SPXCrossover(probability=1.0), 23 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 24 | ) 25 | 26 | algorithm.run() 27 | front = algorithm.result() 28 | 29 | # Save results to file 30 | print_function_values_to_file(front, "FUN." + algorithm.label) 31 | print_variables_to_file(front, "VAR." + algorithm.label) 32 | 33 | print(f"Algorithm: {algorithm.get_name()}") 34 | print(f"Problem: {problem.name()}") 35 | print(f"Computing time: {algorithm.total_computing_time}") 36 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/nsgaii_solving_binary_problem.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import NSGAII 2 | from jmetal.operator.crossover import SPXCrossover 3 | from jmetal.operator.mutation import BitFlipMutation 4 | from jmetal.problem.multiobjective.unconstrained import OneZeroMax 5 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 6 | from jmetal.util.termination_criterion import StoppingByEvaluations 7 | 8 | """ 9 | Program to configure and run the NSGA-II algorithm configured to solve a binary problem, OneZeroMax, which is 10 | multiobjective version of the ONE_MAX problem where the numbers of 1s and 0s have to be maximized at the same time. 11 | """ 12 | 13 | if __name__ == "__main__": 14 | binary_string_length = 512 15 | problem = OneZeroMax(binary_string_length) 16 | 17 | max_evaluations = 30000 18 | algorithm = NSGAII( 19 | problem=problem, 20 | population_size=100, 21 | offspring_population_size=100, 22 | mutation=BitFlipMutation(probability=1.0 / binary_string_length), 23 | crossover=SPXCrossover(probability=1.0), 24 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 25 | ) 26 | 27 | algorithm.run() 28 | front = algorithm.result() 29 | 30 | # Save results to file 31 | print_function_values_to_file(front, "FUN." + algorithm.label) 32 | print_variables_to_file(front, "VAR." + algorithm.label) 33 | 34 | print(f"Algorithm: {algorithm.get_name()}") 35 | print(f"Problem: {problem.name()}") 36 | print(f"Computing time: {algorithm.total_computing_time}") 37 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/nsgaii_solving_constrained_srinivas_problem.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective import NSGAII 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem import Srinivas 5 | from jmetal.util.comparator import DominanceWithConstraintsComparator 6 | from jmetal.util.solution import ( 7 | print_function_values_to_file, 8 | print_variables_to_file, 9 | ) 10 | from jmetal.util.termination_criterion import StoppingByEvaluations 11 | 12 | if __name__ == "__main__": 13 | problem = Srinivas() 14 | 15 | max_evaluations = 25000 16 | algorithm = NSGAII( 17 | problem=problem, 18 | population_size=100, 19 | offspring_population_size=100, 20 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 21 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 22 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 23 | dominance_comparator=DominanceWithConstraintsComparator(), 24 | ) 25 | 26 | algorithm.run() 27 | front = algorithm.result() 28 | 29 | # Save results to file 30 | print_function_values_to_file(front, "FUN." + algorithm.label) 31 | print_variables_to_file(front, "VAR." + algorithm.label) 32 | 33 | print(f"Algorithm: {algorithm.get_name()}") 34 | print(f"Problem: {problem.name()}") 35 | print(f"Computing time: {algorithm.total_computing_time}") 36 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/nsgaii_standard_settings.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import NSGAII 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem import ZDT4 5 | from jmetal.util.solution import ( 6 | get_non_dominated_solutions, 7 | print_function_values_to_file, 8 | print_variables_to_file, read_solutions, 9 | ) 10 | from jmetal.util.termination_criterion import StoppingByEvaluations 11 | 12 | """ 13 | Program to configure and run the NSGA-II algorithm configured with standard settings. 14 | """ 15 | if __name__ == "__main__": 16 | problem = ZDT4() 17 | 18 | problem.reference_front = read_solutions(filename="resources/reference_front/ZDT4.pf") 19 | 20 | max_evaluations = 25000 21 | algorithm = NSGAII( 22 | problem=problem, 23 | population_size=100, 24 | offspring_population_size=100, 25 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 26 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 27 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 28 | ) 29 | 30 | algorithm.run() 31 | 32 | front = get_non_dominated_solutions(algorithm.result()) 33 | 34 | # Save results to file 35 | print_function_values_to_file(front, "FUN." + algorithm.label) 36 | print_variables_to_file(front, "VAR." + algorithm.label) 37 | 38 | print(f"Algorithm: {algorithm.get_name()}") 39 | print(f"Problem: {problem.name()}") 40 | print(f"Computing time: {algorithm.total_computing_time}") 41 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/nsgaii_steady_state.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import NSGAII 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem import ZDT1 5 | from jmetal.util.solution import ( 6 | get_non_dominated_solutions, 7 | print_function_values_to_file, 8 | print_variables_to_file, 9 | read_solutions, 10 | ) 11 | from jmetal.util.termination_criterion import StoppingByEvaluations 12 | 13 | """ 14 | Program to configure and run a steady-state version of the NSGA-II algorithm (configured with standard settings). 15 | """ 16 | 17 | if __name__ == "__main__": 18 | problem = ZDT1() 19 | problem.reference_front = read_solutions(filename="resources/reference_front/ZDT1.pf") 20 | 21 | max_evaluations = 25000 22 | algorithm = NSGAII( 23 | problem=problem, 24 | population_size=100, 25 | offspring_population_size=1, 26 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 27 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 28 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 29 | ) 30 | 31 | algorithm.run() 32 | front = get_non_dominated_solutions(algorithm.result()) 33 | 34 | # Save results to file 35 | print_function_values_to_file(front, "FUN." + algorithm.label) 36 | print_variables_to_file(front, "VAR." + algorithm.label) 37 | 38 | print(f"Algorithm: {algorithm.get_name()}") 39 | print(f"Problem: {problem.name()}") 40 | print(f"Computing time: {algorithm.total_computing_time}") 41 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaii/parallel_nsgaii_with_multiprocess_evaluator.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import NSGAII 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem.multiobjective.zdt import ZDT1Modified 5 | from jmetal.util.evaluator import MultiprocessEvaluator 6 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 7 | from jmetal.util.termination_criterion import StoppingByEvaluations 8 | 9 | if __name__ == "__main__": 10 | problem = ZDT1Modified() 11 | 12 | max_evaluations = 100 13 | 14 | algorithm = NSGAII( 15 | population_evaluator=MultiprocessEvaluator(8), 16 | problem=problem, 17 | population_size=10, 18 | offspring_population_size=10, 19 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 20 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 21 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 22 | ) 23 | 24 | algorithm.run() 25 | front = algorithm.result() 26 | 27 | # Save results to file 28 | print_function_values_to_file(front, "FUN." + algorithm.label) 29 | print_variables_to_file(front, "VAR." + algorithm.label) 30 | 31 | print(f"Algorithm: {algorithm.get_name()}") 32 | print(f"Problem: {problem.name()}") 33 | print(f"Computing time: {algorithm.total_computing_time}") 34 | -------------------------------------------------------------------------------- /examples/multiobjective/nsgaiii/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/nsgaiii/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/nsgaiii/nsgaiii_dtlz2.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaiii import ( 2 | NSGAIII, 3 | UniformReferenceDirectionFactory, 4 | ) 5 | from jmetal.operator.crossover import SBXCrossover 6 | from jmetal.operator.mutation import PolynomialMutation 7 | from jmetal.problem import DTLZ2 8 | from jmetal.util.solution import ( 9 | get_non_dominated_solutions, 10 | print_function_values_to_file, 11 | print_variables_to_file, 12 | read_solutions, 13 | ) 14 | from jmetal.util.termination_criterion import StoppingByEvaluations 15 | 16 | if __name__ == "__main__": 17 | problem = DTLZ2() 18 | reference_front = read_solutions(filename="resources/reference_front/DTLZ2.3D.pf") 19 | 20 | max_evaluations = 25000 21 | 22 | algorithm = NSGAIII( 23 | problem=problem, 24 | population_size=92, 25 | reference_directions=UniformReferenceDirectionFactory(3, n_points=91), 26 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 27 | crossover=SBXCrossover(probability=1.0, distribution_index=30), 28 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 29 | ) 30 | 31 | algorithm.run() 32 | front = get_non_dominated_solutions(algorithm.result()) 33 | 34 | # Save results to file 35 | print_function_values_to_file(front, "FUN." + algorithm.label) 36 | print_variables_to_file(front, "VAR." + algorithm.label) 37 | 38 | print(f"Algorithm: {algorithm.get_name()}") 39 | print(f"Problem: {problem.name()}") 40 | print(f"Computing time: {algorithm.total_computing_time}") 41 | -------------------------------------------------------------------------------- /examples/multiobjective/omopso/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/omopso/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/preferences/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/preferences/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/random_search/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/random_search/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/random_search/random_search_zdt1.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.random_search import RandomSearch 2 | from jmetal.problem import ZDT1 3 | from jmetal.util.solution import ( 4 | print_function_values_to_file, 5 | print_variables_to_file, 6 | ) 7 | from jmetal.util.termination_criterion import StoppingByEvaluations 8 | 9 | if __name__ == "__main__": 10 | problem = ZDT1() 11 | 12 | max_evaluations = 1000 13 | algorithm = RandomSearch( 14 | problem=problem, 15 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations) 16 | ) 17 | 18 | algorithm.run() 19 | front = algorithm.result() 20 | 21 | # Save results to file 22 | print_function_values_to_file(front, "FUN." + algorithm.label) 23 | print_variables_to_file(front, "VAR." + algorithm.label) 24 | 25 | print(f"Algorithm: {algorithm.get_name()}") 26 | print(f"Problem: {problem.name()}") 27 | print(f"Computing time: {algorithm.total_computing_time}") 28 | -------------------------------------------------------------------------------- /examples/multiobjective/smpso/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/smpso/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/smpso/dynamic_smpso.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.smpso import DynamicSMPSO 2 | from jmetal.operator.mutation import PolynomialMutation 3 | from jmetal.problem.multiobjective.fda import FDA2 4 | from jmetal.util.archive import CrowdingDistanceArchive 5 | from jmetal.util.observable import TimeCounter 6 | from jmetal.util.observer import PlotFrontToFileObserver, WriteFrontToFileObserver 7 | from jmetal.util.termination_criterion import StoppingByEvaluations 8 | 9 | if __name__ == "__main__": 10 | problem = FDA2() 11 | 12 | time_counter = TimeCounter(delay=15) 13 | time_counter.observable.register(problem) 14 | time_counter.start() 15 | 16 | max_evaluations = 25000 17 | algorithm = DynamicSMPSO( 18 | problem=problem, 19 | swarm_size=100, 20 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20), 21 | leaders=CrowdingDistanceArchive(100), 22 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 23 | ) 24 | 25 | algorithm.observable.register(observer=PlotFrontToFileObserver("dynamic_front_vis")) 26 | algorithm.observable.register(observer=WriteFrontToFileObserver("dynamic_front")) 27 | 28 | algorithm.run() 29 | 30 | print(f"Algorithm: {algorithm.get_name()}") 31 | print(f"Problem: {problem.get_name()}") 32 | print(f"Computing time: {algorithm.total_computing_time}") 33 | -------------------------------------------------------------------------------- /examples/multiobjective/smpso/smpso_schaffer_on_the_fly.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.smpso import SMPSO 2 | from jmetal.core.problem import OnTheFlyFloatProblem 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.util.archive import CrowdingDistanceArchive 5 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 6 | from jmetal.util.termination_criterion import StoppingByEvaluations 7 | 8 | if __name__ == "__main__": 9 | # Defining problem Schaffer on the fly 10 | 11 | def f1(x: [float]): 12 | return x[0] * x[0] 13 | 14 | def f2(x: [float]): 15 | return (x[0] - 2) * (x[0] - 2) 16 | 17 | problem = OnTheFlyFloatProblem() 18 | problem.set_name("Schaffer").add_variable(-10000.0, 10000.0).add_function(f1).add_function(f2) 19 | 20 | max_evaluations = 25000 21 | 22 | algorithm = SMPSO( 23 | problem=problem, 24 | swarm_size=100, 25 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 26 | leaders=CrowdingDistanceArchive(100), 27 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 28 | ) 29 | 30 | algorithm.run() 31 | front = algorithm.result() 32 | 33 | # Save results to file 34 | print_function_values_to_file(front, "FUN." + algorithm.label) 35 | print_variables_to_file(front, "VAR." + algorithm.label) 36 | 37 | print(f"Algorithm: {algorithm.get_name()}") 38 | print(f"Problem: {problem.name()}") 39 | print(f"Computing time: {algorithm.total_computing_time}") 40 | -------------------------------------------------------------------------------- /examples/multiobjective/smpso/smpso_spark_evaluator.py: -------------------------------------------------------------------------------- 1 | 2 | from jmetal.algorithm.multiobjective.smpso import SMPSO 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.util.archive import CrowdingDistanceArchive 5 | from jmetal.util.evaluator import SparkEvaluator 6 | from jmetal.util.solution import ( 7 | print_function_values_to_file, 8 | print_variables_to_file, 9 | read_solutions, 10 | ) 11 | from jmetal.util.termination_criterion import StoppingByEvaluations 12 | 13 | from src.jmetal.problem.multiobjective.zdt import ZDT1Modified 14 | 15 | if __name__ == "__main__": 16 | problem = ZDT1Modified() 17 | problem.reference_front = read_solutions(filename="resources/reference_front/ZDT1.pf") 18 | 19 | max_evaluations = 100 20 | algorithm = SMPSO( 21 | problem=problem, 22 | swarm_size=10, 23 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 24 | leaders=CrowdingDistanceArchive(10), 25 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 26 | swarm_evaluator=SparkEvaluator(), 27 | ) 28 | 29 | algorithm.run() 30 | front = algorithm.result() 31 | 32 | # Save results to file 33 | print_function_values_to_file(front, "FUN." + algorithm.get_name() + "." + problem.get_name()) 34 | print_variables_to_file(front, "VAR." + algorithm.get_name() + "." + problem.get_name()) 35 | 36 | print(f"Algorithm: {algorithm.get_name()}") 37 | print(f"Problem: {problem.name()}") 38 | print(f"Computing time: {algorithm.total_computing_time}") 39 | -------------------------------------------------------------------------------- /examples/multiobjective/smpso/smpso_srinivas.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.smpso import SMPSO 2 | from jmetal.operator.mutation import PolynomialMutation 3 | from jmetal.problem import Srinivas 4 | from jmetal.util.archive import CrowdingDistanceArchive 5 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 6 | from jmetal.util.solution import read_solutions 7 | from jmetal.util.termination_criterion import StoppingByEvaluations 8 | 9 | if __name__ == '__main__': 10 | problem = Srinivas() 11 | problem.reference_front = read_solutions(filename='resources/reference_front/Srinivas.pf') 12 | 13 | max_evaluations = 25000 14 | algorithm = SMPSO( 15 | problem=problem, 16 | swarm_size=100, 17 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 18 | leaders=CrowdingDistanceArchive(100), 19 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations) 20 | ) 21 | 22 | algorithm.run() 23 | front = algorithm.result() 24 | 25 | # Save results to file 26 | print_function_values_to_file(front, 'FUN.' + algorithm.label) 27 | print_variables_to_file(front, 'VAR.'+ algorithm.label) 28 | 29 | print(f'Algorithm: ${algorithm.get_name()}') 30 | print(f'Problem: ${problem.name()}') 31 | print(f'Computing time: ${algorithm.total_computing_time}') 32 | -------------------------------------------------------------------------------- /examples/multiobjective/smpso/smpso_tanaka.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.smpso import SMPSO 2 | from jmetal.operator.mutation import PolynomialMutation 3 | from jmetal.problem import Tanaka 4 | from jmetal.util.archive import CrowdingDistanceArchive 5 | from jmetal.util.comparator import DominanceWithConstraintsComparator 6 | from jmetal.util.solution import ( 7 | print_function_values_to_file, 8 | print_variables_to_file, 9 | read_solutions, 10 | ) 11 | from jmetal.util.termination_criterion import StoppingByEvaluations 12 | 13 | if __name__ == "__main__": 14 | problem = Tanaka() 15 | reference_front = read_solutions(filename="resources/reference_front/Tanaka.pf") 16 | 17 | max_evaluations = 25000 18 | algorithm = SMPSO( 19 | problem=problem, 20 | swarm_size=100, 21 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 22 | leaders=CrowdingDistanceArchive(100, dominance_comparator = DominanceWithConstraintsComparator()), 23 | dominance_comparator=DominanceWithConstraintsComparator(), 24 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 25 | ) 26 | 27 | algorithm.run() 28 | front = algorithm.result() 29 | 30 | # Save results to file 31 | print_function_values_to_file(front, "FUN." + algorithm.label) 32 | print_variables_to_file(front, "VAR." + algorithm.label) 33 | 34 | print(f"Algorithm: {algorithm.get_name()}") 35 | print(f"Problem: {problem.name()}") 36 | print(f"Computing time: {algorithm.total_computing_time}") 37 | -------------------------------------------------------------------------------- /examples/multiobjective/smpso/smpso_zdt4.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.smpso import SMPSO 2 | from jmetal.operator.mutation import PolynomialMutation 3 | from jmetal.problem import ZDT4 4 | from jmetal.util.archive import CrowdingDistanceArchive 5 | from jmetal.util.solution import ( 6 | print_function_values_to_file, 7 | print_variables_to_file, 8 | ) 9 | from jmetal.util.termination_criterion import StoppingByEvaluations 10 | 11 | if __name__ == "__main__": 12 | problem = ZDT4() 13 | 14 | max_evaluations = 25000 15 | algorithm = SMPSO( 16 | problem=problem, 17 | swarm_size=100, 18 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 19 | leaders=CrowdingDistanceArchive(100), 20 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 21 | ) 22 | 23 | algorithm.run() 24 | front = algorithm.result() 25 | 26 | # Save results to file 27 | print_function_values_to_file(front, "FUN." + algorithm.label) 28 | print_variables_to_file(front, "VAR." + algorithm.label) 29 | 30 | print(f"Algorithm: {algorithm.get_name()}") 31 | print(f"Problem: {problem.name()}") 32 | print(f"Computing time: {algorithm.total_computing_time}") 33 | -------------------------------------------------------------------------------- /examples/multiobjective/spea2/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/multiobjective/spea2/__init__.py -------------------------------------------------------------------------------- /examples/multiobjective/spea2/gspea2_zdt1.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.spea2 import SPEA2 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem import ZDT1 5 | from jmetal.util.comparator import GDominanceComparator 6 | from jmetal.util.solution import ( 7 | print_function_values_to_file, 8 | print_variables_to_file, 9 | ) 10 | from jmetal.util.termination_criterion import StoppingByEvaluations 11 | 12 | if __name__ == "__main__": 13 | problem = ZDT1() 14 | 15 | reference_point = [0.4, 0.6] 16 | 17 | max_evaluations = 25000 18 | algorithm = SPEA2( 19 | problem=problem, 20 | population_size=40, 21 | offspring_population_size=40, 22 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 23 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 24 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 25 | dominance_comparator=GDominanceComparator(reference_point), 26 | ) 27 | 28 | algorithm.run() 29 | front = algorithm.result() 30 | 31 | # Save results to file 32 | print_function_values_to_file(front, "FUN." + algorithm.label) 33 | print_variables_to_file(front, "VAR." + algorithm.label) 34 | 35 | print(f"Algorithm: {algorithm.get_name()}") 36 | print(f"Problem: {problem.name()}") 37 | print(f"Computing time: {algorithm.total_computing_time}") 38 | -------------------------------------------------------------------------------- /examples/multiobjective/spea2/spea2_dtlz1.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.spea2 import SPEA2 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem import DTLZ2 5 | from jmetal.util.solution import ( 6 | print_function_values_to_file, 7 | print_variables_to_file, 8 | ) 9 | from jmetal.util.termination_criterion import StoppingByEvaluations 10 | 11 | if __name__ == "__main__": 12 | problem = DTLZ2() 13 | 14 | max_evaluations = 20000 15 | algorithm = SPEA2( 16 | problem=problem, 17 | population_size=20, 18 | offspring_population_size=20, 19 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 20 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 21 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 22 | ) 23 | 24 | algorithm.run() 25 | front = algorithm.result() 26 | 27 | # Save results to file 28 | print_function_values_to_file(front, "FUN." + algorithm.label) 29 | print_variables_to_file(front, "VAR." + algorithm.label) 30 | 31 | print(f"Algorithm: {algorithm.get_name()}") 32 | print(f"Problem: {problem.name()}") 33 | print(f"Computing time: {algorithm.total_computing_time}") 34 | -------------------------------------------------------------------------------- /examples/multiobjective/spea2/spea2_zdt1.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.spea2 import SPEA2 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem import ZDT1 5 | from jmetal.util.solution import ( 6 | print_function_values_to_file, 7 | print_variables_to_file, 8 | ) 9 | from jmetal.util.termination_criterion import StoppingByEvaluations 10 | 11 | if __name__ == "__main__": 12 | problem = ZDT1() 13 | 14 | max_evaluations = 20000 15 | algorithm = SPEA2( 16 | problem=problem, 17 | population_size=40, 18 | offspring_population_size=40, 19 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20), 20 | crossover=SBXCrossover(probability=1.0, distribution_index=20), 21 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 22 | ) 23 | 24 | algorithm.run() 25 | front = algorithm.result() 26 | 27 | # Save results to file 28 | print_function_values_to_file(front, "FUN." + algorithm.label) 29 | print_variables_to_file(front, "VAR." + algorithm.label) 30 | 31 | print(f"Algorithm: {algorithm.get_name()}") 32 | print(f"Problem: {problem.name()}") 33 | print(f"Computing time: {algorithm.total_computing_time}") 34 | -------------------------------------------------------------------------------- /examples/singleobjective/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/singleobjective/__init__.py -------------------------------------------------------------------------------- /examples/singleobjective/evolution_strategy/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/singleobjective/evolution_strategy/__init__.py -------------------------------------------------------------------------------- /examples/singleobjective/evolution_strategy/evolution_strategy_binary.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.evolution_strategy import EvolutionStrategy 2 | from jmetal.operator.mutation import BitFlipMutation 3 | from jmetal.problem import OneMax 4 | from jmetal.util.termination_criterion import StoppingByEvaluations 5 | 6 | if __name__ == "__main__": 7 | problem = OneMax(number_of_bits=512) 8 | 9 | algorithm = EvolutionStrategy( 10 | problem=problem, 11 | mu=1, 12 | lambda_=10, 13 | mutation=BitFlipMutation(probability=1.0 / problem.number_of_bits), 14 | elitist=True, 15 | termination_criterion=StoppingByEvaluations(max_evaluations=25000), 16 | ) 17 | 18 | algorithm.run() 19 | result = algorithm.result() 20 | 21 | print("Algorithm: " + algorithm.get_name()) 22 | print("Problem: " + problem.get_name()) 23 | print("Solution: " + str(result.variables[0])) 24 | print("Fitness: " + str(result.objectives[0])) 25 | print("Computing time: " + str(algorithm.total_computing_time)) 26 | -------------------------------------------------------------------------------- /examples/singleobjective/evolution_strategy/evolution_strategy_float.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.evolution_strategy import EvolutionStrategy 2 | from jmetal.operator.mutation import PolynomialMutation 3 | from jmetal.problem import Sphere 4 | from jmetal.util.termination_criterion import StoppingByEvaluations 5 | 6 | if __name__ == "__main__": 7 | problem = Sphere(number_of_variables=10) 8 | 9 | algorithm = EvolutionStrategy( 10 | problem=problem, 11 | mu=10, 12 | lambda_=10, 13 | elitist=True, 14 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables()), 15 | termination_criterion=StoppingByEvaluations(max_evaluations=25000), 16 | ) 17 | 18 | algorithm.run() 19 | result = algorithm.result() 20 | 21 | print("Algorithm: " + algorithm.get_name()) 22 | print("Problem: " + problem.name()) 23 | print("Solution: " + str(result.variables[0])) 24 | print("Fitness: " + str(result.objectives[0])) 25 | print("Computing time: " + str(algorithm.total_computing_time)) 26 | -------------------------------------------------------------------------------- /examples/singleobjective/evolution_strategy/evolution_strategy_permutation.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.evolution_strategy import EvolutionStrategy 2 | from jmetal.operator.mutation import PermutationSwapMutation 3 | from jmetal.problem.singleobjective.tsp import TSP 4 | from jmetal.util.termination_criterion import StoppingByTime 5 | 6 | if __name__ == "__main__": 7 | problem = TSP(instance="resources/TSP_instances/kroA100.tsp") 8 | 9 | print(f"Solving TSP problem with {problem.number_of_cities} cities.") 10 | 11 | algorithm = EvolutionStrategy( 12 | problem=problem, 13 | mu=1, 14 | lambda_=10, 15 | mutation=PermutationSwapMutation(1.0 / problem.number_of_cities), 16 | elitist=False, 17 | termination_criterion=StoppingByTime(10), 18 | ) 19 | 20 | algorithm.run() 21 | result = algorithm.result() 22 | 23 | print(f"Algorithm: {algorithm.get_name()}") 24 | print(f"Solution: {result.variables}") 25 | print(f"The shortest path length: {result.objectives[0]}") 26 | print(f"Computing time: {algorithm.total_computing_time}") 27 | print(f"Number of evaluations: {algorithm.evaluations}") 28 | -------------------------------------------------------------------------------- /examples/singleobjective/gde3/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/singleobjective/gde3/__init__.py -------------------------------------------------------------------------------- /examples/singleobjective/gde3/gde3_single_objective.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.gde3 import GDE3 2 | from jmetal.problem.singleobjective.unconstrained import Rastrigin 3 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 4 | from jmetal.util.termination_criterion import StoppingByEvaluations 5 | 6 | if __name__ == "__main__": 7 | problem = Rastrigin(10) 8 | 9 | algorithm = GDE3( 10 | problem=problem, population_size=100, cr=0.5, f=0.5, termination_criterion=StoppingByEvaluations(100000) 11 | ) 12 | 13 | algorithm.run() 14 | front = algorithm.result() 15 | 16 | # Save results to file 17 | print_function_values_to_file(front, "FUN." + algorithm.get_name() + "." + problem.get_name()) 18 | print_variables_to_file(front, "VAR." + algorithm.get_name() + "." + problem.get_name()) 19 | 20 | print("Algorithm (continuous problem): " + algorithm.get_name()) 21 | print("Problem: " + problem.get_name()) 22 | print("Computing time: " + str(algorithm.total_computing_time)) 23 | -------------------------------------------------------------------------------- /examples/singleobjective/genetic_algorithm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/singleobjective/genetic_algorithm/__init__.py -------------------------------------------------------------------------------- /examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_binary.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.genetic_algorithm import GeneticAlgorithm 2 | from jmetal.operator.crossover import SPXCrossover 3 | from jmetal.operator.mutation import BitFlipMutation 4 | from jmetal.problem import OneMax 5 | from jmetal.util.observer import PrintObjectivesObserver 6 | from jmetal.util.termination_criterion import StoppingByEvaluations 7 | 8 | if __name__ == "__main__": 9 | problem = OneMax(number_of_bits=512) 10 | 11 | algorithm = GeneticAlgorithm( 12 | problem=problem, 13 | population_size=40, 14 | offspring_population_size=40, 15 | mutation=BitFlipMutation(1.0 / problem.total_number_of_bits()), 16 | crossover=SPXCrossover(1.0), 17 | termination_criterion=StoppingByEvaluations(max_evaluations=20000), 18 | ) 19 | 20 | algorithm.observable.register(observer=PrintObjectivesObserver(100)) 21 | 22 | algorithm.run() 23 | result = algorithm.result() 24 | 25 | print("Algorithm: {}".format(algorithm.get_name())) 26 | print("Problem: {}".format(problem.name())) 27 | print("Solution: " + result.get_binary_string()) 28 | print("Fitness: " + str(result.objectives[0])) 29 | print("Computing time: {}".format(algorithm.total_computing_time)) 30 | -------------------------------------------------------------------------------- /examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_float.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.genetic_algorithm import GeneticAlgorithm 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem.singleobjective.unconstrained import Rastrigin 5 | from jmetal.util.termination_criterion import StoppingByEvaluations 6 | 7 | if __name__ == "__main__": 8 | problem = Rastrigin(10) 9 | 10 | algorithm = GeneticAlgorithm( 11 | problem=problem, 12 | population_size=100, 13 | offspring_population_size=1, 14 | mutation=PolynomialMutation(1.0 / problem.number_of_variables(), 20.0), 15 | crossover=SBXCrossover(0.9, 5.0), 16 | termination_criterion=StoppingByEvaluations(max_evaluations=150000), 17 | ) 18 | 19 | algorithm.run() 20 | result = algorithm.result() 21 | 22 | print("Algorithm: {}".format(algorithm.get_name())) 23 | print("Problem: {}".format(problem.name())) 24 | print("Solution: {}".format(result.variables)) 25 | print("Fitness: {}".format(result.objectives[0])) 26 | print("Computing time: {}".format(algorithm.total_computing_time)) 27 | -------------------------------------------------------------------------------- /examples/singleobjective/genetic_algorithm/generational_genetic_algorithm_tsp.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.genetic_algorithm import GeneticAlgorithm 2 | from jmetal.operator.crossover import PMXCrossover 3 | from jmetal.operator.mutation import PermutationSwapMutation 4 | from jmetal.problem.singleobjective.tsp import TSP 5 | from jmetal.util.observer import PrintObjectivesObserver 6 | from jmetal.util.termination_criterion import StoppingByEvaluations 7 | 8 | if __name__ == "__main__": 9 | problem = TSP(instance="resources/TSP_instances/kroA100.tsp") 10 | 11 | print("Cities: ", problem.number_of_variables()) 12 | 13 | algorithm = GeneticAlgorithm( 14 | problem=problem, 15 | population_size=100, 16 | offspring_population_size=100, 17 | mutation=PermutationSwapMutation(1.0 / problem.number_of_variables()), 18 | crossover=PMXCrossover(0.8), 19 | termination_criterion=StoppingByEvaluations(max_evaluations=250000), 20 | ) 21 | 22 | algorithm.observable.register(observer=PrintObjectivesObserver(5000)) 23 | 24 | algorithm.run() 25 | result = algorithm.result() 26 | 27 | print("Algorithm: {}".format(algorithm.get_name())) 28 | print("Problem: {}".format(problem.name())) 29 | print("Solution: {}".format(result.variables)) 30 | print("Fitness: {}".format(result.objectives[0])) 31 | print("Computing time: {}".format(algorithm.total_computing_time)) 32 | -------------------------------------------------------------------------------- /examples/singleobjective/genetic_algorithm/steady_state_genetic_algorithm_with_knapsack_problem.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.genetic_algorithm import GeneticAlgorithm 2 | from jmetal.operator.crossover import SPXCrossover 3 | from jmetal.operator.mutation import BitFlipMutation 4 | from jmetal.operator.selection import BinaryTournamentSelection 5 | from jmetal.problem.singleobjective.knapsack import Knapsack 6 | from jmetal.util.termination_criterion import StoppingByEvaluations 7 | 8 | if __name__ == "__main__": 9 | problem = Knapsack(from_file=True, filename="resources/Knapsack_instances/KnapsackInstance_50_0_0.kp") 10 | 11 | algorithm = GeneticAlgorithm( 12 | problem=problem, 13 | population_size=100, 14 | offspring_population_size=1, 15 | mutation=BitFlipMutation(probability=0.1), 16 | crossover=SPXCrossover(probability=0.8), 17 | selection=BinaryTournamentSelection(), 18 | termination_criterion=StoppingByEvaluations(max_evaluations=25000), 19 | ) 20 | 21 | algorithm.run() 22 | subset = algorithm.result() 23 | 24 | print("Algorithm: {}".format(algorithm.get_name())) 25 | print("Problem: {}".format(problem.name())) 26 | print("Solution: {}".format(subset.variables)) 27 | print("Fitness: {}".format(-subset.objectives[0])) 28 | print("Computing time: {}".format(algorithm.total_computing_time)) 29 | print(f"Problem Maximum Capacity: {problem.capacity}") 30 | -------------------------------------------------------------------------------- /examples/singleobjective/local_search/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/singleobjective/local_search/__init__.py -------------------------------------------------------------------------------- /examples/singleobjective/local_search/local_search_binary.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.local_search import LocalSearch 2 | from jmetal.operator.mutation import BitFlipMutation 3 | from jmetal.problem import OneMax 4 | from jmetal.util.observer import PrintObjectivesObserver 5 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 6 | from jmetal.util.termination_criterion import StoppingByEvaluations 7 | 8 | if __name__ == "__main__": 9 | problem = OneMax(number_of_bits=512) 10 | 11 | max_evaluations = 10000 12 | algorithm = LocalSearch( 13 | problem=problem, 14 | mutation=BitFlipMutation(probability=1.0 / problem.total_number_of_bits()), 15 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 16 | ) 17 | 18 | algorithm.observable.register(observer=PrintObjectivesObserver(100)) 19 | 20 | algorithm.run() 21 | result = algorithm.result() 22 | 23 | # Save results to file 24 | print_function_values_to_file(result, "FUN." + algorithm.get_name() + "." + problem.name()) 25 | print_variables_to_file(result, "VAR." + algorithm.get_name() + "." + problem.name()) 26 | 27 | print("Algorithm: " + algorithm.get_name()) 28 | print("Problem: " + problem.name()) 29 | print("Solution: " + result.get_binary_string()) 30 | print("Fitness: " + str(result.objectives[0])) 31 | print("Computing time: " + str(algorithm.total_computing_time)) 32 | -------------------------------------------------------------------------------- /examples/singleobjective/local_search/local_search_float.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.local_search import LocalSearch 2 | from jmetal.operator.mutation import PolynomialMutation 3 | from jmetal.problem.singleobjective.unconstrained import Rastrigin 4 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 5 | from jmetal.util.termination_criterion import StoppingByEvaluations 6 | 7 | if __name__ == "__main__": 8 | problem = Rastrigin(10) 9 | 10 | max_evaluations = 100000 11 | 12 | algorithm = LocalSearch( 13 | problem=problem, 14 | mutation=PolynomialMutation(1.0 / problem.number_of_variables(), 20.0), 15 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 16 | ) 17 | 18 | algorithm.run() 19 | result = algorithm.result() 20 | 21 | # Save results to file 22 | print_function_values_to_file(result, "FUN." + algorithm.get_name() + "." + problem.name()) 23 | print_variables_to_file(result, "VAR." + algorithm.get_name() + "." + problem.name()) 24 | 25 | print("Algorithm: " + algorithm.get_name()) 26 | print("Problem: " + problem.name()) 27 | print("Solution: " + str(result.variables)) 28 | print("Fitness: " + str(result.objectives[0])) 29 | print("Computing time: " + str(algorithm.total_computing_time)) 30 | -------------------------------------------------------------------------------- /examples/singleobjective/nsgaii/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/singleobjective/nsgaii/__init__.py -------------------------------------------------------------------------------- /examples/singleobjective/nsgaii/nsgaii_single_objective_binary.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import NSGAII 2 | from jmetal.operator.crossover import SPXCrossover 3 | from jmetal.operator.mutation import BitFlipMutation 4 | from jmetal.problem import OneMax 5 | from jmetal.util.comparator import DominanceComparator 6 | from jmetal.util.observer import ProgressBarObserver 7 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 8 | from jmetal.util.termination_criterion import StoppingByEvaluations 9 | 10 | if __name__ == "__main__": 11 | binary_string_length = 512 12 | problem = OneMax(binary_string_length) 13 | 14 | max_evaluations = 20000 15 | 16 | algorithm = NSGAII( 17 | problem=problem, 18 | population_size=100, 19 | offspring_population_size=100, 20 | mutation=BitFlipMutation(probability=1.0 / binary_string_length), 21 | crossover=SPXCrossover(probability=1.0), 22 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 23 | dominance_comparator=DominanceComparator(), 24 | ) 25 | 26 | algorithm.observable.register(observer=ProgressBarObserver(max=max_evaluations)) 27 | 28 | algorithm.run() 29 | front = algorithm.result() 30 | 31 | # Save results to file 32 | print_function_values_to_file(front, "FUN." + algorithm.get_name() + "-" + problem.get_name()) 33 | print_variables_to_file(front, "VAR." + algorithm.get_name() + "-" + problem.get_name()) 34 | 35 | print("Algorithm (continuous problem): " + algorithm.get_name()) 36 | print("Problem: " + problem.get_name()) 37 | print("Computing time: " + str(algorithm.total_computing_time)) 38 | -------------------------------------------------------------------------------- /examples/singleobjective/nsgaii/nsgaii_single_objective_float.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.multiobjective.nsgaii import NSGAII 2 | from jmetal.operator.crossover import SBXCrossover 3 | from jmetal.operator.mutation import PolynomialMutation 4 | from jmetal.problem.singleobjective.unconstrained import Rastrigin 5 | from jmetal.util.comparator import DominanceComparator 6 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 7 | from jmetal.util.termination_criterion import StoppingByEvaluations 8 | 9 | if __name__ == "__main__": 10 | problem = Rastrigin(10) 11 | 12 | max_evaluations = 50000 13 | algorithm = NSGAII( 14 | problem=problem, 15 | population_size=100, 16 | offspring_population_size=100, 17 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20.0), 18 | crossover=SBXCrossover(probability=0.9, distribution_index=20.0), 19 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 20 | dominance_comparator=DominanceComparator(), 21 | ) 22 | 23 | algorithm.run() 24 | front = algorithm.result() 25 | 26 | # Save results to file 27 | print_function_values_to_file(front, "FUN." + algorithm.get_name() + "-" + problem.name()) 28 | print_variables_to_file(front, "VAR." + algorithm.get_name() + "-" + problem.name()) 29 | 30 | print("Algorithm (continuous problem): " + algorithm.get_name()) 31 | print("Problem: " + problem.name()) 32 | print("Computing time: " + str(algorithm.total_computing_time)) 33 | -------------------------------------------------------------------------------- /examples/singleobjective/simulated_annealing/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/examples/singleobjective/simulated_annealing/__init__.py -------------------------------------------------------------------------------- /examples/singleobjective/simulated_annealing/simulated_annealing_binary.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.simulated_annealing import SimulatedAnnealing 2 | from jmetal.operator.mutation import BitFlipMutation 3 | from jmetal.problem import OneMax 4 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 5 | from jmetal.util.termination_criterion import StoppingByEvaluations 6 | 7 | if __name__ == "__main__": 8 | problem = OneMax(number_of_bits=512) 9 | 10 | max_evaluations = 10000 11 | 12 | algorithm = SimulatedAnnealing( 13 | problem=problem, 14 | mutation=BitFlipMutation(probability=1.0 / problem.total_number_of_bits()), 15 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 16 | ) 17 | 18 | algorithm.run() 19 | result = algorithm.result() 20 | 21 | # Save results to file 22 | print_function_values_to_file(result, "FUN." + algorithm.get_name() + "." + problem.name()) 23 | print_variables_to_file(result, "VAR." + algorithm.get_name() + "." + problem.name()) 24 | 25 | print("Algorithm: " + algorithm.get_name()) 26 | print("Problem: " + problem.name()) 27 | print("Solution: " + result.get_binary_string()) 28 | print("Fitness: " + str(result.objectives[0])) 29 | print("Computing time: " + str(algorithm.total_computing_time)) 30 | -------------------------------------------------------------------------------- /examples/singleobjective/simulated_annealing/simulated_annealing_float.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.simulated_annealing import SimulatedAnnealing 2 | from jmetal.operator.mutation import PolynomialMutation 3 | from jmetal.problem.singleobjective.unconstrained import Rastrigin 4 | from jmetal.util.solution import print_function_values_to_file, print_variables_to_file 5 | from jmetal.util.termination_criterion import StoppingByEvaluations 6 | 7 | if __name__ == "__main__": 8 | problem = Rastrigin(10) 9 | 10 | max_evaluations = 100000 11 | 12 | algorithm = SimulatedAnnealing( 13 | problem=problem, 14 | mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20.0), 15 | termination_criterion=StoppingByEvaluations(max_evaluations=max_evaluations), 16 | ) 17 | 18 | algorithm.run() 19 | result = algorithm.result() 20 | 21 | # Save results to file 22 | print_function_values_to_file(result, "FUN." + algorithm.get_name() + "." + problem.name()) 23 | print_variables_to_file(result, "VAR." + algorithm.get_name() + "." + problem.name()) 24 | 25 | print("Algorithm: " + algorithm.get_name()) 26 | print("Problem: " + problem.name()) 27 | print("Solution: " + str(result.variables[0])) 28 | print("Fitness: " + str(result.objectives[0])) 29 | print("Computing time: " + str(algorithm.total_computing_time)) 30 | -------------------------------------------------------------------------------- /examples/singleobjective/simulated_annealing/simulated_annealing_permutation.py: -------------------------------------------------------------------------------- 1 | from jmetal.algorithm.singleobjective.simulated_annealing import SimulatedAnnealing 2 | from jmetal.operator.mutation import ScrambleMutation 3 | from jmetal.problem import TSP 4 | from jmetal.util.termination_criterion import StoppingByTime 5 | 6 | if __name__ == "__main__": 7 | problem = TSP(instance="resources/TSP_instances/kroA100.tsp") 8 | 9 | print(f"Solving TSP problem with {problem.number_of_cities} cities.") 10 | 11 | algorithm = SimulatedAnnealing( 12 | problem=problem, 13 | mutation=ScrambleMutation(probability=1.0 / problem.number_of_cities), 14 | termination_criterion=StoppingByTime(max_seconds=10), 15 | ) 16 | 17 | algorithm.run() 18 | result = algorithm.result() 19 | 20 | print(f"Algorithm: {algorithm.get_name()}") 21 | print(f"Solution: {result.variables}") 22 | print(f"The shortest path length: {str(result.objectives[0])}") 23 | print(f"Computing time: {str(algorithm.total_computing_time)}") 24 | print(f"Problem evaluations: {str(algorithm.evaluations)}") 25 | -------------------------------------------------------------------------------- /mypy.ini: -------------------------------------------------------------------------------- 1 | [mypy] 2 | check_untyped_defs = True 3 | ignore_errors = False 4 | ignore_missing_imports = True 5 | warn_redundant_casts = True 6 | warn_unused_ignores = True 7 | warn_unreachable = True 8 | warn_unused_configs = True 9 | pretty = True 10 | 11 | [mypy-*.test.*] 12 | ignore_errors = True -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_0_3.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 272441 3 | 4 | 3899 5074 5 | 9710 119 6 | 8917 1262 7 | 2137 1772 8 | 6062 9827 9 | 9895 8775 10 | 7767 515 11 | 9517 3234 12 | 1074 6684 13 | 9923 4778 14 | 216 4316 15 | 7688 2560 16 | 4250 696 17 | 9025 5568 18 | 3840 5142 19 | 3142 5902 20 | 7705 2267 21 | 8864 6190 22 | 9006 6173 23 | 7805 7544 24 | 6507 8521 25 | 2468 6328 26 | 3800 9760 27 | 2485 9163 28 | 8572 1681 29 | 6389 8308 30 | 249 4445 31 | 1050 7065 32 | 2612 3894 33 | 9685 4934 34 | 702 7168 35 | 4936 4231 36 | 509 8539 37 | 4415 4965 38 | 7746 8986 39 | 9745 5553 40 | 6351 188 41 | 6995 6803 42 | 6472 9503 43 | 9453 5159 44 | 7285 329 45 | 2198 6169 46 | 5989 9654 47 | 1597 2184 48 | 588 985 49 | 2228 5447 50 | 8109 7640 51 | 3556 5783 52 | 4227 5777 53 | 7147 9976 54 | 4933 4570 55 | 6901 8021 56 | 8311 364 57 | 6323 9657 58 | 9405 993 59 | 5750 349 60 | 8751 6049 61 | 9586 4115 62 | 6678 7477 63 | 9573 4893 64 | 3808 9711 65 | 5518 9855 66 | 470 5244 67 | 4583 2907 68 | 9926 5964 69 | 2673 3036 70 | 5348 5123 71 | 8877 6049 72 | 9371 9759 73 | 9325 4328 74 | 1706 4922 75 | 3460 6180 76 | 9397 1719 77 | 4376 442 78 | 4669 9327 79 | 2039 2154 80 | 1040 5080 81 | 7898 8193 82 | 7922 3647 83 | 1451 4414 84 | 5638 3911 85 | 1092 5371 86 | 6726 3071 87 | 2471 7131 88 | 330 1590 89 | 4816 1669 90 | 6999 9843 91 | 6803 5276 92 | 1949 5469 93 | 725 3678 94 | 9913 7184 95 | 737 2774 96 | 6190 1310 97 | 9608 5517 98 | 5423 3573 99 | 9026 9313 100 | 4573 7391 101 | 8281 4434 102 | 3866 3687 103 | 591 1982 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_1_15.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 242766 3 | 4 | 3424 706 5 | 191 8198 6 | 8542 1011 7 | 593 7774 8 | 2589 1339 9 | 3915 9333 10 | 277 7575 11 | 901 3798 12 | 2413 9722 13 | 6018 7359 14 | 3928 4189 15 | 1920 1392 16 | 5540 147 17 | 7641 925 18 | 5829 5458 19 | 4598 6223 20 | 6428 7105 21 | 4315 5691 22 | 5642 917 23 | 3746 4954 24 | 3382 9756 25 | 5820 7302 26 | 5135 5108 27 | 3661 8987 28 | 5008 507 29 | 8379 7062 30 | 6889 6310 31 | 3792 247 32 | 9457 5704 33 | 7464 6365 34 | 6880 8489 35 | 8022 47 36 | 1294 2358 37 | 7555 4113 38 | 9252 4087 39 | 5898 8176 40 | 7198 8399 41 | 9333 5424 42 | 5164 5323 43 | 7383 3995 44 | 6638 9616 45 | 1079 5158 46 | 8033 8060 47 | 308 5222 48 | 3207 42 49 | 2299 9911 50 | 8749 5823 51 | 2822 3689 52 | 285 5572 53 | 4696 968 54 | 8684 2822 55 | 8110 8283 56 | 2486 1774 57 | 1637 9435 58 | 1905 6540 59 | 6478 5486 60 | 777 2110 61 | 1206 5500 62 | 7679 1609 63 | 9093 5164 64 | 4847 5630 65 | 6578 7511 66 | 8226 8975 67 | 3808 7934 68 | 2937 9371 69 | 8908 1991 70 | 8194 6455 71 | 5797 9521 72 | 1284 76 73 | 3855 1643 74 | 5081 2548 75 | 5100 7569 76 | 2696 2619 77 | 5215 3211 78 | 6339 9484 79 | 7808 8919 80 | 5508 9012 81 | 7235 5279 82 | 1216 6043 83 | 4464 6648 84 | 7774 3827 85 | 2329 9128 86 | 1891 8526 87 | 8069 1905 88 | 6387 8685 89 | 6163 7650 90 | 253 9621 91 | 4261 2564 92 | 1513 5551 93 | 4706 7530 94 | 1053 9905 95 | 678 9285 96 | 7384 6682 97 | 974 469 98 | 4179 4464 99 | 2595 5522 100 | 8191 2129 101 | 9258 4473 102 | 7881 5852 103 | 8167 3060 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_2_27.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 245200 3 | 4 | 7863 943 5 | 4542 6110 6 | 4686 3108 7 | 3218 4853 8 | 1212 1591 9 | 1072 527 10 | 4169 9211 11 | 8841 6929 12 | 5457 6728 13 | 4144 7547 14 | 6101 57 15 | 6602 2961 16 | 3004 5763 17 | 4061 239 18 | 3930 3117 19 | 8048 3717 20 | 1169 6242 21 | 9389 3143 22 | 1290 5397 23 | 6967 6287 24 | 6847 1029 25 | 864 5651 26 | 7201 696 27 | 5730 3006 28 | 199 1025 29 | 7840 1284 30 | 4145 4825 31 | 2254 3814 32 | 5536 2249 33 | 9995 7576 34 | 3727 9910 35 | 8590 7824 36 | 2310 1680 37 | 1618 3809 38 | 6422 9747 39 | 4949 6038 40 | 616 4594 41 | 8692 498 42 | 1392 8044 43 | 2789 2643 44 | 7530 5117 45 | 2485 8765 46 | 4343 7659 47 | 8853 3504 48 | 835 7163 49 | 2833 4981 50 | 247 3334 51 | 7407 8346 52 | 2478 2462 53 | 5675 5441 54 | 9406 9316 55 | 9416 952 56 | 6813 3716 57 | 1065 2048 58 | 5045 7690 59 | 7172 9963 60 | 7662 9963 61 | 5779 1299 62 | 208 4000 63 | 5914 7107 64 | 2572 5209 65 | 4349 5017 66 | 2912 716 67 | 7914 2068 68 | 5856 1696 69 | 8462 6564 70 | 1008 1423 71 | 8477 6135 72 | 4084 3345 73 | 2785 2719 74 | 3408 8943 75 | 8015 333 76 | 9105 3071 77 | 1499 7275 78 | 5482 828 79 | 5544 9507 80 | 938 9791 81 | 6441 8538 82 | 5632 7273 83 | 1873 9862 84 | 4948 831 85 | 4168 3636 86 | 9108 4593 87 | 1351 8854 88 | 4913 3321 89 | 7481 1545 90 | 7594 9150 91 | 4666 9804 92 | 8409 8950 93 | 1923 7269 94 | 9599 5991 95 | 369 5402 96 | 4669 8233 97 | 3549 3416 98 | 7826 6421 99 | 9082 3126 100 | 8891 2651 101 | 1982 139 102 | 64 5729 103 | 9709 3943 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_3_39.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 239724 3 | 4 | 3439 790 5 | 4255 1696 6 | 6315 1899 7 | 425 1746 8 | 3196 7521 9 | 3614 9091 10 | 6482 7434 11 | 9219 5838 12 | 88 4364 13 | 4173 3340 14 | 5835 2054 15 | 2922 5189 16 | 445 3024 17 | 4817 4841 18 | 1208 8707 19 | 6001 1101 20 | 142 1420 21 | 1769 7579 22 | 6945 1089 23 | 5699 4740 24 | 6917 444 25 | 1592 8793 26 | 6417 1583 27 | 8411 3058 28 | 9511 3396 29 | 4912 6239 30 | 4375 2451 31 | 1092 8171 32 | 7540 2056 33 | 7059 5584 34 | 4219 2387 35 | 9466 3475 36 | 5254 7278 37 | 9263 3312 38 | 9 5381 39 | 746 5562 40 | 3081 9402 41 | 7881 7334 42 | 6242 6104 43 | 5133 914 44 | 4632 7849 45 | 6349 3879 46 | 5752 7563 47 | 7845 5574 48 | 2226 293 49 | 8696 9865 50 | 7073 6352 51 | 1159 8593 52 | 2827 9357 53 | 4878 1256 54 | 4728 4546 55 | 3859 3558 56 | 1625 45 57 | 6512 8517 58 | 7742 8269 59 | 8405 5801 60 | 1445 475 61 | 6838 6028 62 | 555 6765 63 | 269 3714 64 | 6853 1444 65 | 70 9234 66 | 9923 7847 67 | 9441 979 68 | 9676 2195 69 | 6203 8501 70 | 2075 658 71 | 9102 4438 72 | 3624 4606 73 | 1933 9236 74 | 8876 1405 75 | 7226 7257 76 | 3322 9242 77 | 8465 978 78 | 3719 2036 79 | 3956 2134 80 | 2148 5256 81 | 8881 4046 82 | 1465 5028 83 | 8010 5305 84 | 5423 1739 85 | 8341 4922 86 | 4607 4615 87 | 3567 8410 88 | 8210 7895 89 | 3104 1970 90 | 9562 2421 91 | 2335 591 92 | 2943 1251 93 | 2814 5648 94 | 5928 3313 95 | 5269 8713 96 | 4681 3765 97 | 2930 2776 98 | 651 4441 99 | 1987 6206 100 | 3458 22 101 | 9264 8438 102 | 1036 267 103 | 3641 309 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_4_51.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 283519 3 | 4 | 3990 7888 5 | 8229 2407 6 | 9049 9011 7 | 2654 6919 8 | 4032 2925 9 | 3792 1843 10 | 9050 4885 11 | 4192 7608 12 | 6511 185 13 | 8984 2569 14 | 7596 6903 15 | 8981 1268 16 | 8578 9133 17 | 5611 8306 18 | 9603 8205 19 | 5902 4641 20 | 6337 9484 21 | 4550 9718 22 | 6618 7169 23 | 125 7315 24 | 1867 7830 25 | 465 6250 26 | 8830 276 27 | 4231 4576 28 | 534 2290 29 | 7828 6564 30 | 2911 6601 31 | 5690 6323 32 | 4911 5199 33 | 6017 5243 34 | 7358 6579 35 | 3167 9357 36 | 483 5401 37 | 7179 9055 38 | 2753 7499 39 | 7703 6697 40 | 210 8377 41 | 993 9702 42 | 1741 5316 43 | 9702 7838 44 | 1764 9936 45 | 2865 2042 46 | 8999 90 47 | 7606 2146 48 | 266 6420 49 | 7119 3531 50 | 6799 6762 51 | 3292 4274 52 | 6060 874 53 | 1836 6405 54 | 7944 9194 55 | 9008 5382 56 | 2927 802 57 | 9658 8672 58 | 5870 4488 59 | 7379 543 60 | 8115 5312 61 | 1927 51 62 | 8502 4743 63 | 7208 7405 64 | 170 1185 65 | 7112 9824 66 | 8842 7933 67 | 670 8756 68 | 7773 9050 69 | 8397 2318 70 | 8836 5709 71 | 1633 4492 72 | 8581 1303 73 | 5030 7953 74 | 8708 8256 75 | 7539 9669 76 | 449 31 77 | 5367 3955 78 | 6892 7132 79 | 8660 3046 80 | 1430 1760 81 | 9589 9304 82 | 9505 173 83 | 6696 8686 84 | 9188 2620 85 | 4560 9521 86 | 3685 7823 87 | 7686 2206 88 | 9608 2534 89 | 7934 8575 90 | 3492 8823 91 | 8854 6708 92 | 878 6848 93 | 5287 3370 94 | 7617 8007 95 | 5042 887 96 | 8775 7514 97 | 9758 7520 98 | 7264 6644 99 | 3325 1232 100 | 9036 9032 101 | 5774 754 102 | 4825 1929 103 | 4142 4842 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_5_63.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 230260 3 | 4 | 7294 6519 5 | 7279 7749 6 | 4819 1417 7 | 4145 1032 8 | 7935 9990 9 | 1427 7807 10 | 6336 6005 11 | 1287 7167 12 | 1236 2572 13 | 3318 3833 14 | 4765 7916 15 | 1212 4228 16 | 5030 2954 17 | 985 5766 18 | 3645 6126 19 | 2097 9674 20 | 5377 8809 21 | 3848 1407 22 | 4486 6854 23 | 9816 4935 24 | 495 2890 25 | 548 6731 26 | 9777 7507 27 | 2672 854 28 | 3733 9048 29 | 9104 8998 30 | 7011 4343 31 | 7069 6678 32 | 5915 908 33 | 7984 8116 34 | 3377 6067 35 | 1729 6025 36 | 525 6746 37 | 588 5957 38 | 5594 7899 39 | 5402 7569 40 | 1926 6506 41 | 359 1395 42 | 9468 2310 43 | 2795 8046 44 | 175 229 45 | 6461 7296 46 | 7172 9836 47 | 835 5234 48 | 6068 3856 49 | 1001 2997 50 | 6044 4987 51 | 849 6940 52 | 5699 9857 53 | 6924 1262 54 | 1222 1939 55 | 4137 4002 56 | 8866 6717 57 | 8723 586 58 | 1137 4607 59 | 3285 5874 60 | 8217 7333 61 | 3694 5196 62 | 9399 8278 63 | 6717 6477 64 | 7466 500 65 | 2606 8877 66 | 692 9995 67 | 5994 1577 68 | 3516 6238 69 | 6593 2723 70 | 5586 4923 71 | 8839 5714 72 | 2540 5180 73 | 4829 3527 74 | 7813 3321 75 | 1988 1398 76 | 6946 440 77 | 2196 3019 78 | 5918 7286 79 | 2145 5583 80 | 2100 6788 81 | 5037 3288 82 | 774 9129 83 | 8085 6194 84 | 3952 6952 85 | 604 9237 86 | 1733 9483 87 | 6786 9205 88 | 2932 3028 89 | 6487 6274 90 | 4803 4384 91 | 8196 9748 92 | 8321 9775 93 | 8910 7278 94 | 4126 4490 95 | 1668 6260 96 | 9656 3544 97 | 7817 778 98 | 516 8435 99 | 3644 5041 100 | 5682 4179 101 | 9527 1082 102 | 208 5584 103 | 8863 7057 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_6_75.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 261028 3 | 4 | 7387 6066 5 | 9582 9227 6 | 7154 2161 7 | 7445 9237 8 | 683 471 9 | 8423 6538 10 | 7745 8246 11 | 5664 9209 12 | 1640 4714 13 | 5194 3200 14 | 1373 5812 15 | 4116 7352 16 | 4499 3093 17 | 8136 2344 18 | 5697 8700 19 | 9940 4047 20 | 7959 631 21 | 4392 6986 22 | 6697 7227 23 | 451 5433 24 | 6197 7916 25 | 8872 3437 26 | 9380 112 27 | 7583 7149 28 | 3255 5804 29 | 2158 1350 30 | 3220 5922 31 | 2352 2543 32 | 4951 2494 33 | 8073 4130 34 | 9783 3466 35 | 2761 4181 36 | 7589 7989 37 | 294 7022 38 | 5039 8166 39 | 990 9018 40 | 1151 3047 41 | 911 6294 42 | 4428 2425 43 | 5307 6640 44 | 3190 2010 45 | 950 5640 46 | 1478 4036 47 | 6770 3563 48 | 1953 217 49 | 5037 8756 50 | 5942 5892 51 | 8560 8234 52 | 1876 7819 53 | 7638 4598 54 | 4783 7707 55 | 4779 3553 56 | 9263 6055 57 | 3462 2246 58 | 4019 8908 59 | 6161 5631 60 | 78 7361 61 | 436 659 62 | 4984 3421 63 | 5309 6407 64 | 7290 4468 65 | 4852 5021 66 | 308 540 67 | 8640 2581 68 | 2574 1195 69 | 9044 6287 70 | 8977 3879 71 | 7210 5353 72 | 160 2887 73 | 4432 9220 74 | 9124 8446 75 | 5206 377 76 | 3070 3075 77 | 5801 7682 78 | 4256 8455 79 | 7039 5944 80 | 8182 5626 81 | 8043 3039 82 | 2004 5502 83 | 6517 8523 84 | 4285 2508 85 | 5987 867 86 | 8433 925 87 | 8432 6087 88 | 7565 3163 89 | 5722 4479 90 | 1595 2814 91 | 4631 9841 92 | 6332 2579 93 | 6460 3305 94 | 5450 2973 95 | 295 6152 96 | 8279 1956 97 | 8734 8626 98 | 7952 4826 99 | 5364 7808 100 | 6032 7007 101 | 6723 3354 102 | 9888 2572 103 | 1251 1224 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_7_87.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 238249 3 | 4 | 2392 8151 5 | 3100 3377 6 | 8857 5716 7 | 1675 5090 8 | 4602 3659 9 | 5496 8916 10 | 8902 5917 11 | 5371 9447 12 | 2007 715 13 | 5959 6111 14 | 251 7146 15 | 4524 5417 16 | 6315 891 17 | 1467 3062 18 | 8139 9824 19 | 8421 5317 20 | 1141 2751 21 | 3293 6797 22 | 4103 3226 23 | 3072 6938 24 | 9116 4887 25 | 1335 5741 26 | 5009 7747 27 | 466 2617 28 | 4568 2520 29 | 6858 4734 30 | 9757 6557 31 | 7102 4442 32 | 5315 3121 33 | 7387 9684 34 | 3389 8112 35 | 5687 4144 36 | 3199 2890 37 | 9756 1909 38 | 7865 4588 39 | 9446 1859 40 | 9481 9109 41 | 4836 7612 42 | 584 1034 43 | 4930 9521 44 | 1720 5639 45 | 4686 7056 46 | 5626 1674 47 | 257 4553 48 | 9550 1352 49 | 4320 1446 50 | 7754 8061 51 | 9751 7650 52 | 903 4878 53 | 994 182 54 | 8740 1946 55 | 1900 2954 56 | 999 3982 57 | 5030 2387 58 | 7963 3156 59 | 3267 1590 60 | 7036 5822 61 | 4559 288 62 | 296 7308 63 | 9077 4864 64 | 5212 3052 65 | 2093 444 66 | 6262 7110 67 | 4700 9124 68 | 4954 1905 69 | 6386 5719 70 | 3835 3586 71 | 9364 6786 72 | 3777 6821 73 | 5715 9224 74 | 4016 9749 75 | 5463 4898 76 | 3158 8921 77 | 1852 354 78 | 699 9832 79 | 4166 4211 80 | 4822 2980 81 | 6036 8193 82 | 3579 611 83 | 3683 4036 84 | 8867 6224 85 | 6971 1879 86 | 4993 3053 87 | 2499 1251 88 | 6782 6784 89 | 8383 1282 90 | 4088 5155 91 | 9993 519 92 | 5387 3445 93 | 624 7941 94 | 3421 2131 95 | 5758 1211 96 | 2354 5327 97 | 492 3232 98 | 9804 9018 99 | 217 1719 100 | 2098 3622 101 | 8525 9971 102 | 23 4281 103 | 612 6987 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_8_99.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 237289 3 | 4 | 6619 9191 5 | 6239 5229 6 | 3279 8178 7 | 9822 3833 8 | 2930 4221 9 | 3773 1921 10 | 4071 5927 11 | 2184 3047 12 | 1419 1187 13 | 4115 8213 14 | 6277 4714 15 | 8697 183 16 | 8825 9596 17 | 1472 782 18 | 8017 5529 19 | 3269 3545 20 | 6909 6177 21 | 9641 6539 22 | 3551 5518 23 | 6128 6544 24 | 6359 6324 25 | 3484 6785 26 | 2495 6079 27 | 7561 8756 28 | 2933 1519 29 | 9289 2970 30 | 5552 616 31 | 1360 6112 32 | 8663 6531 33 | 1439 7275 34 | 7685 3772 35 | 5184 5103 36 | 6597 3704 37 | 699 5090 38 | 4414 1733 39 | 9142 5144 40 | 125 3582 41 | 6967 4092 42 | 3339 6285 43 | 5940 4856 44 | 8755 7179 45 | 1325 1313 46 | 7571 7174 47 | 8498 6900 48 | 3246 4198 49 | 9921 1142 50 | 7581 8244 51 | 841 4802 52 | 5858 5253 53 | 2116 7817 54 | 3537 8737 55 | 2635 2086 56 | 7238 4208 57 | 9756 7061 58 | 2911 4766 59 | 8245 6707 60 | 2884 2612 61 | 608 4626 62 | 1799 6209 63 | 382 9901 64 | 2805 7210 65 | 7762 3187 66 | 6866 6224 67 | 1330 5519 68 | 6971 3239 69 | 1410 5659 70 | 2342 71 71 | 5076 5822 72 | 93 4840 73 | 6244 3167 74 | 5402 2813 75 | 2226 4276 76 | 8576 6828 77 | 6641 3789 78 | 3290 6689 79 | 908 5662 80 | 3465 6552 81 | 7258 60 82 | 4221 1841 83 | 8937 8220 84 | 6621 8713 85 | 2071 3318 86 | 5797 22 87 | 7802 8555 88 | 915 5088 89 | 2146 2743 90 | 9825 8375 91 | 2465 7277 92 | 9963 3364 93 | 6690 4324 94 | 2038 6830 95 | 1581 7669 96 | 1946 9182 97 | 2354 8701 98 | 4850 9928 99 | 2854 4711 100 | 2911 3282 101 | 6716 338 102 | 2385 1723 103 | 3401 5039 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_100_9_110.kp: -------------------------------------------------------------------------------- 1 | 100 2 | 23664 3 | 4 | 957 319 5 | 398 966 6 | 814 401 7 | 842 438 8 | 615 536 9 | 254 891 10 | 422 35 11 | 494 332 12 | 731 438 13 | 281 93 14 | 654 84 15 | 556 89 16 | 706 505 17 | 77 540 18 | 558 174 19 | 427 971 20 | 514 987 21 | 324 187 22 | 764 951 23 | 42 554 24 | 120 114 25 | 836 36 26 | 527 974 27 | 935 19 28 | 83 135 29 | 155 813 30 | 453 133 31 | 648 724 32 | 14 153 33 | 542 668 34 | 914 897 35 | 436 120 36 | 973 621 37 | 605 699 38 | 813 570 39 | 678 716 40 | 237 302 41 | 285 866 42 | 296 63 43 | 372 530 44 | 373 82 45 | 520 868 46 | 111 243 47 | 417 517 48 | 954 600 49 | 572 818 50 | 796 76 51 | 897 13 52 | 469 46 53 | 281 747 54 | 931 207 55 | 925 739 56 | 697 12 57 | 905 686 58 | 131 58 59 | 200 326 60 | 265 140 61 | 421 566 62 | 484 124 63 | 234 85 64 | 182 342 65 | 463 982 66 | 231 871 67 | 875 4 68 | 87 684 69 | 507 107 70 | 340 8 71 | 338 504 72 | 256 73 73 | 169 844 74 | 314 345 75 | 144 193 76 | 208 471 77 | 843 466 78 | 806 406 79 | 975 552 80 | 280 880 81 | 911 739 82 | 184 279 83 | 4 651 84 | 611 460 85 | 274 254 86 | 761 279 87 | 145 834 88 | 13 175 89 | 475 536 90 | 412 240 91 | 207 939 92 | 217 642 93 | 500 951 94 | 520 625 95 | 462 831 96 | 329 499 97 | 647 642 98 | 746 568 99 | 527 758 100 | 965 510 101 | 515 297 102 | 378 977 103 | 46 212 104 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_0_0.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 13629 3 | 4 | 865 445 5 | 395 324 6 | 777 626 7 | 912 656 8 | 431 935 9 | 42 210 10 | 266 990 11 | 989 566 12 | 524 489 13 | 498 454 14 | 415 887 15 | 941 534 16 | 803 267 17 | 850 64 18 | 311 825 19 | 992 941 20 | 489 562 21 | 367 938 22 | 598 15 23 | 914 96 24 | 930 737 25 | 224 861 26 | 517 409 27 | 143 728 28 | 289 845 29 | 144 804 30 | 774 685 31 | 98 641 32 | 634 2 33 | 819 627 34 | 257 506 35 | 932 848 36 | 546 889 37 | 723 342 38 | 830 250 39 | 617 748 40 | 924 334 41 | 151 721 42 | 318 892 43 | 102 65 44 | 748 196 45 | 76 940 46 | 921 582 47 | 871 228 48 | 701 245 49 | 339 823 50 | 484 991 51 | 574 146 52 | 104 823 53 | 363 557 54 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_1_12.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 11987 3 | 4 | 486 522 5 | 276 229 6 | 674 94 7 | 542 434 8 | 683 970 9 | 359 455 10 | 147 116 11 | 391 677 12 | 12 434 13 | 384 995 14 | 495 139 15 | 281 553 16 | 659 321 17 | 830 904 18 | 472 637 19 | 708 572 20 | 886 168 21 | 616 1000 22 | 234 714 23 | 572 907 24 | 2 53 25 | 678 569 26 | 640 176 27 | 149 520 28 | 451 836 29 | 377 86 30 | 167 411 31 | 348 623 32 | 928 429 33 | 216 685 34 | 61 611 35 | 591 481 36 | 839 489 37 | 205 624 38 | 77 394 39 | 526 555 40 | 704 32 41 | 839 657 42 | 346 744 43 | 698 85 44 | 415 991 45 | 818 197 46 | 863 1000 47 | 90 807 48 | 20 680 49 | 941 268 50 | 63 365 51 | 840 964 52 | 937 372 53 | 678 887 54 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_2_24.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 13178 3 | 4 | 730 313 5 | 393 77 6 | 860 556 7 | 597 665 8 | 187 376 9 | 224 677 10 | 172 916 11 | 199 35 12 | 174 947 13 | 687 219 14 | 699 324 15 | 94 348 16 | 723 917 17 | 776 761 18 | 155 72 19 | 826 319 20 | 724 100 21 | 291 252 22 | 742 682 23 | 945 611 24 | 785 819 25 | 14 157 26 | 452 839 27 | 479 869 28 | 887 502 29 | 739 881 30 | 651 291 31 | 119 273 32 | 29 576 33 | 530 761 34 | 173 281 35 | 982 947 36 | 504 203 37 | 757 96 38 | 866 591 39 | 455 507 40 | 699 804 41 | 312 158 42 | 512 669 43 | 976 147 44 | 88 333 45 | 704 492 46 | 779 203 47 | 261 687 48 | 864 619 49 | 627 998 50 | 162 803 51 | 698 135 52 | 335 488 53 | 984 518 54 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_3_36.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 12057 3 | 4 | 337 333 5 | 60 731 6 | 22 908 7 | 983 563 8 | 821 173 9 | 941 4 10 | 932 609 11 | 809 395 12 | 292 923 13 | 897 507 14 | 81 142 15 | 1 776 16 | 515 902 17 | 643 223 18 | 181 428 19 | 254 919 20 | 276 381 21 | 748 823 22 | 669 214 23 | 443 889 24 | 374 507 25 | 574 956 26 | 275 952 27 | 556 745 28 | 80 771 29 | 590 963 30 | 418 263 31 | 848 626 32 | 502 38 33 | 400 242 34 | 354 642 35 | 775 520 36 | 826 474 37 | 406 666 38 | 911 520 39 | 250 304 40 | 402 464 41 | 172 745 42 | 127 87 43 | 527 867 44 | 510 241 45 | 719 310 46 | 784 209 47 | 209 582 48 | 537 172 49 | 302 182 50 | 189 66 51 | 504 743 52 | 723 246 53 | 608 383 54 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_4_48.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 11920 3 | 4 | 562 346 5 | 324 98 6 | 136 862 7 | 571 245 8 | 729 279 9 | 548 272 10 | 310 664 11 | 813 15 12 | 961 959 13 | 518 903 14 | 198 585 15 | 732 921 16 | 781 290 17 | 447 647 18 | 170 142 19 | 159 361 20 | 990 669 21 | 827 448 22 | 895 180 23 | 674 205 24 | 111 412 25 | 505 815 26 | 665 835 27 | 226 868 28 | 224 802 29 | 781 623 30 | 524 284 31 | 570 28 32 | 871 376 33 | 521 100 34 | 159 296 35 | 484 587 36 | 223 299 37 | 29 604 38 | 76 509 39 | 434 714 40 | 66 120 41 | 136 798 42 | 511 118 43 | 689 232 44 | 167 151 45 | 974 338 46 | 132 484 47 | 58 548 48 | 715 680 49 | 562 327 50 | 299 801 51 | 959 441 52 | 348 114 53 | 716 793 54 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_5_60.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 12354 3 | 4 | 316 154 5 | 291 21 6 | 592 978 7 | 158 581 8 | 272 225 9 | 236 302 10 | 828 803 11 | 496 248 12 | 479 560 13 | 907 282 14 | 341 68 15 | 999 964 16 | 919 228 17 | 43 132 18 | 812 725 19 | 943 924 20 | 881 263 21 | 95 925 22 | 682 853 23 | 879 209 24 | 190 750 25 | 158 850 26 | 400 889 27 | 48 201 28 | 246 593 29 | 655 662 30 | 813 992 31 | 922 125 32 | 10 513 33 | 423 327 34 | 810 829 35 | 744 506 36 | 171 376 37 | 134 386 38 | 314 90 39 | 640 846 40 | 644 538 41 | 815 663 42 | 692 99 43 | 153 35 44 | 525 26 45 | 611 572 46 | 570 739 47 | 832 94 48 | 604 84 49 | 50 180 50 | 615 874 51 | 577 400 52 | 111 708 53 | 310 323 54 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_6_72.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 11857 3 | 4 | 76 500 5 | 801 651 6 | 609 255 7 | 757 359 8 | 191 608 9 | 353 510 10 | 716 714 11 | 558 190 12 | 635 308 13 | 384 965 14 | 315 418 15 | 758 928 16 | 735 868 17 | 702 586 18 | 614 344 19 | 133 158 20 | 1000 465 21 | 720 977 22 | 712 896 23 | 352 222 24 | 239 43 25 | 390 57 26 | 147 338 27 | 649 429 28 | 28 63 29 | 709 387 30 | 827 75 31 | 228 871 32 | 467 941 33 | 829 151 34 | 14 306 35 | 458 63 36 | 71 990 37 | 791 453 38 | 303 501 39 | 94 43 40 | 518 886 41 | 326 679 42 | 744 554 43 | 19 500 44 | 894 566 45 | 427 896 46 | 905 935 47 | 261 958 48 | 276 402 49 | 356 240 50 | 380 124 51 | 226 806 52 | 383 853 53 | 873 512 54 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_7_84.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 12879 3 | 4 | 750 111 5 | 291 13 6 | 936 248 7 | 794 208 8 | 39 926 9 | 501 433 10 | 5 139 11 | 535 300 12 | 678 721 13 | 327 116 14 | 854 279 15 | 202 124 16 | 472 929 17 | 511 749 18 | 875 105 19 | 565 558 20 | 773 76 21 | 758 477 22 | 376 566 23 | 624 31 24 | 154 150 25 | 558 781 26 | 970 794 27 | 775 801 28 | 735 746 29 | 268 726 30 | 539 493 31 | 479 26 32 | 409 729 33 | 913 618 34 | 917 645 35 | 744 668 36 | 339 139 37 | 618 903 38 | 225 562 39 | 129 610 40 | 677 631 41 | 962 948 42 | 485 195 43 | 45 162 44 | 526 271 45 | 831 190 46 | 46 327 47 | 153 902 48 | 48 377 49 | 512 551 50 | 542 316 51 | 704 155 52 | 299 981 53 | 549 828 54 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_8_96.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 12420 3 | 4 | 380 63 5 | 323 128 6 | 930 449 7 | 690 518 8 | 406 847 9 | 947 218 10 | 211 382 11 | 99 70 12 | 838 138 13 | 350 604 14 | 777 764 15 | 48 117 16 | 716 966 17 | 908 567 18 | 23 875 19 | 171 796 20 | 418 310 21 | 659 852 22 | 323 578 23 | 90 672 24 | 262 266 25 | 348 259 26 | 366 703 27 | 283 821 28 | 135 950 29 | 517 199 30 | 828 797 31 | 12 444 32 | 865 419 33 | 591 789 34 | 490 610 35 | 558 50 36 | 495 283 37 | 456 888 38 | 326 520 39 | 250 365 40 | 706 851 41 | 860 665 42 | 355 605 43 | 543 661 44 | 931 435 45 | 961 417 46 | 903 96 47 | 936 758 48 | 819 609 49 | 931 601 50 | 525 208 51 | 332 718 52 | 29 478 53 | 169 968 54 | -------------------------------------------------------------------------------- /resources/Knapsack_instances/KnapsackInstance_50_9_108.kp: -------------------------------------------------------------------------------- 1 | 50 2 | 12418 3 | 4 | 134 741 5 | 733 340 6 | 836 666 7 | 87 966 8 | 902 243 9 | 678 207 10 | 395 524 11 | 746 778 12 | 284 984 13 | 388 502 14 | 201 219 15 | 994 24 16 | 83 994 17 | 307 71 18 | 220 496 19 | 185 940 20 | 207 924 21 | 729 787 22 | 875 906 23 | 326 578 24 | 196 115 25 | 115 416 26 | 195 191 27 | 87 970 28 | 951 348 29 | 573 241 30 | 940 710 31 | 433 450 32 | 105 751 33 | 547 645 34 | 331 11 35 | 675 362 36 | 881 812 37 | 400 804 38 | 219 796 39 | 643 187 40 | 901 234 41 | 709 613 42 | 628 372 43 | 663 565 44 | 935 184 45 | 57 28 46 | 764 236 47 | 741 811 48 | 578 599 49 | 834 810 50 | 459 495 51 | 35 873 52 | 354 502 53 | 827 196 54 | -------------------------------------------------------------------------------- /resources/TSP_instances/kroA100.opt.tour: -------------------------------------------------------------------------------- 1 | NAME : kroA100.opt.tour 2 | COMMENT : Optimum tour for kroA100 (21282) 3 | TYPE : TOUR 4 | DIMENSION : 100 5 | TOUR_SECTION 6 | 1 7 | 47 8 | 93 9 | 28 10 | 67 11 | 58 12 | 61 13 | 51 14 | 87 15 | 25 16 | 81 17 | 69 18 | 64 19 | 40 20 | 54 21 | 2 22 | 44 23 | 50 24 | 73 25 | 68 26 | 85 27 | 82 28 | 95 29 | 13 30 | 76 31 | 33 32 | 37 33 | 5 34 | 52 35 | 78 36 | 96 37 | 39 38 | 30 39 | 48 40 | 100 41 | 41 42 | 71 43 | 14 44 | 3 45 | 43 46 | 46 47 | 29 48 | 34 49 | 83 50 | 55 51 | 7 52 | 9 53 | 57 54 | 20 55 | 12 56 | 27 57 | 86 58 | 35 59 | 62 60 | 60 61 | 77 62 | 23 63 | 98 64 | 91 65 | 45 66 | 32 67 | 11 68 | 15 69 | 17 70 | 59 71 | 74 72 | 21 73 | 72 74 | 10 75 | 84 76 | 36 77 | 99 78 | 38 79 | 24 80 | 18 81 | 79 82 | 53 83 | 88 84 | 16 85 | 94 86 | 22 87 | 70 88 | 66 89 | 26 90 | 65 91 | 4 92 | 97 93 | 56 94 | 80 95 | 31 96 | 89 97 | 42 98 | 8 99 | 92 100 | 75 101 | 19 102 | 90 103 | 49 104 | 6 105 | 63 106 | -1 107 | EOF 108 | -------------------------------------------------------------------------------- /resources/TSP_instances/test.tsp: -------------------------------------------------------------------------------- 1 | NAME: test 2 | TYPE: TSP 3 | COMMENT: 4-city test problem 4 | DIMENSION: 4 5 | EDGE_WEIGHT_TYPE : EUC_2D 6 | NODE_COORD_SECTION 7 | 1 1 1 8 | 2 2 2 9 | 3 3 3 10 | 4 4 4 11 | EOF -------------------------------------------------------------------------------- /resources/reference_front/LIRCMOP11.pf: -------------------------------------------------------------------------------- 1 | 1.3965359e+00 1.5909903e-01 2 | 1.0429825e+00 5.1265242e-01 3 | 6.8942911e-01 8.6620581e-01 4 | 3.3587572e-01 1.2197592e+00 5 | 1.0606602e-02 1.6015969e+00 6 | 0.0000000e+00 2.1910000e+00 7 | 1.8730000e+00 0.0000000e+00 8 | -------------------------------------------------------------------------------- /resources/reference_front/LIRCMOP12.pf: -------------------------------------------------------------------------------- 1 | 2.0329320e+00 8.8388348e-02 2 | 1.6793786e+00 4.4194174e-01 3 | 1.3258252e+00 7.9549513e-01 4 | 9.7227182e-01 1.1490485e+00 5 | 6.1871843e-01 1.5026019e+00 6 | 2.6516504e-01 1.8561553e+00 7 | 0.0000000e+00 2.2580000e+00 8 | 2.5690000e+00 0.0000000e+00 9 | -------------------------------------------------------------------------------- /resources/reference_front/UF5.pf: -------------------------------------------------------------------------------- 1 | 0.0000000e+000 1.0000000e+000 2 | 5.0000000e-002 9.5000000e-001 3 | 1.0000000e-001 9.0000000e-001 4 | 1.5000000e-001 8.5000000e-001 5 | 2.0000000e-001 8.0000000e-001 6 | 2.5000000e-001 7.5000000e-001 7 | 3.0000000e-001 7.0000000e-001 8 | 3.5000000e-001 6.5000000e-001 9 | 4.0000000e-001 6.0000000e-001 10 | 4.5000000e-001 5.5000000e-001 11 | 5.0000000e-001 5.0000000e-001 12 | 5.5000000e-001 4.5000000e-001 13 | 6.0000000e-001 4.0000000e-001 14 | 6.5000000e-001 3.5000000e-001 15 | 7.0000000e-001 3.0000000e-001 16 | 7.5000000e-001 2.5000000e-001 17 | 8.0000000e-001 2.0000000e-001 18 | 8.5000000e-001 1.5000000e-001 19 | 9.0000000e-001 1.0000000e-001 20 | 9.5000000e-001 5.0000000e-002 21 | 1.0000000e+000 0.0000000e+000 22 | -------------------------------------------------------------------------------- /src/jmetal/__init__.py: -------------------------------------------------------------------------------- 1 | from jmetal import algorithm, core, operator, problem 2 | from jmetal.logger import configure_logging 3 | 4 | configure_logging() 5 | 6 | __all__ = ["core", "algorithm", "operator", "problem"] 7 | __version__ = "1.6.0" 8 | -------------------------------------------------------------------------------- /src/jmetal/algorithm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/src/jmetal/algorithm/__init__.py -------------------------------------------------------------------------------- /src/jmetal/algorithm/multiobjective/__init__.py: -------------------------------------------------------------------------------- 1 | from .gde3 import GDE3, DynamicGDE3 2 | from .hype import HYPE 3 | from .ibea import IBEA 4 | from .mocell import MOCell 5 | from .moead import MOEAD, MOEAD_DRA, MOEADIEpsilon 6 | from .nsgaii import NSGAII, DistributedNSGAII, DynamicNSGAII 7 | from .omopso import OMOPSO 8 | from .random_search import RandomSearch 9 | from .smpso import SMPSO, SMPSORP, DynamicSMPSO 10 | from .spea2 import SPEA2 11 | -------------------------------------------------------------------------------- /src/jmetal/algorithm/singleobjective/__init__.py: -------------------------------------------------------------------------------- 1 | from .evolution_strategy import EvolutionStrategy 2 | from .genetic_algorithm import GeneticAlgorithm 3 | from .local_search import LocalSearch 4 | from .simulated_annealing import SimulatedAnnealing 5 | -------------------------------------------------------------------------------- /src/jmetal/config.py: -------------------------------------------------------------------------------- 1 | from jmetal.core.observer import Observable 2 | from jmetal.operator.mutation import BitFlipMutation, PolynomialMutation 3 | from jmetal.util.comparator import DominanceComparator 4 | from jmetal.util.evaluator import Evaluator, SequentialEvaluator 5 | from jmetal.util.generator import RandomGenerator 6 | from jmetal.util.observable import DefaultObservable 7 | from jmetal.util.termination_criterion import StoppingByEvaluations 8 | 9 | 10 | class _Store: 11 | @property 12 | def default_observable(self) -> Observable: 13 | return DefaultObservable() 14 | 15 | @property 16 | def default_evaluator(self) -> Evaluator: 17 | return SequentialEvaluator() 18 | 19 | @property 20 | def default_generator(self): 21 | return RandomGenerator() 22 | 23 | @property 24 | def default_termination_criteria(self): 25 | return StoppingByEvaluations(max_evaluations=25000) 26 | 27 | @property 28 | def default_comparator(self): 29 | return DominanceComparator() 30 | 31 | @property 32 | def default_mutation(self): 33 | return {"real": PolynomialMutation(probability=0.15, distribution_index=20), "binary": BitFlipMutation(0.15)} 34 | 35 | 36 | store = _Store() 37 | -------------------------------------------------------------------------------- /src/jmetal/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/src/jmetal/core/__init__.py -------------------------------------------------------------------------------- /src/jmetal/core/observer.py: -------------------------------------------------------------------------------- 1 | from abc import ABC, abstractmethod 2 | 3 | """ 4 | .. module:: Observable 5 | :platform: Unix, Windows 6 | :synopsis: Implementation of the observer-observable pattern. 7 | 8 | .. moduleauthor:: Antonio J. Nebro 9 | """ 10 | 11 | 12 | class Observer(ABC): 13 | @abstractmethod 14 | def update(self, *args, **kwargs): 15 | """Update method.""" 16 | pass 17 | 18 | 19 | class Observable(ABC): 20 | @abstractmethod 21 | def register(self, observer): 22 | pass 23 | 24 | @abstractmethod 25 | def deregister(self, observer): 26 | pass 27 | 28 | @abstractmethod 29 | def deregister_all(self): 30 | pass 31 | 32 | @abstractmethod 33 | def notify_all(self, *args, **kwargs): 34 | pass 35 | -------------------------------------------------------------------------------- /src/jmetal/lab/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/src/jmetal/lab/__init__.py -------------------------------------------------------------------------------- /src/jmetal/lab/statistical_test/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/src/jmetal/lab/statistical_test/__init__.py -------------------------------------------------------------------------------- /src/jmetal/lab/visualization/__init__.py: -------------------------------------------------------------------------------- 1 | from jmetal.lab.statistical_test.critical_distance import CDplot 2 | 3 | from .interactive import InteractivePlot 4 | from .plotting import Plot 5 | from .posterior import plot_posterior 6 | from .streaming import StreamingPlot 7 | 8 | __all__ = ["Plot", "InteractivePlot", "StreamingPlot", "CDplot", "plot_posterior"] 9 | -------------------------------------------------------------------------------- /src/jmetal/logger.py: -------------------------------------------------------------------------------- 1 | import logging.config 2 | 3 | 4 | def configure_logging(): 5 | DEFAULT_LOGGING_CONFIG = { 6 | "version": 1, 7 | "disable_existing_loggers": False, 8 | "formatters": { 9 | "basic": { 10 | "format": "[%(asctime)s] [%(name)s] [%(levelname)s] %(message)s", 11 | } 12 | }, 13 | "handlers": { 14 | "console": { 15 | "formatter": "basic", 16 | "class": "logging.StreamHandler", 17 | "stream": "ext://sys.stderr", 18 | } 19 | }, 20 | "loggers": { 21 | "jmetal": {"handlers": ["console"], "level": "DEBUG"}, 22 | }, 23 | } 24 | 25 | logging.config.dictConfig(DEFAULT_LOGGING_CONFIG) 26 | 27 | 28 | def get_logger(module): 29 | return logging.getLogger(module) 30 | -------------------------------------------------------------------------------- /src/jmetal/operator/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | from .crossover import ( 3 | CXCrossover, 4 | DifferentialEvolutionCrossover, 5 | NullCrossover, 6 | PMXCrossover, 7 | SBXCrossover, 8 | SPXCrossover, 9 | IntegerSBXCrossover, 10 | ) 11 | from .mutation import ( 12 | BitFlipMutation, 13 | IntegerPolynomialMutation, 14 | NullMutation, 15 | PermutationSwapMutation, 16 | PolynomialMutation, 17 | ScrambleMutation, 18 | SimpleRandomMutation, 19 | UniformMutation, 20 | ) 21 | from .selection import ( 22 | BestSolutionSelection, 23 | BinaryTournament2Selection, 24 | BinaryTournamentSelection, 25 | NaryRandomSolutionSelection, 26 | RandomSolutionSelection, 27 | RankingAndCrowdingDistanceSelection, 28 | RouletteWheelSelection, 29 | ) 30 | 31 | __all__ = [ 32 | "NullCrossover", 33 | "SBXCrossover", 34 | "SPXCrossover", 35 | "DifferentialEvolutionCrossover", 36 | "PMXCrossover", 37 | "CXCrossover", 38 | "NullMutation", 39 | "BitFlipMutation", 40 | "PolynomialMutation", 41 | "IntegerPolynomialMutation", 42 | "UniformMutation", 43 | "SimpleRandomMutation", 44 | "ScrambleMutation", 45 | "PermutationSwapMutation", 46 | "RouletteWheelSelection", 47 | "BestSolutionSelection", 48 | "BinaryTournamentSelection", 49 | "BinaryTournament2Selection", 50 | "RandomSolutionSelection", 51 | "NaryRandomSolutionSelection", 52 | "RankingAndCrowdingDistanceSelection", 53 | ] 54 | 55 | """ -------------------------------------------------------------------------------- /src/jmetal/problem/__init__.py: -------------------------------------------------------------------------------- 1 | from .multiobjective.constrained import Srinivas, Tanaka 2 | from .multiobjective.dtlz import * 3 | from .multiobjective.lz09 import LZ09_F2 4 | from .multiobjective.unconstrained import Fonseca, Kursawe, Schaffer, Viennet2 5 | from .multiobjective.zdt import ZDT1, ZDT2, ZDT3, ZDT4, ZDT5, ZDT6 6 | from .singleobjective.tsp import TSP 7 | from .singleobjective.unconstrained import OneMax, Sphere 8 | 9 | __all__ = [ 10 | "Srinivas", 11 | "Tanaka", 12 | "Kursawe", 13 | "Fonseca", 14 | "Schaffer", 15 | "Viennet2", 16 | "DTLZ1", 17 | "DTLZ2", 18 | "DTLZ3", 19 | "DTLZ4", 20 | "DTLZ5", 21 | "DTLZ6", 22 | "DTLZ7", 23 | "ZDT1", 24 | "ZDT2", 25 | "ZDT3", 26 | "ZDT4", 27 | "ZDT5", 28 | "ZDT6", 29 | "LZ09_F2", 30 | "OneMax", 31 | "Sphere", 32 | "TSP", 33 | ] 34 | -------------------------------------------------------------------------------- /src/jmetal/problem/multiobjective/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/src/jmetal/problem/multiobjective/__init__.py -------------------------------------------------------------------------------- /src/jmetal/problem/singleobjective/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/src/jmetal/problem/singleobjective/__init__.py -------------------------------------------------------------------------------- /src/jmetal/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/src/jmetal/util/__init__.py -------------------------------------------------------------------------------- /src/jmetal/util/constraint_handling.py: -------------------------------------------------------------------------------- 1 | from jmetal.core.solution import Solution 2 | from jmetal.util.ckecking import Check 3 | 4 | 5 | def is_feasible(solution: Solution) -> bool: 6 | """ 7 | Returns a boolean value concerning the feasibility of a solution 8 | :param solution: 9 | :return: true if the solution is feasible; false otherwise 10 | """ 11 | return number_of_violated_constraints(solution) == 0 12 | 13 | 14 | def number_of_violated_constraints(solution: Solution) -> int: 15 | """ 16 | Returns the number of violated constraints of a solution 17 | :param solution: 18 | :return: 19 | """ 20 | return sum([1 for _ in solution.constraints if _ < 0]) 21 | 22 | 23 | def overall_constraint_violation_degree(solution: Solution) -> float: 24 | """ 25 | Returns the constraint violation degree of a solution, which is the sum of the constraint values that are not zero 26 | :param solution: 27 | :return: 28 | """ 29 | return sum([value for value in solution.constraints if value < 0]) 30 | 31 | 32 | def feasibility_ratio(solutions: [Solution]): 33 | """ 34 | Returns the percentage of feasible solutions in a solution list 35 | :param solutions: 36 | :return: 37 | """ 38 | Check.that(len(solutions) > 0, "The solution list is empty") 39 | 40 | return sum(1 for solution in solutions if is_feasible(solution)) / len(solutions) 41 | -------------------------------------------------------------------------------- /src/jmetal/util/distance.py: -------------------------------------------------------------------------------- 1 | from abc import ABC, abstractmethod 2 | 3 | import numpy 4 | from scipy.spatial import distance 5 | 6 | """ 7 | .. module:: distance 8 | :platform: Unix, Windows 9 | :synopsis: implementation of distances between entities 10 | 11 | .. moduleauthor:: Antonio J. Nebro 12 | """ 13 | 14 | 15 | class Distance(ABC): 16 | @abstractmethod 17 | def get_distance(self, element1, element2) -> float: 18 | pass 19 | 20 | 21 | class EuclideanDistance(Distance): 22 | def get_distance(self, list1: [], list2: []): 23 | return distance.euclidean(list1, list2) 24 | 25 | 26 | class CosineDistance(Distance): 27 | def __init__(self, reference_point: []): 28 | self.reference_point = reference_point 29 | 30 | def get_distance(self, list1: [], list2: []): 31 | total = sum( 32 | numpy.multiply( 33 | [(x - r) for x, r in zip(list1, self.reference_point)], 34 | [(y - r) for y, r in zip(list2, self.reference_point)], 35 | ) 36 | ) 37 | 38 | a = distance.cosine( 39 | [x - y for x, y in zip(list1, self.reference_point)], [x - y for x, y in zip(list2, self.reference_point)] 40 | ) 41 | 42 | b = total / ( 43 | self.__sum_of_distances_to_reference_point(list1) * self.__sum_of_distances_to_reference_point(list2) 44 | ) 45 | 46 | return b 47 | 48 | def __sum_of_distances_to_reference_point(self, l: []): 49 | return sum([pow(x - y, 2.0) for x, y in zip(l, self.reference_point)]) 50 | -------------------------------------------------------------------------------- /src/jmetal/util/generator.py: -------------------------------------------------------------------------------- 1 | import copy 2 | from abc import ABC, abstractmethod 3 | from typing import Generic, List, TypeVar 4 | 5 | from jmetal.core.problem import Problem 6 | from jmetal.core.solution import Solution 7 | 8 | R = TypeVar("R") 9 | 10 | """ 11 | .. module:: generator 12 | :platform: Unix, Windows 13 | :synopsis: Population generators implementation. 14 | 15 | .. moduleauthor:: Antonio Benítez-Hidalgo 16 | """ 17 | 18 | 19 | class Generator(Generic[R], ABC): 20 | @abstractmethod 21 | def new(self, problem: Problem) -> R: 22 | pass 23 | 24 | 25 | class RandomGenerator(Generator): 26 | def new(self, problem: Problem): 27 | return problem.create_solution() 28 | 29 | 30 | class InjectorGenerator(Generator): 31 | def __init__(self, solutions: List[Solution]): 32 | super(InjectorGenerator, self).__init__() 33 | self.population = copy.deepcopy(solutions) 34 | 35 | def new(self, problem: Problem): 36 | if len(self.population) > 0: 37 | # If we have more solutions to inject, return one from the list 38 | return self.population.pop() 39 | else: 40 | # Otherwise generate a new solution 41 | solution = problem.create_solution() 42 | 43 | return solution 44 | -------------------------------------------------------------------------------- /src/jmetal/util/observable.py: -------------------------------------------------------------------------------- 1 | import logging 2 | import threading 3 | import time 4 | 5 | from jmetal.core.observer import Observable, Observer 6 | 7 | LOGGER = logging.getLogger("jmetal") 8 | 9 | """ 10 | .. module:: observable 11 | :platform: Unix, Windows 12 | :synopsis: Implementation of observable entities (using delegation) 13 | .. moduleauthor:: Antonio J. Nebro 14 | """ 15 | 16 | 17 | class DefaultObservable(Observable): 18 | def __init__(self): 19 | self.observers = [] 20 | 21 | def register(self, observer: Observer): 22 | if observer not in self.observers: 23 | self.observers.append(observer) 24 | 25 | def deregister(self, observer: Observer): 26 | if observer in self.observers: 27 | self.observers.remove(observer) 28 | 29 | def deregister_all(self): 30 | if self.observers: 31 | del self.observers[:] 32 | 33 | def notify_all(self, *args, **kwargs): 34 | for observer in self.observers: 35 | observer.update(*args, **kwargs) 36 | 37 | 38 | class TimeCounter(threading.Thread): 39 | def __init__(self, delay: int, observable: Observable = DefaultObservable()): 40 | super(TimeCounter, self).__init__() 41 | self.observable = observable 42 | self.delay = delay 43 | 44 | def run(self): 45 | counter = 0 46 | observable_data = {} 47 | 48 | while True: 49 | time.sleep(self.delay) 50 | 51 | observable_data["COUNTER"] = counter 52 | self.observable.notify_all(**observable_data) 53 | 54 | counter += 1 55 | -------------------------------------------------------------------------------- /src/jmetal/util/point.py: -------------------------------------------------------------------------------- 1 | from abc import ABC, abstractmethod 2 | 3 | """ 4 | .. module:: point 5 | :platform: Unix, Windows 6 | :synopsis: implementation of points of n-dimensions (e.g, ideal point, nadir point, etc. 7 | 8 | .. moduleauthor:: Antonio J. Nebro 9 | """ 10 | 11 | 12 | class Point(ABC): 13 | @abstractmethod 14 | def update(self, vector: []) -> None: 15 | pass 16 | 17 | 18 | class IdealPoint(Point): 19 | def __init__(self, dimension: int): 20 | self.point = dimension * [float("inf")] 21 | 22 | def update(self, vector: []) -> None: 23 | self.point = [y if x > y else x for x, y in zip(self.point, vector)] 24 | -------------------------------------------------------------------------------- /tests/algorithm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/tests/algorithm/__init__.py -------------------------------------------------------------------------------- /tests/core/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/tests/core/__init__.py -------------------------------------------------------------------------------- /tests/core/test_operator.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from jmetal.core.operator import Crossover, Mutation 4 | 5 | 6 | class FakeMutation(Mutation): 7 | """ 8 | Fake class used only for testing purposes. 9 | """ 10 | 11 | def __init__(self, probability: float): 12 | super(FakeMutation, self).__init__(probability=probability) 13 | 14 | 15 | class FakeCrossover(Crossover): 16 | """ 17 | Fake class used only for testing purposes. 18 | """ 19 | 20 | def __init__(self, probability: float): 21 | super(FakeCrossover, self).__init__(probability=probability) 22 | 23 | 24 | class OperatorTestCase(unittest.TestCase): 25 | def test_should_mutation_constructor_raises_an_exception_is_probability_is_negative(self) -> None: 26 | with self.assertRaises(Exception): 27 | FakeMutation(-1) 28 | 29 | def test_should_mutation_constructor_raises_an_exception_is_probability_is_higher_than_one(self) -> None: 30 | with self.assertRaises(Exception): 31 | FakeMutation(1.1) 32 | 33 | def test_should_crossover_constructor_raises_an_exception_is_probability_is_negative(self) -> None: 34 | with self.assertRaises(Exception): 35 | FakeCrossover(-1) 36 | 37 | def test_should_crossover_constructor_raises_an_exception_is_probability_is_higher_than_one(self) -> None: 38 | with self.assertRaises(Exception): 39 | FakeCrossover(1.1) 40 | 41 | 42 | if __name__ == "__main__": 43 | unittest.main() 44 | -------------------------------------------------------------------------------- /tests/problem/multiobjective/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/tests/problem/multiobjective/__init__.py -------------------------------------------------------------------------------- /tests/problem/singleobjective/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/tests/problem/singleobjective/__init__.py -------------------------------------------------------------------------------- /tests/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jMetal/jMetalPy/c7c0450171b614e0a45c12c494dead6a768c4585/tests/util/__init__.py -------------------------------------------------------------------------------- /tests/util/test_aggregation_function.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from jmetal.util.aggregation_function import WeightedSum 4 | 5 | 6 | class WeightedSumTestCases(unittest.TestCase): 7 | def test_should_aggregative_sum_work_properly_with_2D_vectors(self) -> None: 8 | aggregative_function = WeightedSum() 9 | 10 | self.assertEqual(1.5, aggregative_function.compute([1.5, 2.9], [1.0, 0.0])) 11 | self.assertEqual(2.9, aggregative_function.compute([1.5, 2.9], [0.0, 1.0])) 12 | self.assertEqual(1.5 / 2.0 + 2.9 / 2.0, aggregative_function.compute([1.5, 2.9], [0.5, 0.5])) 13 | 14 | 15 | if __name__ == "__main__": 16 | unittest.main() 17 | -------------------------------------------------------------------------------- /tests/util/test_checking.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from jmetal.util.ckecking import ( 4 | Check, 5 | InvalidConditionException, 6 | InvalidProbabilityValueException, 7 | NoneParameterException, 8 | ValueOutOfRangeException, 9 | ) 10 | 11 | 12 | class CheckingTestCases(unittest.TestCase): 13 | def test_should_is_not_null_raise_an_exception(self) -> None: 14 | with self.assertRaises(NoneParameterException): 15 | Check.is_not_none(None) 16 | 17 | def test_should_is_valid_probability_raise_an_exception_if_the_value_is_negative(self) -> None: 18 | with self.assertRaises(InvalidProbabilityValueException): 19 | Check.probability_is_valid(-1.0) 20 | 21 | def test_should_is_valid_probability_raise_an_exception_if_the_value_is_higher_than_one(self) -> None: 22 | with self.assertRaises(InvalidProbabilityValueException): 23 | Check.probability_is_valid(1.1) 24 | 25 | def test_should_is_value_in_range_raise_an_exception_if_the_value_is_lower_than_the_lower_bound(self) -> None: 26 | with self.assertRaises(ValueOutOfRangeException): 27 | Check.value_is_in_range(2, 3, 5) 28 | 29 | def test_should_is_value_in_range_raise_an_exception_if_the_value_is_higher_than_the_upper_bound(self) -> None: 30 | with self.assertRaises(ValueOutOfRangeException): 31 | Check.value_is_in_range(7, 3, 5) 32 | 33 | def test_should_that_raise_an_exception_if_the_expression_is_false(self) -> None: 34 | with self.assertRaises(InvalidConditionException): 35 | Check.that(False, "The expression is false") 36 | 37 | 38 | if __name__ == "__main__": 39 | unittest.main() 40 | -------------------------------------------------------------------------------- /tests/util/test_point.py: -------------------------------------------------------------------------------- 1 | import unittest 2 | 3 | from jmetal.util.point import IdealPoint 4 | 5 | 6 | class IdealPointTestCases(unittest.TestCase): 7 | def test_should_constructor_create_a_correctly_initialized_point(self) -> None: 8 | point = IdealPoint(2) 9 | 10 | self.assertEqual(2, len(point.point)) 11 | self.assertEqual(2 * [float("inf")], point.point) 12 | 13 | def test_should_update_with_one_point_work_properly(self) -> None: 14 | point = IdealPoint(3) 15 | 16 | vector = [2.2, -1.5, 3.5] 17 | point.update(vector) 18 | 19 | self.assertEqual(vector, point.point) 20 | 21 | def test_should_update_with_two_solutions_work_properly(self) -> None: 22 | point = IdealPoint(2) 23 | 24 | vector1 = [0.0, 1.0] 25 | vector2 = [1.0, 0.0] 26 | 27 | point.update(vector1) 28 | point.update(vector2) 29 | 30 | self.assertEqual([0.0, 0.0], point.point) 31 | 32 | def test_should_update_with_three_solutions_work_properly(self) -> None: 33 | point = IdealPoint(3) 34 | 35 | point.update([3.0, 1.0, 2.0]) 36 | point.update([0.2, 4.0, 5.5]) 37 | point.update([5.0, 6.0, 1.5]) 38 | 39 | self.assertEqual([0.2, 1.0, 1.5], point.point) 40 | 41 | 42 | if __name__ == "__main__": 43 | unittest.main() 44 | --------------------------------------------------------------------------------