Add second genetic algorithm.

This commit is contained in:
hal8174 2024-09-15 14:14:45 +02:00
parent 29450a1c65
commit a52816834f
2 changed files with 65 additions and 8 deletions

View file

@ -1,5 +1,8 @@
use clap::Parser;
use factorio_blueprint::layout::GeneticAlgorithm;
use factorio_blueprint::{
common::visualize::Visualize,
layout::{genetic_algorithm2, GeneticAlgorithm, PathLayout},
};
use rand::{rngs::SmallRng, SeedableRng};
#[derive(Debug, Parser)]
@ -19,12 +22,24 @@ fn main() {
dbg!(&p);
let mut g = GeneticAlgorithm::new(&p, 20, 2, 0, &mut rng);
// let mut g = GeneticAlgorithm::new(&p, 20, 2, 0, &mut rng);
for i in 0..100 {
println!("Generatrion {i}");
g.generation(&mut rng);
}
// for i in 0..100 {
// println!("Generatrion {i}");
// g.generation(&mut rng);
// }
// g.output_population();
let mut m: Option<PathLayout> = None;
for _ in 0..20 {
let g = genetic_algorithm2(&p, 10, 320, &mut rng);
g.print_visualization();
if m.as_ref().is_none_or(|m| g.score() < m.score()) {
m = Some(g);
}
}
m.unwrap().print_visualization();
}