?? parse.c
字號:
/* This file has been generated with opag 0.6.4. */#include <stdio.h>#include <string.h>#include <assert.h>#include <limits.h>#include <stdlib.h>#include "InOut.h"#include "utilities.h"#include "ants.h"#include "ls.h"#ifndef STR_ERR_UNKNOWN_LONG_OPT# define STR_ERR_UNKNOWN_LONG_OPT "%s: unrecognized option `--%s'\n"#endif#ifndef STR_ERR_LONG_OPT_AMBIGUOUS# define STR_ERR_LONG_OPT_AMBIGUOUS "%s: option `--%s' is ambiguous\n"#endif#ifndef STR_ERR_MISSING_ARG_LONG# define STR_ERR_MISSING_ARG_LONG "%s: option `--%s' requires an argument\n"#endif#ifndef STR_ERR_UNEXPEC_ARG_LONG# define STR_ERR_UNEXPEC_ARG_LONG "%s: option `--%s' doesn't allow an argument\n"#endif#ifndef STR_ERR_UNKNOWN_SHORT_OPT# define STR_ERR_UNKNOWN_SHORT_OPT "%s: unrecognized option `-%c'\n"#endif#ifndef STR_ERR_MISSING_ARG_SHORT# define STR_ERR_MISSING_ARG_SHORT "%s: option `-%c' requires an argument\n"#endif#define STR_HELP_TRIES \" -r, --tries # number of independent trials\n"#define STR_HELP_TOURS \" -s, --tours # number of steps in each trial\n"#define STR_HELP_TIME \" -t, --time # maximum time for each trial\n"#define STR_HELP_TSPLIBFILE \" -i, --tsplibfile f inputfile (TSPLIB format necessary)\n"#define STR_HELP_OPTIMUM \" -o, --optimum # stop if tour better or equal optimum is found\n"#define STR_HELP_ANTS \" -m, --ants # number of ants\n"#define STR_HELP_NNANTS \" -g, --nnants # nearest neighbours in tour construction\n"#define STR_HELP_ALPHA \" -a, --alpha # alpha (influence of pheromone trails)\n"#define STR_HELP_BETA \" -b, --beta # beta (influence of heuristic information)\n"#define STR_HELP_RHO \" -e, --rho # rho: pheromone trail evaporation\n"#define STR_HELP_Q0 \" -q, --q0 # q_0: prob. of best choice in tour construction\n"#define STR_HELP_ELITISTANTS \" -c, --elitistants # number of elitist ants\n"#define STR_HELP_RASRANKS \" -f, --rasranks # number of ranks in rank-based Ant System\n"#define STR_HELP_NNLS \" -k, --nnls # No. of nearest neighbors for local search\n"#define STR_HELP_LOCALSEARCH \" -l, --localsearch 0: no local search 1: 2-opt 2: 2.5-opt 3: 3-opt\n"#define STR_HELP_DLB \" -d, --dlb 1 use don't look bits in local search\n"#define STR_HELP_AS \" -u, --as apply basic Ant System\n"#define STR_HELP_EAS \" -v, --eas apply elitist Ant System\n"#define STR_HELP_RAS \" -w, --ras apply rank-based version of Ant System\n"#define STR_HELP_MMAS \" -x, --mmas apply MAX-MIN ant system\n"#define STR_HELP_BWAS \" -y, --bwas apply best-worst ant system\n"#define STR_HELP_ACS \" -z, --acs apply ant colony system\n"#define STR_HELP_HELP \" -h, --help display this help text and exit\n"#define STR_HELP \ STR_HELP_TRIES \ STR_HELP_TOURS \ STR_HELP_TIME \ STR_HELP_TSPLIBFILE \ STR_HELP_OPTIMUM \ STR_HELP_ANTS \ STR_HELP_NNANTS \ STR_HELP_ALPHA \ STR_HELP_BETA \ STR_HELP_RHO \ STR_HELP_Q0 \ STR_HELP_ELITISTANTS \ STR_HELP_RASRANKS \ STR_HELP_NNLS \ STR_HELP_LOCALSEARCH \ STR_HELP_DLB \ STR_HELP_AS \ STR_HELP_EAS \ STR_HELP_RAS \ STR_HELP_MMAS \ STR_HELP_BWAS \ STR_HELP_ACS \STR_HELP_HELPstruct options { /* Set to 1 if option --tries (-r) has been specified. */ unsigned int opt_tries : 1; /* Set to 1 if option --tours (-s) has been specified. */ unsigned int opt_tours : 1; /* Set to 1 if option --time (-t) has been specified. */ unsigned int opt_time : 1; /* Set to 1 if option --tsplibfile (-i) has been specified. */ unsigned int opt_tsplibfile : 1; /* Set to 1 if option --optimum (-o) has been specified. */ unsigned int opt_optimum : 1; /* Set to 1 if option --ants (-m) has been specified. */ unsigned int opt_ants : 1; /* Set to 1 if option --nnants (-g) has been specified. */ unsigned int opt_nnants : 1; /* Set to 1 if option --alpha (-a) has been specified. */ unsigned int opt_alpha : 1; /* Set to 1 if option --beta (-b) has been specified. */ unsigned int opt_beta : 1; /* Set to 1 if option --rho (-e) has been specified. */ unsigned int opt_rho : 1; /* Set to 1 if option --q0 (-q) has been specified. */ unsigned int opt_q0 : 1; /* Set to 1 if option --elitistants (-c) has been specified. */ unsigned int opt_elitistants : 1; /* Set to 1 if option --rasranks (-f) has been specified. */ unsigned int opt_rasranks : 1; /* Set to 1 if option --nnls (-k) has been specified. */ unsigned int opt_nnls : 1; /* Set to 1 if option --localsearch (-l) has been specified. */ unsigned int opt_localsearch : 1; /* Set to 1 if option --dlb (-d) has been specified. */ unsigned int opt_dlb : 1; /* Set to 1 if option --as (-u) has been specified. */ unsigned int opt_as : 1; /* Set to 1 if option --eas (-v) has been specified. */ unsigned int opt_eas : 1; /* Set to 1 if option --ras (-w) has been specified. */ unsigned int opt_ras : 1; /* Set to 1 if option --mmas (-x) has been specified. */ unsigned int opt_mmas : 1; /* Set to 1 if option --bwas (-y) has been specified. */ unsigned int opt_bwas : 1; /* Set to 1 if option --acs (-z) has been specified. */ unsigned int opt_acs : 1; /* Set to 1 if option --help (-h) has been specified. */ unsigned int opt_help : 1; /* Argument to option --tries (-r). */ const char *arg_tries; /* Argument to option --tours (-s). */ const char *arg_tours; /* Argument to option --time (-t). */ const char *arg_time; /* Argument to option --tsplibfile (-i). */ const char *arg_tsplibfile; /* Argument to option --optimum (-o). */ const char *arg_optimum; /* Argument to option --ants (-m). */ const char *arg_ants; /* Argument to option --nnants (-g). */ const char *arg_nnants; /* Argument to option --alpha (-a). */ const char *arg_alpha; /* Argument to option --beta (-b). */ const char *arg_beta; /* Argument to option --rho (-e). */ const char *arg_rho; /* Argument to option --q0 (-q). */ const char *arg_q0; /* Argument to option --elitistants (-c). */ const char *arg_elitistants; /* Argument to option --rasranks (-f). */ const char *arg_rasranks; /* Argument to option --nnls (-k). */ const char *arg_nnls; /* Argument to option --localsearch (-l). */ const char *arg_localsearch; /* Argument to option --dlb (-d). */ const char *arg_dlb; };/* Parse command line options. Return index of first non-option argument,or -1 if an error is encountered. */int parse_options (struct options *const options, const char *const program_name, const int argc, char **const argv){ static const char *const optstr__tries = "tries"; static const char *const optstr__tours = "tours"; static const char *const optstr__time = "time"; static const char *const optstr__tsplibfile = "tsplibfile"; static const char *const optstr__optimum = "optimum"; static const char *const optstr__ants = "ants"; static const char *const optstr__nnants = "nnants"; static const char *const optstr__alpha = "alpha"; static const char *const optstr__beta = "beta"; static const char *const optstr__rho = "rho"; static const char *const optstr__q0 = "q0"; static const char *const optstr__elitistants = "elitistants"; static const char *const optstr__rasranks = "rasranks"; static const char *const optstr__nnls = "nnls"; static const char *const optstr__localsearch = "localsearch"; static const char *const optstr__dlb = "dlb"; static const char *const optstr__as = "as"; static const char *const optstr__eas = "eas"; static const char *const optstr__ras = "ras"; static const char *const optstr__mmas = "mmas"; static const char *const optstr__bwas = "bwas"; static const char *const optstr__acs = "acs"; static const char *const optstr__help = "help"; int i = 0; options->opt_tries = 0; options->opt_tours = 0; options->opt_time = 0; options->opt_tsplibfile = 0; options->opt_optimum = 0; options->opt_ants = 0; options->opt_nnants = 0; options->opt_alpha = 0; options->opt_beta = 0; options->opt_rho = 0; options->opt_q0 = 0; options->opt_elitistants = 0; options->opt_rasranks = 0; options->opt_nnls = 0; options->opt_localsearch = 0; options->opt_dlb = 0; options->opt_as = 0; options->opt_eas = 0; options->opt_ras = 0; options->opt_mmas = 0; options->opt_bwas = 0; options->opt_acs = 0; options->opt_help = 0; options->arg_tries = 0; options->arg_tours = 0; options->arg_time = 0; options->arg_tsplibfile = 0; options->arg_optimum = 0; options->arg_ants = 0; options->arg_nnants = 0; options->arg_alpha = 0; options->arg_beta = 0; options->arg_rho = 0; options->arg_q0 = 0; options->arg_elitistants = 0; options->arg_rasranks = 0; options->arg_nnls = 0; options->arg_localsearch = 0; options->arg_dlb = 0; while (++i < argc) { const char *option = argv [i]; if (*option != '-') return i; else if (*++option == '\0') return i; else if (*option == '-') { const char *argument; size_t option_len; ++option; if ((argument = strchr (option, '=')) == option) goto error_unknown_long_opt; else if (argument == 0) option_len = strlen (option); else option_len = argument++ - option; switch (*option) { case '\0': return i + 1; case 'a': if (strncmp (option + 1, optstr__acs + 1, option_len - 1) == 0) { if (option_len <= 1) goto error_long_opt_ambiguous; if (argument != 0) { option = optstr__acs; goto error_unexpec_arg_long; } options->opt_acs = 1; break; } else if (strncmp (option + 1, optstr__alpha + 1, option_len - 1) == 0) { if (option_len <= 1) goto error_long_opt_ambiguous; if (argument != 0) options->arg_alpha = argument; else if (++i < argc) options->arg_alpha = argv [i]; else { option = optstr__alpha; goto error_missing_arg_long; } options->opt_alpha = 1; break; } else if (strncmp (option + 1, optstr__ants + 1, option_len - 1) == 0) { if (option_len <= 1) goto error_long_opt_ambiguous; if (argument != 0) options->arg_ants = argument; else if (++i < argc) options->arg_ants = argv [i]; else { option = optstr__ants; goto error_missing_arg_long; } options->opt_ants = 1; break; } else if (strncmp (option + 1, optstr__as + 1, option_len - 1) == 0) { if (option_len <= 1) goto error_long_opt_ambiguous; if (argument != 0) { option = optstr__as; goto error_unexpec_arg_long; } options->opt_as = 1; break; } goto error_unknown_long_opt; case 'b': if (strncmp (option + 1, optstr__beta + 1, option_len - 1) == 0) { if (option_len <= 1) goto error_long_opt_ambiguous; if (argument != 0) options->arg_beta = argument; else if (++i < argc) options->arg_beta = argv [i]; else { option = optstr__beta;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -