A simple implementation of backwards induction for solving finite-horizon, finite-state stochastic dynamic programs.
Project description
A simple implementation of backwards induction for solving finite-horizon, finite-space stochastic dynamic programs.
Installation
stochasticdp is available on PyPI:
pip install stochasticdp
Usage
To initialize a stochastic dynamic program:
dp = StochasticDP(number_of_stages, states, decisions, minimize)
where
number_of_stages is an integer
states is a list
decisions is a list
minimize is a boolean
This results in a stochastic dynamic program with stages numbered 0, ..., number_of_stages - 1, and initializes the following dictionaries:
dp.probability, where dp.probability[m, n, t, x] is the probability of moving from state n to state m in stage t under decision x
dp.contribution, where dp.contribution[m, n, t, x] is the immediate contribution of resulting from moving from state n to state m in stage t under decision x
dp.boundary, where dp.boundary[n] is the boundary condition for the value-to-go function at state n
You only need to define probabilities and contributions for transitions that occur with positive probability.
You can use the following helper functions to populate these dictionaries:
# This sets dp.probability[m, n, t, x] = p and dp.contribution[m, n, t, x] = c
dp.add_transition(stage=t, from_state=n, decision=x, to_state=m, probability=p, contribution=c)
# This sets dp.boundary[n] = v
dp.boundary(state=n, value=v)
To solve the stochastic dynamic program:
value, policy = dp.solve()
where
value is a dictionary: value[t, n] is the value-to-go function at stage t and state n
policy is a dictionary: policy[t, n] is the set of optimizers of value[t, n]
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
File details
Details for the file stochasticdp-0.4.tar.gz
.
File metadata
- Download URL: stochasticdp-0.4.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 355d8925f3cc2d477685d38b99bf162716fd0e053713f8634a376ce39ab21cde |
|
MD5 | ee3cd5570890773d62a971745fb76f5c |
|
BLAKE2b-256 | c5685486738b05b0952855e1d347647e5cc6c10ad5be819157cb8ddfe869e990 |