加-乘算法和最大化加和算法提供了树结构图中的推断问题的高效精确解法。然而,对于许多实际应用,我们必须处理带有环的图。
信息传递框架可以被推广到任意的图拓扑结构,从而得到一个精确的推断步骤,被称为联合 树算法(junction tree algorithm)(Lauritzen and Spiegelhalter, 1988; Jordan, 2007)。这里,我们简短地给出算法的关键步骤。这里不打算给出算法的细节,而是给出各个阶段的大致思想。如果我们的起始点是一个有向图,那么我们首先通过“伦理”步骤,将其转化为无向图。而如果起始点是无向图,那么这个步骤就不需要了。接下来,图被三角化(triangulated),这涉及到寻找包含四个或者更多结点的无弦环,然后增加额外的链接来消除无弦环。例如,在图8.36 所示的图中,环$$ A − C − B − D − A
联合树对于任意的图都是精确的、高效的。对于一个给定的图,通常不存在计算代价更低的算法。不幸的是,算法必须对每个结点的联合概率分布进行操作(每个结点对应于三角化的图的一个团块),因此算法的计算代价由最大团块中的变量数量确定。在离散变量的情形中,计算代价会随着这个数量指数增长。一个重要的概念是图的树宽度(treewidth)(Bodlaender,1993),它根据最大团块中变量的数量进行定义。事实上,它被定义为最大团块的规模减一,来确保一个树的树宽度等于1。由于通常情况下,从一个给定的起始图开始,可以构建出多种不同的联合树,因此树宽度由最大团块具有最少变量的联合树来定义。如果原始图的树宽度比较 大,那么联合树算法就变得不可行了。