forked from anyoptimization/pymoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Julian Blank
committed
Aug 13, 2019
1 parent
dee4514
commit 11b45f8
Showing
537 changed files
with
145,169 additions
and
6,532 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
recursive-include . *.py *.pyx *.pxd | ||
recursive-exclude . *.so | ||
recursive-exclude pymoo/experimental *.py | ||
include LICENSE | ||
recursive-include pymoo *.py *.cpp | ||
recursive-exclude pymoo *.so *.pyx *.pxd | ||
|
||
include LICENSE Makefile |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
clean: | ||
rm -rf build dist pymoo.egg-info | ||
|
||
clean-ext: | ||
rm -f pymoo/cython/*.c | ||
rm -f pymoo/cython/*.so | ||
rm -f pymoo/cython/*.cpp | ||
rm -f pymoo/cython/*.html | ||
|
||
compile: | ||
python setup.py build_ext --inplace | ||
|
||
compile-with-cython: | ||
python setup.py build_ext --inplace --cythonize | ||
|
||
dist: | ||
python setup.py sdist | ||
|
||
install: | ||
python setup.py install | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
|
||
# TODO | ||
|
||
|
||
- Write test suite for all algorithms (many problems just run once - no crash should occur) | ||
- Add global tests of all optimization methods | ||
- Elementwise function evaluation gradient is not working yet | ||
- Report None of infeasible or feasible | ||
|
||
|
||
|
||
|
||
#################################################################### | ||
|
||
# DONE | ||
- NSGA3 - add non-dom check finally (factor out the algorithm method and reuse) | ||
- !!! NDS and crowding cast to np.float | ||
- !!! Rewrite integer operation with a wrapper - check if casting is working for different types | ||
- copy of algorithm object when minimize is called | ||
- Add sidebar to homepage | ||
- Decision Making (Pseudo Weight, ...) | ||
- Termination Criteria in x space and fspace - xtol and ftol | ||
- PCP values do have different ranges | ||
- Add ZDT5 and show it for NSGA2 | ||
- 0.9 prob for crossover in general | ||
- add normalization to radar - externalize from pcp | ||
- Performance check nsga3 | ||
- Deliver just .c files for pip to make the build independent from Cython | ||
- Compilation issue with MacOSX Macoave | ||
- NSGA3 worst swap of arguments | ||
|
||
|
||
#################################################################### | ||
|
||
# Future | ||
|
||
- Add mixed variable possibility | ||
- PCX as crossover | ||
- Remove image file from git history | ||
- (mu,lambda) and (mu+lambda) difference | ||
- Add NoCrossover and NoMutation | ||
- Statistics of Survival and more attributes for individuals | ||
- ask and tell interface Documentation | ||
- maybe include CMA-ES: https://github.com/CMA-ES/pycma | ||
- Implement an async version of algorithms |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
------------------------------------------------------------------------------------------------- | ||
Benchmark | ||
------------------------------------------------------------------------------------------------- | ||
|
||
This folder contains an example benchmark setup for algorithms. It is constructed to be executed | ||
on a single-machine with many cores. Since most of the algorithm execute pretty fast we did | ||
not setup a distributed system for our benchmarking yet. | ||
|
||
|
||
1. Run the corresponding benchmark file which will create the configuration into the | ||
pymoo/benchmark/runs folder. You will find for a run a persisted configuration and a batch file | ||
run.bat that contains a line to run each configuration. | ||
|
||
2. The framework must be available where you execute the benchmark. Either you use the globally | ||
installed pymoo through pip or if you are developing a new algorithm you need to import the | ||
local project. To do so, open pymoo/benchmark/execute.py and make sure that the folder to | ||
pymoo is imported correctly. E.g. | ||
|
||
sys.path.insert(0, "/home/blankjul/workspace/pymoo/") | ||
|
||
|
||
|
||
Serialized | ||
======================== | ||
|
||
In order to run all algorithms serialized you can now simply execute: | ||
|
||
cd pymoo/benchmark | ||
sh runs/<algorithm>/run.bat | ||
|
||
This will run all algorithms in a row. Be careful to be in the benchmark folder. | ||
|
||
|
||
Multi Processes | ||
======================== | ||
|
||
For parallelization you can use the runner.py by provided the path to the run.bat and the number | ||
processes to be used. | ||
|
||
python runner.py runs/<algorithm>/run.bat 32 | ||
|
||
To run it on 32 processes. |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.