决策问题与并非是或不是的“实际”问题


36

我在很多地方都读到有些问题很难近似( NP很难近似 )。但是,逼近并不是一个决定性的问题:答案是一个实数,而不是是或否。同样对于每个所需的逼近因子,有许多正确的答案和许多错误的答案,并且随着所需的逼近因子而变化!

因此,如何说这个问题是NP问题呢?

(灵感来自有向图中计算两个节点之间的简单路径的数量有多困难?)中的第二个项目符号

Answers:


27

正如您所说,尚无决策,因此需要新的复杂度类别和新的归约类型,才能为优化问题确定合适的NP硬度定义。

一种实现方法是拥有两个包含优化问题的NPOPO类,它们当然会模拟决策问题的NPP类。还需要新的减少。然后,我们可以按照成功解决决策问题的方法,为优化问题重新创建NP-hardness版本。但是首先我们必须同意什么是优化问题

定义:令O=(X,L,f,opt)是一个优化问题X是适合编码为字符串的一组输入实例L是每个实例映射函数xX到一组串,该可行解实例的x。这是一个集合,因为有许多优化问题的解决方案。因此,我们没有一个目标函数 f可以告诉我们每一对(x,y) yL(x)的实例和它的溶液的成本opt告诉我们,无论我们是最大化或最小化。

这使我们能够定义什么的最佳解决方案是:让yoptL(x)最佳的解决方案的实例的xX优化-问题的O=(X,L,f,opt)

f(x,yopt)=opt{f(x,y)yL(x)}.
最佳解通常用表示y

现在我们可以定义类NPO:让NPO是所有优化问题的集合,O=(X,L,f,opt)其中:

  1. XP
  2. 有一个多项式| y | p | X |对所有实例X X和所有可行的解决方案Ý 大号X 。此外还有一个确定性的算法,在多项式时间内是否决定Ý 大号X p|y|p(|x|)xXyL(x)yL(x)
  3. 可以用多项式时间求值。f

它的直觉是:

  1. 我们可以有效地验证是否实际上是优化问题的有效实例。x
  2. 的可行解的大小是在输入端的大小多项式为界,而且我们可以有效地验证如果是该实例的fesible溶液XyL(x)x
  3. 溶液的值可以有效地确定。yL(x)

这反映了现在如何为PO定义情况:令P ON P O的所有问题的集合,这些问题可以通过多项式时间内的确定性算法解决。NPPONPO

现在我们能够定义我们要调用的近似算法:一种近似算法的优化,问题的是计算一个可行的解决方案的算法Ÿ 大号X 为一个实例X XO=(X,L,f,opt)yL(x)xX

注意:我们不要求最佳解决方案,而只是寻求可行的解决方案。

现在,我们有两种类型的错误:该绝对误差的可行解的的实例的X X优化-问题的ø = X 大号˚F ö p | f x y f x y | yL(x)xXO=(X,L,f,opt)|f(x,y)f(x,y)|

我们称之为近似算法的绝对误差用于优化-问题Ø所界定ķ如果算法一个为每个实例单位计算X X一个可行的与有界的绝对误差的解决方案ķAOkAxXk

示例:根据变色定理,图的色指数(边缘着色中使用的颜色最少的颜色数)是Δ + 1,其中Δ是最大结点度。根据定理的证明,可以设计出一种近似算法,用于计算Δ + 1种颜色的边缘着色。因此,我们有一个关于M i n i m u m - E d g e C o l o r i n的近似算法ΔΔ+1ΔΔ+1问题,绝对误差以 1为界。MinimumEdgeColoring1

这个例子是一个例外,小绝对误差是罕见的,因而我们定义相对误差 的逼近算法的在实例X优化-问题的ø = X 大号˚F ö p ˚F X ÿ > 0对于所有X Xÿ 大号X ϵA(x)AxO=(X,L,f,opt)f(x,y)>0xXyL(x)

