89 research outputs found
Enhancing a Search Algorithm to Perform Intelligent Backtracking
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
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
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
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
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)
Planning Graph as a (Dynamic) CSP: Exploiting EBL, DDB and other CSP Search Techniques in Graphplan
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
- …