顶级SAT求解器可以分解为简单数吗?


11

现代SAT求解器非常擅长求解SAT实例的许多实际示例。但是,我们知道如何生成难的密码:例如,使用从分解为SAT简化方法,并提供RSA数字作为输入。

这就提出了一个问题:如果我举一个简单的因式分解的例子怎么办。而不是对位取两个大质数,如果我对位取质数而对位取质数q ,则令并编码作为SAT实例。是通过蛮力搜索或筛分法容易分解的数字,因为其中一个因素很小。从分解到SAT的标准减少了的现代SAT求解器是否也采用了这种结构?ñ/2p日志ññ/日志ññ=pqF一种CŤØ[Rññ

可以使SAT求解器的因子,其中快速?ñ=pq|p|=日志ñ

Answers:


10

我们可以证明,还有其他更简单的实例,即当前算法无法在指数以下时间内求解。这些算法无法计数(几乎所有算法都是DPLL的改进,对应于Resolution命题证明系统)。

不幸的是,这样的例子是无法令人满意的。为这些算法寻找自然可满足的硬实例的问题是一个有趣的研究问题(Russeell Impagliazzo在去年在班夫举行的证明复杂性研讨会上提到了这一点)。有可满足的实例,我们可以证明地知道,如果存在此类实例,算法将严重失败,但是它们不是很自然(它们基于表示算法合理性的公式)。

关于因子分解,如果数字的大小很小(例如,如您所愿的对数,即数字以一元形式给出),则理论上没有结果表明当前算法无法解决该问题,实际上我们可以编写简单将这些数字分解的多项式时间算法。因此,特定的SAT求解器程序是否可以求解它们可能取决于特定的算法。


日志ññ/日志ñ

@Artem,任何分辨率较低的证明复杂度都将举一个例子,例如鸽子洞原理。一个人可以很容易地从这些实例上的这些算法的计算中提取出该不满意实例的分辨率(反驳)证明。内森·塞格林德(Nathan Segerlind)从2007年开始进行的一项不错的调查显示,IIRC涵盖了其他方面。让我知道它是否不存在,我将为您找到另一个参考。
卡夫

@Artem,我认为该论点在只有一个数是对数的情况下也适用,即我们可以通过遍历所有小数以查看它们中的一个是否为乘积来在多项式时间内求解。
卡夫

@Kaven是的,这就是为什么我将数字设为对数。我在问题中解释它。我只是不想像您的第3段所建议的那样以一元表示来回答。稍后,我将介绍Segerlind。再次感谢您的评论:D。
Artem Kaznatcheev

@Artem,欢迎您。:)(我使用一元是因为我假设两个数字都很小,并且用一元来处理一个事实,即它们的大小应该是指数级的,或者也可以填充以使它们变大。)
Kaveh 2012年
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.