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}
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 vDi
si @v0Dj| {xiv,xjv0}est consistante alors
faire DiDi\ {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
LL∪ {(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, . . . , n1},
C= all-diff(x1, . . . , xn), i.e. (i,j,i6=jxi6=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 linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !