Bug fixes

This commit is contained in:
hal8174 2024-08-27 13:53:31 +02:00
parent be1d26ebd0
commit a11b39cf9f
8 changed files with 336 additions and 70 deletions

View file

@ -1,64 +1,34 @@
use clap::Parser;
use factorio_blueprint::{
belt_finding::{conflict_avoidance::ConflictAvoidance, Problem},
common::visualize::Visualize,
layout::Layout,
layout::{GeneticAlgorithm, Layout, PathLayout},
};
use rand::SeedableRng;
use rand::{rngs::SmallRng, SeedableRng};
#[derive(Debug, Parser)]
struct Args {
#[clap(default_value_t = 0)]
seed: u64,
}
fn main() {
// let mut p = Problem::new(Position::new(10, 10));
let args = Args::parse();
// let b1 = p.add_block(Position::new(3, 2));
// let b2 = p.add_block(Position::new(5, 2));
// let b3 = p.add_block(Position::new(5, 7));
// p.add_connection(b1, Position::new(1, 0), b2, Position::new(1, 0));
// p.add_connection(b2, Position::new(3, 1), b3, Position::new(4, 6));
let file = std::fs::File::open("layout.yml").unwrap();
let file = std::fs::File::open("layout2.yml").unwrap();
let p = serde_yaml::from_reader(file).unwrap();
for i in 0..1 {
let mut rng = rand::rngs::SmallRng::seed_from_u64(5);
let mut rng = SmallRng::seed_from_u64(args.seed);
let l = Layout::new(&p, &mut rng);
dbg!(&p);
// let s = l.score();
l.print_visualization();
let mut g = GeneticAlgorithm::new(&p, 20, 4, 2, &mut rng);
let m = l.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
let m = m.mutate(&mut rng);
m.print_visualization();
// let mut p = Problem::from_layout(&l);
// p.print();
// p.find_path();
// p.print();
// let mut c = ConflictAvoidance::new(p);
// c.remove_all_conflicts();
// c.print();
// println!("Seed: {i}, Score {}", s);
// l.print_visualization();
// if s < min {
// min = s;
// min_l = Some(l);
// }
for i in 0..100 {
println!("Generatrion {i}");
g.generation(&mut rng);
}
// g.output_population();
}