101 research outputs found

    Exploiting Global Constraints for Search and Propagation

    Get PDF
    Résumé Cette thèse se concentre sur la Programmation par contraintes (PPC), qui est un paradigme émergent pour résoudre des problèmes complexes d’optimisation combinatoire. Les principales contributions tournent autour du filtrage des contraintes et de la recherche; les deux sont des composantes cl´e dans la résolution de problèmes complexes à travers la PPC. D’un côté, le filtrage des contraintes permet de réduire la taille de l’espace de recherche, d’autre part, la recherche définit la manière dont cet espace sera exploré. Les progrès sur ces sujets sont essentiels pour élargir l’applicabilité de CP à des problèmes réels. En ce qui concerne le filtrage des contraintes, les contributions sont les suivantes: premièrement, on propose une amélioration sur un algorithme existant de la version relaxée d’une contrainte commune qui apparaît souvent dans les problèmes d’affectation (soft gcc). L’algorithme proposé améliore en termes de complexité soit pour la cohérence, soit pour le filtrage et en termes de facilité d’implémentation. Deuxièmement, on introduit une nouvelle contrainte (soit dure soit relaxée) et les algorithmes de filtrage pour une sous-structure récurrente qui se produit dans les problèmes d’affectation des ressources hétérogènes (hierarchical gcc). Nous montrons des résultats encourageants par rapport à une d´écomposition équivalente basée sur gcc. En ce qui concerne la recherche, nous présentons tout d’abord les algorithmes pour compter le nombre de solutions pour deux importantes familles de contraintes: les contraintes sur les occurrences, par exemple, alldifferent, symmetric alldifferent et gcc, et les contraintes de séquence admissible, telles que regular. Ces algorithmes sont à la base d’une nouvelle famille d’heuristiques de recherche, centrées sur les contraintes et basées sur le d´énombrement. Ces heuristiques extraient des informations sur le nombre de solutions des contraintes, pour guider la recherche vers des parties de l’espace de recherche qui contiennent probablement un grand nombre de solutions. Les résultats expérimentaux sur huit différents problèmes montrent une performance impressionnante par rapport à l’état de l’art des heuristiques génériques. Enfin, nous expérimentons une forme forte, déjà connue, de filtrage qui est guidée par la recherche (quick shaving). Cette technique donne des résultats soit encourageants soit mauvais lorsqu’elle est appliquée aveuglément à tous les problèmes. Nous avons introduit un estimateur simple mais très efficace pour activer ou désactiver dynamiquement le quick shaving; de tests expérimentaux ont montré des résultats très prometteurs.----------Abstract This thesis focuses on Constraint Programming (CP), that is an emergent paradigm to solve complex combinatorial optimization problems. The main contributions revolve around constraint filtering and search that are two main components of CP. On one side, constraint filtering allows to reduce the size of the search space, on the other, search defines how this space will be explored. Advances on these topics are crucial to broaden the applicability of CP to real-life problems. For what concerns constraint filtering, the contribution is twofold: we firstly propose an improvement on an existing algorithm of the relaxed version of a constraint that frequently appears in assignment problems (soft gcc). The algorithm proposed outperforms the previously known in terms of time-complexity both for the consistency check and for the filtering and in term of ease of implementiation. Secondly, we introduce a new constraint (both hard and soft version) and associated filtering algorithms for a recurrent sub-structure that occurs in assignment problems with heterogeneous resources (hierarchical gcc). We show promising results when compared to an equivalent decomposition based on gcc. For what concerns search, we introduce algorithms to count the number of solutions for two important families of constraints: occurrence counting constraints, such as alldifferent, symmetric alldifferent and gcc, and sequencing constraints, such as regular. These algorithms are the building blocks of a new family of search heuristics, called constraint-centered counting-based heuristics. They extract information about the number of solutions the individual constraints admit, to guide search towards parts of the search space that are likely to contain a high number of solutions. Experimental results on eight different problems show an impressive performance compared to other generic state-of-the-art heuristics. Finally, we experiment on an already known strong form of constraint filtering that is heuristically guided by the search (quick shaving). This technique gives mixed results when applied blindly to any problem. We introduced a simple yet very effective estimator to dynamically disable quick shaving and showed experimentally very promising results

    Using Restarts in Constraint Programming over Finite Domains - An Experimental Evaluation

    Get PDF
    The use of restart techniques in complete Satisfiability (SAT) algorithms has made solving hard real world instances possible. Without restarts such algorithms could not solve those instances, in practice. State of the art algorithms for SAT use restart techniques, conflict clause recording (nogoods), heuristics based on activity variable in conflict clauses, among others. Algorithms for SAT and Constraint problems share many techniques; however, the use of restart techniques in constraint programming with finite domains (CP(FD)) is not widely used as it is in SAT. We believe that the use of restarts in CP(FD) algorithms could also be the key to efficiently solve hard combinatorial problems. In this PhD thesis we study restarts and associated techniques in CP(FD) solvers. In particular, we propose to including in a CP(FD) solver restarts, nogoods and heuristics based in nogoods as this should improve search algorithms, and, consequently, efficiently solve hard combinatorial problems. We thus intend to: a) implement restart techniques (successfully used in SAT) to solve constraint problems with finite domains; b) implement nogoods (learning) and heuristics based on nogoods, already in use in SAT and associated with restarts; and c) evaluate the use of restarts and the interplay with the other implemented techniques. We have conducted the study in the context of domain splitting backtrack search algorithms with restarts. We have defined domain splitting nogoods that are extracted from the last branch of the search algorithm before the restart. And, inspired by SAT solvers, we were able to use information within those nogoods to successfully help the variable selection heuristics. A frequent restart strategy is also necessary, since our approach learns from restarts

    Improvement and Integration of Counting-Based Search Heuristics in Constraint Programming

    Get PDF
    Ce mémoire s’intéresse à la programmation par contraintes, un paradigme pour résoudre des problèmes combinatoires. Pour la plupart des problèmes, trouver une solution n’est pas possible si on se limite à des mécanismes d’inférence logique; l’exploration d’un espace des solutions à l’aide d’heuristiques de recherche est nécessaire. Des nombreuses heuristiques existantes, les heuristiques de branchement basées sur le dénombrement seront au centre de ce mémoire. Cette approche repose sur l’utilisation d’algorithmes pour estimer le nombre de solutions des contraintes individuelles d’un problème de satisfaction de contraintes. Notre contribution se résume principalement à l’amélioration de deux algorithmes de dénombrement pour les contraintes alldifferent et spanningTree; ces contraintes peuvent exprimer de nombreux problèmes de satisfaction, et sont par le fait même essentielles à nos heuristiques de branchement. Notre travail fait également l’objet d’une contribution à un solveur de programmation par contraintes open-source. Ainsi, l’ensemble de ce mémoire est motivé par cette considération pratique; nos algorithmes doivent être accessibles et performants. Finalement, nous explorons deux techniques applicables à l’ensemble de nos heuristiques: une technique qui réutilise des calculs précédemment faits dans l’arbre de recherche ainsi qu’une manière d’apprendre de nouvelles heuristiques de branchement pour un problème.=----------ABSTRACT: This thesis concerns constraint programming, a paradigm for solving combinatorial problems. The focus is on the mechanism involved in making hypotheses and exploring the solution space towards satisfying solutions: search heuristics. Of interest to us is a specific family called counting-based search, an approach that uses algorithms to estimate the number of solutions of individual constraints in constraint satisfaction problems to guide search. The improvements of two existing counting algorithms and the integration of counting-based search in a constraint programming solver are the two main contributions of this thesis. The first counting algorithm concerns the alldifferent constraint; the second one, the spanningTree constraint. Both constraints are useful for expressing many constraint satisfaction problems and thus are essential for counting-based search. Practical matters are also central to this work; we integrated counting-based search in an open-source constraint programming solver called Gecode. In doing so, we bring this family of search heuristics to a wider audience; everything in this thesis is built upon this contribution. Lastly, we also look at more general improvements to counting-based search with a method for trading computation time for accuracy, and a method for learning new counting-based search heuristics from past experiments

    Accelerating TSP Solving by Using Cost-Based Solution Densities of Relaxations

    Get PDF
    RÉSUMÉ : Le problème du voyageur de commerce, ou problème du commis voyageur, est l’un des problèmes les plus importants dans le domaine de l’optimisation combinatoire. Il a fait l’objet d’innombrables travaux de recherche, à la fois théoriques et pratiques. Parmi les aspects de ce problème, nous nous intéressons particulièrement, dans le cadre de notre sujet, à certaines de ses relaxations, qui ont aussi été étudiées pour apporter de nouvelles approches à la résolution du problème. Les structures combinatoires de ces relaxations peuvent être encapsulées dans des contraintes globales existantes en programmation par contraintes (PPC), ce qui nous motive à tester une approche basée sur des travaux récents sur les heuristiques de dénombrement en PPC. L’objectif de ce projet est d’améliorer la résolution du problème du voyageur de commerce en appliquant les densités de solution aux relaxations du problème. On pose l’hypothèse qu’une arête a très peu de chance d’appartenir à la solution optimale du problème si plusieurs relaxations retournent de faibles densités de solution pour cette arête et qu’on peut donc l’éliminer pour nettoyer le graphe d’entrée du problème. On évalue donc chaque arête en fonction de leur densité de solution pour chaque relaxation et on élimine les arêtes évaluées comme "mauvaises" par toutes les relaxations. Pour l’expérimentation, cet algorithme de pré-traitement sera appliqué à plusieurs exemplaires de TSPLIB, une bibliothèque d’exemplaires du problème de voyageur de commerce. On évaluera d’abord le temps de calcul de notre méthode. Enfin, on résoudra nos exemplaires élagués avec différents solveurs (concorde, Gurobi et IBM CP Optimizer) et on comparera les résultats obtenus à la résolution des exemplaires originels. L’élagage est efficace si le temps de résolution gagné en pré-traitant les exemplaires compense le temps de pré-traitement.----------ABRACTS : The Traveling Salesman Problem is a combinatorial optimization problem, which, broadly speaking, consists of visiting a certain number n of cities, by passing through each city exactly once and by traveling the shortest possible distance. This problem is very prominent in research, as a representative of the NP-hard class of problems and as a problem with applications in various areas, including routing, networking and scheduling. Nowadays, integer programming methods dominate the landscape of TSP solvers, with the state-of-art solver concorde. As part of the efforts to solve the TSP, several of its relaxations have been studied, for computing lower bounds or domain filtering. Since these relaxations can provide insight on the combinatorial structure of the problem, we believe recent work in Constraint Programming concerning counting-based branching heuristics can bring new effective methods of using these relaxations. In this Master’s thesis, we present an approach to the traveling salesman problem which exploits cost-based solution densities from counting-based search. we propose a method for eliminating edges from the input graph of TSP instances in pre-processing, by using the solution densities from relaxations of the TSP to determine promising edges. Solution densities from different relaxations can also be combined for branching in a constraint programming solver. The efficiency and robustness of our pre-processing algorithm is evaluated by applying it to instances from TSPLIB and comparing the time to solve them with that of the original complete instances. We consider various solvers in our experimentation, namely the IBM CP Optimizer, concorde and Gurobi

    Global Constraint Catalog, 2nd Edition (revision a)

    Get PDF
    This report presents a catalogue of global constraints where each constraint is explicitly described in terms of graph properties and/or automata and/or first order logical formulae with arithmetic. When available, it also presents some typical usage as well as some pointers to existing filtering algorithms

    Implementation and Evaluation of Counting-Based Search for Table Constraints in the OscaR Solver

    Get PDF
    Dans ce mémoire, nous allons nous intéresser à la programmation par contraintes, un outil efficace en ce qui concerne la résolution de problèmes combinatoires. Nous allons nous intéresser aux problèmes utilisant les contraintes table et plus particulièrement leur implémentation compacte qui a été grandement améliorée par l’utilisation de la structure de données «sparse bit set» réversible. Nous contribuerons en créant une heuristique de recherche basée sur le dénombrement utilisant l’information sur les supports des contraintes table. Nous allons implémenter puis évaluer un algorithme de dénombrement sur Oscar, une librairie de résolution de problèmes par contraintes créée pour résoudre les problèmes combinatoires. Nous définirons alors un algorithme pour obtenir les supports et un algorithme pour réaliser une heuristique de recherche utilisant les informations précédentes. Tous ces algorithmes ont un but commun, mettre en place une recherche basée sur le dénombrement. Nous allons expliquer les modifications faites à Oscar et les heuristiques de recherche que nous avons créées dans Oscar. Finalement, nous présenterons nos résultats sur différents exemplaires de problèmes et nous analyserons les résultats comparés à l’état de l’art pour en déduire les améliorations apportées. Nous utiliserons pour cela les algorithmes suivants: dom et dom/deg. L’expérience montrera que notre recherche basée sur le dénombrement est compétitive pour les exemplaires complexes mais qu’elle coûte plus de temps dans certains cas, même si nous avons moins d’échecs.----------ABSTRACT: In this thesis, we work on constraint programming, an efficient approach to solve combinatorial problems. We consider problems using table constraints and in particular the compact table implementation. Reversible sparse bit sets have been used for the compact table implementation recently, and it improves its efficiency. We contribute by making the heuristic search more efficient for such problems by using counting-based search. Counting-based search uses the supports information from the reversible sparse bit set data structure (used to maintain supports in the table constraints). We implement and evaluate our contribution in Oscar, a constraint programming solver to solve combinatorial problems. We explain the modifications we made in Oscar and the heuristic searches we created in Oscar. We define an algorithm to get the supports from table constraints, a variable ordering heuristic search, and a value ordering heuristic search. All of these algorithms work toward the same goal, counting-based search. Finally, we present our results on different instances of problems and analyze the results and improvements. We compare our methods with dom and dom/deg. The experiment shows counting-based search is competitive if the instances are hard and it costs more time in some instances even if we have fewer failures
    • …
    corecore