{ "info": { "author": "The FastGA team", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [ "License :: Public Domain", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "This repository holds the code base supporting an article submitted to the `GECCO 2017 `_ conference. Since the article is still being reviewed, the authors' identities `cannot be disclosed `_ for the moment. They will be as soon as the reviewing process is over. In the meantime, this repository will be maintained actively by the authors, however using an anonymous account.\n\n**fastga** is an extremely small module sporting our so-called *fast mutation operator* (or *heavy-tailed mutation operator*), which is designed to perform bitwise mutation using a power-law-distributed mutation rate. This allows a high number of bits to be flipped in one step with high probability (compared to the classical (1+1) EA for example), which is especially desirable when such long-distance \"jumps\" are necessary to escape local optima.\n\nRequirements\n============\n\n- python3+\n- NumPy\n\nInstallation\n============\n\nThe pip way (recommended)\n-------------------------\n\n**(Optionnal)** Create a python virtual environment and activate it. In a console, type :\n\n::\n\n $ virtualenv ~/some_convenient_location/fastga\n $ cd ~/some_convenient_location/fastga\n $ source bin/activate\n\nIn a console (with your virtualenv activated if you use one), type :\n\n::\n\n $ pip install fastga\n\nThe git way\n-----------\n\nSimply clone this repository to a convenient location :\n\n::\n\n $ mkdir some_convenient_location && cd some_convenient_location\n $ git clone https://github.com/FastGA/fast-genetic-algorithms.git\n\nthen add it to your **PYTHONPATH** :\n\n::\n\n $ export PYTHONPATH=some_convenient_location:$PYTHONPATH\n\n(you can also put this command in your .bashrc file to make it permanent).\n\nUsage\n=====\n\nOur mutation operator is implemented in the class ``FastMutationOperator``, along with the abstract class ``BaseMutationOperator`` (which you shouldn't use directly but rather subclass to your own classes if needed) and the class ``OnePlusOneMutationOperator`` (which, as the name suggests, is an implementation of the (1+1) EA). In a python shell, type\n\n::\n\n from fastga import FastMutationOperator\n\nTwo parameters are required to create an instance :\n\n- an integer ``n`` which is the size of the bit strings that can be mutated by the operator ;\n- a float ``beta`` > 1 which is the exponent used in the mutation rate power law.\n\nGiven these two parameters, the operator's mutation rate *r* is such that, for each *i* in {1 .. n//2}, the probability that *r* is *i/n* is proportional to i^{-beta} (with a suitable normalization factor). As such, lower values of beta tend to favor a higher number of bits flipped in one mutation step.\n\nYou can now instantiate an operator :\n\n::\n\n operator = FastMutationOperator(n=100, beta=1.5)\n\nand use its ``mutate`` method to mutate *n*-length bit strings :\n\n::\n\n bit_string = [0] * 100\n for i in range(10):\n operator.mutate(bit_string, inplace=True)\n print(bit_string)", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/FastGA/fast-genetic-algorithms", "keywords": null, "license": "Unlicense", "maintainer": null, "maintainer_email": null, "name": "fastga", "package_url": "https://pypi.org/project/fastga/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/fastga/", "project_urls": { "Homepage": "https://github.com/FastGA/fast-genetic-algorithms" }, "release_url": "https://pypi.org/project/fastga/1.0.1/", "requires_dist": null, "requires_python": null, "summary": "Implementation of the so-called Heavy-Tailed Mutation Operator", "version": "1.0.1" }, "last_serial": 2730358, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "b98bf58df4883393432ec615747cd968", "sha256": "8448630ca8ee78bb52bf03144ec83c44d461b27c884429be6fbeff36d660b433" }, "downloads": -1, "filename": "fastga-1.0-py3.5.egg", "has_sig": false, "md5_digest": "b98bf58df4883393432ec615747cd968", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 9613, "upload_time": "2017-02-09T13:32:02", "url": "https://files.pythonhosted.org/packages/25/d9/3a9264eab538b84c65696dcb3a00f5d303b492f6465d75144d7c92b2b449/fastga-1.0-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "7228d882cca1997ab7173ec35fa4ef9e", "sha256": "2befb99fe0c2738979d5e776f4c5252f6b370a4137a9e4f1d172fadae3fa77c8" }, "downloads": -1, "filename": "fastga-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7228d882cca1997ab7173ec35fa4ef9e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7840, "upload_time": "2017-02-09T13:31:59", "url": "https://files.pythonhosted.org/packages/c1/42/dded308436e26ab06388b977ee5e45852fcb5bee356d2f319d3ab882da05/fastga-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8a8d24048519a6404320c759ad0c162f", "sha256": "f8cbc601118226dc4083ead5e8a1d0fef3f1ac898f83cf323b671a3916241979" }, "downloads": -1, "filename": "fastga-1.0.tar.gz", "has_sig": false, "md5_digest": "8a8d24048519a6404320c759ad0c162f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5805, "upload_time": "2017-02-09T13:32:04", "url": "https://files.pythonhosted.org/packages/fc/33/6737db203215a4a01e039fe3ca3389eeb3f462859eff2d0fd976d9b8e4ec/fastga-1.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7b2934a12fe23ecc87a37e4bafc4b1ad", "sha256": "46b0fd4f9312b054d6379776232ef540d82163f2fb4eea692a7e60b66a255401" }, "downloads": -1, "filename": "fastga-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7b2934a12fe23ecc87a37e4bafc4b1ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7914, "upload_time": "2017-02-09T13:31:56", "url": "https://files.pythonhosted.org/packages/82/50/acb66bb193378d503dfce048055e2adbba3921561351eb3a70563a1a75df/fastga-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e86a7e5b36b9cd6edefa1946c330bd25", "sha256": "f6db756e19911f7bbe569c0ee6fc0e12d459712f25373cd082161110783a9627" }, "downloads": -1, "filename": "fastga-1.0.0.tar.gz", "has_sig": false, "md5_digest": "e86a7e5b36b9cd6edefa1946c330bd25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5838, "upload_time": "2017-02-09T13:32:01", "url": "https://files.pythonhosted.org/packages/a5/ee/e2f34b271575de03d277d8caa01cf5dfbeb94716715949b35f5206c6a2a3/fastga-1.0.0.tar.gz" } ], "1.0.1": [] }, "urls": [] }