### State-set branching: Leveraging BDDs for heuristic search

Rune M. Jensen, Manuela M. Veloso, Randal E. Bryant
2008 Artificial Intelligence
In this article, we present a framework called state-set branching that combines symbolic search based on reduced ordered Binary Decision Diagrams (BDDs) with best-first search, such as A* and greedy best-first search. The framework relies on an extension of these algorithms from expanding a single state in each iteration to expanding a set of states. We prove that it is generally sound and optimal for two A* implementations and show how a new BDD technique called branching partitioning can be
more » ... sed to efficiently expand sets of states. The framework is general. It applies to any heuristic function, evaluation function, and transition cost function defined over a finite domain. Moreover, branching partitioning applies to both disjunctive and conjunctive transition relation partitioning. An extensive experimental evaluation of the two A* implementations proves state-set branching to be a powerful framework. The algorithms outperform the ordinary A* algorithm in almost all domains. In addition, they can improve the complexity of A* exponentially and often dominate both A* and blind BDD-based search by several orders of magnitude. Moreover, they have substantially better performance than BDDA*, the currently most efficient BDD-based implementation of A*. Definition 2 (Search problem). Let D = S, T , c be a search domain. A search problem for D is a triple A solution π to a search problem is a path from the initial state to one of the goal states. The solution length is the number of transitions in π and the solution cost is the sum of the transition costs of the path. Definition 3 (Search problem solution). Let D = S, T , c be a search domain and P = D, s 0 , G be a search problem for D. A solution to P is a sequence of states π = s 0 , . . . , s n such that s n ∈ G, and T (s j , s j +1 ) for j = 0, 1, . . . , n − 1. An optimal solution to a search problem is a solution with minimum cost. We will use the symbol C * to denote the minimum cost. Fig. 1 shows a search problem example and an optimal solution. Best-first search Best-first search algorithms are characterized by building a search tree superimposed over the state space during the search process. Each search node in the tree is a pair s, e where s is a single state and e ∈ R d is a d-dimensional real vector representing the cost estimates associated with the node (e.g., e could be a two dimensional vector containing