0.4.5 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.9
- numpy, >=1.0
- sympy, >=0.6.7
- mpmath, >=0.19
- dill, >=0.4.1
- klepto, >=0.2.8
Optional requirements:
- matplotlib, >=0.91 (install with $ pip install mystic[plotting])
- scipy, >=0.6.0 (install with $ pip install mystic[math])
- pathos, >=0.3.5 (install with $ pip install mystic[parallel])
- pyina, >=0.3.1 (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
- Bump jinja2 from 3.1.5 to 3.1.6 in /docs by @dependabot[bot] in #282
- drop formal support for python 3.8 by @mmckerns in #283
- Bump h11 from 0.14.0 to 0.16.0 in /docs by @dependabot[bot] in #284
- add binned sampler, bounded_sampling with dist by @mmckerns in #285
- add errorpts, misfit, fix mixed solver data handling by @mmckerns in #286
- rename misfit to residual and add args for cache.function.read by @mmckerns in #288
- add noise to surrogate fit to avoid singular matrix by @mmckerns in #289
- sync docs with RTD 13.4.0 and codecov token by @mmckerns in #290
- enable monitors to read lists of numpy float types by @mmckerns in #292
- use tolist in listify by @mmckerns in #293
- update rtfd to 3.12 and docs requirements by @mmckerns in #294
- add init_solution to save solver x0 by @mmckerns in #295
- add new RBFs, fix missing import, update travis by @mmckerns in #296
- add periodic constraint by @mmckerns in #297
- ignore out of bounds indicies for constraints by @mmckerns in #299
- solve can use one-liners, measures ensemble solvers by @mmckerns in #300
- formal support for 3.14; prep for 3.15 by @mmckerns in #302
- enable sticky args from process_input to be set in init by @mmckerns in #303
- sync with rtd 15.4.1 by @mmckerns in #305
- Bounds and Counter objects as first class citizens by @mmckerns in #306
- enable -mtol in grid; avoid numpy.sum on generator by @mmckerns in #308
- update copyright for 2026, urllib3 to 2.6.0 by @mmckerns in #309
- sync with rtfd 15.10.0 by @mmckerns in #311
- Bump urllib3 from 2.6.0 to 2.6.3 in /docs by @dependabot[bot] in #310
- travis use noble, 3.15t, 3.14, coverage on 3.10 by @mmckerns in #312
Full Changelog: 0.4.4...0.4.5