00001
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
00010 void init_domains(int nbvar, int s );
00011
00012 void best_config_analysis();
00013 void best_config_write();
00014 void analyse_conflicts(Configuration* configuration);
00015 Configuration* create_configuration();
00016 int compute_conflict (Configuration* configuration,int var, int val);
00017
00018 };
00019
00020
00021
00022
00023
00024
00025
00031 class ImpasseColor : public ColorCSProblem
00032 { public :
00033 ImpasseColor(int nvar, int nconst, int nbcolor, int degree);
00034
00035
00038 int sumdegree;
00039 int config_evaluation(Configuration* configuration);
00040 void fullincr_update_conflicts(FullincrCSPConfiguration* configuration,Move* move);
00041
00042 void move_execution(Configuration* configuration, Move* move);
00043
00044 void random_configuration(Configuration* configuration);
00045 void compute_var_conflict(Configuration* configuration);
00046 void init_domains(int nbvar, int s );
00047 void init_tabdomains(int s);
00048 void best_config_analysis();
00049 void best_config_write();
00050
00051
00052 };
00053 ColorCSProblem* probleme_coloriage(int nbvar,int nbconst,int s,int** constraint1);
00054 ImpasseColor* coloriage_impasse(int nbvar,int nbconst,int s,int degree, int** constraint1);
00055
00056 ColorCSProblem* color_problem_creation (int nbcol,ifstream & file);
00057 ImpasseColor* impasse_problem_creation (int nbcol,int degre,ifstream & file);
00058
00059 void lire_debut_fichier_coloriage(ifstream & file, int& nbvar, int& nbconst);
00060 void lire_fichier_coloriage (ifstream& file, vector<int>* connexions,int ** constraint1);