diff --git a/src/learner.rs b/src/learner.rs index d7d8dcc..1a9f002 100644 --- a/src/learner.rs +++ b/src/learner.rs @@ -29,7 +29,13 @@ impl Learner { iterations: iterations.unwrap_or(200), } } - pub fn iterate(&self) -> Formula { + pub fn calculate_formula(&mut self) -> Formula { + for _ in 0..self.iterations { + self.best_algorithm = self.iterate() + } + self.best_algorithm.clone() + } + fn iterate(&self) -> Formula { let mut formulas: Vec<(Formula, f64)> = vec![]; for _ in 0..self.formulas_per_iteration { let mut formula = self.best_algorithm.clone(); @@ -68,7 +74,7 @@ impl Learner { editor.mutate_node(); } } - fn get_similarity(expected_output: &Vec, real_output: &Vec) -> Result { + pub fn get_similarity(expected_output: &Vec, real_output: &Vec) -> Result { if expected_output.len() != real_output.len() { return Err(()); } diff --git a/src/main.rs b/src/main.rs index 3aac0ff..797f633 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,16 @@ -use crate::{formula::Formula, node::Node}; +use fapprox::learner::Learner; mod formula; mod node; #[cfg(test)] mod tests; -fn main() {} +fn main() { + let mut learner = Learner::new( + vec![0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.], + vec![1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11.], + None, + None, + ); + println!("{:?}", learner.calculate_formula().as_text()); +}