github uqfoundation/mystic mystic-0.3.0

latest releases: 0.4.3, 0.4.2, mystic-0.4.1...
8 years ago

mystic provides a collection of optimization algorithms and tools that allows the user to more robustly (and easily) solve hard optimization problems. All optimization algorithms included in mystic provide workflow at the fitting layer, not just access to the algorithms as function calls. mystic gives the user fine-grained power to both monitor and steer optimizations as the fit processes are running. Optimizers can advance one iteration with Step, or run to completion with Solve. Users can customize optimizer stop conditions, where both compound and user-provided conditions may be used. Optimizers can save state, can be reconfigured dynamically, and can be restarted from a saved solver or from a results file. All solvers can also leverage parallel computing, either within each iteration or as an ensemble of solvers. Optimization algorithms in mystic can accept parameter constraints, either in the form of penaties (which "penalize" regions of solution space that violate the constraints), or as constraints (which "constrain" the solver to only search in regions of solution space where the constraints are respected), or both. mystic provides a large selection of constraints, including probabistic and dimensionally reducing constraints. The goal of mystic is to enable the user to easily configure and control solvers, thus greatly reducing the barrier to solving hard optimization problems.

mystic installs with easy_install or pip:
$ pip install mystic

mystic requires:
- python, version >=2.6, version < 3.0
- numpy, version >= 1.0
- sympy, version >= 0.6.7
- dill, version >= 0.2.5
- klepto, version >= 0.1.2

Optional requirements:
- matplotlib, version >= 0.91
- scipy, version >= 0.6.0
- pathos, version >= 0.2.0
- pyina, version >= 0.2a.dev0

mystic is licensed under 3-clause BSD:

>>> import mystic
>>> print (mystic.license())

To cite mystic:

>>> import mystic
>>> print (mystic.citation())

Don't miss a new mystic release

NewReleases is sending notifications on new releases.