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 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
00023
00024 };
00025
00026
00027
00028
00029
00030
00031
00032
00038 class ImpasseColor : public ColorCSProblem
00039 { public :
00040 ImpasseColor(int nvar, int nconst, int nbcolor, int degree);
00041
00042
00045 int sumdegree;
00046 int config_evaluation(Configuration* configuration);
00047 void fullincr_update_conflicts(FullincrCSPConfiguration* configuration,Move* move);
00048
00049 void move_execution(Configuration* configuration, Move* move);
00050
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
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) ;