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

narycsproblem.h

00001 class NaryConstraint;
00002 class NaryVariable;
00003 
00004 /* CSP n-aires en extension résolus en Max-CSP avec poids sur les n-uplets*/
00006 class NaryCSProblem : public CSProblem
00007 { public :
00008   vector<NaryConstraint*>* naryconstraints;
00009   vector<NaryVariable*>*   naryvariables;
00010   NaryCSProblem( int nbvar, int nbconst);
00011   NaryCSProblem (int nbvar, int nbconst, int lower);
00012   ~NaryCSProblem() {;};
00013   // int move_evaluation(Configuration* configuration,Move* move);
00014   // void compute_var_conflict(Configuration* configuration);
00015 /* evaluation et remplissage de la structure de données des conflits*/
00017   int config_evaluation(Configuration* configuration);
00018   void fullincr_update_conflicts(FullincrCSPConfiguration* configuration,Move* move);
00019 /* calcul du nombre de conflits d'une affectation simple dans une configuration */
00021   int compute_conflict(Configuration* configuration, int var , int val);
00022   // void compute_var_conflict(Configuration* configuration);
00023 void incr_update_conflicts (IncrCSPConfiguration* configuration, Move* move);
00024 // int move_evaluation  (Configuration* configuration,Move* move);
00025 /* choix du mode d'incrémentalité : IncrCSPConfiguration ou FullincrCSPConfiguration */
00027 Configuration* NaryCSProblem::create_configuration();
00028 };
00029 
00030 /* Contrainte N-aire en extension avec poids sur les n-uplets qui violent la contrainte */
00032 class NaryConstraint
00033 { public :
00034   int arity;
00035   NaryConstraint (int arit);
00036 /* evaluation de la contrainte : recherche dans le tableau des n-uplets */
00038   int constraint_value (Configuration* configuration);
00039   int compute_index(int* values, vector<int>* tabdomaines);
00040   int compute_indexpart (int i, int vali, vector<int>* tabdomaines);
00041 /* variables liées par la contraintes */
00043   vector <int>  constrainedvariables;
00044 /* table des n-uplets valués */
00046   vector <int> tuplevalues;
00047   vector <int> multiplyers;
00048   void compute_indexmultiplyers( vector<int>* tabdomaines);
00049   int compute_indexmultiplyer(int i, vector<int>* tabdomaines);
00050   int nbtuples(vector<int>* tabdomaines );
00051 };
00052 
00053 /* Variable liée à une contrainte n-aire */
00055 class NaryVariable
00056 {public :
00057   vector <NaryConstraint*> constraints;
00058   NaryVariable();
00059 };
00060 
00061 NaryCSProblem* weighted_narycsp_creation (int nbvar, int nbconst, int maxdomsize, 
00062  vector<NaryVariable*>* vv,vector<NaryConstraint*>* vct     );
00063 
00064 void wcspdomaines_file_read (ifstream & file, int nbvar, vector<int>* tabdomaines);
00065 
00066 void  wcspdata_constraint_read (ifstream & file, int nbconst, vector<NaryVariable*>* vv, vector<NaryConstraint*>* vct, 
00067                                 vector <int>* connexions, vector<int> * tabdomaines);
00068 
00069 
00070 int narycsp(int argc, char** argv, int tuningmode);

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