为SAT嵌入解决方案是否可行?


10

我对NP完全问题的“困难”个体实例感兴趣。

Ryan Williams 在Richard Lipton的博客中讨论了SAT0问题。SAT0询问SAT实例是否具有由全0组成的特定解决方案。这让我开始思考构造可能“困难”的SAT实例。

考虑一个SAT实例条款和ñ变量,其中α = / Ñ是“足够大”,因为它属于超越了相变,其中几乎所有的情况下都不可满足的区域感。设X是一个随机分配的值φϕmnα=m/nxϕ

是否可以修改以获取新实例ϕ | x,所以ϕ | X是“基本上相似” φ,但让X是一个令人满意的分配新建分配FY φ | Xϕϕ|xϕ|xϕxϕ|x

例如,可以尝试向解决方案中的每个子句添加一个随机选择的文字,该文字尚未出现在该子句中。这将保证是一个解。x

还是这种无望的方法,导致了一种快速的算法,可以按照以下最新论文的思路找到“隐藏”的解决方案?

我知道Cook和Mitchell的讨论以及他们所引用的工作。但是,当人们试图将令人满意的赋值明确地嵌入到公式中时,我什么都找不到。如果这是民间传说,那么指针将是非常受欢迎的!

  • Stephen A. Cook和David G. Mitchell,“ 发现可满足性问题的难例:一项调查,离散数学和理论计算机科学的DIMACS系列” 35 1–17,AMS,ISBN 0-8218-0479-0,1997年。(PS

Answers:


13

你可以把任何公式并将其更改为公式φ ψ X,其中ψ X是一个“硬” SAT实例,它的唯一的解决方法是X。构建这样的公式的方法之一是使用密码技术:如果˚F { 0 1 } Ñ{ 0 1 } Ñ是一个单向置换和我们选择X随机和组ÿ = ˚F X ,则一个可以转换y是它唯一的解决方案,因此可以找到φφψxψxxf:{0,1}n{0,1}nxy=f(x)y转换为SAT公式,使得x对应于求逆 f。(我们需要这个 x是随机的,但是如果我们认为发现 x应该很困难,那么无论如何都应该假设类似的东西。)xfxx


嗯,在多项式大小φψ X。谢谢!ϕψxϕψx
安德拉斯·萨拉蒙

6

如果我没有理解你的问题的核心,要采取相对简单的实例(因为你把自己在一个地区,),并通过嵌入解决方案将其转化为难解的内容。我怀疑这是否行得通。mn>4.3

实验数据表明,在“围绕”预定义解决方案构造随机实例时,此类实例将比平时更容易(与具有相同nm的相似实例相比)。这就像是隐藏的解决方案可以帮助SAT求解器引导其在搜索空间中进行导航一样。通常,为了构造这样的实例,我们像往常一样生成随机子句(例如,随机选择k个文字,并以p = 1的概率取反它们)xnmk),但是我们丢弃了隐藏解决方案x不满足的那些子句。对于所关注的建设的做法φ| X从硬例如φ:我从来没有尝试过,但我的“感觉”是φ| 如果不琐碎,x会变得更容易。我相信这样做会增加x的文字的命中次数(文字l的命中次数是给定公式中l出现的次数),并且这会将SAT解算器推向目标。也许的解空间φφ| Xp=12xϕ|xϕϕ|xxllϕϕ|x就像Ryan Williams的SAT0示例(几乎相同的溶液空间,但硬度完全不同)中的情况一样(如果不是几乎相同)。您是否在实践中尝试了您的方法?看看相同的SAT解算器在ϕ上的表现如何会很有趣Xϕϕ|x

编辑1(23日2010年9月):想多一点点,我觉得实际上解空间将与ϕ有很大不同ϕ|xϕ的。您在每个子句中添加了一个文字,因此您赋予了这些子句更多的自由度(即,每个子句都有更多的机会被满足):可能会极大地改变结果空间。

编辑2(2010年10月1日):我已经考虑过以下非常简单而不是原创的想法。给定一个初始实例和一个赋值xϕx

  1. 从删除所有那些不满意的条款X。这将扩大解决方案空间,并在其中嵌入xϕxx

  2. 假设您删除了子句。现在,随机添加m x个新子句,注意它们不会被x满足(这将再次缩小解决方案空间,但不会将x推出)。mxmxxx

我不知道这是否行得通。我还没有尝试过。更确切地说,我不确定步骤1是否总是设法将嵌入解决方案空间中(也许x被子句的某种组合所排除,即使每个子句都不被x?不满意)。xxx


感谢您的评论,我同意将更改解决方案空间。如问题所示,我想知道是否存在一种修改公式以隐藏解决方案的方法。将文字添加到每个子句意味着存在证明可以将解决方案添加到公式中。我并不是要暗示这是唯一,最好甚至是好的方法。
安德拉斯·萨拉蒙(AndrásSalamon)2010年

不客气,安德拉斯。是的,肯定可以使用您的方法添加解决方案。如果您想要ϕ | x的解空间等于ϕ解空间加上该解x,我认为这很难获得。另一方面,如果您愿意接受将添加许多其他解决方案,那么您的策略就可以了。xϕ|xϕx
Giorgio Camerani

理想的情况是想在不改变解空间“太多”一polytime算的方法......
安德拉斯·萨拉蒙

检查Feige提到的用于种植集团的算法是否仍然适用于这些种植解决方案中的任何一种,将是很有趣的。n3log n
安德拉斯·萨拉蒙(AndrásSalamon)2010年

@Walter:我说研究简单的“查找 -clique”算法会很有趣的原因是,将SAT简化为CLIQUE最简单的方法是将n3lognn在具有个顶点的图形中使用 -clique 。弥合n3 log n之间的这个差距,或者表明它无法弥合,将会很有趣。2nn3logn
安德拉斯·萨拉蒙(AndrásSalamon),2010年

4

我知道,生成NP完全问题的硬实例的最好方法是使用Cook映射将精心挑选的某些其他硬NP问题(例如离散对数问题或整数分解)实例简化为SAT。这些是数学家用来确保RSA和Diffie-Hellman等协议中的密码安全性的“难题”。


请参考?
gphilip's

不知道为什么对这个答案不满意。谁做的都应该解释。
Suresh Venkat
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.