{ "info": { "author": "Mike McKerns", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering", "Topic :: Software Development" ], "description": "---------------------------------------------------------------------------------\nmystic: highly-constrained non-convex optimization and uncertainty quantification\n---------------------------------------------------------------------------------\n\nAbout Mystic\n============\n\nThe ``mystic`` framework provides a collection of optimization algorithms\nand tools that allows the user to more robustly (and easily) solve hard\noptimization problems. All optimization algorithms included in ``mystic``\nprovide workflow at the fitting layer, not just access to the algorithms\nas function calls. ``mystic`` gives the user fine-grained power to both\nmonitor and steer optimizations as the fit processes are running.\nOptimizers can advance one iteration with ``Step``, or run to completion\nwith ``Solve``. Users can customize optimizer stop conditions, where both\ncompound and user-provided conditions may be used. Optimizers can save\nstate, can be reconfigured dynamically, and can be restarted from a\nsaved solver or from a results file. All solvers can also leverage\nparallel computing, either within each iteration or as an ensemble of\nsolvers.\n\nWhere possible, ``mystic`` optimizers share a common interface, and thus can\nbe easily swapped without the user having to write any new code. ``mystic``\nsolvers all conform to a solver API, thus also have common method calls\nto configure and launch an optimization job. For more details, see\n``mystic.abstract_solver``. The API also makes it easy to bind a favorite\n3rd party solver into the ``mystic`` framework.\n\nOptimization algorithms in ``mystic`` can accept parameter constraints,\neither in the form of penaties (which \"penalize\" regions of solution\nspace that violate the constraints), or as constraints (which \"constrain\" \nthe solver to only search in regions of solution space where the\nconstraints are respected), or both. ``mystic`` provides a large \nselection of constraints, including probabistic and dimensionally\nreducing constraints. By providing a robust interface designed to\nenable the user to easily configure and control solvers, ``mystic``\ngreatly reduces the barrier to solving hard optimization problems.\n\n``mystic`` is in active development, so any user feedback, bug reports, comments,\nor suggestions are highly appreciated. A list of known issues is maintained\nat http://trac.mystic.cacr.caltech.edu/project/mystic/query.html, with a public\nticket list at https://github.com/uqfoundation/mystic/issues.\n\n\nMajor Features\n==============\n\n``mystic`` provides a stock set of configurable, controllable solvers with:\n\n - a common interface\n - a control handler with: pause, continue, exit, and callback\n - ease in selecting initial population conditions: guess, random, etc\n - ease in checkpointing and restarting from a log or saved state\n - the ability to leverage parallel & distributed computing\n - the ability to apply a selection of logging and/or verbose monitors\n - the ability to configure solver-independent termination conditions\n - the ability to impose custom and user-defined penalties and constraints\n\nTo get up and running quickly, ``mystic`` also provides infrastructure to:\n\n - easily generate a model (several standard test models are included)\n - configure and auto-generate a cost function from a model\n - configure an ensemble of solvers to perform a specific task\n\n\nCurrent Release\n===============\n\nThis documentation is for version ``mystic-0.3.5``.\n\nThe latest released version of ``mystic`` is available from:\n\n https://pypi.org/project/mystic\n\n``mystic`` is distributed under a 3-clause BSD license.\n\n >>> import mystic\n >>> print (mystic.license())\n\n\nDevelopment Version \n===================\n\nYou can get the latest development version with all the shiny new features at:\n\n https://github.com/uqfoundation\n\nIf you have a new contribution, please submit a pull request.\n\n\nInstallation\n============\n\n``mystic`` is packaged to install from source, so you must\ndownload the tarball, unzip, and run the installer::\n\n [download]\n $ tar -xvzf mystic-0.3.5.tar.gz\n $ cd mystic-0.3.5\n $ python setup py build\n $ python setup py install\n\nYou will be warned of any missing dependencies and/or settings\nafter you run the \"build\" step above. ``mystic`` depends on ``dill``, ``numpy``\nand ``sympy``, so you should install them first. There are several\nfunctions within ``mystic`` where ``scipy`` is used if it is available;\nhowever, ``scipy`` is an optional dependency. Having ``matplotlib`` installed\nis necessary for running several of the examples, and you should\nprobably go get it even though it's not required. ``matplotlib`` is required\nfor results visualization available in the scripts packaged with ``mystic``.\n\nAlternately, ``mystic`` can be installed with ``pip`` or ``easy_install``::\n\n $ pip install mystic\n\n\nRequirements\n============\n\n``mystic`` requires:\n\n - ``python``, **version >= 2.6** or **version >= 3.1**, or ``pypy``\n - ``numpy``, **version >= 1.0**\n - ``sympy``, **version >= 0.6.7**\n - ``dill``, **version >= 0.3.1**\n - ``klepto``, **version >= 0.1.8**\n\nOptional requirements:\n\n - ``setuptools``, **version >= 0.6**\n - ``matplotlib``, **version >= 0.91**\n - ``scipy``, **version >= 0.6.0**\n - ``mpmath``, **version >= 1.0.0**\n - ``pathos``, **version >= 0.2.5**\n - ``pyina``, **version >= 0.2.2**\n\n\nMore Information\n================\n\nProbably the best way to get started is to look at the documentation at\nhttp://mystic.rtfd.io. Also see ``mystic.tests`` for a set of scripts that\ndemonstrate several of the many features of the ``mystic`` framework.\nYou can run the test suite with ``python -m mystic.tests``. There are\nseveral plotting scripts that are installed with ``mystic``, primary of which\nare `mystic_log_reader`` (also available with ``python -m mystic``) and the\n``mystic_model_plotter`` (also available with ``python -m mystic.models``).\nThere are several other plotting scripts that come with ``mystic``, and they\nare detailed elsewhere in the documentation. See ``mystic.examples`` for\nexamples that demonstrate the basic use cases for configuration and launching\nof optimization jobs using one of the sample models provided in\n``mystic.models``. Many of the included examples are standard optimization\ntest problems. The use of constraints and penalties are detailed in\n``mystic.examples2``, while more advanced features leveraging ensemble solvers\nand dimensional collapse are found in ``mystic.examples3``. The scripts in\n``mystic.examples4`` demonstrate leveraging ``pathos`` for parallel computing,\nas well as demonstrate some auto-partitioning schemes. ``mystic`` has the\nability to work in product measure space, and the scripts in\n``mystic.examples5`` show to work with product measures. The source code is\ngenerally well documented, so further questions may be resolved by inspecting\nthe code itself. Please feel free to submit a ticket on github, or ask a\nquestion on stackoverflow (**@Mike McKerns**).\nIf you would like to share how you use ``mystic`` in your work, please send an\nemail (to **mmckerns at uqfoundation dot org**).\n\nInstructions on building a new model are in ``mystic.models.abstract_model``.\n``mystic`` provides base classes for two types of models:\n\n - ``AbstractFunction`` [evaluates ``f(x)`` for given evaluation points ``x``]\n - ``AbstractModel`` [generates ``f(x,p)`` for given coefficients ``p``]\n\n``mystic`` also provides some convienence functions to help you build a\nmodel instance and a cost function instance on-the-fly. For more\ninformation, see ``mystic.forward_model``. It is, however, not necessary\nto use base classes or the model builder in building your own model or\ncost function, as any standard python function can be used as long as it\nmeets the basic ``AbstractFunction`` interface of ``cost = f(x)``.\n\nAll ``mystic`` solvers are highly configurable, and provide a robust set of\nmethods to help customize the solver for your particular optimization\nproblem. For each solver, a minimal (``scipy.optimize``) interface is also\nprovided for users who prefer to configure and launch their solvers as a\nsingle function call. For more information, see ``mystic.abstract_solver``\nfor the solver API, and each of the individual solvers for their minimal\nfunctional interface.\n\n``mystic`` enables solvers to use parallel computing whenever the user provides\na replacement for the (serial) python ``map`` function. ``mystic`` includes a\nsample ``map`` in ``mystic.python_map`` that mirrors the behavior of the\nbuilt-in python ``map``, and a ``pool`` in ``mystic.pools`` that provides ``map``\nfunctions using the ``pathos`` (i.e. ``multiprocessing``) interface. ``mystic``\nsolvers are designed to utilize distributed and parallel tools provided by\nthe ``pathos`` package. For more information, see ``mystic.abstract_map_solver``,\n``mystic.abstract_ensemble_solver``, and the ``pathos`` documentation at\nhttp://dev.danse.us/trac/pathos.\n\nImportant classes and functions are found here:\n\n - ``mystic.solvers`` [solver optimization algorithms]\n - ``mystic.termination`` [solver termination conditions]\n - ``mystic.strategy`` [solver population mutation strategies]\n - ``mystic.monitors`` [optimization monitors]\n - ``mystic.symbolic`` [symbolic math in constaints]\n - ``mystic.constraints`` [constraints functions]\n - ``mystic.penalty`` [penalty functions]\n - ``mystic.collapse`` [checks for dimensional collapse]\n - ``mystic.coupler`` [decorators for function coupling]\n - ``mystic.pools`` [parallel worker pool interface]\n - ``mystic.munge`` [file readers and writers]\n - ``mystic.scripts`` [model and convergence plotting]\n - ``mystic.support`` [hypercube measure support plotting]\n - ``mystic.forward_model`` [cost function generator]\n - ``mystic.tools`` [constraints, wrappers, and other tools]\n - ``mystic.cache`` [results caching and archiving]\n - ``mystic.models`` [models and test functions]\n - ``mystic.math`` [mathematical functions and tools]\n\nImportant functions within ``mystic.math`` are found here:\n\n - ``mystic.math.Distribution`` [a sampling distribution object]\n - ``mystic.math.legacydata`` [classes for legacy data observations]\n - ``mystic.math.discrete`` [classes for discrete measures]\n - ``mystic.math.measures`` [tools to support discrete measures]\n - ``mystic.math.approx`` [tools for measuring equality]\n - ``mystic.math.grid`` [tools for generating points on a grid]\n - ``mystic.math.distance`` [tools for measuring distance and norms]\n - ``mystic.math.poly`` [tools for polynomial functions]\n - ``mystic.math.samples`` [tools related to sampling]\n - ``mystic.math.integrate`` [tools related to integration]\n - ``mystic.math.stats`` [tools related to distributions]\n\nSolver and model API definitions are found here:\n\n - ``mystic.abstract_solver`` [the solver API definition]\n - ``mystic.abstract_map_solver`` [the parallel solver API]\n - ``mystic.abstract_ensemble_solver`` [the ensemble solver API]\n - ``mystic.models.abstract_model`` [the model API definition]\n\n``mystic`` also provides several convience scripts that are used to visualize\nmodels, convergence, and support on the hypercube. These scripts are installed\nto a directory on the user's ``$PATH``, and thus can be run from anywhere:\n\n - ``mystic_log_reader`` [parameter and cost convergence]\n - ``mystic_collapse_plotter`` [convergence and dimensional collapse]\n - ``mystic_model_plotter`` [model surfaces and solver trajectory]\n - ``support_convergence`` [convergence plots for measures]\n - ``support_hypercube`` [parameter support on the hypercube]\n - ``support_hypercube_measures`` [measure support on the hypercube]\n - ``support_hypercube_scenario`` [scenario support on the hypercube]\n\nTyping ``--help`` as an argument to any of the above scripts will print out an\ninstructive help message.\n\n\nCitation\n========\n\nIf you use ``mystic`` to do research that leads to publication, we ask that you\nacknowledge use of ``mystic`` by citing the following in your publication::\n\n M.M. McKerns, L. Strand, T. Sullivan, A. Fang, M.A.G. Aivazis,\n \"Building a framework for predictive science\", Proceedings of\n the 10th Python in Science Conference, 2011;\n http://arxiv.org/pdf/1202.1056\n\n Michael McKerns, Patrick Hung, and Michael Aivazis,\n \"mystic: highly-constrained non-convex optimization and UQ\", 2009- ;\n http://trac.mystic.cacr.caltech.edu/project/mystic\n\nPlease see http://trac.mystic.cacr.caltech.edu/project/mystic or\nhttp://arxiv.org/pdf/1202.1056 for further information.", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/uqfoundation/mystic/releases/download/mystic-0.3.5/mystic-0.3.5.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pypi.org/project/mystic", "keywords": "", "license": "3-clause BSD", "maintainer": "", "maintainer_email": "", "name": "mystic", "package_url": "https://pypi.org/project/mystic/", "platform": "Linux", "project_url": "https://pypi.org/project/mystic/", "project_urls": { "Download": "https://github.com/uqfoundation/mystic/releases/download/mystic-0.3.5/mystic-0.3.5.tar.gz", "Homepage": "https://pypi.org/project/mystic" }, "release_url": "https://pypi.org/project/mystic/0.3.5/", "requires_dist": null, "requires_python": "", "summary": "highly-constrained non-convex optimization and uncertainty quantification", "version": "0.3.5" }, "last_serial": 5900311, "releases": { "0.1a1": [ { "comment_text": "", "digests": { "md5": "34874757f7828170a2248bf59123d634", "sha256": "f1d30f20ed3ab66d73ed5900051dbd3cbaa6057f2ded04bb52f243723d17644c" }, "downloads": -1, "filename": "mystic-0.1a1.tgz", "has_sig": false, "md5_digest": "34874757f7828170a2248bf59123d634", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 169582, "upload_time": "2015-12-22T20:22:02", "url": "https://files.pythonhosted.org/packages/c2/0b/14520a6264556b88716e24444a627a2d9e531e4f35a84c8a249626d4d1a1/mystic-0.1a1.tgz" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "6c6b9b41dc970b86a56c9b16f97afb7c", "sha256": "de529e86d98b5ae432a3bc3c485bd76397762f3db9985506ca08037e84173e34" }, "downloads": -1, "filename": "mystic-0.1a2.tgz", "has_sig": false, "md5_digest": "6c6b9b41dc970b86a56c9b16f97afb7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 174375, "upload_time": "2015-12-22T20:22:35", "url": "https://files.pythonhosted.org/packages/6e/21/dde25cfddbe5ffe3b3f2c2c9b232356507292c12cbabbe46155394c40ab7/mystic-0.1a2.tgz" } ], "0.2a1": [ { "comment_text": "", "digests": { "md5": "f1de0511deb2cffed5703a4dbc6682f7", "sha256": "9a6101809fbd1c5ea0d2d143dd07558fed0e87beeecd636c3da9e35f05a92169" }, "downloads": -1, "filename": "mystic-0.2a1.tgz", "has_sig": false, "md5_digest": "f1de0511deb2cffed5703a4dbc6682f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 194630, "upload_time": "2015-12-22T20:23:06", "url": "https://files.pythonhosted.org/packages/3d/51/4ba01876c1e86d47ae0a51452f6c90fd55f76012c551e2d08e236ab7d75c/mystic-0.2a1.tgz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "a3645b7dd55c405fc24195dd21289293", "sha256": "3e00662a9a7cb589a3c4d65764b239511090f2f859f07033cc67b5576c407a6e" }, "downloads": -1, "filename": "mystic-0.3.0.tgz", "has_sig": false, "md5_digest": "a3645b7dd55c405fc24195dd21289293", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 345792, "upload_time": "2016-11-09T02:06:25", "url": "https://files.pythonhosted.org/packages/09/ec/66018e70cd8a45f317c45c23e3efb15e7fe93c6a81fd6758ea4c26cbb602/mystic-0.3.0.tgz" }, { "comment_text": "", "digests": { "md5": "68b34f0931a0f7d61ddb1c84e466c378", "sha256": "440e68870f7df5df12eb1e5898c718b11550e740399c0d14897d8f46fcb1d094" }, "downloads": -1, "filename": "mystic-0.3.0.zip", "has_sig": false, "md5_digest": "68b34f0931a0f7d61ddb1c84e466c378", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 563906, "upload_time": "2016-11-09T02:05:55", "url": "https://files.pythonhosted.org/packages/cf/b6/ac56cc513d64a2cd1b9be3dc5e7e2b3036259d91d3c29b9e2cc4f341d6e2/mystic-0.3.0.zip" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "285b665df73238a2d23f438af80fd67b", "sha256": "135cd1b5d12e18a82eb26a9a35eb8cff03460fd6f05288e1b3238917551d9332" }, "downloads": -1, "filename": "mystic-0.3.1.tar.gz", "has_sig": false, "md5_digest": "285b665df73238a2d23f438af80fd67b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 358407, "upload_time": "2017-07-08T00:05:10", "url": "https://files.pythonhosted.org/packages/4c/6a/66f83c260943909825a806f56b9051e6002f64e1b57c07cfed415c3a5285/mystic-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "b7a1b082a696265b7544781907b21bda", "sha256": "149d4a4e7f7085495d9abf8aa7ec7a8c07f9028ab5f78b728c8f56ad9d37525c" }, "downloads": -1, "filename": "mystic-0.3.2.tar.gz", "has_sig": false, "md5_digest": "b7a1b082a696265b7544781907b21bda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 443094, "upload_time": "2018-06-22T02:26:58", "url": "https://files.pythonhosted.org/packages/ba/6a/435011c9c117f86ebc187a312b7e7a022ecd5c28dca696ec193db0697b4b/mystic-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "9159a8c145606e283de716a72f5fa574", "sha256": "15547c6490481cf3e41745018b1e11ae564729adbd6ebe637278ad3d746f6e51" }, "downloads": -1, "filename": "mystic-0.3.3.tar.gz", "has_sig": false, "md5_digest": "9159a8c145606e283de716a72f5fa574", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 723774, "upload_time": "2019-01-22T01:55:36", "url": "https://files.pythonhosted.org/packages/a4/33/ee209880824d7ea167db0c83d8ba023e194367727fcb6634db4c867317dd/mystic-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "64db788e67e7ad4c171075445f5ce17a", "sha256": "5180689353a5c9b2a96ebc2f879616e8eaf89c488252ff2ee95630527a2ee1fd" }, "downloads": -1, "filename": "mystic-0.3.4.tar.gz", "has_sig": false, "md5_digest": "64db788e67e7ad4c171075445f5ce17a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 728726, "upload_time": "2019-06-27T20:14:47", "url": "https://files.pythonhosted.org/packages/ea/a4/4876d1fa265306ff8f82eb41d6972d78bea1a6312e0b6351b09adb343e10/mystic-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "09f0af8524e01109a7a6651e5b47d1c8", "sha256": "627f2cf9367e7beb2c03e53f211be50473a3d7bc4acd3785a1b4e2b24a82553d" }, "downloads": -1, "filename": "mystic-0.3.5.tar.gz", "has_sig": false, "md5_digest": "09f0af8524e01109a7a6651e5b47d1c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 734959, "upload_time": "2019-09-28T18:36:16", "url": "https://files.pythonhosted.org/packages/ed/b0/1c2e444f8957272e2902194aaa346e36492d7061ca07b8706b104e978808/mystic-0.3.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "09f0af8524e01109a7a6651e5b47d1c8", "sha256": "627f2cf9367e7beb2c03e53f211be50473a3d7bc4acd3785a1b4e2b24a82553d" }, "downloads": -1, "filename": "mystic-0.3.5.tar.gz", "has_sig": false, "md5_digest": "09f0af8524e01109a7a6651e5b47d1c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 734959, "upload_time": "2019-09-28T18:36:16", "url": "https://files.pythonhosted.org/packages/ed/b0/1c2e444f8957272e2902194aaa346e36492d7061ca07b8706b104e978808/mystic-0.3.5.tar.gz" } ] }