{ "info": { "author": "Diego Noceda", "author_email": "dfynar@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# OR-Testbed\n\nOR-testbed is a framework designed to solve combinatorial optimization problems through the use and modeling of \n[metaheuristics](https://en.wikipedia.org/wiki/Metaheuristic). Since metaheuristics are based on certain basic assumptions,\n they can be adapted for a multitude of different problems.\n\nThe contribution of OR-Testbed is to provide the implementation of the basic structure of metaheuristics. \nIn this way, the problems to be solved (and therefore the related structures needed) only need to be modeled once. \nThen, once each of the functions and parameters of the metaheuristics to be used have been adapted, the problem\n can be solved with all of them from a centralized point. \n\nIn summary, the objective of the framework is to implement the most relevant metaheuristics in the state of the art, \nas well as the techniques commonly used in literature to improve them. This lets developers and researchers to have a \ncentralized repository of implemented metaheuristics, techniques and potential execution service for all of their problems. \n\nAt this moment, the list of implemented metaheuristics is:\n\n* GRASP\n* Simulated Annealing\n* Tabu Search\n\n\nTo see the development plans at a glance, all relevant information can be found in the [roadmap](ROADMAP.md).\n\n\n## Installing\n\nSince OR-Testbed is coded in pure Python no requirements are needed, just execute:\n\n`pip install or-testbed`\n\n## Examples and usage\n\nThere is no oneliner example, but there is a tutorial in the docs section. Also, check the available [examples](examples/) \nwhere some problems and algorithms are implemented and the usual workflow is showed. \n\n## Contributing\n\nAll contributions will be greatly appreciated. The main alternatives are to report or correct bugs, \nsuggest changes or functionalities, open issues and, of course, implement new metaheuristics.\n\n### Testing\n\nRun the unit test collection with:\n\n`pytest`\n\n\n### Building docs\n\nFirst, build the docs using Sphinx:\n\n```\ncd docs\nmake html\n```\n\nThen open build/html/index.html in your browser to view the docs.\n\nRead more about [Sphinx](https://www.sphinx-doc.org/en/master/).\n\n### Other resources\nSince using OR-Testbed requires both coding and optimization related knowledge, this section will be more focused\non the latter:\n\n* [Metaheuristic. *Wikipedia Introduction*](https://en.wikipedia.org/wiki/Metaheuristic)\n* [Survey on metaheuristics #1. *Boussaid et al (2013)*](https://www.sciencedirect.com/science/article/pii/S0020025513001588)\n* [Survey on metaheuristics #2. *Bianchi et al (2008)*](https://link.springer.com/article/10.1007/s11047-008-9098-4)\n* [GRASP. *Resende (1995)*](https://www.researchgate.net/publication/225237245_Greedy_Randomized_Adaptive_Search_Procedures)\n* [Simulated Annealing. *Kirkpatrick et al (1983)*](https://science.sciencemag.org/content/220/4598/671)\n* [Tabu Search. *Glover (2003)*](https://www.sciencedirect.com/science/article/pii/0305054886900481)\n* [Ant Colony Optimization (ACO) survey. *Mohan (2001)*](https://www.sciencedirect.com/science/article/pii/S0957417411013996)\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/Fynardo/or-testbed", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "or-testbed", "package_url": "https://pypi.org/project/or-testbed/", "platform": "", "project_url": "https://pypi.org/project/or-testbed/", "project_urls": { "Homepage": "https://github.com/Fynardo/or-testbed" }, "release_url": "https://pypi.org/project/or-testbed/1.0.2/", "requires_dist": null, "requires_python": ">=3.5", "summary": "Operations Research Framework for building metaheuristic algorithms.", "version": "1.0.2" }, "last_serial": 5867408, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b7a1066180f49c23520f236719723c32", "sha256": "da858110b3937e734fa8b12a00fbe17927398f2152013f0789bd7961e047b56b" }, "downloads": -1, "filename": "or_testbed-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b7a1066180f49c23520f236719723c32", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 14426, "upload_time": "2019-09-06T22:27:19", "url": "https://files.pythonhosted.org/packages/8a/c0/2b89495db8dc6001b8e7141e4e637e0636aa97d6330c58b369c12f2370f6/or_testbed-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11d05672bfbfbe1eab96bcebd99f5ea1", "sha256": "2d75f1d96f8690a54c3c6dae416faf3ba959cfa36ea5f5dd34c17c819a8c8a9b" }, "downloads": -1, "filename": "or-testbed-0.1.0.tar.gz", "has_sig": false, "md5_digest": "11d05672bfbfbe1eab96bcebd99f5ea1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 9007, "upload_time": "2019-09-06T22:27:21", "url": "https://files.pythonhosted.org/packages/36/66/9a7c315b18d162e416c977acf7e0b66817e63e9125a58e7e04118b96d898/or-testbed-0.1.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "4e3b594b4b7fd966d1ca1919dd8a4039", "sha256": "1d9294a0a3ec44bf9d2b75ef3a4eda6fd2026f7e709dfe407e399c665eca0e13" }, "downloads": -1, "filename": "or_testbed-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4e3b594b4b7fd966d1ca1919dd8a4039", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 18921, "upload_time": "2019-09-13T21:47:59", "url": "https://files.pythonhosted.org/packages/d1/01/3b1a234cf85862f848c9eb5cf61e30e77fd300c3745f3f6c993e1b737696/or_testbed-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35e7e87ea4a3c6b9635d3dc9f6a6a333", "sha256": "a4e5b763a92af16b3b4bce027fa43b623c66841410b9d056509ba85909b08799" }, "downloads": -1, "filename": "or-testbed-1.0.0.tar.gz", "has_sig": false, "md5_digest": "35e7e87ea4a3c6b9635d3dc9f6a6a333", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11016, "upload_time": "2019-09-13T21:48:00", "url": "https://files.pythonhosted.org/packages/f9/c4/5d0cbcc60a32a8fedd5a060431460865398da10e44415277a68e291ceaf1/or-testbed-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "6d79403550993a6e254b3cacccde38ff", "sha256": "f4fdbb6be22007c091ea376079cd25e40b38349625da59de2285431e8d429115" }, "downloads": -1, "filename": "or_testbed-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6d79403550993a6e254b3cacccde38ff", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 18918, "upload_time": "2019-09-15T02:12:02", "url": "https://files.pythonhosted.org/packages/b7/c0/7cd52b509ec3d52fbf4f020582371d53190b067b8f2b4e4d770644c321cb/or_testbed-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96b70ebafac3dc285efa85cf41c2f539", "sha256": "00ed603866281b87e1ec73a05eedc014b4de057f175de5377b323a7061e040d7" }, "downloads": -1, "filename": "or-testbed-1.0.1.tar.gz", "has_sig": false, "md5_digest": "96b70ebafac3dc285efa85cf41c2f539", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11018, "upload_time": "2019-09-15T02:12:04", "url": "https://files.pythonhosted.org/packages/9a/8d/86d66edb10aee30f7a015207d9090837c4f833867aa31014c3593de2745f/or-testbed-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "8f536ebdfa8c00b47763a3395dc90c49", "sha256": "6179d40ad6cea1b21cf149174d289d0ec655413bbe3903e96d1753389f054e11" }, "downloads": -1, "filename": "or_testbed-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8f536ebdfa8c00b47763a3395dc90c49", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19363, "upload_time": "2019-09-21T23:23:32", "url": "https://files.pythonhosted.org/packages/24/e8/4d1ba164324a951db3f377398d4a5bc8205eb0343a1f85fa8c903ed2124f/or_testbed-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03c4b9c4ce9d4e564e544ec77bf7f986", "sha256": "04f2b123c4a7e7841ee58c3f045e225f606f1c87edce2d9b41e09c770f0b0a8b" }, "downloads": -1, "filename": "or-testbed-1.0.2.tar.gz", "has_sig": false, "md5_digest": "03c4b9c4ce9d4e564e544ec77bf7f986", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11303, "upload_time": "2019-09-21T23:23:34", "url": "https://files.pythonhosted.org/packages/a8/33/1e826c97f640ebcf8f482c748ee3b814fe86f2baa7a393b3b3a7796c2253/or-testbed-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8f536ebdfa8c00b47763a3395dc90c49", "sha256": "6179d40ad6cea1b21cf149174d289d0ec655413bbe3903e96d1753389f054e11" }, "downloads": -1, "filename": "or_testbed-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8f536ebdfa8c00b47763a3395dc90c49", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 19363, "upload_time": "2019-09-21T23:23:32", "url": "https://files.pythonhosted.org/packages/24/e8/4d1ba164324a951db3f377398d4a5bc8205eb0343a1f85fa8c903ed2124f/or_testbed-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03c4b9c4ce9d4e564e544ec77bf7f986", "sha256": "04f2b123c4a7e7841ee58c3f045e225f606f1c87edce2d9b41e09c770f0b0a8b" }, "downloads": -1, "filename": "or-testbed-1.0.2.tar.gz", "has_sig": false, "md5_digest": "03c4b9c4ce9d4e564e544ec77bf7f986", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11303, "upload_time": "2019-09-21T23:23:34", "url": "https://files.pythonhosted.org/packages/a8/33/1e826c97f640ebcf8f482c748ee3b814fe86f2baa7a393b3b3a7796c2253/or-testbed-1.0.2.tar.gz" } ] }