00001
00004 class CelarCSProblem : public BinaryCSProblem
00005 {public :
00006 int* numerovariable;
00007 vector<int> tabsymindex[8];
00008 int tabsymdomaines[800];
00009 int* tabindex[8];
00010 int tailledomaines[8];
00011 int* distance;
00012 int* valconst;
00013 int* refvalue;
00014 int* refcost;
00015 int varcost;
00016 int neighborhoodlength;
00017 CelarCSProblem(int nvar, int nconst);
00018 int index2value(int index,int var);
00019 int value2index(int index,int var);
00020 int config_evaluation(Configuration* configuration);
00021 int move_evaluation(Configuration* configuration,Move* move);
00022 int move_evaluation1(Configuration* configuration,int valeur,int var_changee,int val_changee);
00023 void inittables(vector<int>* tabledomaines);
00024 void incr_update_conflicts(IncrCSPConfiguration* configuration,Move* move);
00025 void fullincr_update_conflicts(FullincrCSPConfiguration* configuration,Move* move);
00026 void incr_update_conflicts_1(IncrCSPConfiguration* configuration,int var_changee, int val_changee);
00027 void fullincr_update_conflicts_1(FullincrCSPConfiguration* configuration,int var_changee, int val_changee);
00028 void move_execution(Configuration* configuration, Move* move);
00029 int compute_conflict(Configuration* configuration,int var,int val);
00030 void random_configuration(Configuration* configuration);
00031 void compute_var_conflict(Configuration* configuration);
00032 Configuration* create_configuration();
00033 int random_variable(Configuration* configuration);
00034 int random_conflict_variable(Configuration* configuration);
00035 void best_config_write ();
00036 int tabuindex(Move* move, Configuration* configuration);
00037 int tabuinverseindex(Move* move, Configuration* configuration);
00038
00039 };
00040
00041 CelarCSProblem* probleme_celar(int nbvar,int nbconst,vector<int>* tabdomaines,
00042 int * domaines,int **constraint1,int *distance,
00043 int * valconst,int *numerovariable, int varcost, int* refvalue, int* refcost );
00044 CelarCSProblem* celar_problem_creation (ifstream & file, int varcost);
00045
00046
00047 void lire_fichier_celar (ifstream& file, int nbvar, vector<int>* connexions,int ** constraint1, int* distance,
00048 int* valconst,int* numerovariable);
00049
00050 void lire_debut_celar(ifstream & file, int & nbvar, int & nbconst);
00051 void lire_suite_celar(ifstream & file,int nbvar,int* domaines,int * numerovariable, int varcost, int* refvalue, int* refcost);
00052
00053 int celarcsp(int argc, char** argv, int tuningmode);