toulbar2
incoputil.h
1 #ifndef INCOP_UTIL_H_
2 #define INCOP_UTIL_H_
3 
4 //---------------------------------------------------------------------------------------------
5 // trombe : les stats sous forme de classe (... enfin une struct quoi !)
6 
7 class Stat_GWW {
8 public:
9  int nb_pbs; // Nb de problèmes différents essayés (pour les CSP aléatoires)
10  int* trouve; // trouve[i] (i ds [0,nb_pbs[) : contient le nombre de fois que
11  // le pb i est résolu (entre 0 et max_tries)
12  int stop_trouve;
13  int current_pb; // Le numéro de problème courant (ds [0,nb_pbs[)
14  //
15  int max_tries; // Le nombre d'essais par problème
16  Long* cost_try; // cost_try [j] (j ds [0,max_tries[): le meilleur cout trouvé à l'essai j
17  float* execution_time_try; // execution_time_try [j] (j ds [0,max_tries[): temps d'exécution
18  // de l'essai j
19  float cost_meanvalue; // la moyenne des meilleurs couts des essais
20  int current_try; // Le numéro d'essai courant (ds [0,max_tries[) pour le problème 'current_pb'
21  int* nb_moves;
22  int* nb_moves_up;
23  int* nb_moves_down;
24 
25  double nb_moves_avg;
26  float* total_problem_time;
27  vector<Long> costvalues;
28  vector<int> examinedneighbors;
29  float total_execution_time; // temps d'execution total depuis le début
30  float average_execution_time; // temps d'execution total depuis le début
31  // ofstream* stat_file; // le fichier où s'affiche les stat
32  int thresholdchanges; // nombre de changements de seuil pour l'ensemble des essais
33  Stat_GWW(int number_pbs, int number_tries);
34  ~Stat_GWW();
35  void init_pb(int t);
36  void init_run();
37  void init_try(int trynumber);
38  void execution_report(int ntry, Long lower_bound);
39 };
40 
41 void sigaction();
42 int argument2ul(char* arg, char* message);
43 double argument2d(char* arg, char* message);
44 double argument2bd(char* arg, char* message, double min1, double max1);
45 int argument2bul(char* arg, char* message, int min1, int max1);
46 string argument2lp(char* arg, char* message, list<string>& possibles);
47 void handler_stat(int sig);
48 IncompleteAlgorithm* algo_creation(char** argv, int& narg, int& taille, int& graine1, int& nbessais);
49 void executer_essai(OpProblem* problem, IncompleteAlgorithm* algo, Configuration** population, int taille, int graine1, int nessai, vector<int>* initconfig = NULL);
50 
51 void ecriture_stat_probleme();
52 void ecriture_statistiques_global();
53 void arguments_tracemode(char** argv, int& narg);
54 void arguments_tempscpu(char** argv, int& narg, double& maxtime);
55 void arguments_arret(char** argv, int& narg, int& stop);
56 void arguments_borneinf(char** argv, int& narg, Long& borneinf);
57 
58 Long valeur_max(Configuration** population, int taille);
59 Long valeur_min(Configuration** population, int taille);
60 Long valeur_mediane(Configuration** population, int taille);
61 void populationsort(Configuration** population, int taille);
62 
63 void ecriture_changement_seuil(Long seuil, Long delta, Long meilleur, Long pire, Long mediane, int nbessaisvoisins, int nb_au_seuil);
64 void ecriture_nb_tues(int nb_tues);
65 void ecriture_fin_gww(int nb_chang_seuil, int nb_mouv);
66 void ecriture_meilleure_valeur(string& method, Long valeur, Long seuil, int nbmouv, int maxvoisins);
67 void ecriture_fin_lsrun(double avgnhtries, double avgsqnhtries);
68 void ecriture_stat_essai();
69 void ofile_name(char* filename, int argc, char** argv);
70 
71 #endif /* INCOP_UTIL_H_ */
Definition: incop.h:87
Definition: incop.h:375
Definition: incop.h:222