20 int readAlgorithms(
int argc,
char **argv,
int i, vector<unique_ptr<TSP>> &algorithms)
22 string branch =
"branchandbound";
23 string brute =
"bruteforce";
24 string dynamic =
"dynamicprogramming";
25 string genetic =
"geneticalgorithm";
26 string arg = string(argv[i]);
27 transform(arg.begin(), arg.end(), arg.begin(),
28 [](
char c) {
return tolower(c); });
30 if (branch.find(arg) != string::npos)
31 algorithms.push_back(make_unique<BranchAndBound>());
33 else if (brute.find(arg) != string::npos)
34 algorithms.push_back(make_unique<BruteForce>());
36 else if (dynamic.find(arg) != string::npos)
37 algorithms.push_back(make_unique<DynamicProgramming>());
39 else if (genetic.find(arg) != string::npos)
40 algorithms.push_back(make_unique<GeneticAlgorithm>());
47 printf(
"-------- TRAVELLING SALESMAN PROBLEM --------\n");
49 printf(
"USAGE: main.exe [-h|--help|--csv] [branch|brute|dynamic|genetic]...\n");
51 printf(
"EXAMPLE: main.exe -h\n");
52 printf(
"EXAMPLE: main.exe branch genetic # run 'branch and bound' and 'genetic' " 54 printf(
"EXAMPLE: main.exe branch genetic --csv # run algorithms and print the " 55 "mean time in CSV format\n");
58 void readArgs(
int argc,
char **argv, vector<unique_ptr<TSP>> &algorithms)
60 for (
size_t i = 1; i < argc; i++)
62 if (argv[i][0] !=
'-')
64 else if (strcmp(argv[i],
"--csv") == 0)
66 else if (strcmp(argv[i],
"--help") == 0 || strcmp(argv[i],
"-h") == 0)
int readAlgorithms(int argc, char **argv, int i, vector< unique_ptr< TSP >> &algorithms)
Definition: arguments.h:20
int csvOutput
Definition: arguments.h:18
void readArgs(int argc, char **argv, vector< unique_ptr< TSP >> &algorithms)
Definition: arguments.h:58
void showHelp()
Definition: arguments.h:45