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);
Move
Definition: incop.h:185
OpProblem::domainsize
int domainsize
Definition: incop.h:229
INCOP::NaryConstraint::nbtuples
int nbtuples(vector< int > *tabdomaines)
Definition: narycsproblem.cpp:155
LSAlgorithm
Definition: incop.h:394
CSPMove
Definition: incop.h:203
CSProblem::nbconst
int nbconst
Definition: csproblem.h:7
OpProblem::best_config
Configuration * best_config
Definition: incop.h:223
OpProblem::nbvar
int nbvar
Definition: incop.h:226
Configuration::valuation
Long valuation
Definition: incop.h:93
INCOP::NaryCSProblem::create_configuration
Configuration * create_configuration()
Definition: narycsproblem.cpp:196
IncompleteAlgorithm
Definition: incop.h:372
INCOP::NaryVariable
Definition: narycsproblem.h:58
OpProblem::lower_bound
Long lower_bound
Definition: incop.h:232
INCOP::NaryConstraint
Definition: narycsproblem.h:35
IncrCSPConfiguration
Definition: incop.h:144
INCOP::NaryCSProblem::compute_conflict
Long compute_conflict(Configuration *configuration, int var, int val)
Definition: narycsproblem.cpp:181
INCOP::NaryConstraint::constraint_value
Long constraint_value(Configuration *configuration)
Definition: narycsproblem.cpp:78
CSProblem::set_domains_connections
virtual void set_domains_connections(int *dom, vector< int > *tabledom, vector< int > *connect)
Definition: csproblem.cpp:284
Configuration
Definition: incop.h:82
INCOP::NaryConstraint::tuplevalues
vector< Long > tuplevalues
Definition: narycsproblem.h:49
INCOP::NaryConstraint::constrainedvariables
vector< int > constrainedvariables
Definition: narycsproblem.h:46
Configuration::init_conflicts
virtual void init_conflicts()
Definition: incopalgo.cpp:221
FullincrCSPConfiguration
Definition: incop.h:165
Configuration::config
int * config
Definition: incop.h:90
INCOP::NaryCSProblem::config_evaluation
Long config_evaluation(Configuration *configuration)
Definition: narycsproblem.cpp:64
Configuration::incr_conflicts
virtual void incr_conflicts(int var, int val, int index, Long incr)
Definition: incopalgo.cpp:222
INCOP::NaryCSProblem
Definition: narycsproblem.h:9
OpProblem::allocate_moves
virtual void allocate_moves()
Definition: csproblem.cpp:249
CSProblem
Definition: csproblem.h:3