{ "info": { "author": "Geoff Kassel", "author_email": "geoffkassel_at_gmail_dot_com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: Freely Distributable", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "pyaixi\r\n======\r\n\r\nDescription\r\n-----------\r\n\r\nA pure Python implementation of the Monte Carlo-AIXI-Context Tree Weighting (MC-AIXI-CTW)\r\nartificial intelligence algorithm.\r\n\r\nThis is an approximation of the AIXI universal artificial intelligence algorithm, which\r\ndescribes a model-based, reinforcement-learning agent capable of general learning.\r\n\r\n\r\nA more in-depth description of the MC-AIXI-CTW algorithm can be found here:\r\n\r\nJ.Veness, K.S.Ng, M.Hutter, W.Uther, D.Silver,\r\nA Monte Carlo AIXI Approximation,\r\nJournal of Artificial Intelligence Research, 40 (2011) 95-142\r\nhttp://dx.doi.org/10.1613/jair.3125\r\nFree TechReport version: http://arxiv.org/abs/0909.0801\r\nBibTeX: http://www.hutter1.net/official/bib.htm#aixictwx\r\n\r\n\r\nMotivation\r\n----------\r\n\r\nProviding a pure Python implementation of the MC-AIXI-CTW algorithm is intended to:\r\n\r\n- help make the implementation of AIXI-approximate algorithms more accessible to people\r\n without a C++ background\r\n\r\n- permit easier use of the MC-AIXI-CTW algorithm (and components) in other Python-based\r\n AI projects, and\r\n\r\n- permit faster prototyping of new AIXI-approximate algorithms via Python's comparative\r\n linguistic simplicity.\r\n\r\n\r\nGetting started\r\n---------------\r\n\r\nTo try the example `Rock Paper Scissors` environment, run the following in the\r\nbase directory of this package.\r\n\r\nFrom the Linux/Unix/Mac console:\r\n\r\npython aixi.py -v conf/rock_paper_scissors_fast.conf\r\n\r\n\r\nOn Windows:\r\n\r\npython aixi.py -v conf\\rock_paper_scissors_fast.conf\r\n\r\n\r\nOr if you have PyPy (e.g. version 1.9) installed on Linux/Unix/Mac:\r\n\r\npypy-c1.9 aixi.py -v conf/rock_paper_scissors_fast.conf\r\n\r\n\r\nNOTE: it is highly recommended to use the PyPy http://pypy.org Python interpreter to\r\nrun code from this package, as this typically provides an order-of-magnitude run-time\r\nimprovement over using the standard CPython interpreter.\r\n\r\n(This is unfortunately still an order of magnitude slower than the C++ version, though.)\r\n\r\n\r\nThis example will perform 500 interactions of the agent with the environment, with the agent\r\nexploring the environment by trying permitted actions at random, and learning from\r\nthe related observations and rewards.\r\n\r\nThen, the agent will use what it has learnt to maximise its reward in the following\r\n500 interactions. (Exploration is typically quite quick, while using that gained knowledge\r\nto choose the best action possible is typically much slower.)\r\n\r\n\r\nFor this particular environment, an average reward greater than 1 means the agent is winning\r\nmore than it is losing.\r\n\r\n(A score ranging from 1.02 to 1.04 is typical, depending on the random seed given.)\r\n\r\n\r\nFurther example environments can be found in the `environments` directory:\r\n\r\n - coin_flip - A simulation of a biased coin flip\r\n - extended_tiger - An extended version of the Tiger-or-Gold door choice problem.\r\n - kuhn_poker - A simplified, zero-sum version of poker.\r\n - maze - A two-dimensional maze.\r\n - rock_paper_scissors - Rock Paper Scissors.\r\n - tic_tac_toe - Tic Tac Toe\r\n - tiger - A choice between two doors. One door hides gold; the other, a tiger.\r\n\r\nSimilarly-named environment configuration files for these environments can be found in the\r\n`conf` directory, and run by replacing `rock_paper_scissors_fast.conf` in the commands\r\nlisted above with the name of the appropriate configuration file.\r\n\r\n\r\nScript usage\r\n------------\r\n\r\nUsage: python aixi.py [-a | --agent ]\r\n [-d | --explore-decay ]\r\n [-e | --environment ]\r\n [-h | --agent-horizon ]\r\n [-l | --learning-period ]\r\n [-m | --mc-simulations ]\r\n [-o | --option =]\r\n [-p | --profile]\r\n [-r | --terminate-age ]\r\n [-t | --ct-depth ]\r\n [-x | --exploration ]\r\n [-v | --verbose]\r\n []\r\n\r\n\r\nAdding new environments\r\n-----------------------\r\n\r\nThe environments in the `environments` directory all inherit from\r\na base class, `environment.Environment`, found in the base package directory.\r\n\r\nNew environments will need to inherit this class, and provide the methods\r\nof this class (as well as any internal logic) to interact with the agent.\r\n\r\nYou'll also need to construct a new configuration file for this environment,\r\nmaking sure to give the name of your new environment in the `environment` key.\r\n\r\n\r\nAdding new agents\r\n-----------------\r\n\r\nThe only (for now) provided agent class can be found in the `agent` directory:\r\n\r\n - mc_aixi_ctw - an agent implementing the Monte Carlo-AIXI-Context Tree Weighting algorithm.\r\n\r\n\r\nThe prediction algorithm used by this agent can be found in the `prediction` directory:\r\n\r\n - ctw_context_tree - an implementation of Context Tree Weighting context trees.\r\n\r\n\r\nThe search algorithm used is found in the `search` directory:\r\n\r\n - monte_carlo_search_tree - an implementation of Monte Carlo search trees.\r\n\r\n\r\nNew agents need to inherit from the base `agent.Agent` class, and provide the methods\r\nlisted within to interact with the currently-configured environment.\r\n\r\nTo use your own agent instead of the default `mc_aixi_ctw` agent in a configuration file,\r\nuse the `agent` key to specify the Python module name of your agent.\r\n\r\nAlternatively, you can override the default/the configuration file value, by using\r\nthe '-a'/'--agent' option on the command line.\r\n\r\n\r\nSimilar projects\r\n----------------\r\n\r\nThis package is based on the C++ implementation of the MC-AIXI-CTW algorithm seen here:\r\n\r\nhttps://github.com/moridinamael/mc-aixi\r\n\r\n\r\nAnother implementation of MC-AIXI-CTW can be found here:\r\n\r\nJoel Veness's personal page: http://jveness.info/software/default.html\r\n\r\n\r\nLicense\r\n-------\r\n\r\nCreative Commons Attribution ShareAlike 3.0 Unported. (CC BY-SA 3.0)\r\n\r\nPlease see `LICENSE.txt` for details.\r\n\r\nIf permitted in your legal domain (as this package is arguably a substantive\r\nderivative of another CC BY-SA 3.0 package, hence the licensing terms above,\r\nand the legal compatibility of CC BY-SA 3.0 with other open-source licences is currently\r\nunknown), the author of this package permits alternate licensing under your\r\nchoice of either the LGPL 3.0 or the GPL 3.0.\r\n\r\n\r\nContact the author\r\n------------------\r\n\r\nFor further assistance or to offer constructive feedback, please contact the author,\r\nGeoff Kassel, via:\r\n\r\ngeoffkassel_at_gmail_dot_com", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gkassel/pyaixi", "keywords": "AIXI,agent,artificial intelligence,general learning,machine learning,MC-AIXI-CTW,model based,reinforcement learning,prediction,search", "license": "Creative Commons Attribution-ShareAlike 3.0 Unported License", "maintainer": null, "maintainer_email": null, "name": "pyaixi", "package_url": "https://pypi.org/project/pyaixi/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyaixi/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/gkassel/pyaixi" }, "release_url": "https://pypi.org/project/pyaixi/1.0.4/", "requires_dist": null, "requires_python": null, "summary": "A pure Python implementation of the Monte Carlo-AIXI-Context Tree Weighting (MC-AIXI-CTW) artificial intelligence algorithm.", "version": "1.0.4" }, "last_serial": 1328256, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "823dfaa0a2ed8657d7e83eaacb96dc49", "sha256": "7bc422b5e6c4e2628974fc380516761a06cce7cf019ce181a7c06bade88d5bdd" }, "downloads": -1, "filename": "pyaixi-1.0.0.tar.gz", "has_sig": false, "md5_digest": "823dfaa0a2ed8657d7e83eaacb96dc49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48124, "upload_time": "2013-11-24T00:55:31", "url": "https://files.pythonhosted.org/packages/e3/ee/010cc314398f208e1677b4e86316ec5b02e37fd6d3deab0b7482cb09bddf/pyaixi-1.0.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "73a8146f5ab0ef543aaa958e736f6dd7", "sha256": "a52fd2d4e011da2182be0d626280471bf0dbc48fd3e42950316e385cdcd3d664" }, "downloads": -1, "filename": "pyaixi-1.0.0.zip", "has_sig": false, "md5_digest": "73a8146f5ab0ef543aaa958e736f6dd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63838, "upload_time": "2013-11-24T00:55:34", "url": "https://files.pythonhosted.org/packages/e9/10/1e809f5b089c80120c66e42e7cd733776d3127cb9812b07bc8f323ae53c8/pyaixi-1.0.0.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "22704a0c55f5457904cfe70ed34f2af7", "sha256": "4c82d8e8bf57a7aa42627cf690b42034a947d20e7c5a55f64bdb62a0424c6c82" }, "downloads": -1, "filename": "pyaixi-1.0.1.tar.gz", "has_sig": false, "md5_digest": "22704a0c55f5457904cfe70ed34f2af7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48474, "upload_time": "2013-11-26T14:10:03", "url": "https://files.pythonhosted.org/packages/79/58/47d6d1f096c61e036e441376a6508632fd17c684e8ef7ae0b466b1a545ec/pyaixi-1.0.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "895100391ce9cf3241043aa31009a2c9", "sha256": "8615f255f98ee2ee932390a6808afa51675ba2e2dd23df280aabe3028e0f1378" }, "downloads": -1, "filename": "pyaixi-1.0.1.zip", "has_sig": false, "md5_digest": "895100391ce9cf3241043aa31009a2c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65006, "upload_time": "2013-11-26T14:10:06", "url": "https://files.pythonhosted.org/packages/2d/1b/59d554a1930c948a8b01436dbadd99c9046a29193343dcb94a5d9e887451/pyaixi-1.0.1.zip" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "6404da14f360a89e2bca9b89eaba5807", "sha256": "0d3a2be358f152bb78b663675c87a8d39d5eb3150555714bc0793d2b1271c385" }, "downloads": -1, "filename": "pyaixi-1.0.2.tar.gz", "has_sig": false, "md5_digest": "6404da14f360a89e2bca9b89eaba5807", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48706, "upload_time": "2013-11-27T11:42:13", "url": "https://files.pythonhosted.org/packages/bb/77/aab35503496adbfa573cc85af1c22e1342ed480df72db3a2ca3f735927a0/pyaixi-1.0.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "055db5916098fd2c48c0f7ef925d1d37", "sha256": "42e4aa9cf732e10566dfb23f28d1cd6ef4286262d691ccb35e9a5362dbb1cb45" }, "downloads": -1, "filename": "pyaixi-1.0.2.zip", "has_sig": false, "md5_digest": "055db5916098fd2c48c0f7ef925d1d37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65276, "upload_time": "2013-11-27T11:42:16", "url": "https://files.pythonhosted.org/packages/6b/66/21537814db9d6789a8fe37ee623afe3a73aa64ea8e61533b600f9fd76e61/pyaixi-1.0.2.zip" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "757a7d975374c21350a53bb4e02140e6", "sha256": "5d58cd3162740dbf082c16c4a8f377169e6dc4643a1848a4f3a793310ad261db" }, "downloads": -1, "filename": "pyaixi-1.0.3.tar.gz", "has_sig": false, "md5_digest": "757a7d975374c21350a53bb4e02140e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48553, "upload_time": "2013-12-07T03:19:12", "url": "https://files.pythonhosted.org/packages/77/28/3905b9d73dd6e5f349ec6b8bffac2d3b51b97675ba48a1a9ccfa0ddd4617/pyaixi-1.0.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "89e2da0d8c3f8b812088db50911090bd", "sha256": "89fea54c08af075118b7b5897c008f634519f74f6fa581a0504166ed41fc24bd" }, "downloads": -1, "filename": "pyaixi-1.0.3.zip", "has_sig": false, "md5_digest": "89e2da0d8c3f8b812088db50911090bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65920, "upload_time": "2013-12-07T03:19:16", "url": "https://files.pythonhosted.org/packages/de/f5/54a39c222e86f894368f2e703ffef19bfc51b5b2115e44b72c56a26b0a77/pyaixi-1.0.3.zip" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "58c4d1d7c1a318135ed4f47d4cf4d814", "sha256": "a838ba5bd0374d99fbad55145593bdea3e829299b6ba50c1e5550f30efcce1f3" }, "downloads": -1, "filename": "pyaixi-1.0.4.tar.gz", "has_sig": false, "md5_digest": "58c4d1d7c1a318135ed4f47d4cf4d814", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56050, "upload_time": "2014-12-02T14:41:30", "url": "https://files.pythonhosted.org/packages/5a/ef/b2adf92b94fc01ae7ed4b7ced9ac064d99ebe62f71695ef67cb3b0ef8c23/pyaixi-1.0.4.tar.gz" }, { "comment_text": "", "digests": { "md5": "e67e4032eef3c56b9ecb4b4aca2c6ea5", "sha256": "8d5f3086d7399b4d23def59c7635ba28816156a71f3d72d5c91e9dbc4ad2f8e4" }, "downloads": -1, "filename": "pyaixi-1.0.4.zip", "has_sig": false, "md5_digest": "e67e4032eef3c56b9ecb4b4aca2c6ea5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73429, "upload_time": "2014-12-02T14:41:34", "url": "https://files.pythonhosted.org/packages/7f/35/954178fa1919128ba51744f1eaa080ab8eb67ccf6c5ffe06008a9219e692/pyaixi-1.0.4.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "58c4d1d7c1a318135ed4f47d4cf4d814", "sha256": "a838ba5bd0374d99fbad55145593bdea3e829299b6ba50c1e5550f30efcce1f3" }, "downloads": -1, "filename": "pyaixi-1.0.4.tar.gz", "has_sig": false, "md5_digest": "58c4d1d7c1a318135ed4f47d4cf4d814", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56050, "upload_time": "2014-12-02T14:41:30", "url": "https://files.pythonhosted.org/packages/5a/ef/b2adf92b94fc01ae7ed4b7ced9ac064d99ebe62f71695ef67cb3b0ef8c23/pyaixi-1.0.4.tar.gz" }, { "comment_text": "", "digests": { "md5": "e67e4032eef3c56b9ecb4b4aca2c6ea5", "sha256": "8d5f3086d7399b4d23def59c7635ba28816156a71f3d72d5c91e9dbc4ad2f8e4" }, "downloads": -1, "filename": "pyaixi-1.0.4.zip", "has_sig": false, "md5_digest": "e67e4032eef3c56b9ecb4b4aca2c6ea5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 73429, "upload_time": "2014-12-02T14:41:34", "url": "https://files.pythonhosted.org/packages/7f/35/954178fa1919128ba51744f1eaa080ab8eb67ccf6c5ffe06008a9219e692/pyaixi-1.0.4.zip" } ] }