toulbar2
narycsproblem.h
1class WCSP;
2
3namespace INCOP {
4class NaryConstraint;
5class NaryVariable;
6
7/* CSP n-aires en extension résolus en Max-CSP avec poids sur les n-uplets*/
9class NaryCSProblem : public CSProblem {
10public:
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 */
36public:
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 */
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 */
59public:
60 vector<NaryConstraint*> constraints;
62};
63}
64
65INCOP::NaryCSProblem* weighted_narycsp_creation(int nbvar, int nbconst, int maxdomsize,
66 vector<INCOP::NaryVariable*>* vv, vector<INCOP::NaryConstraint*>* vct);
67
68void wcspdomaines_file_read(WCSP* wcsp, int nbvar, vector<int>* tabdomaines);
69
70int 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:6
int nbconst
Definition csproblem.h:10
Definition incop.h:87
Definition incop.h:168
Definition narycsproblem.h:9
Long config_evaluation(Configuration *configuration)
Definition narycsproblem.cpp:64
Long compute_conflict(Configuration *configuration, int var, int val)
Definition narycsproblem.cpp:181
Configuration * create_configuration()
Definition narycsproblem.cpp:196
Definition narycsproblem.h:35
vector< int > constrainedvariables
Definition narycsproblem.h:46
int nbtuples(vector< int > *tabdomaines)
Definition narycsproblem.cpp:155
Long constraint_value(Configuration *configuration)
Definition narycsproblem.cpp:78
vector< Long > tuplevalues
Definition narycsproblem.h:49
Definition narycsproblem.h:58
Definition incop.h:147
Definition incop.h:188
int nbvar
Definition incop.h:229