Releases: Zinoex/IntervalMDP.jl
Releases · Zinoex/IntervalMDP.jl
v0.7.0
IntervalMDP v0.7.0
Changelog
- Unify underlying storage as
FactoredRobustMarkovDecisionProcess; also supports factored models. - Improve performance for IMDPs on GPU via bit-magic indexing in bitonic sorting.
- Add customizable Bellman operator algorithms.
- Add probabilistic labelling to
ProductProcess. - Improve docs, especially for specifications.
- Improve
showofFactoredRobustMarkovDecisionProcess, problems, etc. - now prints key types, statistics, and configurations rather than the full transition matrices that clutter the REPL with little meaningfulness.
Breaking changes
- With the new
FactoredRobustMarkovDecisionProcessmodel as a general underlying model, it requires a fixed number of actions per state. This will be relaxed in later versions. Convenience constructors forIntervalMarkovDecisionProcessandIntervalMarkovChainare included, butIntervalMarkovDecisionProcesscurrently requires a fixed number of actions. - Rename from
IntervalProbabilitiestoIntervalAmbiguitySets.
Merged pull requests:
- Probabilistic Labelling for ProductProcesses (#89) (@JeffersonYeh)
- Factored RMDPs as a base model (#90) (@Zinoex)
- fIMDP on cuda + other stuff (#94) (@Zinoex)
Closed issues:
v0.6.0
IntervalMDP v0.6.0
Changelog
- Removed bellman operator, workspaces from public interface (breaking change)
- Changed interface to conform to CommonSolve interface (breaking change)
Merged pull requests:
v0.5.0
IntervalMDP v0.5.0
- Update kernels for the Bellman operator
bellman!to support rational arithmetic for exact value iteration. - The bellman operator
bellman!now takes a model rather than a probability object and a state pointer (breaking). The old interface is used underlying in_bellman_helper!, which is called bybellman!.
Merged pull requests:
Closed issues:
- Rational number support (#14)
v0.4.6
IntervalMDP v0.4.6
Merged pull requests:
- Wrong remainder? (#80) (@adrienbanse)
- Add initial ProductIMDP framework (#81) (@JeffersonYeh)
- Add expected exit time specification (#83) (@Zinoex)
v0.4.5
IntervalMDP v0.4.5
v0.4.4
IntervalMDP v0.4.4
v0.4.3
IntervalMDP v0.4.3
v0.4.2
IntervalMDP v0.4.2
Merged pull requests:
Closed issues:
- Avoid specifying transition probabilities for sink states (#78)
v0.4.1
IntervalMDP v0.4.1
Merged pull requests:
v0.4.0
IntervalMDP v0.4.0
Merged pull requests:
- Check device upload problem construction for better error messages (#42) (@Zinoex)
- Time-varying markov process (#43) (@Zinoex)
- Move the models into separate files (#44) (@Zinoex)
- CompatHelper: add new compat entry for Adapt in [weakdeps] at version 4, (keep existing compat) (#45) (@github-actions[bot])
- CompatHelper: add new compat entry for LLVM in [weakdeps] at version 7, (keep existing compat) (#46) (@github-actions[bot])
- CompatHelper: add new compat entry for GPUArrays in [weakdeps] at version 10, (keep existing compat) (#47) (@github-actions[bot])
- Introduce workspaces (#48) (@Zinoex)
- Massive refactor - primarily with the intention of incorporating ParallelProduct (#50) (@Zinoex)
- CompatHelper: bump compat for LLVM in [weakdeps] to 8, (keep existing compat) (#51) (@github-actions[bot])
- CompatHelper: bump compat for LLVM in [weakdeps] to 9, (keep existing compat) (#52) (@github-actions[bot])
- Remove ParallelProduct (#53) (@Zinoex)
- Orthogonal IMDPs (#54) (@Zinoex)
- More workspace types for OrthogonalIntervalProbabilities (#59) (@Zinoex)
- Simplify action vectors (#62) (@Zinoex)
- Refactor bellman! to prepare for mixture models (#63) (@Zinoex)
- Change interface for time varying models (#66) (@Zinoex)
- Add safety property (#67) (@Zinoex)
- CompatHelper: bump compat for GPUArrays in [weakdeps] to 11, (keep existing compat) (#68) (@github-actions[bot])
- Mixture model (#69) (@Zinoex)
- Use
absin convergence check (#72) (@bkraske) - Fix strategy interface for CUDA (#75) (@Zinoex)
- Update docs (#76) (@Zinoex)
Closed issues:
- SparseOrdering to CuSparseOrdering adaptor (#12)
- Read bmdp-tool into an IntervalMarkovChain if num_actions == 1 (#30)
- Apply policy to IMDP to obtain IMC (#33)
- Test asserts (#35)
- Composition of IntervalMarkovProcesses (#38)
- Improve device error messages (#40)
- Test device check (#49)
- Simplify action vectors (#56)
- Sparse OrthogonalIntervalMarkovDecisionProcess (#57)
- Multi-threaded OrthogonalIntervalMarkovDecisionProcess (#58)
- Improve how strategies are applied (#64)
- Function to transfer data back to cpu (#74)