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
7class Stat_GWW {
8public:
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
41void sigaction();
42int argument2ul(char* arg, char* message);
43double argument2d(char* arg, char* message);
44double argument2bd(char* arg, char* message, double min1, double max1);
45int argument2bul(char* arg, char* message, int min1, int max1);
46string argument2lp(char* arg, char* message, list<string>& possibles);
47void handler_stat(int sig);
48IncompleteAlgorithm* algo_creation(char** argv, int& narg, int& taille, int& graine1, int& nbessais);
49void executer_essai(OpProblem* problem, IncompleteAlgorithm* algo, Configuration** population, int taille, int graine1, int nessai, vector<int>* initconfig = NULL);
50
51void ecriture_stat_probleme();
52void ecriture_statistiques_global();
53void arguments_tracemode(char** argv, int& narg);
54void arguments_tempscpu(char** argv, int& narg, double& maxtime);
55void arguments_arret(char** argv, int& narg, int& stop);
56void arguments_borneinf(char** argv, int& narg, Long& borneinf);
57
58Long valeur_max(Configuration** population, int taille);
59Long valeur_min(Configuration** population, int taille);
60Long valeur_mediane(Configuration** population, int taille);
61void populationsort(Configuration** population, int taille);
62
63void ecriture_changement_seuil(Long seuil, Long delta, Long meilleur, Long pire, Long mediane, int nbessaisvoisins, int nb_au_seuil);
64void ecriture_nb_tues(int nb_tues);
65void ecriture_fin_gww(int nb_chang_seuil, int nb_mouv);
66void ecriture_meilleure_valeur(string& method, Long valeur, Long seuil, int nbmouv, int maxvoisins);
67void ecriture_fin_lsrun(double avgnhtries, double avgsqnhtries);
68void ecriture_stat_essai();
69void 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