89 research outputs found

    Enhancing a Search Algorithm to Perform Intelligent Backtracking

    Full text link
    This paper illustrates how a Prolog program, using chronological backtracking to find a solution in some search space, can be enhanced to perform intelligent backtracking. The enhancement crucially relies on the impurity of Prolog that allows a program to store information when a dead end is reached. To illustrate the technique, a simple search program is enhanced. To appear in Theory and Practice of Logic Programming. Keywords: intelligent backtracking, dependency-directed backtracking, backjumping, conflict-directed backjumping, nogood sets, look-back.Comment: To appear in Theory and Practice of Logic Programmin

    Building a Truly Distributed Constraint Solver with JADE

    Full text link
    Real life problems such as scheduling meeting between people at different locations can be modelled as distributed Constraint Satisfaction Problems (CSPs). Suitable and satisfactory solutions can then be found using constraint satisfaction algorithms which can be exhaustive (backtracking) or otherwise (local search). However, most research in this area tested their algorithms by simulation on a single PC with a single program entry point. The main contribution of our work is the design and implementation of a truly distributed constraint solver based on a local search algorithm using Java Agent DEvelopment framework (JADE) to enable communication between agents on different machines. Particularly, we discuss design and implementation issues related to truly distributed constraint solver which might not be critical when simulated on a single machine. Evaluation results indicate that our truly distributed constraint solver works well within the observed limitations when tested with various distributed CSPs. Our application can also incorporate any constraint solving algorithm with little modifications.Comment: 7 page

    Reasoning from Last Conflict(s) in Constraint Programming

    Get PDF
    International audienceConstraint programming is a popular paradigm to deal with combinatorial problems in arti cial intelligence. Backtracking algorithms, applied to constraint networks, are commonly used but su er from thrashing, i.e. the fact of repeatedly exploring similar subtrees during search. An extensive literature has been devoted to prevent thrashing, often classi ed into look-ahead (constraint propagation and search heuristics) and look-back (intelligent backtracking and learning) approaches. In this paper, we present an original look-ahead approach that allows to guide backtrack search toward sources of conicts and, as a side e ect, to obtain a behavior similar to a backjumping technique. The principle is the following: after each conict, the last assigned variable is selected in priority, so long as the constraint network cannot be made consistent. This allows us to find, following the current partial instantiation from the leaf to the root of the search tree, the culprit decision that prevents the last variable from being assigned. This way of reasoning can easily be grafted to many variations of backtracking algorithms and represents an original mechanism to reduce thrashing. Moreover, we show that this approach can be generalized so as to collect a (small) set of incompatible variables that are together responsible for the last conict. Experiments over a wide range of benchmarks demonstrate the e ectiveness of this approach in both constraint satisfaction and automated arti cial intelligence planning

    Recherche dirigée par le dernier conflit

    Get PDF
    Dans ce papier, nous proposons une nouvelle approche pour guider la recherche vers la source des conflits. Son principe est le suivant : après chaque conflit, la dernière variable assignée est sélectionnée en priorité tant que le réseau de contraintes est inconsistant. Ceci permet de découvrir la variable coupable la plus récente (i.e. à l'origine de l'échec) en remontant la branche courante de la feuille vers la racine de l'arbre de recherche. Autrement dit, l'heuristique de choix de variables est violée jusqu'au moment où un retour-arrière sur la variable coupable est effectué et que l'on découvre une valeur singleton consistante. En conséquence, ce type de raisonnement, qui représente un moyen original d'éviter le thrashing, peut facilement être intégré à de nombreux algorithmes de recherche. Les expérimentations effectuées sur un large éventail d'instances démontrent l'efficacité de cette approche

    A Parallel, Backjumping Subgraph Isomorphism Algorithm Using Supplemental Graphs

    Get PDF
    This registry entry contains a reference to the code, data and experimental scripts needed to reproduce the subgraph isomorphism paper: Ciaran McCreesh and Patrick Prosser, "A Parallel, Backjumping Subgraph Isomorphism Algorithm using Supplemental Graphs". To appear at the 21st International Conference on Principles and Practice of Constraint Programming (CP 2015)

    Dynamic backtracking for general CSPs.

    Get PDF

    Planning Graph as a (Dynamic) CSP: Exploiting EBL, DDB and other CSP Search Techniques in Graphplan

    Full text link
    This paper reviews the connections between Graphplan's planning-graph and the dynamic constraint satisfaction problem and motivates the need for adapting CSP search techniques to the Graphplan algorithm. It then describes how explanation based learning, dependency directed backtracking, dynamic variable ordering, forward checking, sticky values and random-restart search strategies can be adapted to Graphplan. Empirical results are provided to demonstrate that these augmentations improve Graphplan's performance significantly (up to 1000x speedups) on several benchmark problems. Special attention is paid to the explanation-based learning and dependency directed backtracking techniques as they are empirically found to be most useful in improving the performance of Graphplan
    corecore