我正在尝试使用动态编程来理解树分解中的最大独立集问题。但是,我无法在提出的算法中得到“分隔符”的概念。有人可以让我澄清这一点。预先感谢。
答案 0 :(得分:2)
分隔符是顶点的子集,这些顶点的去除会留下带有多个连接组件的图形。如果每个连接的组件的顶点数少于原始图的一半,则分隔符 balanced 。
树宽较小的图具有较小的平衡分隔符。更确切地说,树宽为k的图具有一个平衡器,该平衡器具有最多k + 1个顶点。
算法利用此漏洞如下:
从图中删除一个小的平衡分隔符
为连接的组件递归找到最佳解决方案
再次添加分隔符(可能逐个顶点),然后使用所连接组件的解找到整个图的最佳解。
为使上述方案有效,需要满足一些要求:
第一步中的分隔符很小(即大小不变)
第二步中连接的分量的顶点数比原始图的顶点数少得多(即恒定分数,例如1/2)。
以上属性均继承到诱导子图(否则您将无法高效递归)
所连接组件的局部最优解可以有效地组合为整个图的最优解
低树宽的图形满足了这些要求-除了最后一个图形:这是针对每个优化问题的,这就是算法设计者撰写的研究论文的内容。
(图片摘自vertex separator上的维基百科文章。)