计算有关Max-3SAT的任何信息


26

对于3CNF公式令是对任何赋值中满足子句的最大数目。众所周知,Max-3SAT很难近似(服从P≠NP),即不存在输入为3CNF公式且其输出为数字多重时间算法,使得在a内。乘法因子从,其中是一个绝对正的常数。中号C ^ ç ç 中号中号ç 1 + C ^ 中号' Ç > 0CM(C)CCMM(C)1+cMc>0

我认为对于任何恒定模数p,计算也是NP难的。我想知道这两个事实的以下常见推论是否正确:没有多时制算法,其输入是带有N子句的3CNF公式C和一串\ log_2 NB建议位,并且其输出是M(C)。这里B是绝对常数。简而言之,没有算法可以计算M(C)的B位信息。M(C)modppCNlog2NBM(C)BBM(C)

如果这个问题有一个众所周知的答案,我深感抱歉,因为从背景来看,我不是复杂性理论家。


1
通常,“建议”只能取决于输入的长度。我相信您的意图是这里的“建议”可以取决于输入本身。我不知道此概念的标准术语。
伊藤刚(Tsuyoshi Ito)

9
这是一个非常有趣的问题。为了确认M(C)modp确实很难计算,可以注意到,库克定理的证明产生了一个m变量公式F,该公式可以满足或满足M(F)=m1
卡·特雷维森

16
问题可以通过以下方式重新提出:是否可以有一个多项式时间算法,给定一个具有m个变量的3CNF公式F,它输出一个m / 2 ^ B个数字的列表,使得这些数字之一是M(F)Fmm/2BM(F)
卡·特雷维森

2
是的,m应该是以上注释中子句的数量。
卡·特雷维森

9
这是等效的,因为如果您具有本文所述的算法,则可以在每个2log2mB=m/2B可能的建议字符串中运行该算法,获取的数目尽可能多(如果有碰撞)答案,其中之一是正确的。如果您有一种算法(如我上面的评论所述),对于某些i而言log2mB建议位足以指定正确答案是该算法输出的第i个最大数。i
卡·特雷维森

Answers:


14

这是一个论点,如果您可以在给定常数位的建议的情况下在m子句实例上求解Max 3SAT,则多项式层次结构将崩溃。

修正一个NP完全问题L。根据库克定理,我们知道L的输入x的f()转换为3SAT公式f(x),这样

1)如果那么xLM(f(x))=m

2)如果那么xLM(f(x))=m1

其中是中子句的数量。mf(x)

我们还有一个Kadin定理,即如果给定个NP完全问题的输入,则您有多项式时间算法,该算法使查询到NP oracle并确定对 NP问题正确答案,则多项式层次结构崩溃。kx1,,xkk1kxi?L

假设我们有一个算法,在给定k位建议的情况下,可以解决m条子句输入上的最大SAT。在Kadin定理的前提下,我们将使用Hastad的结果构造算法。

开始从输入到问题。将库克定理应用于每个定理。经过一些规范化(可以通过为子句分配权重,或者如果我们不想使用权重,可以将它们复制)来完成,我们构造公式,其中对于某个:K=2k+1x1,,xKLKF1,,FKm

1),如果和,否则M(F1)=m1x1LM(F1)=m2

2)如果和,否则M(F2)=m(m1)x2LM(F2)=m(m2)

...

k)如果且否则M(FK)=mK1(m1)xKLM(FK)=mK1(m2)

现在采取的公式,构建了不相交的变量集合的并集,并调用它。因此,我们有,我们可以“读出”对问题的答案通过查看碱基的表示。如果我们可以在给定个建议位的情况下计算,则意味着我们可以找到值,使得其中之一是。然后,我们可以非自适应地询问NP oracle是否为每个候选值FM(F)=M(F1)++M(Fk)Kxi?LmM(F)M(F)k2kM(F)M(F)nin1,,n2k我们产生了。因此,通过对NP oracle 进行非自适应查询,我们已经能够解决个NP完全问题实例,这意味着多项式层次结构崩溃了。2k+12k

使用Hastad定理而不是Cook定理,可以将的大小推到而不是,因此可以将推到,并将建议位的数目推到。理解给定建议位时会发生什么情况 似乎真的很困难。FO(1)kmmkklogmloglogmlogmO(1)


编辑补充:Krentel(优化问题的复杂性J. COMPUT SYST科学36(3):。490-509(1988) )证明了计算最大团问题的最佳的值是完全为,可以在多项式时间内使用查询到NP oracle 的函数类。完整性在“一个查询约简”下,如果可以为多项式时间可计算的和写,则函数f可简化为函数g 。现在,如果Max Clique具有多项式时间算法,该算法可生成FPNP[O(logn)]O(logn)f(x)=r1(g(r2(x))r1r2mo(1)可能的值,它将在,因为您可以使用二进制搜索来找到最佳值,并且查询的数量是列表大小的log。FPNP[o(logn)]

现在,如果我们有我们肯定有,这是决策问题的特例,通过Wagner的结果(改进适用于恒定数量查询的Kadin的结果)已知,它可以分解多项式层次结构。但是我认为可能知道 实际上暗示着P = NP。但是无论如何,Krentel和Kadin-Wagner的结果应该足以为Andy Drucker的结果提供另一个证明。现在,我想知道它是否真的是相同的证明,也就是说,Fortnow-Van Melkebeek结果是否通过“用更少的NP查询来模拟NP查询”参数显式或隐式地起作用。FPNP[O(logn)]=FPNP[o(logn)]PNP[O(logn)]=PNP[o(logn)]FPNP[O(logn)]=FPNP[o(logn)]

一份很好的调查论文,解释了优化问题和有限查询类的状况:

http://www.csee.umbc.edu/~chang/papers/bqabh/npfsat.pdf


8

我想说明一个很难证明这个问题的NP困难性的原因。

在对问题的评论中,卢卡·特雷维森(Luca Trevisan)提供了一种重述该问题的好方法:对于多项式k,以下问题可以在多项式时间内求解吗?给定具有m个子句的CNF公式C,最多输出m / k个整数,以便其中一个等于MC)。这里ķ涉及通过ķ = 2

但是,让我们要求更多。即,我们考虑以下问题:给定CNF公式C,输出两个整数,以便其中一个等于MC)。我们用Π表示这个问题。问题is至少与原始问题一样困难,因此,如果原始问题是NP-hard,则Π也必须是NP-hard。

注意,Π是一个关系问题。可用于将某些问题L简化为关系问题Π 的最简单的约简之一是多项式时间莱文约简,这是多项式时间Turing约简的一种特殊情况,其中约简仅将oracle称为oracle一旦。

我们声称P [[1] = P。显然,这意味着除非P = NP,否则NP⊈PΠ [1],也就是说,除非多项式时间Levin可约,除非P = NP,否则Π不是NP-hard。

证明。让大号 ∈P Π[1] ,或换句话说,存在从莱还原大号至Π。这意味着存在一对(fg)多项式时间可计算函数f:{0,1} * →{0,1} *将问题L的每个实例x映射到某些CNF公式fx)和多项式时间可计算谓词g:{0,1} * ×ℕ×ℕ→{0,1},使得gxij)= Lx)如果ij等于Mfx))。(这里大号X)= 1,如果X是的是的实例大号大号X)= 0,如果X是一个没有实例。)

我们以此为基础构造L的多项式时间算法。令x为输入。

  1. C = fx),令mC中子句的数量。
  2. 找到一个 ∈{0,..., },使得值XĴ)是恒定的独立Ĵ ∈{0,..., }。
  3. 输出此常数gxi,0)。

在步骤2中,这样的i始终存在,因为i = Mfx))满足条件。而且,该算法不能输出错误的答案,因为gxiMfx)))必须是正确的答案。因此,该算法可以正确 求解L。QED

如果我没记错的话,同样的想法可以用来证明P [ kn)] ⊆DTIME [ n O(kn)) ]。这意味着NP⊈P Π[ ķ ]为任何常数ķ除非P = NP和NP⊈P Π[polylog]除非NP⊆DTIME[2 polylog ]。但是,仅凭此想法似乎并不排除在多项式时间图灵可归约性下Π是NP-hard的可能性。


