toulbar2
narycsproblem.h
1 class WCSP;
2 
3 namespace INCOP {
4 class NaryConstraint;
5 class NaryVariable;
6 
7 /* CSP n-aires en extension résolus en Max-CSP avec poids sur les n-uplets*/
9 class NaryCSProblem : public CSProblem {
10 public:
11  vector<NaryConstraint*>* naryconstraints;
12  vector<NaryVariable*>* naryvariables;
13  NaryCSProblem(int nbvar, int nbconst);
14  NaryCSProblem(int nbvar, int nbconst, Long lower);
15  ~NaryCSProblem() { ; };
16  // Long move_evaluation(Configuration* configuration,Move* move);
17  // void compute_var_conflict(Configuration* configuration);
18  /* evaluation et remplissage de la structure de données des conflits*/
20  Long config_evaluation(Configuration* configuration);
21  void fullincr_update_conflicts(FullincrCSPConfiguration* configuration, Move* move);
22  /* calcul du nombre de conflits d'une affectation simple dans une configuration */
24  Long compute_conflict(Configuration* configuration, int var, int val);
25  // void compute_var_conflict(Configuration* configuration);
26  void incr_update_conflicts(IncrCSPConfiguration* configuration, Move* move);
27  // Long move_evaluation (Configuration* configuration,Move* move);
28  /* choix du mode d'incrémentalité : IncrCSPConfiguration ou FullincrCSPConfiguration */
31 };
32 
33 /* Contrainte N-aire en extension avec poids sur les n-uplets qui violent la contrainte */
36 public:
37  int arity;
38  NaryConstraint(int arit);
39  /* evaluation de la contrainte : recherche dans le tableau des n-uplets */
41  Long constraint_value(Configuration* configuration);
42  int compute_index(int* values, vector<int>* tabdomaines);
43  int compute_indexpart(int i, int vali, vector<int>* tabdomaines);
44  /* variables liées par la contraintes */
46  vector<int> constrainedvariables;
47  /* table des-n uplets valués*/
49  vector<Long> tuplevalues;
50  vector<int> multiplyers;
51  void compute_indexmultiplyers(vector<int>* tabdomaines);
52  int compute_indexmultiplyer(int i, vector<int>* tabdomaines);
53  int nbtuples(vector<int>* tabdomaines);
54 };
55 
56 /* Variable liée à une contrainte n-aire */
58 class NaryVariable {
59 public:
60  vector<NaryConstraint*> constraints;
61  NaryVariable();
62 };
63 }
64 
65 INCOP::NaryCSProblem* weighted_narycsp_creation(int nbvar, int nbconst, int maxdomsize,
66  vector<INCOP::NaryVariable*>* vv, vector<INCOP::NaryConstraint*>* vct);
67 
68 void wcspdomaines_file_read(WCSP* wcsp, int nbvar, vector<int>* tabdomaines);
69 
70 int wcspdata_constraint_read(WCSP* wcsp, int nbconst, vector<INCOP::NaryVariable*>* vv, vector<INCOP::NaryConstraint*>* vct,
71  vector<int>* connexions, vector<int>* tabdomaines);
Definition: csproblem.h:3
Long compute_conflict(Configuration *configuration, int var, int val)
Definition: narycsproblem.cpp:181
Definition: narycsproblem.h:35
Definition: narycsproblem.h:58
Long config_evaluation(Configuration *configuration)
Definition: narycsproblem.cpp:64
int nbvar
Definition: incop.h:226
Definition: narycsproblem.h:9
Definition: narycsproblem.h:3
Definition: incop.h:185
Definition: incop.h:82
vector< int > constrainedvariables
Definition: narycsproblem.h:46
Configuration * create_configuration()
Definition: narycsproblem.cpp:196
vector< Long > tuplevalues
Definition: narycsproblem.h:49
Definition: incop.h:165
int nbconst
Definition: csproblem.h:7
Definition: incop.h:144