NAEMO: Neighborhood-sensitive Archived Evolutionary Many-objective Optimization Algorithm

Authors: Raunak Sengupta, Monalisa Pal, Sriparna Saha and Sanghamitra Bandyopadhyay
Email: raunaksengupta@gmail.com, monalisap90@gmail.com, sriparna.saha@gmail.com and sanghami@isical.ac.in
Link to publication: https://doi.org/10.1016/j.swevo.2018.12.002

Welcome to this webpage which presents a many-objective optimization approach viz. NAEMO or Neighborhood-sensitive Archived Evolutionary Many-objective Optimization. This proposed algorithm has been applied on DTLZ, WFG and IMB test problems and the efficacy of the approach has been analysed using IGD metric, hypervolume indicator, purity metric and radial plot visualization. The major characteristics of this approach are as follows: smart use of neighborhood property, periodic filtering of archive, monotonic improvement in diversity, use of decomposition as well as dominance during optimization and use of mutation switching scheme as an adaptive mechanism among multiple reproduction operators. This webpage contains the Python 3.4 code as a downloadable ZIP folder, and the step-wise illustration of the execution of the code.


Specifications of the code

The experiment was conducted in a system having Intel Core i7 processor @ 2.5GHz with 8GB RAM and using Python 3.4.

The Python 3.4 codes are available in a compressed folder named "NAEMO_PythonFiles.zip" which is downloadable from the link below. The compressed folder is to be extracted in which there are 4 .py files. Out of these .py files, the file named "main_run.py" is to be executed and the remaining ones include function definitions required for the entire execution. This program encodes DTLZ1-4 test problems in "problems.py" file which is to be modified if some other test problems or functions of a practical applications are to be used.

Click here to download the Python 3.4 implementation of NAEMO.

As NAEMO is a decomposition-based approach, the implementation is available with standard settings of sub-space partitioning. For any arbitrary sub-space partitioning, please visit this page.


Steps to execute the associated program

The code can be executed as listed below. Against each step, a screenshot is provided for reference. The screenshots are taken during execution of the code in Windows 10.

  1. Open PyCharm. (Here, JetBrains PyCharm Community Edition 2016.3.1 has been used.) Click on "Open" (highlighted in green box) and browse to the location where the ZIP folder has been extracted in order to open project.
  2. The location appears at the title bar (highlighted by red box). Ensure there are 4 python files and a folder in that location from the "Project" pane, including the file named "main_run.py" (highlighted by purple box) which is the file to be executed for running NAEMO.
  3. One of the ways to execute the file (main) is to open the file in an Editor window (by double-clicking "main_run.py" under "Project" pane) and use the "Run" button at top right corner (highlighted by red box). Alternatively, one can type "python main_run.py" in the Terminal window when the prompt (Location>) appears in order to execute the program (highlighted by orange box).
  4. The parameter settings from the paper are fed into the example runs (highlighted by blue box, users are recommeneded to change these settings as per problem requirements), the NAEMO algorithm starts to search for the Pareto-optimal front for the first example run (highlighted by green box).
  5. At the end of the first example run (DTLZ1 with 3 objectives), the IGD value is displayed and the second example with the new parameter settings (highlighted by blue box) starts executing (highlighted by green box).
  6. At the end of the second example run (DTLZ2 with 10 objectives), the IGD value is displayed and the prompt (Location>) returns (highlighted by orange box).
1 / 6
Step 1 of 6
2 / 6
Step 2 of 6
3 / 6
Step 3 of 6
4 / 6
Step 4 of 6
5 / 6
Step 5 of 6
6 / 6
Step 6 of 6



Links to Other Projects


hit counter

Visitor Counter

                

Author: Monalisa Pal

Email: monalisap90@gmail.com