Contributions to Generic Solving of Constraint Satisfaction Problems
Contributions à la résolution générique des problèmes de satisfaction de contraintes
Résumé
We proposed several practical techniques aimed at solving the NP-complete Constraint Satisfaction Problem. We distinguish between two main approaches: search and inference.
We have contributed to the improvement of inference techniques by evolving the central Arc Consistency (AC) property. We contributed to the optimization of the best AC algorithms by exploiting properties of the underlying computer architecture. Modern computers are able to treat 32 or 64 bits in a single elementary operation. As boolean operations are at the heart of AC algorithms, we can exploit the full power of CPU and establish AC up to 64 times faster as before.
We also studied the behaviour of AC on the bounds of the discrete domains. By limiting the inference effort to the bounds of the domain, we obtain a property, called 2B Consistency, that is less powerful than AC, but that can be enforced much faster. Such ``bound consistencies'' had been previously developped to handle variable domains defined on the real numbers. I have studied the properties of 2B consistency when applied on discrete variable domains. For many practical applications such as scheduling, the tradeoff of filtering power versus speed is pertinent.
It also has permitted to develop additional inference methods stronger than 2B, still focused on the bounds of the domains, that proved to be an excellent alternative to AC on many industrial problems.
My final contibution involves Path Consistency (PC), which is an inference property which is stronger than AC but which takes much more time to enforce it. I studied an interesting alternative to PC: Dual Consistency (DC). This new property leads us to design new algorithms that can establish Path Consistency very efficiently. Path Consistency is also quite space consuming, and requires a lot of memory to be established. A relaxation of PC, Conservative PC, has been developped which avoids this drawback. The same relaxation can be applied to Dual Consistency. I proved that Conservative DC is stronger than Conservative PC, although Conservative DC algorithms are much faster that Conservative PC ones.
Besides, we have tried to improve the classic systematic MAC search algorithm (which uses Arc Consistency as underlying inference property), first by equipping it with Value Ordering Heuristics. We studied how the well known Jeroslow-Wang heuristic from the SAT problem, would behave when applied to the translation of a CSP problem in SAT. Finally, we studied a hybridization between a local search algorithm based on constraint weighting and MGAC, by exploiting the learning abilities of both algorithms.
A new API for the Java language, namely CSP4J, able to solve a CSP as part of any Java application, has been developed as a transversal project and is quickly acquiring maturity. This API is a ``black box'': as less parameters and expertise are required from a user point of view, which is a crucial component for the wide use of a solver as a component of an industrial project. A solver based on CSP4J took part in International Solver Competitions with promising results.
We have contributed to the improvement of inference techniques by evolving the central Arc Consistency (AC) property. We contributed to the optimization of the best AC algorithms by exploiting properties of the underlying computer architecture. Modern computers are able to treat 32 or 64 bits in a single elementary operation. As boolean operations are at the heart of AC algorithms, we can exploit the full power of CPU and establish AC up to 64 times faster as before.
We also studied the behaviour of AC on the bounds of the discrete domains. By limiting the inference effort to the bounds of the domain, we obtain a property, called 2B Consistency, that is less powerful than AC, but that can be enforced much faster. Such ``bound consistencies'' had been previously developped to handle variable domains defined on the real numbers. I have studied the properties of 2B consistency when applied on discrete variable domains. For many practical applications such as scheduling, the tradeoff of filtering power versus speed is pertinent.
It also has permitted to develop additional inference methods stronger than 2B, still focused on the bounds of the domains, that proved to be an excellent alternative to AC on many industrial problems.
My final contibution involves Path Consistency (PC), which is an inference property which is stronger than AC but which takes much more time to enforce it. I studied an interesting alternative to PC: Dual Consistency (DC). This new property leads us to design new algorithms that can establish Path Consistency very efficiently. Path Consistency is also quite space consuming, and requires a lot of memory to be established. A relaxation of PC, Conservative PC, has been developped which avoids this drawback. The same relaxation can be applied to Dual Consistency. I proved that Conservative DC is stronger than Conservative PC, although Conservative DC algorithms are much faster that Conservative PC ones.
Besides, we have tried to improve the classic systematic MAC search algorithm (which uses Arc Consistency as underlying inference property), first by equipping it with Value Ordering Heuristics. We studied how the well known Jeroslow-Wang heuristic from the SAT problem, would behave when applied to the translation of a CSP problem in SAT. Finally, we studied a hybridization between a local search algorithm based on constraint weighting and MGAC, by exploiting the learning abilities of both algorithms.
A new API for the Java language, namely CSP4J, able to solve a CSP as part of any Java application, has been developed as a transversal project and is quickly acquiring maturity. This API is a ``black box'': as less parameters and expertise are required from a user point of view, which is a crucial component for the wide use of a solver as a component of an industrial project. A solver based on CSP4J took part in International Solver Competitions with promising results.
Nous proposons plusieurs techniques visant à résoudre en pratique le problème NP-complet de satisfaction de contraintes de manière générique. Nous distinguons deux grands axes de techniques de résolution de CSP : l'infrence et la recherche. Nous avons contribué l'amélioration des techniques d'inférence en nous concentrant sur la propriété centrale qu'est la consistance d'arc : optimisations des algorithmes de consistance d'arc, comportement de plusieurs algorithmes d'inférence aux bornes de domaines discrets, et enfin une alternative intéressante à la consistance de chemin : la consistance duale. Cette propriété nous a amené à concevoir des algorithmes de consistance de chemin forte très efficaces. La variante conservative de cette consistance est de plus plus forte que la consistance de chemin conservative, tout en restant plus rapide à établir en pratique.
Par ailleurs, nous avons également cherché à améliorer MGAC, tout d'abord en équipant celui-ci d'heuristiques de choix de valeurs. Nous nous sommes pour cela basés sur l'heuristique de Jeroslow-Wang, issue du problème SAT. En utilisant deux techniques de conversion de CSP vers SAT, nous montrons comment cette heuristique se comporterait sur un CSP. Enfin, nous avons cherché à utiliser une hybridation entre un algorithme de recherche locale basé sur la pondération des contraintes et un algorithme MGAC équipé de l'heuristique dom/wdeg, en exploitant les possibilités d'apprentissage de l'un et l'autre algorithmes.
De manière transversale, l'ensemble des techniques développées dans le cadre de cette thèse a amené à la réalisation d'une API pour le langage Java, capable de résoudre un CSP au sein d'une application Java quelconque. Cette API a été développée dans l'optique "boîte noire" : le moins de paramètres et d'expertise possibles sont demandés à l'utilisateur. Un prouveur basé sur CSP4J a concouru lors les compétitions internationales de prouveurs CSP avec des résultats encourageants.
Par ailleurs, nous avons également cherché à améliorer MGAC, tout d'abord en équipant celui-ci d'heuristiques de choix de valeurs. Nous nous sommes pour cela basés sur l'heuristique de Jeroslow-Wang, issue du problème SAT. En utilisant deux techniques de conversion de CSP vers SAT, nous montrons comment cette heuristique se comporterait sur un CSP. Enfin, nous avons cherché à utiliser une hybridation entre un algorithme de recherche locale basé sur la pondération des contraintes et un algorithme MGAC équipé de l'heuristique dom/wdeg, en exploitant les possibilités d'apprentissage de l'un et l'autre algorithmes.
De manière transversale, l'ensemble des techniques développées dans le cadre de cette thèse a amené à la réalisation d'une API pour le langage Java, capable de résoudre un CSP au sein d'une application Java quelconque. Cette API a été développée dans l'optique "boîte noire" : le moins de paramètres et d'expertise possibles sont demandés à l'utilisateur. Un prouveur basé sur CSP4J a concouru lors les compétitions internationales de prouveurs CSP avec des résultats encourageants.
Fichier principal
master.pdf (1.27 Mo)
Télécharger le fichier
soutenance.pdf (2.86 Mo)
Télécharger le fichier
Format | Autre |
---|