208
Problè mes de satisfaction de contraintes
12.11.2 Le Backtrack
Pour représenter une variable on utilise la classe Domainelntervalle :
class Domaineln tervalle {
int _taille;
int _nb_ valeurs;
bool *_ p resente;
bool _affectee;
int _valeur;
public:
void alloue ( int t) {
taille = t;
}
_presente = ne w bool [_taille ];
init ();
void init () {
}
for (int i = 0;
< _taille; i++) {
}
_presente [ i] = true;
nb_valeurs = _taille;
aff ectee = fals e;
int taille () { return _taille; }
int nb_ valeurs () { return _nb_ valeurs; }
bool aff ectee () { return _aff ectee; }
int valeur () { return _valeur; }
bool presente (int v) { return _presente [v]; }
bool ote ( int v) {
}
if (_presente [v]) {
_pr esente [v] = false;
_nb_ valeurs --;
return true;
}
return false;
void remet ( int v) {
_presente [v] = true;
_nb_valeurs++;
}
void affecte (int v) {
affectee = true;
valeur = v;
}
Problè mes de satisfaction de contraintes
12.11.2 Le Backtrack
Pour représenter une variable on utilise la classe Domainelntervalle :
class Domaineln tervalle {
int _taille;
int _nb_ valeurs;
bool *_ p resente;
bool _affectee;
int _valeur;
public:
void alloue ( int t) {
taille = t;
}
_presente = ne w bool [_taille ];
init ();
void init () {
}
for (int i = 0;
< _taille; i++) {
}
_presente [ i] = true;
nb_valeurs = _taille;
aff ectee = fals e;
int taille () { return _taille; }
int nb_ valeurs () { return _nb_ valeurs; }
bool aff ectee () { return _aff ectee; }
int valeur () { return _valeur; }
bool presente (int v) { return _presente [v]; }
bool ote ( int v) {
}
if (_presente [v]) {
_pr esente [v] = false;
_nb_ valeurs --;
return true;
}
return false;
void remet ( int v) {
_presente [v] = true;
_nb_valeurs++;
}
void affecte (int v) {
affectee = true;
valeur = v;
}
