Refactor genetic algorithm

This commit is contained in:
hal8174 2025-02-01 22:55:06 +01:00
parent 6fbff67e61
commit 0ab97485bb
9 changed files with 260 additions and 15 deletions

View file

@ -7,11 +7,14 @@ struct Args {
#[arg(short, long)]
json: bool,
assembly_machines: usize,
recipe: String,
}
fn main() {
let args = Args::parse();
let b = BlueprintString::Blueprint(assembly_line(args.assembly_machines).to_blueprint());
let b = BlueprintString::Blueprint(
assembly_line(args.assembly_machines, args.recipe).to_blueprint(),
);
if args.json {
println!("{}", serde_json::to_string_pretty(&b).unwrap());

View file

@ -2,7 +2,7 @@ use clap::Parser;
use factorio_blueprint::{BlueprintString, encode};
use factorio_blueprint_generator::factory::generate_factory;
use factorio_core::prelude::*;
use factorio_layout::valid_layout::ValidLayout;
use factorio_layout::{genetic_algorithm_v1::GeneticAlgorithm, valid_layout::ValidLayout};
use factorio_pathfinding::belt_finding::ConflictAvoidance;
use rand::{SeedableRng, rngs::SmallRng};
@ -19,10 +19,19 @@ fn main() {
let l = ValidLayout {
max_tries: 10,
retries: 10,
start_size: Position::new(100, 100),
retries: 20,
start_size: Position::new(20, 20),
growth: Position::new(5, 5),
};
let l = GeneticAlgorithm {
mutation_retries: 20,
population_size: 10,
population_keep: 2,
population_new: 2,
generations: 20,
valid_layout: l,
};
let p = ConflictAvoidance {
timeout: Some(std::time::Duration::from_millis(20)),
};