use fractal_algebra::stochastic::StochasticAmplitudePhase;
use fractal_algebra::{
CriticSuite, EntropyCritic, EvolutionaryGenerator, GeneratorCriticLoop, MutationSuite,
SymmetryCritic,
};
fn main() {
let mut critics = CriticSuite::new();
critics.add_critic(SymmetryCritic, 0.7);
critics.add_critic(EntropyCritic, 0.3);
let mut mutations = MutationSuite::new();
mutations.add_strategy(
StochasticAmplitudePhase {
amplitude_jitter: 0.5,
phase_jitter: 0.3,
},
1.0,
);
let generator = EvolutionaryGenerator {
mutations,
count: 12,
};
let loop_engine = GeneratorCriticLoop {
generator,
critic_suite: critics,
iterations: 20,
};
if let Some(best_field) = loop_engine.run() {
println!("best field signature: {:?}", best_field.signature());
println!("best field edge count: {}", best_field.edges.len());
} else {
println!("no field was generated");
}
}