• Thèse soutenue le :
  • 2015-12-04
  • Salle des thèses

La programmation par contraintes est un cadre puissant utilisé pour modéliser et résoudre des problèmes combinatoires, employant des techniques d’intelligence artificielle, de la recherche opérationnelle, de théorie des graphes,…, etc. L’idée de base de la programmation par contraintes est que l’utilisateur exprime ses contraintes et qu’un solveur de contraintes cherche une ou plusieurs solutions.

Les problèmes de satisfaction de contraintes (CSP), sont au cœur de la programmation par contraintes. Ce sont des problèmes de décision où nous recherchons des états ou des objets satisfaisant un certain nombre de contraintes ou de critères. Ces problèmes de décision revoient vrai, si le problème admet une solution, faux, sinon. Les problèmes de satisfaction de contraintes sont le sujet de recherche intense tant en recherche opérationnelle qu’en intelligence artificielle. Beaucoup de CSPs exigent la combinaison d’heuristiques et de méthode d’inférences combinatoires pour les résoudre dans un temps raisonnable.

Avec l’amélioration des ordinateurs, la résolution de plus grands problèmes devient plus facile. Bien qu’il y ait plus de capacités offertes par la nouvelle génération de machines, les problèmes industriels deviennent de plus en plus grand ce qui implique un espace _norme pour les stocker et aussi plus de temps pour les résoudre.

Cette thèse s’articule autour des techniques d’optimisation de la résolution des CSPs en raisonnant sur plusieurs axes.

Dans la première partie, nous traitons la compression des contraintes table. Nous proposons deux méthodes différentes pour la compression des contraintes de table. Les deux approches sont basées sur la recherche des motifs fréquents pour éviter la redondance. Cependant, la façon de définir un motif, la détection des motifs fréquents et la nouvelle représentation compacte diffère significativement. Nous présentons pour chacune des approches un algorithme de filtrage.

La seconde partie est consacrée à une autre façon d’optimiser la résolution de CSP qui est l’utilisation d’une architecture parallèle. Nous proposons une méthode où nous utilisons une architecture parallèle pour améliorer le processus de résolution en établissant des cohérences parallèles. En fait, les esclaves envoient à leur maître le résultat obtenu après avoir établi la cohérence partielle en tant que nouveaux faits. Le maître, à son tour essaye de profiter d’eux en enlevant les valeurs correspondantes.