v.0.1.35, 2017-04-29

  • Added support for termination based on elapsed time
  • Added the Hartman6 test problem

v.0.1.34, 2017-03-28

  • Added support for adding points with known (and unknown) function values to the experimental design

v.0.1.33, 2016-12-27

  • Fixed a bug in MARS that resulted in using a lot of zero points for fitting
  • Added a GP regression object based on scikit-learn 0.18.1
  • Updated tests and documentation

v.0.1.32, 2016-12-07

  • Switched to make py-earth, matlab_wrapper, and subprocess32 optional dependencies to resolve pip installation issues

v.0.1.31, 2016-11-23

  • Added Python 3 support
  • Removed Sphinx dependency
  • Added six dependency to get py-earth to work for Python 3

v.0.1.30, 2016-11-18

  • Moved all of the official pySOT documentation over to Sphinx
  • Five pySOT tutorials were added to the documentation
  • The documentation is now hosted on Read the Docs (
  • Removed pyKriging in order to remove the matplotlib and inspyred dependencies. A new Kriging module will be added in the next version.
  • Added the MARS installation to the since it can now be installed via scikit-learn
  • Updated the Sphinx documentation to include all of the source files
  • The License, Changes, Contributors, and README files are not in .rst
  • Renamed to
  • Moved the kernels and tails to separate Python files
  • Added a Gitter for pySOT

v0.1.29, 2016-10-20

  • Correcting an error in the pypi upload

v0.1.28, 2016-10-20

  • Making the GUI work with the new RBF design

v0.1.27, 2016-10-18

  • Removed dimensionality argument for the RBF to match the other surrogates

v0.1.26, 2016-10-14

  • Signficant changes in the RBFInterpolant. Users need to update their code
  • Added RBF regression surfaces
  • Added version information in the module. pySOT.__version__ gives the version of the current pySOT installation
  • The Gutmann strategy has been temporarily removed due to the RBF redesign, but will be added back soon
  • Check out to see how to use the new RBF

v0.1.25, 2016-09-14

  • Fixed a bug in DYCORS when the subset has length 1

v0.1.24, 2016-08-04

  • Changed to to use rst format for pypi

v0.1.23, 2016-07-28

  • Updates to support the new MPIController in POAP
  • pySOT now sends copies of key variables in case they are changed by the method

v0.1.23, 2016-07-28

  • Updates to support the new MPIController in POAP
  • pySOT now sends copies of key variables in case they are changed by the method

v0.1.22, 2016-06-27

  • Added two tests for the MPI controller in POAP
  • Removed the accidental matplotlib dependency
  • Fixed some printouts in the tests

v0.1.21, 2016-06-23

  • Added an option for supplying weights to the candidate point methods
  • Cleaned up some of the tests by appending attributes to the workers
  • Extended the MATLAB example to parallel
  • Added a help function for doing a progress plot

v0.1.20, 2016-06-18

  • Added some basic input checking (evaluations, dimensionality, etc)
  • Added an example with a MATLAB engine in case the optimization problems is in MATLAB
  • Fixed a bug in the polynomial regression
  • Moved the merit function out of

v0.1.19, 2016-01-30

  • Too much regularization was added to the RBF surface when the volume of the domain was large. This has been fixed.

v0.1.18, 2016-01-24

  • Significant restructuring of the code base
  • make_points now takes an argument that specifies the number of new points to be generated
  • Added Box-Behnken and 2-factorial to the experimental designs
  • Simplified the penalty method strategy by moving evals and derivs into a surrogate wrapper

v0.1.17, 2016-01-13

  • Added the possibility to input the penalty for the penalty method in the GUI
  • Added the possibility of making a performance plot using matplotlib that adds new points dynamically as evaluations are finished
  • Switched from subprocess to subprocess32

v0.1.16, 2016-01-06

  • Added a projection strategy

v0.1.15, 2015-09-23

  • Added an example test_subprocess_files that shows how to use pySOT in case the objective function needs to read the input from a textfile

v0.1.14, 2015-09-22

  • Updated the Tutorial to reflect the changes for the last few months
  • Simplified the object creation from strings in the GUI by importing directly from the namespace.

v0.1.13, 2015-09-03

  • Allowed to still import the rest of pySOT when PySide is not found. In this case, the GUI will be unavailable.

v0.1.12, 2015-07-23

  • The capping can now take in a general transformation that is used to transform the function values. Default is median capping.
  • The Genetic Algorithm now defaults to initialize the population using a symmetric latin hypercube design
  • DYCORS uses the remaining evaluation budget to change the probabilities after a restart instead of using the total budget

v0.1.11, 2015-07-22

  • Fixed a bug in the capped response surface
  • pySOT now internally works on the unit hypercube
  • The distance can be passed to the RBF after being computed when generating candidate points so it’s not computed twice anymore
  • Fixed some bugs in the candidate functions
  • GA and Multi-Search gradient perturb the best solution in the case when the best solution is a previously evaluated point
  • Added an additional test for the multi-search strategy

v0.1.10, 2015-07-14

  • not uploaded to pypi which caused pip install to fail

v0.1.9, 2015-07-13

  • Fixed a bug in the merit function and several bugs in the DYCORS strategy
  • Added a DDS candidate based strategy for searching on the surrogate

v0.1.8, 2015-07-01

  • Multi Start Gradient method that uses the L-BFGS-B algorithm to search on the surroagate

v0.1.7, 2015-06-30

  • Fixed some parameters (and bugs) to improve the DYCORS results. Using DYCORS together with the genetic algorithm is recommended.
  • Added polynomial regression (not yet in the GUI)
  • Changed so that candidate points are generated using truncated normal distribution to avoid projections onto the boundary
  • Removed some accidental scikit dependencies in the ensemble surrogate

v0.1.6, 2015-06-28

  • GUI inactivates all buttons but the stop button while running
  • Bug fixes

v0.1.5, 2015-06-28

  • GUI now has support for multiple search strategies and ensemble surrogates
  • Reallocation bug in the ensemble surrogates fixed
  • Genetic algorithm added to search on the surrogate

v0.1.4, 2015-06-26

  • GUI now has improved error handling
  • Strategies informs the user if they get constraints when not expecting constraints (and the other way) before the run starts

v0.1.3, 2015-06-26

  • Experimental (but not documented) GUI added. You need PySide to use it.
  • Changes in to allow external objective functions that implement ProcessWorkerThread
  • Added GUI test examples in documentation (,,

v0.1.2, 2015-06-24

  • Changed to using the logging module for all the logging in order to conform to the changes in POAP 0.1.9
  • The quiet and stream arguments in the strategies were removed and the tests updated accordingly
  • Turned sleeping of in the subprocess test, to avoid platform dependency issues

v0.1.1, 2015-06-21

  • surrogate_optimizer removed, so the user now has to create his own controller
  • is gone, and the constraint handling is handled in specific strategies instead
  • There are now two strategies, SyncStrategyNoConstraints and SyncStrategyPenalty
  • The search strategies now take a method for providing surrogate predictions rather than keeping a copy of the response surface
  • It is now possible for the user to provide additional points to be added to the initial design, in case a ‘good starting point’ is known.
  • Ensemble surrogates have been added to the toolbox
  • The strategies takes an additional option ‘quiet’ so that all of the printing can be avoided if the user wants
  • There is also an option ‘stream’ in case the printing should be redirected somewhere else, for example to a text file. Default is printing to stdout.
  • Several examples added to pySOT.test

v0.1.0, 2015-06-03

  • Initial release