Trait relearn::simulation::Simulation
source · [−]pub trait Simulation: StepsIter<Self::Observation, Self::Action, Self::Feedback> {
type Observation;
type Action;
type Feedback;
type Environment: Environment<Observation = Self::Observation, Action = Self::Action, Feedback = Self::Feedback>;
type Actor: Actor<Self::Observation, Self::Action>;
type Logger: StatsLogger;
fn env(&self) -> &Self::Environment;
fn env_mut(&mut self) -> &mut Self::Environment;
fn actor(&self) -> &Self::Actor;
fn actor_mut(&mut self) -> &mut Self::Actor;
fn logger(&self) -> &Self::Logger;
fn logger_mut(&mut self) -> &mut Self::Logger;
fn log(
self
) -> LogSteps<Self, <Self::Environment as EnvStructure>::ObservationSpace, <Self::Environment as EnvStructure>::ActionSpace, <Self::Feedback as Feedback>::EpisodeFeedback>ⓘNotable traits for LogSteps<S, OS, AS, EF>impl<S, OS, AS, EF> Iterator for LogSteps<S, OS, AS, EF> where
S: Simulation<Observation = OS::Element, Action = AS::Element>,
S::Feedback: Feedback<EpisodeFeedback = EF>,
OS: LogElementSpace,
AS: LogElementSpace,
EF: Default + Loggable, type Item = PartialStep<S::Observation, S::Action, S::Feedback>;
where
Self::Environment: StructuredEnvironment,
Self::Feedback: Feedback,
Self: Sized,
{ ... }
}
Expand description
An environment-actor simulation
Required Associated Types
type Observation
type Environment: Environment<Observation = Self::Observation, Action = Self::Action, Feedback = Self::Feedback>
type Actor: Actor<Self::Observation, Self::Action>
type Logger: StatsLogger
Required Methods
fn env(&self) -> &Self::Environment
fn env_mut(&mut self) -> &mut Self::Environment
fn logger_mut(&mut self) -> &mut Self::Logger
Provided Methods
fn log(
self
) -> LogSteps<Self, <Self::Environment as EnvStructure>::ObservationSpace, <Self::Environment as EnvStructure>::ActionSpace, <Self::Feedback as Feedback>::EpisodeFeedback>ⓘNotable traits for LogSteps<S, OS, AS, EF>impl<S, OS, AS, EF> Iterator for LogSteps<S, OS, AS, EF> where
S: Simulation<Observation = OS::Element, Action = AS::Element>,
S::Feedback: Feedback<EpisodeFeedback = EF>,
OS: LogElementSpace,
AS: LogElementSpace,
EF: Default + Loggable, type Item = PartialStep<S::Observation, S::Action, S::Feedback>;
where
Self::Environment: StructuredEnvironment,
Self::Feedback: Feedback,
Self: Sized,
fn log(
self
) -> LogSteps<Self, <Self::Environment as EnvStructure>::ObservationSpace, <Self::Environment as EnvStructure>::ActionSpace, <Self::Feedback as Feedback>::EpisodeFeedback>ⓘNotable traits for LogSteps<S, OS, AS, EF>impl<S, OS, AS, EF> Iterator for LogSteps<S, OS, AS, EF> where
S: Simulation<Observation = OS::Element, Action = AS::Element>,
S::Feedback: Feedback<EpisodeFeedback = EF>,
OS: LogElementSpace,
AS: LogElementSpace,
EF: Default + Loggable, type Item = PartialStep<S::Observation, S::Action, S::Feedback>;
where
Self::Environment: StructuredEnvironment,
Self::Feedback: Feedback,
Self: Sized,
S: Simulation<Observation = OS::Element, Action = AS::Element>,
S::Feedback: Feedback<EpisodeFeedback = EF>,
OS: LogElementSpace,
AS: LogElementSpace,
EF: Default + Loggable, type Item = PartialStep<S::Observation, S::Action, S::Feedback>;
Creates an iterator that logs each step