Exemplo n.º 1
0
    void init_options() {

        //--------------
        stringstream buf;
        buf << "Syntaxe :\n";
        buf << "  "<< parser->exename << " [options...] [--] [fichier_instance [fichier_solution]]\n";
        buf << "  "<< parser->exename << " -h pour en savoir plus ; -H pour exemples\n";
        parser->abstract = buf.str();

        //--------------
        parser->add_doc("\nOptions principales de résolution\n");

        //--------------
        this->solver = 3;
        buf.str("");
        buf << "   Choix du solveur (ou d'une méthode de résolution).\n"
            << "       -s 0 : n'appelle aucun solver (mode test)\n"
            << "       -s 1 : lit (ou génère) un fichier d'instance et la recrache\n"
            << "       -s 2 : heuristique stupide pour tester Solution (StupidSolver)\n"
            << "       -s 3 : méthode de Monte-Carlo (CarloSolver)\n"
            << "       -s 4 : glouton (GreedySolver)\n"
            << "       -s 5 : recuit simulé (AnnealingSolver)*\n"
            << "       -s 6 : méthode tabou (TabouSolver)*"
            ;
        parser->add_int_option("--solver", this->solver)
              ->set_desc(buf.str())
              ->add_alias("-s")
              ->add_abbrev("--plne_lag", 1)
              ->add_abbrev("-P_lag", 1)
              ->add_abbrev("--plne", 2)
              ->add_abbrev("--non_connexe_plne", 3)
              ->add_abbrev("-P", 2)
              ->add_abbrev("-C", 3)
              ->add_abbrev("--glouton", 4)
              ->add_abbrev("-G", 4)
              ->add_abbrev("--recuit", 5)
              ->add_abbrev("-R", 5)
              ->add_abbrev("--tabou", 5)
              ->add_abbrev("-T", 5);

        //--------------
        this->itermax = 100;
        parser->add_int_option("--itermax", this->itermax)
              ->set_desc("Nombre maxi d'itérations (ou autre selon le solveur).")
              ->add_alias("-N");

        //--------------



        //--------------
        // parser->add_doc("\nOptions liées à la génération d'instances aléatoires\n");
        //
        // //--------------
        // this->generate = false;
        // parser->add_switch_option("--generate", this->generate)
        //       ->set_desc("Génère une instance aléatoire.")
        //       ->add_abbrev("-g", 1);
        // /// parser->add_abbrev_option("-G", "--generate-val", "1");

        //option pour les Tests
        this->Test_file = "false";
        parser->add_string_option("--tests", this->Test_file)
                      ->set_desc("realisation des tests");





        //--------------
        parser->add_doc("\nOptions communes indépendantes de l'application\n");

        //--------------
        Log::level = 2;
        parser->add_int_option("--level", Log::level)
              ->set_desc("Niveau de verbosité (0: silence, 9: tres verbeux).")
              ->add_alias("-L")
              ->add_alias("--verbose-level")
              ->add_abbrev("--debug", 5)
              ->add_abbrev("-d", 5);

        //--------------


        //--------------
        this->seed = 0;
        parser->add_int_option("--seed", this->seed)
              ->set_desc("Graine pour le générateur aléatoire.");




        parser->set_params_vector(this->params);
    };