PSwarm is a global optimization solver for bound and linear constrained problems (for which the derivatives of the objective function are unavailable, inaccurate or expensive).
The algorithm combines pattern search and particle swarm. Basically, it applies a directional direct search in the poll step (coordinate search in the pure simple bounds case) and particle swarm in the search step.
PSwarm makes no use of derivative information of the objective function. It has been shown to be efficient and robust for smooth and nonsmooth problems, both in serial and in parallel.
The code is written in both MATLAB and C. It provides an interface with AMPL, Python and R. The C code includes a parallel version using MPI. PSwarm can also be run through the NEOS server (under the Global Optimization category). PSwarm used to be available through the OpenOpt framework, which is no longer available. You can still use PSwarm with Python problems using the builtin code. An update for Python3 is provided below (compiled in a Linux machine).
Downloading and Conditions for Use
Conditions for Use:
PSwarm is freely available for educational, research and commercial use, but we expect that all publications describing work using this software quote the reference given below.
The linear approach is developed in the paper:
The Radial Function Basis (RBF) with Difference of Convex (D.C.) Programming approach is developed in the paper:
Le Thi Hoai An, A.I.F. Vaz and L.N. Vicente. Optimizing Radial Basis Functions by D.C. Programming and its use in Direct Search for Global Derivative-Free Optimization, TOP, 20(2012) 190-214. (published version).
Download (version 1.x):