{"action":"opened","issue":{"url":"https://api.github.com/repos/suragnair/alpha-zero-general/issues/47","repository_url":"https://api.github.com/repos/suragnair/alpha-zero-general","labels_url":"https://api.github.com/repos/suragnair/alpha-zero-general/issues/47/labels{/name}","comments_url":"https://api.github.com/repos/suragnair/alpha-zero-general/issues/47/comments","events_url":"https://api.github.com/repos/suragnair/alpha-zero-general/issues/47/events","html_url":"https://github.com/suragnair/alpha-zero-general/issues/47","id":306548323,"number":47,"title":"Back propagation in MCTS tree","user":{"login":"Blackmoor","id":1545738,"avatar_url":"https://avatars2.githubusercontent.com/u/1545738?v=4","gravatar_id":"","url":"https://api.github.com/users/Blackmoor","html_url":"https://github.com/Blackmoor","followers_url":"https://api.github.com/users/Blackmoor/followers","following_url":"https://api.github.com/users/Blackmoor/following{/other_user}","gists_url":"https://api.github.com/users/Blackmoor/gists{/gist_id}","starred_url":"https://api.github.com/users/Blackmoor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Blackmoor/subscriptions","organizations_url":"https://api.github.com/users/Blackmoor/orgs","repos_url":"https://api.github.com/users/Blackmoor/repos","events_url":"https://api.github.com/users/Blackmoor/events{/privacy}","received_events_url":"https://api.github.com/users/Blackmoor/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-03-19T16:59:12Z","updated_at":"2018-03-19T16:59:12Z","closed_at":null,"author_association":"NONE","body":"Many games allow the same game state to be reached by different sets of moves, or the same set of moves performed in a different order.\r\n\r\nBecause the current MCTS implements its 'tree' as a 'set' we can end up finding that the next state is already in the 'tree' if it has been reached via another set of moves. The current back propagation code will update the states we traversed to get here but potentially leave the 'tree' in an incomplete state as some branches will suddenly have a child those updated values have not been back propagated\r\n\r\nAn additional problem is that is it not always safe to assume that identical games state reached via different moves are equivalent (take 'go' for example) so to be a generic game playing engine we probably have to treat them as different states and implement the MCTS as a 'tree' and not as a 'set' (python list indexed on the game state). "}}
{"actor":{"display_login":"Blackmoor"}}