{ "info": { "author": "Eduardo S. Pereira", "author_email": "pereira.somoza@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# PyGENEC\n\nGenetic algorithm in Python and Numpy.\n\n## Instalation\n\n```bash\n$ pip install pygenec\n```\n\nOr\n\n\n```bash\n$ python setup.py install\n```\n\n\n\n## Usage\n\n```python\nfrom numpy import exp, array, mgrid\nimport matplotlib.pyplot as plt\nfrom mpl_toolkits.mplot3d import axes3d\nfrom matplotlib.animation import FuncAnimation\n\n\nfrom pygenec.populacao import Populacao\nfrom pygenec.selecao.roleta import Roleta\nfrom pygenec.cruzamento.kpontos import KPontos\nfrom pygenec.mutacao.flip import Flip\nfrom pygenec.evolucao import Evolucao\n\n\ndef func(x, y):\n tmp = 3 * exp(-(y + 1) ** 2 - x **2)*(x - 1)**2 \\\n - (exp(-(x+ 1) ** 2 - y **2) / 3 )\\\n + exp(-x **2 - y ** 2) * (10 * x **3 - 2 * x + 10 * y ** 5)\n return tmp\n\n\ndef bin(x):\n cnt = array([2 ** i for i in range(x.shape[1])])\n return array([(cnt * x[i,:]).sum() for i in range(x.shape[0])])\n\n\ndef xy(populacao):\n colunas = populacao.shape[1]\n meio = int(colunas / 2)\n maiorbin = 2.0 ** meio - 1.0\n nmin = -3\n nmax = 3\n const = (nmax - nmin) / maiorbin\n x = nmin + const * bin(populacao[:,:meio])\n y = nmin + const * bin(populacao[:,meio:])\n return x, y\n\n\ndef avaliacao(populacao):\n x, y = xy(populacao)\n tmp = func(x, y)\n return tmp\n\n\ngenes_totais = 16\ntamanho_populacao = 100\n\npopulacao = Populacao(avaliacao, genes_totais, tamanho_populacao)\nselecao = Roleta(populacao)\ncruzamento = KPontos(tamanho_populacao)\nmutacao = Flip(pmut=0.9)\nevolucao = Evolucao(populacao, selecao, cruzamento, mutacao)\n\nevolucao.nsele = 10\nevolucao.pcruz = 0.5\n\n\nfig = plt.figure(figsize=(100, 100))\nax = fig.add_subplot(111, projection=\"3d\")\nX, Y = mgrid[-3:3:30j, -3:3:30j]\nZ = func(X,Y)\nax.plot_wireframe(X, Y, Z)\n\nx, y = xy(populacao.populacao)\nz = func(x, y)\ngraph = ax.scatter(x, y, z, s=50, c='red', marker='D')\n\ndef update(frame):\n evolucao.evoluir()\n x, y = xy(populacao.populacao)\n z = func(x, y)\n graph._offsets3d = (x, y, z)\n\nani = FuncAnimation(fig, update, frames=range(10000), repeat=False)\nplt.show()\n```\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/duducosmos/pygenec", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "pygenec", "package_url": "https://pypi.org/project/pygenec/", "platform": "", "project_url": "https://pypi.org/project/pygenec/", "project_urls": { "Homepage": "https://github.com/duducosmos/pygenec" }, "release_url": "https://pypi.org/project/pygenec/1.0.1/", "requires_dist": [ "numpy" ], "requires_python": "", "summary": "Algoritmo Genetico em Python e Numpy", "version": "1.0.1" }, "last_serial": 5635680, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "cf3f87d88be75f134f181e45cea4e1d7", "sha256": "11151020630ba84a40cc09443df9b83b040adf4624c742caaf33eaa8ece2f3c0" }, "downloads": -1, "filename": "pygenec-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "cf3f87d88be75f134f181e45cea4e1d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17523, "upload_time": "2019-08-05T13:37:01", "url": "https://files.pythonhosted.org/packages/61/03/e8dd5aaf0d8cefdad1cdb03fc8401fc00bcc37b1c1ab703d3db683ced1b0/pygenec-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "23eb27cdc7570dc0fff1bfac8f9b2cef", "sha256": "6d7995179b98cafba2f21d69d06508cdfd86b06c7ebdb45d0765f0c74153e640" }, "downloads": -1, "filename": "pygenec-1.0.0.tar.gz", "has_sig": false, "md5_digest": "23eb27cdc7570dc0fff1bfac8f9b2cef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5346, "upload_time": "2019-08-05T13:37:03", "url": "https://files.pythonhosted.org/packages/c2/74/8fbcd523ef2148019387ffa57b8b576aff2327dd6247a26de5209c521ce3/pygenec-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "b9372b33f78095f19acfb00c89629cca", "sha256": "c28304cddbe9ecd0aeec911285e5dc8ae1a6f79f8fe906dacee4d9005168824f" }, "downloads": -1, "filename": "pygenec-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b9372b33f78095f19acfb00c89629cca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18377, "upload_time": "2019-08-05T18:15:12", "url": "https://files.pythonhosted.org/packages/07/48/c459e57cc9b36b99d716cf80b6299b069795800154b8c9e663f6e4755213/pygenec-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84b512db977349be00c681d14c3f1d33", "sha256": "9cbe95c57ab6e65e76ec483adf1a18afc22fe9be8db71cc9c8bf2b0529ca9a21" }, "downloads": -1, "filename": "pygenec-1.0.1.tar.gz", "has_sig": false, "md5_digest": "84b512db977349be00c681d14c3f1d33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6394, "upload_time": "2019-08-05T18:15:14", "url": "https://files.pythonhosted.org/packages/7d/55/42565da10394f8b8c9897ddb3395b65317500ca84ca7779c63471e7c45bc/pygenec-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b9372b33f78095f19acfb00c89629cca", "sha256": "c28304cddbe9ecd0aeec911285e5dc8ae1a6f79f8fe906dacee4d9005168824f" }, "downloads": -1, "filename": "pygenec-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b9372b33f78095f19acfb00c89629cca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18377, "upload_time": "2019-08-05T18:15:12", "url": "https://files.pythonhosted.org/packages/07/48/c459e57cc9b36b99d716cf80b6299b069795800154b8c9e663f6e4755213/pygenec-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84b512db977349be00c681d14c3f1d33", "sha256": "9cbe95c57ab6e65e76ec483adf1a18afc22fe9be8db71cc9c8bf2b0529ca9a21" }, "downloads": -1, "filename": "pygenec-1.0.1.tar.gz", "has_sig": false, "md5_digest": "84b512db977349be00c681d14c3f1d33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6394, "upload_time": "2019-08-05T18:15:14", "url": "https://files.pythonhosted.org/packages/7d/55/42565da10394f8b8c9897ddb3395b65317500ca84ca7779c63471e7c45bc/pygenec-1.0.1.tar.gz" } ] }