减少卡普是否等于减少莱文


12

定义:减少卡普

甲语言是卡普还原为一个语言如果有一个多项式时间计算函数,使得对于每个,当且仅当。乙˚F :{ 0 ,1 } * → { 0 ,1 } * X X ∈ 甲˚F (X )∈ 乙ABf:{0,1}∗→{0,1}∗xx∈Af(x)∈B

定义:减少莱文

一个搜索问题是莱还原为一个搜索问题如果有多项式时间函数该卡普降低至和有多项式时间可计算函数和使得V B f L (V A)L (V B)g hVAVBfL(VA)L(VB)gh

  1. ⟨x,y⟩∈VA⟹⟨f(x),g(x,y)⟩∈VB,

  2. ⟨f(x),z⟩∈VB⟹⟨x,h(x,z)⟩∈VA

这些减少是否相等?


我认为这两个定义是等效的。对于任何两个语言和,如果是卡普还原为,然后是莱还原为。 A B A B A BNPABABAB

这是我的证明:

令和是任意实例,而是任意实例。假设和是核查员和。根据令和是和任意证书。根据,令为。‾ X甲X '乙V 甲V 乙甲乙ÿ ¯ ÿ X ‾ X V 甲 ž X ' V 乙xx¯Ax′BVAVBAByy¯xx¯VAzx′VB

使用新证书和构造新的验证程序和: V ' 乙 ý ' ž 'VA′VB′y′z′

VA′(x,y′):

  1. ˚F (X )≠ ˚F (¯ X)V 甲(¯ X,¯ ÿ)y′=⟨0,x¯,y¯⟩:如果,则拒绝。否则输出。f(x)≠f(x¯)VA(x¯,y¯)
  2. V 乙(˚F (X ),Ž )y′=⟨1,z⟩:输出。VB(f(x),z)

VB′(x′,z′):

  1. V 乙(X ',Ž )z′=⟨0,z⟩:输出。VB(x′,z)

  2. X ' ≠ ˚F (X )V 甲(X ,ÿ )z′=⟨1,x,y⟩:如果,则拒绝。否则输出。x′≠f(x)VA(x,y)

多项式时间可计算函数和定义如下:^ hgh

g(x,y′)

  1. ⟨ 1 ,¯ X,¯ ÿ ⟩y′=⟨0,x¯,y¯⟩:输出。⟨1,x¯,y¯⟩

  2. ⟨ 0 ,ž ⟩y′=⟨1,z⟩:输出。⟨0,z⟩

h(x′,z′)

  1. ⟨ 1 ,ž ⟩z′=⟨0,z⟩:输出。⟨1,z⟩

  2. ⟨ 0 ,X ,ÿ ⟩z′=⟨1,x,y⟩:输出。⟨0,x,y⟩

让是集合所有证书的根据和是集合所有证书的根据。然后根据的的所有证书为,使得,并且根据的的所有证书的为,因此。 X V 甲ž X ' X ' V 乙 X V ' 甲 0 ‾ X ÿ ¯ X + 1个ž ˚F (X ) ˚F (X )= ˚F (¯ X)X ' V ' 乙 0 ž X ' + 1 ¯ X ÿ ¯ X X ' = ˚F (¯YxxVAZx′x′VBxVA′0x¯Yx¯+1Zf(x)f(x)=f(x¯)x′VB′0Zx′+1x¯Yx¯x′=f(x¯)

(这是从和的接受语言。) V ' 乙VA′VB′

现在让,其余部分易于检查。x′=f(x)


在证明您的主张之前,您应该定义一种可以被Levin还原为另一种语言的语言的含义。
— 伊藤刚(Tsuyoshi Ito)

Answers:


14

不需要。首先要注意的是,仅对于具有证书含义的类别,才有意义使用Levin缩减,例如而Karp缩减是通用的。仅当验证者固定后,问题的“证明”一词才有意义。Levin的简化假设验证者是固定的。您无法更改验证者。(在下文中,我假设证书验证者是根据Levin reduction的定义而固定的。)NP

其次,列文减少意味着一个人可以从另一个人的证书中找到一个人的证书。的确,众所周知,自然问题之间的Karp归约是Levin归约,但是一般来说并不需要如此。

如果我们可以将问题实例简化为问题B,这并不意味着我们有一种方法可以从另一个证书计算证书。AB

为了做到这一点,我们需要一个事实,即与决策问题相对应的证书搜索问题可简化为决策问题的多项式时间。这对于为真问题,但不知道通常甚至是真实Ñ P的问题。NP-completeNP


我同意你的第一点,即减少Karp比减少Karp更普遍。据此,我认为我的问题应该修改为“让和L 2为N P中的两种语言。如果L 1可将Karp还原为L 2,则L 1可以将Levin还原为L 2”。但是,我不同意您的其他评论。L1L2NPL1L2L1L2
— cc

L1L2NPM1M2x∈L1YxTM1Zx′x′∈L2L1L2f按照定义。
— cc

M1′M2′x∈L10Yx+1Zf(x)f(x)∈L20Zf(x)+1xYxM1′M2′gh

x′∈L2x∈L1x′=f(x)

@cc,似乎您仍然认为可以更改验证者,但不能,Levin reduction的定义是针对搜索问题,即验证者是固定的。
— 卡夫

5

x1,x2∈L1f(x1)=f(x2)∈L2wx1x2

M1′(x1,⟨0,w⟩)=M1(x1,w)=1

M1′(x2,⟨0,w⟩)=M1(x2,w)=0

g(x1,⟨0,w⟩)=⟨1,x1,w⟩

f(x1)=f(x2)M2′(f(x2),⟨1,x1,w⟩))=M1(x1,w)=1⟨1,x1,w⟩f(x2) 但

h(f(x2),⟨1,x1,w⟩)=⟨0,w⟩x2


非常感谢您指出反例。我已经修改了结构,现在可以使用了。你能看看吗?
— cc
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.