Cours 4 -- Résolution de problèmes de satisfaction de contraintes

Cours 4 – R´
esolution de probl`
emes de
satisfaction de contraintes (CSP)
Master IAD – RP (M1) – Patrice Perny
LIP6 – Universit´e Paris 6
Filtrage
Traitement de contraintes sp´ecifiques
Plan
1Filtrage et algorithmes
2Traitement de contraintes sp´ecifiques
2 / 27
Filtrage
Traitement de contraintes sp´ecifiques
Proc´edures de filtrage
Sophistication de l’algorithme RAC
Procedure AC1
Procedure AC1
C← {(xi,xj),i6=jli´ees par une contrainte}
r´ep´eter
modification ←false
faire pour tout (xi,xj)∈C
modification ←revise(xi,xj)∨modification
fait
jusqu’`a not(modification)
Procedure revise(xi,xj)
modification ←false
faire pour chaque v∈Di
si @v0∈Dj| {xi→v,xj→v0}est consistante alors
faire Di←Di\ {v}
modification ←vrai
fait
fait
retourner modification
3 / 27
Filtrage
Traitement de contraintes sp´ecifiques
Proc´edures de filtrage
Sophistication de l’algorithme RAC
AC3
Limite de AC1 : on r´ep`ete l’application sur tous les couples de
variables dans les deux sens mais `a toute r´eduction de domaine on
doit refaire une passe compl`ete.
Id´ee de AC3 : utiliser une file Lpour ´eviter l’application
inutilement r´ep´et´ee de revise.
Procedure AC3
L← {(xi,xj),i6=jli´ees par une contrainte}
tant que L6=∅
choisir et supprimer dans Lun couple (xi,xj)
si revise(xi,xj)alors
L←L∪ {(xk,xi)/∃contrainte liant xket xi}
fsi
ftq
4 / 27
Filtrage
Traitement de contraintes sp´ecifiques
Proc´edures de filtrage
Sophistication de l’algorithme RAC
Limite du filtrage a priori
Proc´edure qui peut ˆetre couteuse en calculs et qui ne garantit pas a
priori de pouvoir r´eduire les domaines et de simplifier la r´esolution.
Exemple :
X= (x1, . . . , xn), D1=D2=. . . =Dn={1,2, . . . , n−1},
C= all-diff(x1, . . . , xn), i.e. (∀i,j,i6=j⇒xi6=xj)
Id´
ee : Utiliser le filtrage en cours de r´esolution plutˆot qu’`a priori.
5 / 27
1 / 27 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!