  An algorithm is developed for finding a close to optimal junction tree of a
given graph G. The algorithm has a worst case complexity O(c^k n^a) where a and
c are constants, n is the number of vertices, and k is the size of the largest
clique in a junction tree of G in which this size is minimized. The algorithm
guarantees that the logarithm of the size of the state space of the heaviest
clique in the junction tree produced is less than a constant factor off the
optimal value. When k = O(log n), our algorithm yields a polynomial inference
algorithm for Bayesian networks.
