Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jMetal/jMetalPy
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.5.7
Choose a base ref
...
head repository: jMetal/jMetalPy
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref

Commits on Jan 17, 2020

  1. Add solution generator and evaluator for SA (#67)

    * Add warm startup for SA using population_generator.
    
    * Revert evaluator parametrization in SA.
    YevheniiSemendiak authored and benhid committed Jan 17, 2020
    Copy the full SHA
    a0035e8 View commit details

Commits on Jan 20, 2020

  1. Copy the full SHA
    e5c4f19 View commit details

Commits on Jan 21, 2020

  1. Update nsgaiii.py (#70)

    removed obsolete import
    msteijaert authored and benhid committed Jan 21, 2020
    Copy the full SHA
    e2c448e View commit details

Commits on Feb 17, 2020

  1. Copy the full SHA
    05dc054 View commit details
  2. Add new implementation of quality indicators. All of them receive a n…

    …umpy array as a parameter instead of a list of solutions.
    Yebisu committed Feb 17, 2020
    Copy the full SHA
    dcc677e View commit details
  3. Refactor quality indicators. All of them receive as a parameter a num…

    …py array instead of a list of solutions
    Yebisu committed Feb 17, 2020
    Copy the full SHA
    91f4b2a View commit details
  4. Copy the full SHA
    01e86e2 View commit details
  5. Feature/mixed solution (#73)

    * Working on implementing a IntegerFloatSolution class
    
    * Add unit test cases for class IntegerFloatProblem
    
    * Add class NMMin
    
    * Add class IntegerFloatSBXCrossover
    
    * Add test cases for SBXCrossover
    
    * Still working on implementing an approach for the IntegerFloatSolution class
    
    * Add user defined exceptiones in file checking.py
    
    * Working on the implementation of class CompositeSolution
    
    * Workon on class CompositeSolution
    
    * Class CompositeMutation implemented and tested
    
    * Fix a bug in class Neighborhood
    
    * Class CompositeCrossover implemented and tested
    
    * Add class
    
    * Add class
    
    * Rename file
    
    * Add problem ZDT1Modified
    
    * Add examples with NSGA-II
    
    * Add NSGA-II examples
    
    * Optimize imports
    
    * Minor changes
    
    * Changes on attribute name
    
    Co-authored-by: Yebisu <ajnebro@outlook.com>
    benhid and Yebisu authored Feb 17, 2020
    Copy the full SHA
    8c0a6cf View commit details
  6. Copy the full SHA
    d133359 View commit details
  7. Fix conflicts

    Yebisu committed Feb 17, 2020
    Copy the full SHA
    b84c52c View commit details
  8. Copy the full SHA
    187a9b5 View commit details
  9. Minor changes

    Yebisu committed Feb 17, 2020
    Copy the full SHA
    d4d6297 View commit details
  10. Release v1.5.4

    benhid committed Feb 17, 2020
    Copy the full SHA
    d01c655 View commit details
  11. Copy the full SHA
    d12f584 View commit details

Commits on Feb 18, 2020

  1. Copy the full SHA
    f8f776c View commit details
  2. Fix conflicts

    Yebisu committed Feb 18, 2020
    Copy the full SHA
    9af4f1a View commit details
  3. Minor changes

    Yebisu committed Feb 18, 2020
    Copy the full SHA
    ef462d8 View commit details

Commits on Feb 19, 2020

  1. Add problem UF1

    Yebisu committed Feb 19, 2020
    Copy the full SHA
    0c8fdb6 View commit details

Commits on Mar 11, 2020

  1. Fix bug in ibea.

    12yuens2 committed Mar 11, 2020
    Copy the full SHA
    ea8e426 View commit details
  2. Merge pull request #76 from 12yuens2/ibea-patch

    Fix bug in IBEA
    ajnebro authored Mar 11, 2020
    Copy the full SHA
    aa48ee3 View commit details

Commits on Apr 8, 2020

  1. Copy the full SHA
    14f46d2 View commit details
  2. Copy the full SHA
    3e17507 View commit details

Commits on Apr 9, 2020

  1. Copy the full SHA
    668fa99 View commit details
  2. New minor version 1.5.5

    benhid committed Apr 9, 2020
    Copy the full SHA
    b61cdba View commit details

Commits on Apr 23, 2020

  1. Merge branch 'master' into develop

    benhid committed Apr 23, 2020
    Copy the full SHA
    b89ad96 View commit details

Commits on May 13, 2020

  1. Copy the full SHA
    b055d42 View commit details

Commits on May 26, 2020

  1. Added new minor version

    benhid committed May 26, 2020
    Copy the full SHA
    051693a View commit details
  2. Removed SyntaxWarning for with literals

    benhid committed May 26, 2020
    Copy the full SHA
    2ac4b18 View commit details
  3. Changed typing of frequency to int

    benhid committed May 26, 2020
    Copy the full SHA
    22e53f8 View commit details

Commits on Aug 26, 2020

  1. Minor changes

    ajnebro committed Aug 26, 2020
    Copy the full SHA
    b83a594 View commit details
  2. Resolve merge conflict

    ajnebro committed Aug 26, 2020
    Copy the full SHA
    45d87fc View commit details

Commits on Sep 7, 2020

  1. Copy the full SHA
    e246758 View commit details

Commits on Sep 27, 2020

  1. Copy the full SHA
    c3cf16c View commit details

Commits on Oct 5, 2020

  1. Copy the full SHA
    7957ccc View commit details

Commits on Dec 16, 2020

  1. Added logging

    benhid authored Dec 16, 2020
    Copy the full SHA
    3bf3bee View commit details
  2. Minor changes

    benhid authored Dec 16, 2020
    Copy the full SHA
    fced67f View commit details
  3. Update __init__.py (#92)

    Export `RouletteWheelSelection`
    
    Co-authored-by: Antonio <makishinake@hotmail.com>
    WoLewicki and benhid authored Dec 16, 2020
    Copy the full SHA
    8c2ccdf View commit details

Commits on Feb 5, 2021

  1. Minor changes

    benhid authored Feb 5, 2021
    Copy the full SHA
    396a7ee View commit details
  2. Python version 3.7

    benhid authored Feb 5, 2021
    Copy the full SHA
    a72495e View commit details
  3. Copy the full SHA
    f2ad951 View commit details

Commits on Jun 14, 2021

  1. Minor changes

    ajnebro committed Jun 14, 2021
    Copy the full SHA
    12093d3 View commit details
  2. Fix conflicts after merge

    ajnebro committed Jun 14, 2021
    Copy the full SHA
    00d2b2d View commit details
  3. Optimize imports

    ajnebro committed Jun 14, 2021
    Copy the full SHA
    0ad1934 View commit details
  4. Minor changes

    ajnebro committed Jun 14, 2021
    Copy the full SHA
    29fc848 View commit details

Commits on Oct 14, 2021

  1. Copy the full SHA
    c19ca27 View commit details

Commits on Oct 19, 2021

  1. Fix #115

    benhid authored Oct 19, 2021
    Copy the full SHA
    1903c3c View commit details

Commits on Oct 24, 2021

  1. fixing kursawe's function

    kursawe's f2 function must go through all variables
    isabelagabriely authored Oct 24, 2021
    Copy the full SHA
    a3f5150 View commit details
  2. evaluate function for zdt6 class

    zdt6's f1 function is different from the others zdt functions
    isabelagabriely authored Oct 24, 2021
    Copy the full SHA
    d7828a6 View commit details

Commits on Oct 25, 2021

  1. Merge pull request #121 from isabelagabriely/fix

    fixing kursawe's function
    ajnebro authored Oct 25, 2021
    Copy the full SHA
    84a601b View commit details
  2. Merge pull request #123 from isabelagabriely/fix-2

    evaluate function for zdt6 class
    ajnebro authored Oct 25, 2021
    Copy the full SHA
    b4ecc6c View commit details
Showing 416 changed files with 63,535 additions and 27,190 deletions.
15 changes: 9 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -16,21 +16,24 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
py: [ 3.9, 3.8, 3.7 ]
python-version: [ "3.9", "3.10", "3.11" ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Install Python ${{ matrix.py }}
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.py }}
- name: Get full Python version
shell: bash
run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
run: echo {name}=$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))") >> $GITHUB_OUTPUT
#run: echo ::set-output name=version::$(python -c "import sys; print('-'.join(str(v) for v in sys.version_info))")
- name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install -e .[test]
- name: Run unittest
- name: Test with pytest
shell: bash
run: python -m unittest discover -q
run: |
pip install pytest
pytest
31 changes: 0 additions & 31 deletions .github/workflows/release.yml

This file was deleted.

119 changes: 4 additions & 115 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,116 +1,5 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# dotenv
.env

# virtualenv
.venv
venv/
ENV/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

# idea
.idea

# pypi
.pypirc

# Dask
dask-worker-space

# osx
.DS_Store

# Github codespaces
pythonenv3.8
__pycache__
build
dist
.vscode
38 changes: 23 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,20 +1,28 @@
install:
@python setup.py build install
# Minimal makefile for Sphinx documentation
#

install-dependencies:
@python -m pip install -e .[all]
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SPHINXPROJ = jMetalPy
SOURCEDIR = docs/source
BUILDDIR = build

clean:
@rm -rf build dist .eggs *.egg-info
@find . -type d -name '.mypy_cache' -exec rm -rf {} +
@find . -type d -name '__pycache__' -exec rm -rf {} +
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

black: clean
@isort --profile black jmetal/ examples/
@black jmetal/ examples/
.PHONY: help Makefile

lint:
@mypy jmetal/ examples/ --show-error-codes
# "make github" option to build gh-pages
github:
@make html
@cp -a $(BUILDDIR)/html/. docs
@rm -r $(BUILDDIR)

# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
cp -R $(BUILDDIR)/html/* docs

tests:
@python -m unittest discover -q
21 changes: 12 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -53,11 +53,12 @@ pip install "jmetalpy[complete]" # Install all requirements

## Hello, world! 👋

Examples of configuring and running all the included algorithms are located [in the documentation](https://jmetal.github.io/jMetalPy/multiobjective.algorithms.html).
Examples of configuring and running all the included algorithms are located [in the documentation](https://jmetal.github.io/jMetalPy).

```python
from jmetal.algorithm.multiobjective import NSGAII
from jmetal.operator import SBXCrossover, PolynomialMutation
from jmetal.operator.crossover import SBXCrossover
from jmetal.operator.mutation import PolynomialMutation
from jmetal.problem import ZDT1
from jmetal.util.termination_criterion import StoppingByEvaluations

@@ -67,7 +68,7 @@ algorithm = NSGAII(
problem=problem,
population_size=100,
offspring_population_size=100,
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables, distribution_index=20),
mutation=PolynomialMutation(probability=1.0 / problem.number_of_variables(), distribution_index=20),
crossover=SBXCrossover(probability=1.0, distribution_index=20),
termination_criterion=StoppingByEvaluations(max_evaluations=25000)
)
@@ -78,10 +79,9 @@ algorithm.run()
We can then proceed to explore the results:

```python
from jmetal.util.solution import get_non_dominated_solutions, print_function_values_to_file, \
print_variables_to_file
from jmetal.util.solution import get_non_dominated_solutions, print_function_values_to_file, print_variables_to_file

front = get_non_dominated_solutions(algorithm.get_result())
front = get_non_dominated_solutions(algorithm.result())

# save to files
print_function_values_to_file(front, 'FUN.NSGAII.ZDT1')
@@ -100,11 +100,11 @@ plot_front.plot(front, label='NSGAII-ZDT1', filename='NSGAII-ZDT1', format='png'
<img src=docs/source/_static/NSGAII-ZDT1.png width=450 alt="Pareto front approximation">

## Features
The current release of jMetalPy (v1.5.7) contains the following components:
The current release of jMetalPy (v1.7.0) contains the following components:

* Algorithms: local search, genetic algorithm, evolution strategy, simulated annealing, random search, NSGA-II, NSGA-III, SMPSO, OMOPSO, MOEA/D, MOEA/D-DRA, MOEA/D-IEpsilon, GDE3, SPEA2, HYPE, IBEA. Preference articulation-based algorithms (G-NSGA-II, G-GDE3, G-SPEA2, SMPSO/RP); Dynamic versions of NSGA-II, SMPSO, and GDE3.
* Parallel computing based on Apache Spark and Dask.
* Benchmark problems: ZDT1-6, DTLZ1-2, FDA, LZ09, LIR-CMOP, unconstrained (Kursawe, Fonseca, Schaffer, Viennet2), constrained (Srinivas, Tanaka).
* Benchmark problems: ZDT1-6, DTLZ1-2, FDA, LZ09, LIR-CMOP, RWA, unconstrained (Kursawe, Fonseca, Schaffer, Viennet2), constrained (Srinivas, Tanaka).
* Encodings: real, binary, permutations.
* Operators: selection (binary tournament, ranking and crowding distance, random, nary random, best solution), crossover (single-point, SBX), mutation (bit-blip, polynomial, uniform, random).
* Quality indicators: hypervolume, additive epsilon, GD, IGD.
@@ -118,6 +118,9 @@ The current release of jMetalPy (v1.5.7) contains the following components:

## Changelog

* [Current development version] The project structure has been changed from [flat to src](https://www.pyopensci.org/python-package-guide/package-structure-code/python-package-structure.html)
* [v1.7.0] Add RWA benchmark, refactor classes BinarySolution and BinaryProblem.
* [v1.6.0] Refactor class Problem, the single-objective genetic algorithm can solve constrained problems, performance improvements in NSGA-II, generation of Latex tables summarizing the results of the Wilcoxon rank sum test, added a notebook folder with examples.
* [v1.5.7] Use of linters for catching errors and formatters to fix style, minor bug fixes.
* [v1.5.6] Removed warnings when using Python 3.8.
* [v1.5.5] Minor bug fixes.
@@ -126,4 +129,4 @@ The current release of jMetalPy (v1.5.7) contains the following components:

## License

This project is licensed under the terms of the MIT - see the [LICENSE](LICENSE) file for details.
This project is licensed under the terms of the MIT - see the [LICENSE](LICENSE) file for details.
2 changes: 1 addition & 1 deletion docs/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: d5baa1b64aedad170a2f4617683d66c9
config: 4b780489226086b8db31ab45dede2a32
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file removed docs/_images/abstract.png
Binary file not shown.
Binary file removed docs/_images/bad_access.png
Binary file not shown.
Binary file removed docs/_images/class_header.png
Binary file not shown.
Binary file removed docs/_images/generic_class1.png
Binary file not shown.
Binary file removed docs/_images/generic_class2.png
Binary file not shown.
Binary file removed docs/_images/generic_types.png
Binary file not shown.
Binary file removed docs/_images/generic_types_fixed.png
Binary file not shown.
Binary file removed docs/_images/good_access.png
Binary file not shown.
Binary file removed docs/_images/inheritance_generic_to_generic.png
Binary file not shown.
Binary file removed docs/_images/inheritance_non_generic_to_generic.png
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed docs/_images/method_way_sphinx.png
Binary file not shown.
Binary file removed docs/_images/property_annotation.png
Binary file not shown.
Binary file removed docs/_images/property_functional.png
Binary file not shown.
Binary file removed docs/_images/python_functional_programming.png
Binary file not shown.
Binary file removed docs/_images/python_imperative_programming.png
Binary file not shown.
Binary file removed docs/_images/python_poo_programming.png
Binary file not shown.
Binary file removed docs/_images/types_in_methods.png
Binary file not shown.
Binary file removed docs/_images/with_getter_setter.png
Binary file not shown.
Binary file removed docs/_images/without_getter_setter.png
Binary file not shown.
36 changes: 19 additions & 17 deletions docs/_modules/index.html
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<!-- Licensed under the Apache 2.0 License -->
<link rel="stylesheet" type="text/css" href="../_static/fonts/open-sans/stylesheet.css" />
@@ -12,18 +12,15 @@
<link rel="stylesheet" type="text/css" href="../_static/css/bootstrap.min.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Overview: module code &#8212; jMetalPy 1.5.3 documentation</title>
<link rel="stylesheet" href="../_static/guzzle.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css" />
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<script type="text/javascript" src="../_static/language_data.js"></script>
<script crossorigin="anonymous" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script>
<script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"inlineMath": [["$", "$"], ["\\(", "\\)"]], "processEscapes": true, "ignoreClass": "document", "processClass": "math|output_area"}})</script>
<title>Overview: module code &#8212; jMetalPy 1.7.0 documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/guzzle.css?v=e05a0192" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=9aa90875" />
<script src="../_static/documentation_options.js?v=030dc6f6"></script>
<script src="../_static/doctools.js?v=9a2dae69"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script crossorigin="anonymous" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script>
<link rel="author" title="About these documents" href="../about.html" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />

@@ -39,7 +36,8 @@ <h3>Navigation</h3>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">jMetalPy 1.5.3 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">jMetalPy 1.7.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
</ul>
</div>
<div class="container-wrapper">
@@ -50,7 +48,7 @@ <h3>Navigation</h3>
<div id="left-column">
<div class="sphinxsidebar"><a href="
../index.html" class="text-logo">
<img src="_static/jmetalpy.png" class="img-fluid" alt="jMetalPy 1.5.3 documentation">
<img src="_static/jmetalpy.png" class="img-fluid" alt="jMetalPy 1.7.0 documentation">
<br>
</a>

@@ -72,6 +70,8 @@ <h2>Table Of Contents</h2>
<li class="toctree-l1"><a class="reference internal" href="../singleobjective.algorithms.html">Single-objective algorithms</a></li>
<li class="toctree-l1"><a class="reference internal" href="../operators.html">Operators</a></li>
<li class="toctree-l1"><a class="reference internal" href="../problems.html">Problems</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../about.html">About</a></li>
</ul>


@@ -112,6 +112,7 @@ <h1>All modules for which code is available</h1>
<li><a href="jmetal/algorithm/multiobjective/mocell.html">jmetal.algorithm.multiobjective.mocell</a></li>
<li><a href="jmetal/algorithm/multiobjective/moead.html">jmetal.algorithm.multiobjective.moead</a></li>
<li><a href="jmetal/algorithm/multiobjective/nsgaii.html">jmetal.algorithm.multiobjective.nsgaii</a></li>
<li><a href="jmetal/algorithm/multiobjective/nsgaiii.html">jmetal.algorithm.multiobjective.nsgaiii</a></li>
<li><a href="jmetal/algorithm/multiobjective/omopso.html">jmetal.algorithm.multiobjective.omopso</a></li>
<li><a href="jmetal/algorithm/multiobjective/smpso.html">jmetal.algorithm.multiobjective.smpso</a></li>
<li><a href="jmetal/algorithm/multiobjective/spea2.html">jmetal.algorithm.multiobjective.spea2</a></li>
@@ -162,7 +163,8 @@ <h3>Navigation</h3>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">jMetalPy 1.5.3 documentation</a> &#187;</li>
<li class="nav-item nav-item-0"><a href="../index.html">jMetalPy 1.7.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
</ul>
</div>
<script type="text/javascript">
Loading