{ "info": { "author": "Chenchao Shou", "author_email": "cshou3@illinois.edu", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: University of Illinois/NCSA Open Source License", "Natural Language :: English", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering", "Topic :: Software Development" ], "description": "# ProSRS algorithm\n\nProgressive Stochastic Response Surface (ProSRS) is a parallel surrogate-based optimization algorithm for optimizing noisy expensive functions. This algorithm utilizes a radial basis function (RBF) as the surrogate, and adopts stochastic response surface (SRS) framework to balance exploitation and exploration. Compared to the [original parallel SRS work](https://pubsonline.informs.org/doi/10.1287/ijoc.1090.0325), the novelties of this algorithm include\n- Introducing a new tree-based technique, known as the \"zoom strategy\", for efficiency improvement.\n- Extending the original work to the noisy setting (i.e., an objective function corrupted with random noise) through the development of a radial basis regression procedure. \n- Introducing weighting to the regression for exploitation enhancement.\n- Implementing a new SRS that combines the two types of candidate points that were originally proposed in the SRS work.\n\nProSRS algorithm is configured in a master-worker structure, where in each optimization iteration, the algorithm (master) constructs a RBF surrogate using the available evaluations, then proposes new points based on the constructed RBF, and finally distributes the tasks of evaluating these points to parallel processes (workers).\n\nCompared to the popular Bayesian optimization algorithms, ProSRS is able to achieve faster convergence on some difficult benchmark problems, and is orders of magnitude cheaper to run. Moreover, ProSRS enjoys asymptotic convergence gaurantees. The common applications of this algorithm include efficient hyperparamter tuning of machine learning models and characterizing expensive simulation models.\n\n![version](https://img.shields.io/badge/version-1.1.0-blue.svg) [![license](https://img.shields.io/badge/license-NCSA%20Open%20Source-blue.svg)](https://opensource.org/licenses/NCSA) ![language](https://img.shields.io/badge/language-Python-blue.svg) ![platform](https://img.shields.io/badge/platform-Linux%20%7C%20Mac%20OS%20%7C%20%20Windows-blue.svg)\n\n# Installation\n\nPython dependencies:\n\n - `numpy`: http://www.numpy.org\n - `scipy`: https://www.scipy.org\n - `matplotlib`: https://matplotlib.org\n - `scikit-learn`: https://scikit-learn.org/stable/\n - `pyDOE`: https://pythonhosted.org/pyDOE/\n - `pathos`: https://pypi.org/project/pathos/\n\nTo install `prosrs` package, type and run the following:\n```\npip install prosrs\n```\n**Note:** The above `pip` method should work for most users. If a user encounters any installation problems including import errors or warnings, please refer to the [Wiki page](https://github.com/compdyn/ProSRS/wiki/Installation-Troubleshooting) for possible solutions.\n\n# Getting started\n\nAfter having successfully installed the `prosrs` package, users are ready to use ProSRS algorithm for solving optimization problems. The easiest way of getting started is to read the tutorials in the [`examples`](examples) directory, where different usages, from the basic level to the advanced level, are demonstrated through code examples. Of course, users are also encouraged to check out the source codes of the algorithm in the [`prosrs`](prosrs) directory.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/compdyn/ProSRS", "keywords": "optimization algorithm", "license": "University of Illinois/NCSA Open Source", "maintainer": "", "maintainer_email": "", "name": "prosrs", "package_url": "https://pypi.org/project/prosrs/", "platform": "", "project_url": "https://pypi.org/project/prosrs/", "project_urls": { "Homepage": "https://github.com/compdyn/ProSRS" }, "release_url": "https://pypi.org/project/prosrs/1.1.0/", "requires_dist": [ "numpy", "scipy", "matplotlib", "pyDOE", "pathos", "scikit-learn" ], "requires_python": "", "summary": "A tree-based parallel surrogate optimization algorithm for optimizing noisy expensive functions", "version": "1.1.0" }, "last_serial": 4961068, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c06c1d9d8f2f770af06d6d47dda45294", "sha256": "17d1d3031e08ac03b435cd78fcebe119e40331715c2f0d63a79c60144ec8f1c1" }, "downloads": -1, "filename": "prosrs-0.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "c06c1d9d8f2f770af06d6d47dda45294", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 35273, "upload_time": "2019-03-03T00:02:14", "url": "https://files.pythonhosted.org/packages/b0/e2/a4a73237cc1c08092cb0020a438a404c01301b57fa8c5a876e279c615cea/prosrs-0.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1447b867d077cad665a14a2b3b5a9680", "sha256": "b385bb23c2a4e26f18815bf14e54fb73742e22263e893b3fd2852a3ff7ea99a5" }, "downloads": -1, "filename": "prosrs-0.0.1.tar.gz", "has_sig": false, "md5_digest": "1447b867d077cad665a14a2b3b5a9680", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29942, "upload_time": "2019-03-03T00:02:16", "url": "https://files.pythonhosted.org/packages/66/e1/3a64ea846adae82d603feb725bbf610addfd312f2fa8272fbb21b5801e1e/prosrs-0.0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "de08e237365a77ad5b0c2209d101ef53", "sha256": "e98f76ddaab181cd3bc816dc2f617377ebe702dbfab2df1726e21be0cb6d88e7" }, "downloads": -1, "filename": "prosrs-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "de08e237365a77ad5b0c2209d101ef53", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36354, "upload_time": "2019-03-03T20:40:11", "url": "https://files.pythonhosted.org/packages/0b/ea/21df802a99f4c454b262f427b84af655f79f1bf1b85349ced0e05a3283fc/prosrs-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f9ef46fb9cfabd62b5f3c90bf0a49112", "sha256": "cf8a8f8ffb27be371212c7fd16bc18f7afceff9aaae628b1f3e1e1bbf0c4ab53" }, "downloads": -1, "filename": "prosrs-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f9ef46fb9cfabd62b5f3c90bf0a49112", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32400, "upload_time": "2019-03-03T20:40:13", "url": "https://files.pythonhosted.org/packages/0f/a3/c40956067daea9c1700cdda0279fd0efc87ffdf7151aaba541ea183b0a2e/prosrs-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "879b924595b1acd579d32f15b167e062", "sha256": "6f15f6e9e76df2a5324830e794f50cf2f311376e0b0df9109f76f4002a95c69d" }, "downloads": -1, "filename": "prosrs-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "879b924595b1acd579d32f15b167e062", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36485, "upload_time": "2019-03-03T21:48:30", "url": "https://files.pythonhosted.org/packages/63/6a/33a42205c98d3a1876797817e2682cf2c02fb72b4cbd2468cc62d0d84f31/prosrs-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "078f9927249074eebf6bcc03fa84f26c", "sha256": "866728fb5e75e26804613744f0458021a29ccc264798323326a7927d36a8f863" }, "downloads": -1, "filename": "prosrs-0.1.2.tar.gz", "has_sig": false, "md5_digest": "078f9927249074eebf6bcc03fa84f26c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32480, "upload_time": "2019-03-03T21:48:33", "url": "https://files.pythonhosted.org/packages/08/28/bb1cc8cda23507fe1f4cf82a8e96229f427c8a60ad00e5532adfd5c7c300/prosrs-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "d1942483e84b84e13cc857c8e6876488", "sha256": "4686ac517720749b18db0487dbb13d2b57a94699d914bf29d98f6a4072df2fb8" }, "downloads": -1, "filename": "prosrs-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d1942483e84b84e13cc857c8e6876488", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36298, "upload_time": "2019-03-03T22:15:04", "url": "https://files.pythonhosted.org/packages/c2/d0/0022c0cc1d7a7a3c4cab32a910a6ca36b38921e2ab101c7a7d01a9ee6af9/prosrs-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ddc4a8deeb95f32e834cb338e21dc03c", "sha256": "dcd6572b58eed84ead90325fb33f30dfaa37816875429c60bc5766164554ebc3" }, "downloads": -1, "filename": "prosrs-0.1.3.tar.gz", "has_sig": false, "md5_digest": "ddc4a8deeb95f32e834cb338e21dc03c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32329, "upload_time": "2019-03-03T22:15:09", "url": "https://files.pythonhosted.org/packages/e1/9b/8642b35d38913db4d0785b79aeb3d681cf1fe3661a058442e5cf48144f69/prosrs-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "be9f714d103c0d6e6f80764ee01b717b", "sha256": "703fa81737649b10d7fd160b2ed598d7196e77b331ec4211aea720071a4ea5c7" }, "downloads": -1, "filename": "prosrs-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "be9f714d103c0d6e6f80764ee01b717b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36377, "upload_time": "2019-03-03T22:48:48", "url": "https://files.pythonhosted.org/packages/5f/59/5b62b165e475b7e5e214383955b4ec44498972c3cf48b8b17858bee654ff/prosrs-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "332fa1aa0bcb63cacd97f8e35c80f393", "sha256": "c5358cc4bd5abb101410c22a6b52facc04e34e7a775694f1d6cd8f19af19cfa3" }, "downloads": -1, "filename": "prosrs-0.1.4.tar.gz", "has_sig": false, "md5_digest": "332fa1aa0bcb63cacd97f8e35c80f393", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32407, "upload_time": "2019-03-03T22:48:52", "url": "https://files.pythonhosted.org/packages/72/9e/dcdf347e51b743c9e3c1d29c2c1a5957e39e41d5e03a1f645f266dd7674b/prosrs-0.1.4.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "24fb68a86a44c2f3f705009f2b9bcb12", "sha256": "9396552be627cb4d6754e5fd486b266a9c2726c3b9a353b1d9849550584ec33d" }, "downloads": -1, "filename": "prosrs-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "24fb68a86a44c2f3f705009f2b9bcb12", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 36385, "upload_time": "2019-03-04T01:18:52", "url": "https://files.pythonhosted.org/packages/95/51/39b181e2fbaf7b3f1a659dc889617ea89e18c7fe491134adfd125811eaf1/prosrs-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be2889604518a77a113be40d654178e9", "sha256": "345953de3314d18ea2d337ee6e7c3c74446a1eb2d0750b20df4472c8f84d9ee5" }, "downloads": -1, "filename": "prosrs-1.0.0.tar.gz", "has_sig": false, "md5_digest": "be2889604518a77a113be40d654178e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32434, "upload_time": "2019-03-04T01:18:57", "url": "https://files.pythonhosted.org/packages/9b/3b/e38298716db77ae58914cfc806dff30144324e7eab586f4ca49f538963cc/prosrs-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "33c546c7cb44b39aa29ab8f2eb0a1730", "sha256": "0abdfc58b62378baae3fb06974d5f87561ea6c1457fa355feff9b6a077b5537c" }, "downloads": -1, "filename": "prosrs-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "33c546c7cb44b39aa29ab8f2eb0a1730", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 37229, "upload_time": "2019-03-19T21:41:10", "url": "https://files.pythonhosted.org/packages/4f/fa/d705495b1d7c9da6fb087fe48dbae7b91ca6c7b87b413c651660c77cb5a2/prosrs-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64717684cb42d5ddc83e6877c3cfe32d", "sha256": "136ef599af8ef109e82b39f521959fe7df1dc23684f1d79afd654f5e6d59d9b6" }, "downloads": -1, "filename": "prosrs-1.1.0.tar.gz", "has_sig": false, "md5_digest": "64717684cb42d5ddc83e6877c3cfe32d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33379, "upload_time": "2019-03-19T21:41:16", "url": "https://files.pythonhosted.org/packages/a8/b5/d3d1962a556bbc85aabac0e24c69db0ecc66640747f44671464293cff1de/prosrs-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "33c546c7cb44b39aa29ab8f2eb0a1730", "sha256": "0abdfc58b62378baae3fb06974d5f87561ea6c1457fa355feff9b6a077b5537c" }, "downloads": -1, "filename": "prosrs-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "33c546c7cb44b39aa29ab8f2eb0a1730", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 37229, "upload_time": "2019-03-19T21:41:10", "url": "https://files.pythonhosted.org/packages/4f/fa/d705495b1d7c9da6fb087fe48dbae7b91ca6c7b87b413c651660c77cb5a2/prosrs-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64717684cb42d5ddc83e6877c3cfe32d", "sha256": "136ef599af8ef109e82b39f521959fe7df1dc23684f1d79afd654f5e6d59d9b6" }, "downloads": -1, "filename": "prosrs-1.1.0.tar.gz", "has_sig": false, "md5_digest": "64717684cb42d5ddc83e6877c3cfe32d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33379, "upload_time": "2019-03-19T21:41:16", "url": "https://files.pythonhosted.org/packages/a8/b5/d3d1962a556bbc85aabac0e24c69db0ecc66640747f44671464293cff1de/prosrs-1.1.0.tar.gz" } ] }