ttpgen/
main.rs

1// External crates
2use log::info;
3use clap::Parser;
4
5// Local modules / crates
6use crate::data_set::Rawdata;
7use crate::statistics::Statistics;
8use cli::Cli;
9use solution::Solution;
10use xml_manager::XmlManager;
11
12mod xml_manager;
13mod data_set;
14mod solution;
15mod logging;
16mod statistics;
17mod cli;
18
19fn main() {
20
21    let args = Cli::parse();
22
23    logging::init_logger("log.txt", args.log_enabled);
24    info!("Logger initialized");
25
26    info!("{:?}", args);
27
28    info!("Loading instance file");
29    let raw_data_set : Rawdata = XmlManager::read_xml(&*args.input);
30
31    info!("Generating traveling distance matrix");
32    let traveling_distance_matrix = Solution::generate_traveling_distance_matrix(&raw_data_set);
33
34    info!("Generating permutations");
35    let permutations = Solution::generate_random_permutations(&raw_data_set,args.permutations,args.seed,&*args.output_permutations, args.save);
36
37    info!("Generating solutions");
38    let (_, distances) = Solution::generate_all_solutions(&raw_data_set, &traveling_distance_matrix, permutations,&*args.output_solutions, args.save);
39
40    Statistics::generate_statistics(&distances);
41
42    info!("Framework execution completed");
43
44}