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 implements witness-based pruning to resolve #7 and makes NativeSARSOP closer to C++ SARSOP. It is not exactly the one described in the original paper, but is the algorithm implemented in the source code of C++ SARSOP (as much as I am able to parse from it). Performance wise, it is slower for small problems but seems to be just slightly better for larger problems, and consistently has fewer alpha vectors. There is more overhead and some inefficiencies in handling witnesses in the alpha vector struct (as sets) and checking for duplicate alpha vectors during backups. There should be better ways of implementing these changes if anyone has suggestions.
TigerPOMDP
Benchmarks
Old
New
Policy Run
Old
New
BabyPOMDP
Benchmarks
Old
New
Policy Run
Old
New
TMaze
Benchmarks
Old
New
Policy Run
Old
New
RockSamplePOMDP(4,4)
Benchmarks
Old
New
Policy Run
Old
New
RockSample(10,10)
Benchmarks
Old
New
Policy Run
Old
New
RockSample(15,10)
Policy Run
Old
New