The NEOS Server offers PSwarm v1.1 for the solution of bound and linear constrained optimization problems in AMPL format.
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.
We expect that all publications describing work using this software quote the following reference:
A. I. F. Vaz and L. N. Vicente, A particle swarm pattern search method for bound constrained global optimization, Journal of Global Optimization, 39 (2007) 197-219.
For further information about PSwarm, contact email@example.com.
Using the NEOS Server for PSwarm
The user may submit a model in AMPL format.
Examples of models in AMPL format can be found in the PSwarm homepage.
The model is specified by a model file, and optionally, a data file and a commands file. If the command file is specified it must contain the AMPL solve command.
The commands file can contain any AMPL command or set
options for PSwarm with, for example,
option pswarm_options "size=60";
Options include any of the parameters
- size=nn - Sets the population size to nn (integer)
- cognitial=xx - Sets the cognitial parameter to xx (double)
- delta=xx - Sets the initial delta parameter to xx (double)
- social=xx - Sets the social parameter to xx (double)
- maxf=nn - Sets the maximum number of function evaluations to nn (integer)
- maxit=nn - Sets the maximum number of iterations to nn (integer)
- fweight=xx - Sets the final inertia weight to xx (double)
- iweight=xx - Sets the initial inertia weight to xx (double)
Printing directed to standard out is returned to the user with the output.