Changelog¶
Best viewed on the website.
Version 1.3.5.1 (03/30/2024)¶
Hot fixes for
WeightedParticles.Agentcan be created with a name.Bug fixes for release script and GHA workflow.
Version 1.3.5 (03/12/2024)¶
Refactored
_searchinPOUCTto be more modularMore fields made accessible for
POUCTAllows initializing
AgentandEnvironmentwithout all models ready, and provide those models later (or update them) byset_modelsMinor function renaming for
OptionAdded
DictStateImproved modularity and documentation for the RockSample example
WeightedParticlesnow hashable if frozen.Changed
det_dict_hashto not use sortingAdded a Github Action workflow for automatically building, releasing wheels and uploading them to PyPI
Default branch renamed to
main, anddev-latestis the development branch. Before a release,dev-<version>should be created based off ofdev-latest.
Version 1.3.4 (01/26/2024)¶
Modernize repo without introducing new features.
Migrate to
pyproject.tomlto specify dependencies, with minimalsetup.pyto build Cython extensions.Separate core and optional dependencies. Optional dependencies are needed only for pomdp_py.problems.
Added CI testing to repo.
Added pre-commit checks to repo.
Version 1.3.3 (07/25/2023)¶
Bumped minimum Python requirement from 3.7 to 3.8 due to EOL of 3.7.
Fix
cpdef -> cdefto avoid installation failure after Cython 3.0.0 release (pomdp-py#30).Added float_precision argument to to_pomdp_file (pomdp-py#29)
Add
__init__signature for Environment in comments to be visible in docsFix
s -> spinValueIteration(pomdp-py#20)Fix in
setup.pyso that wheel builds properly.Change set to list in
pomdp_problems.tiger.tiger_problem.pyto tame error regardingrandom.samplein Python 3.11.Minor bug fixes and documentation.
Version 1.3.2 (04/03/2022)¶
Fix in
histogram(in__str__): Print all of histogram as is instead of printing top 5 to avoid confusion.Improve documentation for the tiger tutorial; Specifically, clarified
PolicyModeland gave a reference toActionPrior.Built documentation with new Sphinx version (4.5.0)
Version 1.3.1 (11/03/2021)¶
Bug fix in
particles(inadd)Added classes for tabular models
TabularTransitionModel,TabularObservationModel,TabularRewardModel. See an example in this Github Gist for defining and solving the CryingBaby domain, a small POMDP.
Version 1.3.0.1 (09/30/2021)¶
Removed dependency on
pygraphviz;Added
utils.debugging.Treedebugger, which makes it easier to inspect the search tree. Seedebugging.Added
WeightedParticles; RefactoredParticles. (particles)Optionally show progress bar while simulating in POUCT/POMCP.
Added a CLI interface to simplify running example domains, e.g.
python -m pomdp_py -r tigerruns Tiger.Can initialize
EnvironmentwithBlackboxModel.For the
OOBeliefclass inoopomdp.pyx, nowmpeandrandomcan take an argumentreturn_oostate(default True), which returns a sampled state as typeOOState. This can be useful if you would like to inheritOOBeliefand return a state of your own type when implementing itsmpeandrandomfunctions.Added
__ne__methods to framework classes.Reorganized
utilby breaking it into different modules.Code refactoring: Remove unnecessary
*args, **kwargsin interface signature. Backwards compatible.Bug fix regarding hashing and pickling.
Verified installation on Windows (TODO)
Version 1.2.4.6 (canceled)¶
Fix
setup.pyso thatpip install -e .works.
Version 1.2.4.5 (07/05/2021)¶
Edit
setup.pyfile so that Cython modules inpomdp-pycan be :code:`cimport`ed.
(skipped versions due to attempting pypi release)
Version 1.2.4.1 (06/02/2021)¶
Fix documentation (external solver examples).
Update
tiger_problem.pyto match documentation
Version 1.2.4 (06/01/2021)¶
pomdp_py/algorithms/value_function.py:zero-probability observation should be skipped.
refactored so that
value()can take either a dict or a sequence of arguments.
Available on PyPI
.valuefield of VNode is instead changed to be a property, computed by finding the maximum value of the children Q-Nodes.
Version 1.2.3 (03/22/2021)¶
Bug fix in
solvers.pyandconversion.py(18fc58e0, cfc88e8d8)Bug fix in the MOS domain’s observation model (719c2edf5)
Linked docker image in documentation issue #13.
Updated documentations
Version 1.2.2.1 (01/25/2021)¶
Updated documentation for external library interfacing. Added citation.
Version 1.2.2 (01/17/2021)¶
Resolved issue #10. Set value in V-Node to be the max among its children Q-Nodes. Initial V-Node value set to negative infinity.
Avoid search tree building during rollout (thanks Jason)
Documentation clarification about
.sampleand.argmaxfunctions in theRewardModel.Small pomdps (with enumerable state, action, observation spaces) defined in
pomdp_pycan be converted to.pomdpand.pomdpxfile formats.Added interfacing with pomdp_solve and tested.
Added interfacing with sarsop and tested.
Added
utils/templates.pythat contains some convenient implementations of the POMDP interface.Bug fixes (in
histogram.pyx)
Version 1.2.1 (12/23/2020)¶
Fixed preferred rollout and action prior implementation; Previously the initial visits and values were not applied.
Fixed UCB1 value calculation when number of visits is 0; Previously a divide by zero error will be thrown. But it should have infinite value.
Fixed another potential math domain error due to log(0) in UCB1 value calculation when initial number of visit set to 0.
Fixed bug in particle belief update (minor type error)
Simplified the Tiger example code, updated the Tiger example in documentation.
Fixed bug in ValueIteration and verified in Tiger that it’s able to differentiate differentiate between listen/stay actions when horizon = 3, but not so when horizon = 1 or 2. The same behavior is observed using the pomdp solver by POMDP.org.
Added an exact value function in
pomdp_py.algorithms.value_function. It is a simpler exact value iteration algorithm.Added Load/Unload domain Pull request #9
Pull Request #3 (08/01/2020)¶
Added
num_simsparameter to POMCP/POUCT that allows specifying the number of simulations per planning step (Previously onlyplanning_timewas available.Added cythonized versions of tiger and rocksample domains which are much faster.
Pull Request #1 (06/02/2020)¶
Added continuous light-dark domain. A solver (BLQR) is attempted but not ready yet.
Bug fix in 2D MOS domain rollout; action step size changeable
Added Tag domain, tested with POUCT random rollout
Documentation
Version 1.0 - 1.2 (02/08/2020 - 02/16/2020)¶
Rewritten with cleaner interfaces and Cython integration
Refactored POMCP: Now it extends POUCT which does not assume particle belief representation.
Included Tiger, RockSample, and a 2D multi-object search (MOS) domain.
Using Sphinx Documentation
Version 0.0¶
Implementation of POMCP and OO-POMDP