Skip to content

Latest commit

 

History

History
100 lines (67 loc) · 3.1 KB

getting_started.md

File metadata and controls

100 lines (67 loc) · 3.1 KB

Getting Started With δMOEA

(C) 2017 DecisionVis LLC

Getting δMOEA

For Developers

These options are recommended for developers who want to work with the source code of δMOEA itself.

Clone the Repository

Use git to clone the repository found at:

https://github.com/DecisionVis/deltamoea.git.

The master branch always points at the last stable release of δMOEA. Releases are tagged.

Alternative: Download a Repository Snapshot

This option is recommended for developers who cannot use git (or prefer not to).

GitHub automatically rolls up the δMOEA repository into the archive format of your choice. Download a release snapshot from

https://github.com/DecisionVis/deltamoea/releases

The disadvantage of this approach relative to cloning the repository is that it does not preserve the commit history.

For Users

These options are recommended for developers and users for whom managing the δMOEA dependency is more important than working with the source.

Pip

You can use pip install deltamoea to install δMOEA. This is best done as a user install or within a virtualenv. (Pip installs to system directories are a bad idea in general.)

Alternative: Manually Download a δMOEA Release Package from PyPI

δMOEA releases are available as tarballs and Python Wheels from PyPI:

https://pypi.org/project/deltamoea/#files

These can also be installed with pip or by extracting the archive and running python setup.py.

Example Optimization Run

The code for an example optimization run is included in the source repository. See examples/optimize_dtlz2.py. It is necessary to have cloned the repository or downloaded a snapshot to run this example as described below.

From the root directory of the δMOEA repository, execute

python -m examples.optimize_dtlz2 runtime.csv 0 0 1000 > result.csv

This uses 1000 evaluations to optimize a very difficult instance of the DTLZ2 test problem. This instance of DTLZ2 applies a randomly generated rotation to 100 decision variables.

After the run is completed, runtime.csv contains all of the evaluations, and result.csv contains the final Pareto approximation. Since this instance of DTLZ2 has two objectives, even a spreadsheet program should be adequate to plot the evolving search population. Open result.csv and plot objective1 against objective0. DTLZ2 is a minimization problem; the curve you see reflects the conflict between minimizing objective0 and objective1.

Now open runtime.csv and plot objective1 against objective0. This shows all of the evaluations used during optimization. Color by nfe to see how δMOEA pushes its sampling towards improved solutions. The animation in Figure 1 illustrates this process.

Figure 1: Accumulated evaluations

Next Steps

Take optimize_dtlz2.py and modify it to suit your needs. Consult doc/api.md for reference as needed.