ϵA(x):={0f(x,A(x))=f(x,y)|f(x,A(x))f(x,y)|max{f(x,A(x)),f(x,y)}f(x,A(x))f(x,y)

其中是由近似算法计算的可行解。A(x)=yL(x)A

现在,我们可以定义近似算法用于优化-问题是一个 -近似算法为如果相对误差为界对于每个实例,因此 Ô = X 大号˚F ö p δ Ô ε X δ 0 X X ε X δAO=(X,L,f,opt)δOϵA(x)δ0xX

ϵA(x)δxX.

在相对误差定义的分母中选择,以使定义对称,以最大化和最小化。相对误差。在出现最大化问题的情况下,解的值永远不会小于并且永远不会大于用于最小化问题。ε X [ 0 1 ] 1 - ε X ˚F X ÿ *1 /1 - ε X ˚Fmax{f(x,A(x)),f(x,y)}ϵA(x)[0,1](1ϵA(x))f(x,y)1/(1ϵA(x))f(x,y)

现在,如果存在一个以多项式时间运行的的近似算法,我们可以调用一个优化问题 -approximable 。δ 一个ØδδAO

我们不想查看每个实例的错误,只查看最坏情况。因此,我们定义,则最大relativ误差的近似算法的用于优化-问题是 ϵ An A O ϵ An = sup { ϵ Ax | x | ñ } xϵA(n)AO

ϵA(n)=sup{ϵA(x)|x|n}.

凡应该是实例的大小|x|

示例:通过将所有从匹配到顶点覆盖的入射节点相加,可以将图中的最大匹配转换为最小节点覆盖因此边缘被覆盖。由于每个包含最优顶点的顶点覆盖必须具有每个覆盖边的节点之一,否则可以对其进行改进,因此我们得到。因此, 因此,用于最大匹配的贪婪算法为近似值算法。因此是。1 / 2 ·&| C | 1 / 2 ·&| C | ˚F X ÿ *| C | f x y C1/2|C|1/2|C|f(x,y) 1/2中号Ñ中号-VËřËXÇÒvéř中号Ñ中号-VËřËXÇÒvë- [R1/2

|C|f(x,y)|C|12
1/2MinimalVertexCoverMinimalVertexCover1/2

不幸的是,相对误差并不总是最佳的近似质量概念,如以下示例所示:

示例:一个简单的贪心算法可以近似。分析显示,因此将是 -近似的。| C |MinimumSetCover中号Ñ中号Ü中号-šËÇÒvëřLNÑ

|C||C|Hn1+ln(n)
MinimumSetCoverln(n)1+ln(n)

如果相对误差接近于则以下定义​​是有利的。1

让是一个优化-问题对于所有和和的近似算法为。实例的可行解的近似比率˚F X ÿ > 0 X X Ý 大号X Ô ř X X = Ý 大号X X X r Ax = { 1 f O=(X,L,f,opt)f(x,y)>0xXyL(x)AO rA(x)A(x)=yL(x)xX

rA(x)={1f(x,A(x))=f(x,y)max{f(x,A(x))f(x,y),f(x,y)f(x,A(x))}f(x,A(x))f(x,y)

我们称之为一个近似算法之前一个 -近似算法的优化-问题如果近似比是由有界对于每个输入。 再一次,如果对于优化问题我们有一个近似算法,那么称为近似。同样,我们只关心最坏的情况,并将最大近似比率- [R ø ř X - [R 1 X X ř X [R [R ö ø - [R [R Ñ - [R Ñ = SUP { ř X | | x | ñ } 1 中号Ñ ù -ArOrA(x)r1xX

rA(x)r
rAOOr rA(n)
rA(n)=sup{rA(x)|x|n}.
因此,对于次优解,近似比率大于。因此,更好的解决方案具有较小的比率。对于我们现在可以写成它是 -近似的。在情况下,我们从前面的示例知道它是近似的。在相对误差和近似比率之间,我们有简单的关系: 1MinimumSetCover(1+ln(n))MinimumVertexCover2
rA(x)=11ϵA(x)ϵA(x)=11rA(x).

对于与最佳和的较小偏差,相对误差优于近似比率,这表明其在较大偏差和。ϵ<1/2r<2ϵ1/2r2

-approximable 的两个版本不重叠,因为一个版本始终为,而另一个版本始终为。的情况是没有问题的,因为只有通过产生精确解的算法才能解决此问题,因此不必将其视为近似算法。αα1α1α=1

经常出现另一类APX。它被定义为一组所有优化-问题从是天堂的 -近似算法与,在多项式时间内运行。ONPOrr1

我们快完成了。愿我们的成功理念复制的减少completness从复杂性理论。可以观察到,优化问题的许多NP硬决策变量可以彼此简化,而它们的优化变量在逼近性方面具有不同的属性。这是由于在NP不完全性减少中使用的多项式时间Karp减少,它不保留目标函数。即使保留了目标函数,多项式时间-Karp归约法也可能改变解的质量。

我们需要的是简化的更强版本,它不仅将实例从优化问题映射到实例,而且还将良好解决方案映射到良好解决方案。O1O2O2O1

因此,我们从定义了两个优化问题和的近似保留约简。如果存在两个函数和以及一个常数,我们将还原为,写为:O1=(X1,L1,f1,opt1)O2=(X2,L2,f2,opt2)NPOO1 APO2O1APO2ghc

  1. g(x1,r)X2对于所有且有理x1X1r>1
  2. L2(g(x,r1))如果所有且有理L1(x1)x1X1r>1
  3. h(x1,y2,r)L1(x1)对于所有且有理,对于所有x1X1r>1y2L2(g(x1,r))
  4. 对于固定的,函数和可以通过两种算法在其输入长度的多项式时间内进行计算。rgh
  5. 我们有对所有和有理且对于所有
    f2(g(x1,r),y2)rf1(x1,h(x1,y2,r))1+c(r1)
    x1X1r>1y2L2(g(x1,r))

在这个定义中,和取决于解的质量。因此,对于不同的质量,功能可能会有所不同。不一定总是需要这种通用性,我们只需使用和。ghrg(x1)h(x1,y2)

现在我们有了减少优化问题的想法,我们终于可以转移我们从复杂性理论中学到的许多知识。例如,如果我们知道中的并且显示那么它也将跟随中的。O2APXO1APO2O1APX

最后,我们可以定义 -hard和 -complete表示优化问题的含义:CC

让从优化-问题和一类的优化-从问题的然后被称为 -hard相对于如果对所有成立。ONPOCNPOOCAPOC OAPO

因此,我们再次有了班上最困难的问题的观念。并不奇怪一个 -hard问题称为 -complete相对于如果是的元素。CCAPC

因此,我们现在可以讨论和等。当然,现在要求我们展示第一个问题,该问题承担的角色。可以很自然地证明是完整的。借助PCP定理,甚至可以证明是。NPOAPXNPOSATWeightedSatisfiabilityNPOMaximum3SATAPX


11
哦,请为这篇较长的帖子接受我的道歉,但是我没有时间写一个简短的帖子。
乌里2012年

1
当然,最重要的一点是,通过PCP定理,您可以将MAX3SAT和SAT链接起来,从而表明,将MAX 3SAT逼近比某个常数要难于NP。从某种意义上讲,这相当于库克-莱文定理。
Suresh 2012年

1
@Suresh当然,但是据我所知,您提到的这个结果需要减少差距。而且,正如您已经在您的帖子中写到的那样,我不想在这里重复它们。
乌里

好答案,+ 1!我想知道您的答案是否基于某些参考?
蒂姆(Tim)

@Tim当然有书,我在另一个答案
uli 2012年

19

通常显示的是问题的“差距”版本的NP硬度。例如,假设您要显示很难将SET COVER近似为2的因数。

您定义了SET COVER的以下“ promise”实例,我们将其称为2-GAP-SET-COVER:

固定一些数字。2-GAP-SET-COVER包含所有封面的实例,其中最佳封面的大小为:

  • 最多
  • 至少2

假设我们表明确定一个问题属于两种情况的问题是NP完全的。然后,我们证明了将SET COVER逼近2倍是NP-hard的,因为我们可以使用这种算法来区分这两种情况。


4

现有的两个答案非常有帮助,但我认为它们中的任何一个都不能真正回答这个问题,即“当NP是一类决策问题时,哪怕不是决策问题的问题也很难解决? ?

答案是记住NP-hard的含义。如果将NP中的每个问题都可以简化为那么问题 在某种简化下是NP难的  。(如果  是NP困难的,则是NP完全的;在NP中是。)非正式地,NP困难的意思是“即使我能解决这个问题,我也能解决NP中的所有问题”,即使您正在谈论的问题是“ t在NP中。NP硬度不需要NP的成员身份,但确实需要还原的正确概念。LLL

一些例子。

  1. 在多项式时间多一减法下,任何NEXPTIME完全问题 都是NP难的。NP中的任何问题都在NEXPTIME中,因此可以定义为 根据时间层次定理,  不能在NP中,因此   不是NP完全的。LLLL
  2. #SAT是计算CNF公式的满意分配数量的问题。显然,它不在NP中,因为如您所见,NP是一类决策问题,而#SAT并不是其中的一个。但是,在多项式时间Turing约简下,#SAT是NP-hard的,因为我们可以将SAT降低到它。给定一个SAT实例,我们询问有多少令人满意的作业:如果至少有一个,则说“可满足”;否则为“无法满足”。
  3. 令APPROXSAT为计算数字的问题,该数字在CNF公式的满意分配数的十倍之内  。只是令人讨厌,假设您允许四舍五入,因此,如果  具有三个令人满意的分配,则该算法可以考虑为“ 0.3”并将其四舍五入为零。在多项式时间Turing约简下,这是NP难的,因为我们仍然可以将SAT降低到它。给定一个CNF公式 ,要求满足的满意分配数,其中  是新变量。 只有在  是的情况下,是可满足的,但是φ φφφφŽ φ ' φ φ ' φ φ 'φ=φ(Z1Z10)Ziφφφ  则保证具有1,000多个令人满意的分配。因此, 仅当APPROXSAT算法说  具有至少100个令人满意的分配时,才是可满足的。φφ
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.