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;