Skip to content

Python3 library for specifying MDP tailored for navigation applications.

License

Notifications You must be signed in to change notification settings

yrevar/navigation_mdp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Navigation MDP

2. Play with it on Google Colab

Open In Colab

3. Play with it on MyBinder

Binder

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

About

Python3 library for specifying MDP tailored for navigation applications.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published