{ "info": { "author": "Eddie Pantridge", "author_email": "erp12@hampshire.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "# PyshGP\n\n[![PyPI version](https://badge.fury.io/py/pyshgp.svg)](https://badge.fury.io/py/pyshgp)\n[![CircleCI](https://circleci.com/gh/erp12/pyshgp/tree/master.svg?style=svg)](https://circleci.com/gh/erp12/pyshgp/tree/master)\n\nPush Genetic Programming in Python\n\n## Motivation\n\n### What is PushGP?\n\nPush is programming language that plays nice with evolutionary computing / genetic programming. It is a stack-based language that features 1 stack per data type, including code. Programs are represented by lists of instructions, which modify the values on the stacks. Instructions are executed in order.\n\nMore information about PushGP can be found on the [Push Redux](https://erp12.github.io/push-redux/) the [Push Homepage](http://faculty.hampshire.edu/lspector/push.html) and the [Push Language Discourse](https://Push-language.hampshire.edu).\n\n### Why use PushGP?\n\nPushGP is a leading software synthesis (sometimes called \"programming by example\") system. It utilized stochastic (typically evolutionary) search methods to produce programs that are capable of manipulating all the common data types, control structures, and data structures. It is easily extendable to specific use cases and has seen impressive human-competitive coding results. PushGP has [discovered novel quantum computer programs](http://faculty.hampshire.edu/lspector/aqcp/) previously unknown to human programers, and has achieved human competitive results in [finding algebraic terms in the study of finite algebras](http://www.cs.bham.ac.uk/~wbl/biblio/gecco2008/docs/p1291.pdf).\n\nIn contrast to the majority of other ML/AI methods, PushGP does not require the transformation of data into numeric structures. PushGP does not optimize a set of numeric parameters using a gradient, but rather attempts to intelligently search the space of programs. The result is a system where the primary output is a program written in the Turing complete Push language.\n\nPushGP has proven itself to be one of the most power \"general program synthesis\" frameworks. Like most evolutionary search frameworks, it usually requires an extremely high runtime, however it can solve problems that few other programming-by-example system can solve.\n\nAdditional references on the successes of PushGP:\n\n- [On the difficulty of benchmarking inductive program synthesis methods](https://dl.acm.org/citation.cfm?id=3082533)\n- [General Program Synthesis Benchmark Suite](https://dl.acm.org/citation.cfm?id=2754769)\n- [The Push3 execution stack and the evolution of control](https://dl.acm.org/citation.cfm?id=1068292)\n\n### Goals of `pyshgp`.\n\nPrevious PushGP frameworks have focused on supporting genetic programming and software synthesis research. One of the leading PushGP projects is [Clojush](https://github.com/lspector/Clojush), which is written in Clojure and heavily focused on the experimentation needed to further the research field.\n\n`Pyshgp` aims to bring PushGP to a wider range of users and use cases. Many popular ML/AI frameworks are written in Python, and with `pyshgp` it is much easier to compare PushGP with other methods or build ML pipelines that contain PushGP and other models together.\n\nAlthough PushGP is constantly changing through research and publication, `pyshgp` is meant to be a slowly changing, more stable, PushGP framework. It is still possible to use `pyshgp` for research and development, however accepted contributions to the main repository will be extensively benchmarked, tested, and documented.\n\n## Installing pyshgp\n\n`pyshgp` is compatible with python 3.5 and up.\n\n### Install from pip\n\n```\npip install pyshgp\n```\n\n### Build Frome source\n\n- Clone the repo\n- cd into the `pyshgp` repo directory\n- run `pip install . --upgrade`\n- Thats it! Check out the examples and documentation.\n\n### Running Tests\n\nRun the following command from project root directory. Make sure all the packages from `requirements-with-dev.txt` are installed in the instance of python you are using.\n\n```\npython -m pytest\n```\n\n## Documentation\n\n### Example Usage\n\nExample usages of `pyshgp` can be found in the `examples/` [folder of the Github repository](https://github.com/erp12/pyshgp/tree/master/examples).\n\n### API\n\nThe full `pyshgp` API can be found on [official website](http://erp12.github.io/pyshgp).\n\n## Pysh Roadmap / Contributing\n\nPyshGP isn't quite ready for its 1.0 release. It still has a few key features that need implementing. More details can be found in `ROADMAPS.md` and in the projects tab on Github.\n\nFor information about contributing, see the [Contributing Guide](http://erp12.github.io/pyshgp/html/contributing.html).\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/erp12/pyshgp", "keywords": "push gp,genetic programming,pushgp,gp,push", "license": "LGPL", "maintainer": "", "maintainer_email": "", "name": "pyshgp", "package_url": "https://pypi.org/project/pyshgp/", "platform": "", "project_url": "https://pypi.org/project/pyshgp/", "project_urls": { "Homepage": "https://github.com/erp12/pyshgp" }, "release_url": "https://pypi.org/project/pyshgp/0.1.5/", "requires_dist": [ "numpy (>=1.12.0)", "scipy (>=0.18.0)", "pandas (>=0.23.4)" ], "requires_python": "", "summary": "Push Genetic Programming in Python", "version": "0.1.5" }, "last_serial": 5166754, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "6618260798e9baa8db4e6b1169303b2f", "sha256": "d161f68aaff5958aae7cc8a595b1263b97ca632c7267c6f6e149a69a2bf9392d" }, "downloads": -1, "filename": "pyshgp-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6618260798e9baa8db4e6b1169303b2f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 49716, "upload_time": "2019-02-15T19:18:57", "url": "https://files.pythonhosted.org/packages/d6/45/c14855005418be5255e735e1a857c5924ac13158782db92606e6105ad48d/pyshgp-0.1.0-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b700b70c346978aef9afbd05492bcbd6", "sha256": "fae4a7be191caf688b05dc99eb55ec0cf8e984affb510ed459e458d1006782cf" }, "downloads": -1, "filename": "pyshgp-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b700b70c346978aef9afbd05492bcbd6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 49715, "upload_time": "2019-02-15T19:21:50", "url": "https://files.pythonhosted.org/packages/83/9a/17d66203300f80f33040be3f56af0fbd57975b63cabd380209ad5040bdfb/pyshgp-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25c93bd3d3867d9a783965119baf7dd3", "sha256": "b8b3c5d53cf9927411023aefc8562480a57bdea2b2f9421bb4d17345bf3d5541" }, "downloads": -1, "filename": "pyshgp-0.1.1.tar.gz", "has_sig": false, "md5_digest": "25c93bd3d3867d9a783965119baf7dd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40985, "upload_time": "2019-02-15T19:21:52", "url": "https://files.pythonhosted.org/packages/ee/01/1ca4e0627f1a49e93e4efb6ea56ccacf83744121bdffa2ee7046b9b6f2ce/pyshgp-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "af939bac406e65257f6fb289ceece241", "sha256": "315f3c2954e8d288653bddf96634b8e9108dc349da281c720e4ca749d5e934c3" }, "downloads": -1, "filename": "pyshgp-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "af939bac406e65257f6fb289ceece241", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 49785, "upload_time": "2019-02-22T00:31:01", "url": "https://files.pythonhosted.org/packages/74/f2/752f7acb6a0d75703eea336e2d7fde9bf551db2904a1f19f24903493deb4/pyshgp-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9cdb96255211102482e1f2db24773287", "sha256": "e8fbae53ea0bdd30606b283cc5fff27edc8736f581cdcb5f78c6e2a8b359b20a" }, "downloads": -1, "filename": "pyshgp-0.1.2.tar.gz", "has_sig": false, "md5_digest": "9cdb96255211102482e1f2db24773287", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41062, "upload_time": "2019-02-22T00:31:02", "url": "https://files.pythonhosted.org/packages/56/bc/ef8d0ac1e4ff0bbfbb7ae07c86be84e5ff207184871d0602b0e20e078ccb/pyshgp-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "606bcbde896ede97928db4c52e02a8c6", "sha256": "870577ea2b59d5d2dcf582b9888937e8d23c2a8e6501eb0851d52eda5ab43e95" }, "downloads": -1, "filename": "pyshgp-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "606bcbde896ede97928db4c52e02a8c6", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 52326, "upload_time": "2019-03-12T18:42:57", "url": "https://files.pythonhosted.org/packages/00/f3/edf03d12e6d66cf2f72c2a3ccd08ea481f76b450e05ce44d1624ea0336d1/pyshgp-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "21048f89194be46c01ef0df0c77e0bac", "sha256": "06535b375e02ce40e10926a18061442a9015ae281f77f7899036517627d5516d" }, "downloads": -1, "filename": "pyshgp-0.1.3.tar.gz", "has_sig": false, "md5_digest": "21048f89194be46c01ef0df0c77e0bac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42619, "upload_time": "2019-03-12T18:42:59", "url": "https://files.pythonhosted.org/packages/ec/85/24ef39b1c947d14d1e5428116ed92679c86c97478bcf84a2a90a334b08c4/pyshgp-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "8e1b1feeb18f37132f7af5c7383a385d", "sha256": "5d21bdaaace7629b25fbec1baee9d0c49e5f2c00b31ed3237cedf10e400b92c6" }, "downloads": -1, "filename": "pyshgp-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8e1b1feeb18f37132f7af5c7383a385d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53126, "upload_time": "2019-03-24T02:00:18", "url": "https://files.pythonhosted.org/packages/96/d5/057ffe75894384d5c57158b8290bf8dbef9ee02ff910a2d920dc572579fa/pyshgp-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc62c91797b5fb75047a4b1d73c7ac11", "sha256": "fad7ae6743bcfaa4cdd21832113bab65604074e59484967e4731feb53fd3882a" }, "downloads": -1, "filename": "pyshgp-0.1.4.tar.gz", "has_sig": false, "md5_digest": "dc62c91797b5fb75047a4b1d73c7ac11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43075, "upload_time": "2019-03-24T02:00:19", "url": "https://files.pythonhosted.org/packages/7e/5d/daaed9b1cebfb8f65dfc8bc482fceb857f3a38f205102b4c8edad2c253bd/pyshgp-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "490ef873074f6adf63fcdee598c181cd", "sha256": "1e5e7fb55c3a0fde878a8f9632a422c35e7fc42c198f16cea8565c6ef93b1d9a" }, "downloads": -1, "filename": "pyshgp-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "490ef873074f6adf63fcdee598c181cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 56454, "upload_time": "2019-04-20T02:44:57", "url": "https://files.pythonhosted.org/packages/de/2e/d78b2200f176f67d037d65414f9bb1ae6b404792149ffa78a28d80139b9d/pyshgp-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c24528341f35dfad5dd6936fef8d15d", "sha256": "5e226c7dbebb714b0bb6a5090f02815bf9093e30478fdbf35b8850c8f83e941e" }, "downloads": -1, "filename": "pyshgp-0.1.5.tar.gz", "has_sig": false, "md5_digest": "7c24528341f35dfad5dd6936fef8d15d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45244, "upload_time": "2019-04-20T02:44:58", "url": "https://files.pythonhosted.org/packages/84/71/d5b1c98a36297651666f176c9966f8c4aaee0c9e6660bd7ff7ff15a39c60/pyshgp-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "490ef873074f6adf63fcdee598c181cd", "sha256": "1e5e7fb55c3a0fde878a8f9632a422c35e7fc42c198f16cea8565c6ef93b1d9a" }, "downloads": -1, "filename": "pyshgp-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "490ef873074f6adf63fcdee598c181cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 56454, "upload_time": "2019-04-20T02:44:57", "url": "https://files.pythonhosted.org/packages/de/2e/d78b2200f176f67d037d65414f9bb1ae6b404792149ffa78a28d80139b9d/pyshgp-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c24528341f35dfad5dd6936fef8d15d", "sha256": "5e226c7dbebb714b0bb6a5090f02815bf9093e30478fdbf35b8850c8f83e941e" }, "downloads": -1, "filename": "pyshgp-0.1.5.tar.gz", "has_sig": false, "md5_digest": "7c24528341f35dfad5dd6936fef8d15d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45244, "upload_time": "2019-04-20T02:44:58", "url": "https://files.pythonhosted.org/packages/84/71/d5b1c98a36297651666f176c9966f8c4aaee0c9e6660bd7ff7ff15a39c60/pyshgp-0.1.5.tar.gz" } ] }