Main Page | Class Hierarchy | Class List | File List | Class Members

color.h

00001 /* Coloriage de graphe */
00003 class ColorCSProblem : public BinaryCSProblem
00004 { public :
00005   ColorCSProblem(int nvar, int nconst, int nbcolor);
00006   int config_evaluation(Configuration*  configuration);
00007   void incr_update_conflicts(IncrCSPConfiguration* configuration,Move* move);
00008   void fullincr_update_conflicts(FullincrCSPConfiguration* configuration,Move* move);
00009 //  int random_variable(Configuration* configuration);
00010   void init_domains(int nbvar, int s );
00011 //  void init_tabdomains(int s);
00012   void best_config_analysis();
00013   void best_config_write();
00014   void analyse_conflicts(Configuration* configuration);
00015   void random_configuration(Configuration* configuration);
00016   Configuration* create_configuration();
00017   int compute_conflict (Configuration* configuration,int var, int val);
00018   void compute_var_conflict(Configuration* configuration); 
00019   int move_evaluation (Configuration* configuration,Move* move);
00020 
00021   int min_conflict_value(int var, int val, Configuration * configuration);
00022  //int random_conflict_variable (Configuration* configuration);
00023 //  void  adjust_parameters (Configuration* configuration, int& maxneighbors, int& minneighbors);
00024 };
00025 
00026 
00027 
00028 
00029 
00030 /* Coloriage avec l'algorithme Impasse :  les variables affectées respectent les contraintes ,
00031 une n+1 ème couleur fictive est affectée aux variables qu'on n'a pu affecter sans conflit 
00032 avec une des n couleurs */
00038 class ImpasseColor : public ColorCSProblem
00039 { public :
00040   ImpasseColor(int nvar, int nconst, int nbcolor, int degree);
00041 /* indicateur de la mesure à minimiser : 0 (nombre de variables non affectées) ,
00042  1 (somme des degrés des variables non affectées) */
00045   int sumdegree;
00046   int config_evaluation(Configuration*  configuration);
00047   void fullincr_update_conflicts(FullincrCSPConfiguration* configuration,Move* move);
00048 //  int move_evaluation(Configuration* configuration,int valeur,Move* move);
00049   void move_execution(Configuration* configuration, Move* move);
00050   //  int random_variable(Configuration* configuration);
00051   void random_configuration(Configuration* configuration);
00052   void compute_var_conflict(Configuration* configuration);      
00053   void init_domains(int nbvar, int s );
00054   void init_tabdomains(int s);
00055   void best_config_analysis();
00056   void best_config_write();
00057 //  int compute_conflict (Configuration* configuration,int var, int val);
00058 
00059 };
00060 ColorCSProblem* probleme_coloriage(int nbvar,int nbconst,int s,int** constraint1);
00061 ImpasseColor* coloriage_impasse(int nbvar,int nbconst,int s,int degree, int** constraint1);
00062 
00063 ColorCSProblem* color_problem_creation (int nbcol,ifstream & file);
00064 ImpasseColor* impasse_problem_creation (int nbcol,int degre,ifstream & file);
00065 
00066 void lire_debut_fichier_coloriage(ifstream & file, int& nbvar, int& nbconst);
00067 void lire_fichier_coloriage (ifstream& file, vector<int>* connexions,int ** constraint1);
00068 int colorcsp (int argc, char** argv, int tuningmode) ;

Generated on Wed Sep 15 17:58:38 2004 for INCOP by doxygen 1.3.5