Authors | Project | Build Status | Latest Version | License |
---|---|---|---|---|
N. Curti | Walkers | Linux : Windows : |
![](https://github.com/Nico-Curti/Walkers/raw/master/docs/img/example.png)
The Walkers toolbox provides a set of optimization algorithms and random walk process inspired by natural process and physical equations. The package also includes a set of common score functions (landscape) to study the characteristics of each walkers and the pro and cons of each optimization strategy.
Walkers support a pure Python implementation and a pure C++ version. To install the two components see the section below.
The Python version depends only by the most common scientific libraries (NumPy, SciPy, Matplotlib).
The C++ version supports only c++ standard 17 and needs OpenGL to perform walker visualization. To enable the multithreading support just build the files with the OMP flags ON.
For the Python installation see here.
For the C++ installation see here.
For any troubles with the dependencies installation we recomend the use of ShUt which includes a complete set of no root users installation scripts.
NOTE: In the Python version the directory wip includes incomplete and untested methods that are work in progress yet.
NOTE: The C++ version is incomplete and untested yet so pay attention to use it! I will finish it ASAP (compatibly with my social life).
Walkers includes a large set of landscape functions commonly used in optimization algorithms testing. These functions are supported either in the Python version either in the C++ one and they are extracted from https://www.sfu.ca/~ssurjano/optimization.html.
Each Python source code includes a small main function to test and show how to use it also in relation with the other codes. A complete example is given in test.py.
Regard the C++ implementation a fully example is given in run.cpp which is also the only real cpp file in the project. All the optimization algorihtms are available just including the single header walkers.h.
The Walkers project is inspired by the EvoloPy project and it is proposed as an optimization and extension of that.
Any contribution is more than welcome ❤️. Just fill an issue or a pull request and I will check ASAP!
See also the list of contributors who partecipated in this project.
Thanks goes to all contributors of this project: