{"action":"created","issue":{"url":"https://api.github.com/repos/Svalorzen/AI-Toolbox/issues/13","repository_url":"https://api.github.com/repos/Svalorzen/AI-Toolbox","labels_url":"https://api.github.com/repos/Svalorzen/AI-Toolbox/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/Svalorzen/AI-Toolbox/issues/13/comments","events_url":"https://api.github.com/repos/Svalorzen/AI-Toolbox/issues/13/events","html_url":"https://github.com/Svalorzen/AI-Toolbox/issues/13","id":137604418,"number":13,"title":"Add Python GridWorld example","user":{"login":"aukejw","id":1319102,"avatar_url":"https://avatars.githubusercontent.com/u/1319102?v=3","gravatar_id":"","url":"https://api.github.com/users/aukejw","html_url":"https://github.com/aukejw","followers_url":"https://api.github.com/users/aukejw/followers","following_url":"https://api.github.com/users/aukejw/following{/other_user}","gists_url":"https://api.github.com/users/aukejw/gists{/gist_id}","starred_url":"https://api.github.com/users/aukejw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aukejw/subscriptions","organizations_url":"https://api.github.com/users/aukejw/orgs","repos_url":"https://api.github.com/users/aukejw/repos","events_url":"https://api.github.com/users/aukejw/events{/privacy}","received_events_url":"https://api.github.com/users/aukejw/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-03-01T15:28:29Z","updated_at":"2016-12-17T17:22:49Z","closed_at":"2016-12-17T17:22:49Z","body":"At the time of writing, it's sometimes difficult to figure out how the generated Python objects work. This is partially due to their hard-to-read boostpython-generated docs:\n\n```\nIn [8]: q = MDP.QLearning()\n---------------------------------------------------------------------------\nArgumentError                             Traceback (most recent call last)\n<ipython-input-8-de58c583951f> in <module>()\n----> 1 q = MDP.QLearning()\n\nArgumentError: Python argument types in\n    QLearning.__init__(QLearning)\ndid not match C++ signature:\n    __init__(_object*, AIToolbox::MDP::SparseModel)\n    __init__(_object*, AIToolbox::MDP::SparseModel, double)\n    __init__(_object*, AIToolbox::MDP::Model)\n    __init__(_object*, AIToolbox::MDP::Model, double)\n    __init__(_object*, AIToolbox::MDP::SparseRLModel<AIToolbox::MDP::SparseExperience, void>)\n    __init__(_object*, AIToolbox::MDP::SparseRLModel<AIToolbox::MDP::SparseExperience, void>, double)\n    __init__(_object*, AIToolbox::MDP::RLModel<AIToolbox::MDP::Experience, void>)\n    __init__(_object*, AIToolbox::MDP::RLModel<AIToolbox::MDP::Experience, void>, double)\n    __init__(_object*, unsigned long, unsigned long)\n    __init__(_object*, unsigned long, unsigned long, double)\n    __init__(_object*, unsigned long, unsigned long, double, double)\n```\n\nAdding an example - like the gridworld example from the docs - will make them simpler to understand. This will be significantly less time-consuming than writing docstrings. It would be nice to show how the `ValueIterationModel` relates to a `Model` instance, how to properly instantiate them and run the solver.\n\nFor example, I'm having trouble constructing the Python equivalent of:\n\n```\nAIToolbox::MDP::ValueIteration solver;\nauto solution = solver(world);\n```\n"},"comment":{"url":"https://api.github.com/repos/Svalorzen/AI-Toolbox/issues/comments/267774911","html_url":"https://github.com/Svalorzen/AI-Toolbox/issues/13#issuecomment-267774911","issue_url":"https://api.github.com/repos/Svalorzen/AI-Toolbox/issues/13","id":267774911,"user":{"login":"Svalorzen","id":1609228,"avatar_url":"https://avatars.githubusercontent.com/u/1609228?v=3","gravatar_id":"","url":"https://api.github.com/users/Svalorzen","html_url":"https://github.com/Svalorzen","followers_url":"https://api.github.com/users/Svalorzen/followers","following_url":"https://api.github.com/users/Svalorzen/following{/other_user}","gists_url":"https://api.github.com/users/Svalorzen/gists{/gist_id}","starred_url":"https://api.github.com/users/Svalorzen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Svalorzen/subscriptions","organizations_url":"https://api.github.com/users/Svalorzen/orgs","repos_url":"https://api.github.com/users/Svalorzen/repos","events_url":"https://api.github.com/users/Svalorzen/events{/privacy}","received_events_url":"https://api.github.com/users/Svalorzen/received_events","type":"User","site_admin":false},"created_at":"2016-12-17T17:22:49Z","updated_at":"2016-12-17T17:22:49Z","body":"Closing this as the example was merged."}}
{"actor":{"display_login":"Svalorzen"}}