Parallel Adaptive Swarm Search (PASS)
PASS is written in C++14 and uses Armadillo (developed by Conrad Sanderson et al., NICTA, Australia) for highly efficient linear algebra calculations.
Prerequirements
- GCC 4.8.1 or later
- CMake 3.2 or later
- Armadillo C++ 8.200.0 or later
Installation
Linux Installation
The following commands are based on Ubuntu, using apt-get. If you are using another Linux distributions, the names of each package might also differ.
If you are using any recent Linux distribution, you should already be equipped with a C++11 feature complete compiler, like GCC 4.8.1+
- Install Cmake
sudo apt-get install cmake
- Install Armadillo C++ with OpenBLAS support (visit Armadillo’s download page to find more information on how to use other implementations of BLAS and LAPACK):
sudo apt-get install cmake
- Download and install PASS
git clone --depth 1 --branch master https://github.com/SRAhub/PASS.git
cd PASS
cmake .
make
sudo make install
MacOS Installation
The following commands are based on Homebrew, a package manager for OS X.
- Install Cmake
brew install cmake
- Install GCC
brew install gcc
- Install Armadillo
brew install armadillo
- Download and install PASS
git clone --depth 1 --branch master https://github.com/SRAhub/PASS.git
cd PASS
cmake .
make
sudo make install
- If you don't want to use the MacOS CLANG compiler, you have to change it to the gcc compiler: open *.bash_profiles* and paste the following code (if you are using GCC 7.*)
# Modify system PATH for new GNU compiler install
export PATH="/usr/local/bin:$PATH"
alias gcc='gcc-7'
alias cc='gcc-7'
alias g++='g++-7'
alias c++='c++-7'
Implemented Algorithms
- Parallel Swarm Search (own)
- Standard Particle Swarm Optimisation 2011
- Random Search
Implemented Problems
- Optimisation Benchmark Problems
- Ackley Function
- De Jong's Function
- Griewank Function
- Rastrigin Function
- Rosenbrock Function
- Schwefel Function
- Styblinski-Tang Function
- Sum of Different Powers Function
- Space Mission Problems
License
Distributed under MIT license.
Credits
Big thanks goes to Sebastian Niemann helping during the development.