0.4.2
0.4.2 Release Notes
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 pip
:
$ pip install mystic
mystic
requires:
- python or pypy, >=3.8
- numpy, >=1.0
- sympy, >=0.6.7
- mpmath, >=0.19
- dill, >=0.3.8
- klepto, >=0.2.5
Optional requirements:
- matplotlib, >=0.91
(install with $ pip install mystic[plotting]
)
- scipy, >=0.6.0
(install with $ pip install mystic[math]
)
- pathos, >=0.3.2
(install with $ pip install mystic[parallel]
)
- pyina, >=0.2.7
(install with $ pip install mystic[parallel]
)
mystic
is licensed under 3-clause BSD:
>>> import mystic
>>> print (mystic.license())
To cite mystic
:
>>> import mystic
>>> print (mystic.citation())
What's Changed
- don't pass None as default to SetMapper by @mmckerns in #201
- specify Distribution generator and rng as strings by @mmckerns in #202
- add operators to normalize Distributions by @mmckerns in #203
- Distribution use numpy.random as default module by @mmckerns in #204
- ouq_models can specify archive with cached keyword by @mmckerns in #205
- drop formal support for python 3.7 by @mmckerns in #207
- expand specification of pts for ouq_model sampling by @mmckerns in #208
- define html_theme as rtd workaround by @mmckerns in #209
- add GP and NN examples for surrogate-assisted learning by @mmckerns in #211
- update install doc in tests by @mmckerns in #212
- use importlib not imp, better sum of weights by @mmckerns in #217
- redefine 'e' in except block to avoid UnboundLocalError by @mmckerns in #218
- formal support for python 3.12, build for 3.13 by @mmckerns in #219
- add decision tree regressor optML example by @mmckerns in #220
- fix #215: sort to better avoid complex in simplify by @mmckerns in #221
- milder termination condition for optMLx example by @mmckerns in #222
- catch TypeError when constraints produce complex number by @mmckerns in #223
- add build to rtfd config by @mmckerns in #224
- updated copyright for 2024 by @mmckerns in #225
- fix typos, fix id in searcher, monotonic constraint by @mmckerns in #226
- Bump jinja2 from 3.1.1 to 3.1.3 in /docs by @dependabot in #227
- update sphinx to 6.2.1 by @mmckerns in #228
- Bump readthedocs-sphinx-search from 0.3.1 to 0.3.2 in /docs by @dependabot in #229
Full Changelog: mystic-0.4.1...0.4.2