diff options
| author | tslil clingman <tslil@posteo.de> | 2022-09-30 11:07:54 +0200 |
|---|---|---|
| committer | tslil clingman <tslil@posteo.de> | 2022-10-01 01:24:11 +0200 |
| commit | 60ef0eb8accb31d2dbbf25bee898a59a62cc43f9 (patch) | |
| tree | 9d519007a86329548b8cd9ef50d7519391d75f11 /srchr/src/main.rs | |
| parent | a0a87a49e7fc865bbbab8e83919450c8a991524c (diff) | |
Big overhaul, corrected sfb, added dsfb, lengthened corpus
Diffstat (limited to 'srchr/src/main.rs')
| -rw-r--r-- | srchr/src/main.rs | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/srchr/src/main.rs b/srchr/src/main.rs index 7c0ede9..667b675 100644 --- a/srchr/src/main.rs +++ b/srchr/src/main.rs @@ -18,7 +18,7 @@ use std::time::Instant; struct Tournament<'a> { rngs: Vec<Pcg64>, - top_prelayouts: Vec<(Prelayout, u32)>, + top_prelayouts: Vec<(Prelayout, f32)>, corpus: &'a Corpus, } @@ -29,7 +29,7 @@ impl<'a> Tournament<'a> { rngs.push(Pcg64::from_entropy()); } - let mut top_prelayouts: Vec<(Prelayout, u32)> = Vec::new(); + let mut top_prelayouts: Vec<(Prelayout, f32)> = Vec::new(); let score = prelayout_fitness(&corpus, &seed_prelayout); for _ in 0..NUM_PERSIST { top_prelayouts.push((seed_prelayout.clone(), score)); @@ -54,11 +54,17 @@ impl<'a> Tournament<'a> { ); return (layout, prelayout_fitness(&self.corpus, &layout)); }) - .collect::<Vec<(Prelayout, u32)>>(); + .collect::<Vec<(Prelayout, f32)>>(); let best = self.top_prelayouts[0].1; tournament.append(&mut self.top_prelayouts); - tournament.sort_by(|(_, lscore), (_, rscore)| lscore.cmp(rscore)); + tournament.sort_by(|(_, lscore), (_, rscore)| { + if lscore < rscore { + std::cmp::Ordering::Less + } else { + std::cmp::Ordering::Greater + } + }); let result; if tournament[0].1 < best { @@ -79,9 +85,11 @@ fn main() { let corpus = Corpus::load(CORPUS_FILE_NAME).unwrap(); println!("{}", corpus); - let seed_prelayout = Layout::from_verbose(STARTING_LAYOUT_STRING) - .unwrap() - .as_prelayout(); + let seed_layout = Layout::from_verbose(STARTING_LAYOUT_STRING).unwrap(); + let seed_evl = Evaluation::evaluate_layout(&corpus, &seed_layout); + println!("Starting with\n {}{}", seed_layout, seed_evl); + + let seed_prelayout = seed_layout.as_prelayout(); let mut tournament = Tournament::new_from_seed_prelayout(&seed_prelayout, &corpus); @@ -93,12 +101,9 @@ fn main() { if let Some(prelayout) = improvement { let layout = Layout::from_prelayout(&prelayout, &corpus); let evl = Evaluation::evaluate_layout(&corpus, &layout); - println!(""); - println!("================================================================================\n\n{}", - layout + println!("\n================================================================================\n\n{}{}", + layout, evl ); - - println!("{}", evl); } count += 1; |
