A combination of abstract interpretation and constraint programming
Une combinaison d'interprétation abstraite et de programmation par contraintes
Résumé
We investigate in this thesis a tight collaboration between techniques of Abstract Interpretation and Constraint Programming within a unified method of resolution of constraint satisfaction problems. This work addresses the problem of the design in a generic and modular way of a constraint solver based on abstract domains, which capture specific properties of program or constrained variables. We exploit the assets of both fields to bypass the restriction of standard constraint solvers, such as the dedication to a certain type of constraints or variables. Our effort also consists in the design of a robust method, providing soundness properties even in thecontext of floating-point errors. Moreover, we are interested in different techniques allowing the construction of a partition of a solution space that can be easily reused, both from a quantitative and a qualitative point of view. Our work has been concretized in the form of an implementation within the AbSolute constraint solver and applied on several examples. Our experiments show that our methods improve the solver’s efficiency or the quality of the results according to the metrics we have defined.
Nous étudions dans cette thèse une collaboration étroite entre les techniques de l’Interprétation Abstraite et de la Programmation Par Contraintes au sein d’une méthode unifiée de résolution de problèmes de satisfaction de contrainte. Ce travail aborde le problème de la conception de manière générique et modulaire d’un solveur de contraintes basé sur des domaines abstraits qui permettent l’inférence de propriétés spécifiques d’un programme ou d’un système de contraintes. Nous exploitons les atouts des deux domaines pour contourner les restrictions des solveurs de contraintes standards, telles que la spécialisation à un certain type de contraintes ou de variables. Notre travail consiste aussi à concevoir une méthode robuste tenant compte des problématiques liées à l’utilisation de calculs en précision flottante avec une gestion correcte des erreurs d’arrondi. De plus, nous nous intéressons à différentes techniques permettant la construction d’une partition d’un espace de solution qui peut être facilement réutilisée, tant d’un point de vue quantitatif que qualitatif. Notre travail a été concrétisé sous la forme d’une implémentation dans le solveur de contraintes AbSolute et appliqué sur plusieurs exemples. Les expériences que nous avons menées au sein de ce solveur montrent que nos méthodes améliorent l’efficacité du solveur et la qualité de ses résultats par rapport aux métriques que nous avons défini.
Origine | Version validée par le jury (STAR) |
---|