python wrapper over sarsa libraries #51
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR demonstrates how one can write thin python wrappers over the existing sarsa libraries. Such wrappers can allow one to code up high level agents in python that can directly call the fast C++ sarsa library functions.
As an example, this PR also contains a high level sarsa agent written in python. This agent is a python paraphrase of the existing high level sarsa offense agent written in C++. A script that runs this agent is also included.
In comparison to the C++ agent, the python agent obtains < 0.5 % difference in mean goal scoring % when averaged over 20 runs. This is when the fullstate flag is ON.
However, in case of partial observability, the python agent obtains 0 - 5% less goal scoring percentage when compared to the C++ agent. Despite my Best efforts, I am unable to pin down the reason for this.
It would be great if the maintainers and the broader community could replicate this issue and find ways to overcome it.