Skip to main content

Models of sequential decision making

Project description

msdm: Models of Sequential Decision-Making

Goals

msdm aims to simplify the design and evaluation of models of sequential decision-making. The library can be used for cognitive science or computer science research/teaching.

Approach

msdm provides standardized interfaces and implementations for common constructs in sequential decision-making. This includes algorithms used in single-agent reinforcement learning as well as those used in planning, partially observable environments, and multi-agent games.

The library is organized around different problem classes and algorithms that operate on problem instances. We take inspiration from existing libraries such as scikit-learn that enable users to transparently mix and match components. For instance, a standard way to define a problem, solve it, and examine the results would be:

# create a problem instance
mdp = make_russell_norvig_grid(
    discount_rate=0.95,
    slip_prob=0.8,
)

# solve the problem
vi = ValueIteration()
res = vi.plan_on(mdp)

# print the value function
print(res.V)

The library is under active development. Currently, it primarily supports tabular and discrete methods for single-agent problems, but we aim to extend support for the following problem classes:

  • Markov Decision Processes (MDPs)
  • Partially Observable Markov Decision Processes (POMDPs)
  • Markov Games
  • Partially Observable Stochastic Games (POSGs)

and algorithms:

  • Planning and Search
    • Value Iteration
    • Policy Iteration
    • Breadth-First Search
    • A*
    • Real-time Dynamic Programming
    • LAO*
  • Reinforcement Learning
    • Q-Learning
    • Double Q-Learning
    • SARSA
    • Expected SARSA
  • Inverse Reinforcement Learning
  • Multi-agent learning
    • Correlated Q Learning
    • Nash Q Learning
    • Friend/Foe Q Learning

Installation

Installing from GitHub

$ pip install --upgrade git+https://github.com/markkho/msdm.git

Installing the package in edit mode

After downloading, go into the folder and install the package locally (with a symlink so its updated as source file changes are made):

$ pip install -e .

It is recommended to use a virtual environment.

Related libraries:

Contributing

To run all tests: make test

To run tests for some file: python -m py.test msdm/tests/$TEST_FILE_NAME.py

To lint the code: make lint

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

msdm-0.4.tar.gz (65.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page