MicroGP (µGP, `ugp`) is an [evolutionary tool](https://squillero.github.io/microgp4/evolution.html): Given a problem, it first creates a set of random solutions, then iteratively refines and enhances them using the result of their evaluations together with structural information, routinely outperforming both human experts and conventional heuristics. It is able to tackle problem those solutions are simple fixed-length bit strings, as well as to optimize realistic assembly programs including loops, interrupts and recursive sub routines; and candidate solutions can be evaluated using proprietary external tools. Over the years it has been exploited as a coverage-driven [fuzzer](https://en.wikipedia.org/wiki/Fuzzing), as a general-purpose [optimizer](https://en.wikipedia.org/wiki/Engineering_optimization), and as a framework for prototyping and testing new ideas. [Some hundreds documents](https://scholar.google.com/scholar?q=%28+MicroGP+OR+%C2%B5GP+OR+ugp3+OR+ugp2+%29+AND+%28+Squillero+OR+Tonda+OR+Sanchez+OR+Schillaci+%29) discussing it and possible application can be found in the scientific literature.
The prototype of MicroGP was hacked in 2001, the first fully working version was [coded in C in 2002](https://github.com/squillero/microgp2) and then [re-engineered in C++ in 2006](https://github.com/squillero/microgp3). MicroGP4 is in Python, it has been redesigned from scratch once again to take advantage of the peculiar features of the language and to exploit its huge standard library. MicroGP4 would not have been possible without the help and support of [several people](https://github.com/squillero/microgp4/blob/pre-alpha/docs/contributors.md).
> #### ⚠️ Notez Bien: MicroGP4 v2.0 is currently in [pre-alpha](https://en.wikipedia.org/wiki/Software_release_life_cycle#Pre-alpha) and under active development
**Copyright © 2022-23 [Giovanni Squillero](https://github.com/squillero) and [Alberto Tonda](https://github.com/albertotonda/)**
MicroGP4 is [free and open-source software](https://en.wikipedia.org/wiki/Free_and_open-source_software), and it is distributed under the permissive [Apache License 2.0](https://opensource.org/license/apache-2-0/).
Raw data
{
"_id": null,
"home_page": "https://squillero.github.io/microgp4/",
"name": "microgp4",
"maintainer": "Giovanni Squillero",
"docs_url": null,
"requires_python": ">=3.11,<3.13",
"maintainer_email": "giovanni.squillero@polito.it",
"keywords": "Aritificial Intelligence,Evolutionary Computation,Approximate Optimization,Fuzzer",
"author": "Giovanni Squillero",
"author_email": "giovanni.squillero@polito.it",
"download_url": "https://files.pythonhosted.org/packages/16/5d/a015bcd1e308e1af7cc3295636cdbcbafa9071e8c69a8f5193452abb9e98/microgp4-4!2.0a1.dev10.tar.gz",
"platform": null,
"description": "MicroGP (\u00b5GP, `ugp`) is an [evolutionary tool](https://squillero.github.io/microgp4/evolution.html): Given a problem, it first creates a set of random solutions, then iteratively refines and enhances them using the result of their evaluations together with structural information, routinely outperforming both human experts and conventional heuristics. It is able to tackle problem those solutions are simple fixed-length bit strings, as well as to optimize realistic assembly programs including loops, interrupts and recursive sub routines; and candidate solutions can be evaluated using proprietary external tools. Over the years it has been exploited as a coverage-driven [fuzzer](https://en.wikipedia.org/wiki/Fuzzing), as a general-purpose [optimizer](https://en.wikipedia.org/wiki/Engineering_optimization), and as a framework for prototyping and testing new ideas. [Some hundreds documents](https://scholar.google.com/scholar?q=%28+MicroGP+OR+%C2%B5GP+OR+ugp3+OR+ugp2+%29+AND+%28+Squillero+OR+Tonda+OR+Sanchez+OR+Schillaci+%29) discussing it and possible application can be found in the scientific literature.\n\nThe prototype of MicroGP was hacked in 2001, the first fully working version was [coded in C in 2002](https://github.com/squillero/microgp2) and then [re-engineered in C++ in 2006](https://github.com/squillero/microgp3). MicroGP4 is in Python, it has been redesigned from scratch once again to take advantage of the peculiar features of the language and to exploit its huge standard library. MicroGP4 would not have been possible without the help and support of [several people](https://github.com/squillero/microgp4/blob/pre-alpha/docs/contributors.md). \n\n> #### \u26a0\ufe0f Notez Bien: MicroGP4 v2.0 is currently in [pre-alpha](https://en.wikipedia.org/wiki/Software_release_life_cycle#Pre-alpha) and under active development\n\n**Copyright \u00a9 2022-23 [Giovanni Squillero](https://github.com/squillero) and [Alberto Tonda](https://github.com/albertotonda/)** \nMicroGP4 is [free and open-source software](https://en.wikipedia.org/wiki/Free_and_open-source_software), and it is distributed under the permissive [Apache License 2.0](https://opensource.org/license/apache-2-0/).\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Yet another multi-purpose extensible self-adaptive evolutionary tool",
"version": "4!2.0a1.dev10",
"project_urls": {
"Homepage": "https://squillero.github.io/microgp4/",
"Repository": "https://github.com/squillero/microgp4"
},
"split_keywords": [
"aritificial intelligence",
"evolutionary computation",
"approximate optimization",
"fuzzer"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a0cba77d0c6bf0e3a36f5503d544c15439920d10a0c82a4f0333d3a21357515a",
"md5": "4b2a79cb56a7e2f4fb2d0c195cb3a613",
"sha256": "11b964765d24e85ee7068eec56a4761295d0d89c96540196b87f7cfdeb33ccc4"
},
"downloads": -1,
"filename": "microgp4-4!2.0a1.dev10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4b2a79cb56a7e2f4fb2d0c195cb3a613",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11,<3.13",
"size": 104706,
"upload_time": "2023-08-10T17:45:09",
"upload_time_iso_8601": "2023-08-10T17:45:09.994835Z",
"url": "https://files.pythonhosted.org/packages/a0/cb/a77d0c6bf0e3a36f5503d544c15439920d10a0c82a4f0333d3a21357515a/microgp4-4!2.0a1.dev10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "165da015bcd1e308e1af7cc3295636cdbcbafa9071e8c69a8f5193452abb9e98",
"md5": "7457785fb80c578fbf7053f33a3f4157",
"sha256": "344f76906a32ddc4ac85a35e439c8771591514c2f0b6bec3f83c8e471bf961ca"
},
"downloads": -1,
"filename": "microgp4-4!2.0a1.dev10.tar.gz",
"has_sig": false,
"md5_digest": "7457785fb80c578fbf7053f33a3f4157",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11,<3.13",
"size": 55294,
"upload_time": "2023-08-10T17:45:12",
"upload_time_iso_8601": "2023-08-10T17:45:12.442826Z",
"url": "https://files.pythonhosted.org/packages/16/5d/a015bcd1e308e1af7cc3295636cdbcbafa9071e8c69a8f5193452abb9e98/microgp4-4!2.0a1.dev10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-10 17:45:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "squillero",
"github_project": "microgp4",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "microgp4"
}