1extern crate aristeia;
16
17use aristeia::agent::Agent;
18use aristeia::manager::create_manager;
19use aristeia::fitness::ScoreError;
20
21fn main() {
22
23 let mut manager = create_manager(fitness_function, 0);
24 manager.set_number_of_genes(5, true);
25 manager.run(1250);
26 let agents = manager.get_population().get_agents();
27
28 println!("Population: {}", agents.len());
29
30 let mut viewing = 10;
31 for (score_index, agent) in agents.iter().rev() {
32 println!("Score: {}", score_index);
33 println!("{:?}", agent.get_genes());
34
35 viewing -= 1;
36 if viewing == 0 {
37 break;
38 }
39 }
40}
41
42fn fitness_function(agent: &Agent<u8>, _data: &u8) -> Result<u64, ScoreError> {
43 let mut score = 0;
44
45 for gene in agent.get_genes() {
46 score += *gene as u64;
47 }
48
49 Ok(score)
50}