利用变量重命名的结构松弛及其编译解决MinCostSAT问题
在启发式搜索和规划领域,利用从松弛问题中获得的下界来寻找问题的最优解是一种常见的思路。然而在SAT和CSP问题中,显式松弛的使用却相对较少。本文将探讨显式松弛在MinCostSAT问题中的应用,这一问题旨在找到满足CNF公式的最小成本赋值。
1. 引言
在启发式搜索和规划中,利用松弛问题的下界来寻找最优解是一种常用的策略。例如在模式数据库(Pattern Databases)中,某些状态变量会从问题中抽象出来,然后对得到的较弱问题进行穷举求解。存储在内存中的表格会保存松弛问题中任何状态到目标的距离,从而为原始问题中未被抽象掉的变量值相同的状态提供下界。这种方法在魔方问题上取得了很好的效果。同样,一些优秀的领域无关规划器会使用通过显式松弛得到的距离估计器,即从问题中去掉“删除”操作。
在SAT和CSP问题中,虽然显式松弛很少被使用,但通过先解决松弛问题来解决原问题的思路在很多方法中是隐含的。例如,节点一致性可以看作是排除了非一元约束的松弛,而弧一致性可以看作是对包含单个约束的松弛问题进行迭代。
本文将显式松弛应用于MinCostSAT问题。许多SAT和CSP任务的复杂度与底层交互图的树宽呈指数关系,但可以通过一种简单的变量重命名方式将这些模型松弛为具有有界树宽的较弱模型。具体来说,就是将在多个因子(子句、约束等)中出现的变量替换为在少数因子中出现的新变量。如果松弛模型的树宽有界,那么可以在多项式时间和空间内对其进行编译,从而利用编译后的表示中的解来修剪原始问题的搜索空间,就像启发式搜索中使用模式数据库一样。
基于此,我们实现了一个名为SR(w)的MinCostSAT求解器,它基于两
超级会员免费看
订阅专栏 解锁全文
690

被折叠的 条评论
为什么被折叠?



