´moire de fin d’e ´tudes me master d’informatique Au-del` a de la consistance de domaine Sp´ecialit´e : Syst`emes Intelligents et Multim´edia Code : Programme pilote Etudiant : KHONG Minh Thanh Promotion 17 - IFI Superviseurs : Yves Deville Jean-Baptiste Mairy Janvier 2015 Remerciements Je tiens ` a remercier en tout premier lieu mes deux superviseurs Yves Deville et Jean Baptiste Mairy qui ont dirig´e ce travail de recherche de Master Je les remercie pour tout ce qu’ils m’ont apport´e, pour leurs conseils, leur pr´esence, leur patience, pour m’avoir fait confiance et m’avoir laiss´e la libert´e n´ecessaire `a l’accomplissement de mes travaux, tout en y gardant un oeil critique et avis´e Je remercie ´egalement Christophe Lecoutre, Centre de Recherche en Informatique, Universit´e d’Artois, l’auteur du solveur Abscon pour m’avoir aid´e `a ´etudier l’architecture de ce solveur et m’avoir donn´e des conseils Je suis ´egalement reconnaissance envers les beCools Ils m’ont aid´e et partag´e les exp´eriences de travails Finalement, un grand merci au mes parents pour leur gentillesse et leur soutien inconditionnel et constant, pour m’avoir donn´e du courage et de l’espoir i Abstract Solving a problem in constraint programming is based on propagation and search Propagation aims at removing impossible values in the domain of the variables, by examining their consistency with constraints In recent years, several notions of consistency stronger than domain consistency have been proposed The objective of this master thesis is to study existing stronger consistency levels for both binary constraints and non-binary constraints Algorithms of propagation for different consistencies associated with non-binary constraint have been studied and implemented in the AbsCon solver More particularly, we implemented algorithms for MaxRPWC, rPIC and RPWC Experimental results show that in some classes of problems these consistencies are efficient since they can prune more than domain consistency ii R´ esum´ e La r´esolution d’un probl`eme en programmation par contrainte est bas´ee sur la propagation et la recherche La propagation vise `a enlever les valeurs impossibles dans le domaines des variables, par l’examen de leur coh´erence avec la contrainte Ces derni`eres ann´ees, plusieurs notions de consistance plus forte que la consistance de domaine ont ´et´e propos´ees L’objectif de ce m´emoire est d’´etudier les niveaux de consistance forte existante pour les contraintes binaires et les contraintes non-binaires Des algorithmes de propagation pour les diff´erentes consistances fortes associ´es `a contrainte non binaire ont ´et´e ´etudi´es et mis en œuvre dans le solveur AbsCon Plus particuli`erement, nous avons impl´ement´e des algorithmes pour MaxRPWC, rPIC et RPWC Les r´esultats exp´erimentaux montrent que ces consistances sont efficaces dans certaines classes de probl`emes car elles peuvent ´elaguer plus que la consistance de domaine iii Table des mati` eres Remerciements i Abstract ii R´ esum´ e iii Table des mati` eres iv Table des figures vi Liste des tableaux vii Introduction Notions de base 2.1 Pr´eliminaires 2.2 R´esolution d’un CSP : Propagation et Recherche 2.2.1 Propagation 2.2.2 Recherche 2.3 Consistance de domaine (DC) 2.4 Les consistance plus faibles que DC 2.4.1 Forward Checking (FC) 2.4.2 Bound Consistency (BC) Consistances plus fortes que DC 3.1 Consistances plus fortes que DC pour contraintes binaires 3.1.1 Consistances ` a base de triangle 3.1.2 Consistance selon le voisinage 3.1.3 Consistance de singleton 3.1.4 R´esum´e 3.2 Consistances plus fortes que DC pour contraintes non binaires 3.2.1 Restricted Pairwise Consistency (RPWC) 3.2.2 relational Path Inverse Consistency (rPIC) 3.2.3 Max Restrited Pairwise Consistency (Max-RPWC) 3.2.4 Max Restricted 3-wise Consistency (Max-R3WC) 3.2.5 Max Restricted k-wise Consistency (Max-RkWC) 3.2.6 PWC+GAC 3.2.7 kWC+GAC 3.2.8 relational Neighborhood Inverse Consistent (rNIC) iv 3 5 8 10 10 10 12 13 13 14 14 14 15 16 16 17 17 18 Table des mati`ere v 3.2.9 Singleton Generalized Arc Consistency (SGAC) 18 3.2.10 R´esum´e 19 Algorithmes de filtrage pour contraintes non 4.1 Algorithme g´en´erique 4.2 Max-RPWC-1 4.3 rPIC-1 4.4 RPWC-1 4.5 Max-RPWC-2 4.6 Max-RPWC-3 4.7 R´esum´e Achitecture d’AbsCon 5.1 Les paquets dans AbsCon 5.2 Repr´esentation d’un CSP 5.3 R´esolution d’un CSP 5.4 La propagation dans AbsCon 5.5 DC 5.6 SAC 5.7 PWC+GAC binaires 20 20 22 23 23 25 27 28 30 30 30 31 32 33 33 34 Impl´ ementation et exp´ erimentation 36 6.1 Impl´ementation 36 6.2 Exp´erimentation 37 Conclusion 40 Bibliographie 42 Table des figures 2.1 La r´esolution d’un CSP : propagation + recherche 3.1 Un exemple de CSP sur lequel RPC enl`eve plus de valeurs que DC : (xi , 1) n’est pas RPC tandis que ce CSP est DC Un exemple de CSP sur lequel PIC enl`eve plus de valeurs que RPC : (xi , 1) n’est pas PIC tandis que ce CSP est RPC Un exemple de CSP sur lequel Max-RPC enl`eve plus de valeurs que PIC : (xi , 1) n’est pas Max-RPC tandis que ce CSP est PIC Un exemple de CSP sur lequel NIC enl`eve plus de valeurs que Max-RPC : (xi , 1) n’est pas NIC tandis que ce CSP est Max-RPC Un exemple de CSP sur lequel SAC enl`eve plus de valeur que Max-RPC : (xi , 2) n’est pas SAC tandis que ce CSP est Max-RPC R´esum´e de la comparaison entre les consistances MaxRPWC vs rPIC PWC+GAC vs Max-RPWC R´esum´e de la comparaison entre les consistances bas´ees sur le domaine pour les contraintes non binaires 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 11 11 12 12 13 13 16 17 19 4.1 Applique Max-RPWC-1 et Max-RPWC-2 sur un CSP non-binaire 27 5.1 5.2 AbsCon : Repr´esentation d’un CSP [1] 31 AbsCon : R´esolution d’un CSP [1] 31 vi Liste des tableaux 4.1 R´esum´e des algorithmes avec leur complexit´e de temps et d’espace 28 6.1 6.2 R´esultat exp´erimental sur les instances du probl`eme modified renault 38 R´esultat exp´erimental sur les instances du probl`eme random-fcd 39 vii Chapitre Introduction La programmation par contraintes est un paradigme puissant pour r´esoudre des probl`emes combinatoires qui s’appuient sur un large ´eventail de techniques de l’intelligence artificielle et de la recherche op´erationnelle La programmation par contraintes est actuellement appliqu´ee avec succ`es ` a de nombreux domaines, tels que la planification, le routage de v´ehicule, la configuration, les r´eseaux, et la bio-informatique [2] L’id´ee de base en programmation par contraintes est que l’utilisateur indique les contraintes, le probl`eme et un solveur de contrainte qui est utilis´e pour les r´esoudre La contrainte est une relations entre les variables, un probl`eme de satisfaction de contraintes (un CSP) sp´ecifie quelles relations doivent tenir entre les variable de d´ecision donn´ees Par exemple, dans la planification des activit´es d’une entreprise, les variables de d´ecision peuvent ˆetre les heures de d´ebut et les contraintes peuvent ˆetre sur la disponibilit´e des ressources et sur leur utilisation pour un nombre limit´e d’activit´es `a un moment Un solveur de contrainte prend un probl`eme, ce probl`eme est repr´esent´e en terme de variables de d´ecision et de contraintes et s’emploie `a trouver une assignation `a toutes les variables tout en satisfaisant les contraintes Le solveur de contraintes cherche la solution dans l’espace de recherche soit syst´ematiquement, comme avec retour en arri`ere (backtracking) L’espace de recherche est un arbre car les valeurs diff´erentes peuvent ˆetre choisies pour les diff´erentes variables La taille de l’arbre de recherche est exponentielle Il est donc n´ecessaire de r´eduire la taille de l’arbre de recherche et de d´etecter les inconsistances (ou l’´echec) des solutions partielles d`es que possible Cette m´ethode est appel´ee propagation Le framework de programmation par contraintes combine la propagation et la recherche L’objectif de la propagation est de r´eduire la taille de l’espace de recherche sans enlever la solution du probl`eme La propagation d´etecte ´egalement les ´echecs, et termine les Chapitre Introduction branches de l’arbre de recherche, ´economise l’exploration inutile de l’espace de recherche Diff´erents niveaux d’´elagage peuvent ˆetre atteints Ceux-ci sont g´en´eralement d´efinies par une propri´et´e de consistance satisfaite par le CSP apr`es la propagation La consistance de domaine est la consistance standard atteinte par un algorithme de propagation Les contraintes sont consid´er´ees individuellement, une contrainte est domaine consistant si toutes les valeurs de chacune de ses variables participent `a une solution de cette contrainte Les valeur qui ne satisfont pas cette propri´et´e sont enlev´ees Quand un algorithme de propagation pour la consistance de domaine est appliqu´e, le CSP r´esultant est plus facile ` a r´esoudre Cependant, atteindre la consistance de domaine a un coˆ ut Les consistances plus faibles ont ´et´e d´efinies tels que forward checking ou bound consistency Elles enl`event moins de valeur mais l’´etape de propagation est plus rapide Les consistances plus fortes ont ´egalement ´et´e d´efinies Bien qu’elles soit plus coˆ uteuses `a atteindre, leur puissance d’´elagage est particuli`erement adapt´ee pour des probl`emes combinatoires complexes tels que ceux figurant dans la vie r´eelle Dans ce m´emoire, pour la partie th´eorique, nous ´etudions les diff´erents niveaux de consistance plus forte qui r´eduisent le domaine des variables pour les contraintes binaire et les contraintes non-binaires Pour les contraintes binaires, nous abordons les diff´erentes consistances tels que : Restricted Path Consistency (RPC), Path Inverse Consistency (PIC), Max Restricted Path consistency (MaxRPC), Neighborhood Inverse Consistency (NIC), Singleton Arc Consistency (SAC) Ces consistances seront ´etendues pour les contraintes non-binaires PIC a ´et´e ´etendu `a rPIC, RPC `a RPWC, et MaxRPC ` a MaxRPWC Dans [3], NIC est ´etendu `a rNIC Pour la partie pratique, les algorithmes de propagation pour les diff´erentes consistances associ´ees avec les contraintes non-binaires ont ´et´e ´etudi´es et impl´ement´e dans le solveur AbsCon Plus particuli`erement, nous avons impl´ement´e les algorithmes pour MaxRPWC, rPIC, et RPWC Les r´esultats exp´erimentaux montrent que ces consistances sont efficaces dans certaines classes de probl`emes car elles peuvent ´elaguer plus que la consistance de domaine Le reste de la th`ese est structur´e comme suit Le chapitre pr´esente le contexte et les d´efinitions n´ecessaires Dans le chapitre 3, nous ´etudions les diff´erentes consistances pour les contraintes binaires et non-binaires Dans le chapitre 4, les algorithmes pour atteindre les consistances plus fortes pour les contraintes non-binaires seront pr´esent´es Dans le chapitre 5, nous pr´esentons la structure du solveur AbsCon et l’impl´ementation de ces algorithmes Le chapitre donne des r´esultats exp´erimentaux Enfin, nous donnons la conclusion et le travail futur