Exploiting Decomposition in Backtracking Search

By Fahiem Bacchus, University of Toronto

Many problems in AI, e.g., inference in Bayes Nets, MPE, MAXSAT, #SAT, can be represented as a computation over a set of local functions. The sets of variables these local functions depend on form a graph, and many of these problems can be solved by performing dynamic programming on a tree decomposition of this graph. The well known Variable Elimination (VE) algorithm is one example of this approach. The locality of the functions also means that by instantiating only a treewidth number of variables the remaining reduced functions become disjoint; that is, the problem decomposes. This can be exploited in a divide and conquer style algorithms that can achieve the same worst case complexity as VE. In this talk, however, I will describe how a simple caching scheme can allow standard backtracking search to also exploit decomposition and to also achieve the same worst case bounds as these previous algorithms. Backtracking with caching also has some structural advantages over previous algorithms that allow it to display superior performance on some problems.

Visit the LCI Forum page