pub trait RLOptimizer {
// Required methods
fn config(&self) -> &RLOptimizationConfig;
fn select_action(&mut self, state: &OptimizationState) -> OptimizationAction;
fn update(&mut self, experience: &Experience) -> OptimizeResult<()>;
fn run_episode<F>(
&mut self,
objective: &F,
initial_params: &ArrayView1<'_, f64>,
) -> OptimizeResult<OptimizeResults<f64>>
where F: Fn(&ArrayView1<'_, f64>) -> f64;
fn train<F>(
&mut self,
objective: &F,
initial_params: &ArrayView1<'_, f64>,
) -> OptimizeResult<OptimizeResults<f64>>
where F: Fn(&ArrayView1<'_, f64>) -> f64;
fn reset(&mut self);
}
Expand description
Trait for RL-based optimizers
Required Methods§
Sourcefn config(&self) -> &RLOptimizationConfig
fn config(&self) -> &RLOptimizationConfig
Configuration
Sourcefn select_action(&mut self, state: &OptimizationState) -> OptimizationAction
fn select_action(&mut self, state: &OptimizationState) -> OptimizationAction
Select action given current state
Sourcefn update(&mut self, experience: &Experience) -> OptimizeResult<()>
fn update(&mut self, experience: &Experience) -> OptimizeResult<()>
Update policy/value function based on experience
Sourcefn run_episode<F>(
&mut self,
objective: &F,
initial_params: &ArrayView1<'_, f64>,
) -> OptimizeResult<OptimizeResults<f64>>
fn run_episode<F>( &mut self, objective: &F, initial_params: &ArrayView1<'_, f64>, ) -> OptimizeResult<OptimizeResults<f64>>
Run optimization episode
Sourcefn train<F>(
&mut self,
objective: &F,
initial_params: &ArrayView1<'_, f64>,
) -> OptimizeResult<OptimizeResults<f64>>
fn train<F>( &mut self, objective: &F, initial_params: &ArrayView1<'_, f64>, ) -> OptimizeResult<OptimizeResults<f64>>
Train the RL optimizer
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.