A lightweight library for defining navigation grid world
Project description
Navigation MDP
A simple library for experimenting with Markov Decision Process (MDP). Designed specifically for studying Navigation problems.
MDP is defined by states S, dynamics T, actions A, and rewards R. The design philosophy of this library is that each entity in the MDP is a separate object. State is the central entity. Everything else is optional, and can be defined and attached to the states as per the need.
Installation
To install current release with pip:
pip install navigation-mdp
To install from source:
python setup.py install
Usage
If you're curious what it can do:
1. View examples in the notebook
2. Play with it on Google Colab
3. Play with it on MyBinder
Example
Create a 3 x 3 state space:
S = DiscreteStateSpace(3,3)
Attach indicator features:
S.attach_feature_spec(FeatureStateIndicatorOneHot("ind"))
Visualize the world:
p = NavGridView(S.features(key="ind", gridded=True)[..., np.newaxis, np.newaxis]).render().ticks().grid()
plt.colorbar(p.im)
Dependency
For visualizations: https://github.com/yrevar/navigation_vis
Acknowledgements
- Thanks to Prof. Michael L. Littman, Dr. Lucas Lehnert, and Dr. David Abel for all the discussions which were very helpful in developing concepts.
- State class is inspired from Dr. Abel's Simple RL framework: https://github.com/david-abel/simple_rl
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.