pub struct ValueIteration {
pub num_states: usize,
pub num_actions: usize,
pub transitions: Vec<Vec<Vec<f64>>>,
pub rewards: Vec<Vec<f64>>,
pub discount: f64,
}Expand description
Standalone discounted MDP value iteration solver.
More flexible than MDP::value_iteration — accepts sparse transition
representations via closures (approximated here via table).
Fields§
§num_states: usizeNumber of states.
num_actions: usizeNumber of actions.
transitions: Vec<Vec<Vec<f64>>>Transition probabilities T[s][a][s’].
rewards: Vec<Vec<f64>>Reward R[s][a].
discount: f64Discount factor γ.
Implementations§
Source§impl ValueIteration
impl ValueIteration
Sourcepub fn new(
num_states: usize,
num_actions: usize,
transitions: Vec<Vec<Vec<f64>>>,
rewards: Vec<Vec<f64>>,
discount: f64,
) -> Self
pub fn new( num_states: usize, num_actions: usize, transitions: Vec<Vec<Vec<f64>>>, rewards: Vec<Vec<f64>>, discount: f64, ) -> Self
Construct a value iteration solver.
Sourcepub fn run(&self, tol: f64, max_iter: usize) -> (Vec<f64>, Vec<usize>)
pub fn run(&self, tol: f64, max_iter: usize) -> (Vec<f64>, Vec<usize>)
Run value iteration and return (V*, π*).
Trait Implementations§
Source§impl Clone for ValueIteration
impl Clone for ValueIteration
Source§fn clone(&self) -> ValueIteration
fn clone(&self) -> ValueIteration
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ValueIteration
impl RefUnwindSafe for ValueIteration
impl Send for ValueIteration
impl Sync for ValueIteration
impl Unpin for ValueIteration
impl UnsafeUnpin for ValueIteration
impl UnwindSafe for ValueIteration
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more