1
您能否提供Dana答案的链接?
Mohammad Al-Turkistany

@turkistany:我发布此答案的第一版后,她删除了答案。我刚刚从此答案中删除了对它的引用。
伊藤刚(Tsuyoshi Ito)

8

我相信我们可以证明:

要求。值使得以下内容成立。假设有一个确定性的多重时间算法,给定一个子句3-SAT实例,输出最多为值的列表,使得;然后多项式层次结构崩溃。0<c<1mϕSmcM(ϕ)S

该证明使用了Fortnow和Santhanam 从他们的论文 http://www.cs.uchicago.edu/~fortnow/papers/compress.pdf中得出的实例压缩不可行的结果

具体来说,通过查看他们对Thm 3.1的证明,我相信可以提取出以下内容(我将很快对此进行重新检查):

“定理” [FS]。 存在整数因此,以下内容为真。假设在确定性的多重时间中,可以将布尔公式(每个长度为,并且在不相交的变量集上)的OR转换为公式的OR (再次是变量不相交和长度),以保持OR的可满足性/不满足性。然后,多项式层次结构崩溃。0<d<dndnndnNPcoNP/poly

我们的主张的证明将是从上述定理[FS]中提到的OR压缩任务简化为列表计算。假设是我们要压缩其OR的公式列表。M(ϕ)ψ1,,ψnd

第一步:在输入字符串上定义多项式大小的电路。此处,字符串编码对的赋值,而编码一个介于和之间的数字。Γ(v,y1,,ynd)yiψiv{0,1}dlogn+10nd

如果或,我们可以接受。Γv=0ψv(yv)=1

现在,让表示最大值,以使受限电路可以满足。(此数量始终至少为0)。M(Γ)vΓ(v,,,)

假设我们能够高效地生产列表可能的值,。然后要求是,在我们的名单,我们可以扔掉所有为此 ; 如果原始列表中包含一个公式,则结果列表将包含一个可满足的公式。我希望通过检查可以弄清楚。SM(Γ)ψ1,,ψndψiiS

结论:我们不能可靠地产生一个列表的可能值,除非所述聚层次结构塌陷。SndM(Γ)

第二步:对于3-SAT实例我们从列表计算的问题减少到列表计算的问题。M(Γ)M(ϕ)ϕ

为此,我们首先在上执行Cook的约简,以获得大小为的3-SAT实例。 具有与相同的变量集,以及一些辅助变量。对于我们而言,最重要的是是可满足的,而是可满足的。Γϕ1m=poly(nd)ϕ1Γϕ1(v,)Γ(v,)

我们称为“强约束”。我们给每个约束加权重(通过添加重复约束)。ϕ12m

然后,我们添加了一组“弱约束”,它们为索引(在步骤1中定义)添加了尽可能高的首选项。存在用于每个位一个约束的,即。我们让第个最高有效位具有权重的约束。由于的长度为,因此可以将这些权重设为整数(我们只需要填充即可使为2的幂)。ϕ2vvtv[vt=1]tvm/2t1vdlogn+1m

最后,让为我们的约简结果。ϕ=ϕ1ϕ2

为了分析,令为的变量集,与以前一样使用。首先要注意的是给定的任何分配到可以推断的值从数量 (总重量通过-constraints满足)。 这来自约束权重的分层设计(类似于Luca的答案中的一种技术)。类似地,最大可实现值通过满足所有强约束的设置以及其中(取决于此)ϕ(v,z)ϕv(v,z)vN(v,z)=ϕv,z
M(ϕ)(v,z)v尽可能大。这个是可以满足的最大索引,即。(请注意,通过设置 all-0 总是有可能满足所有强约束,因为在这种情况下是可以满足的。)vΓ(v,)M(Γ)v=Γ(v,)

因此,如果给定一个可能值的列表,则可以得出的列表。可能值。因此,我们不能有除非多边形层次结构崩溃。这给出了Claim,因为。SM(ϕ)|S|M(Γ)|S|ndnd=mΩ(1)

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.