Skip to main content

ipfrs_tensorlogic/markov_decision_process/
mod.rs

1//! Markov Decision Process (MDP) solver.
2//!
3//! Implements tabular MDP solving via Value Iteration, Policy Iteration,
4//! and Q-learning with full convergence tracking.
5//!
6//! # Example
7//!
8//! ```
9//! use ipfrs_tensorlogic::markov_decision_process::{
10//!     MarkovDecisionProcess, MdpStateId, MdpActionId, Transition, SolverConfig,
11//! };
12//!
13//! let mut mdp = MarkovDecisionProcess::new(3, 2);
14//! mdp.set_terminal(MdpStateId(2), true).expect("example: should succeed in docs");
15//! mdp.add_transition(
16//!     MdpStateId(0),
17//!     MdpActionId(0),
18//!     Transition { to_state: MdpStateId(2), probability: 1.0, reward: 1.0 },
19//! ).expect("example: should succeed in docs");
20//! let config = SolverConfig::default();
21//! let (vf, result) = mdp.value_iteration(&config);
22//! assert!(result.converged);
23//! let _ = vf;
24//! ```
25
26pub mod functions;
27pub mod mdperror_traits;
28pub mod solverconfig_traits;
29pub mod types;
30
31// Re-export all types
32pub use functions::*;
33pub use types::*;
34
35#[cfg(test)]
36mod tests;