寻找运算符满足布尔变量NP列表的问题是否完整?


11

这类似于SAT,除了我们知道每个变量的赋值,但不知道任何布尔运算符的赋值。在那种情况下,是否找到每个运算符的赋值,以便表达式对给定的布尔值求值是一个NPC问题?

实际上,我想知道是否找到算术运算符的分配来满足整数算术表达式(例如 = 10)是否完成了NP?1 1 ö p 1op1 3 3 ö p 2op2 7 7 ö p 3op3 ö p 4op4


2
因此,如果我理解正确,您就会知道该公式是可满足的,并且您想知道布尔运算符的赋值。只需将∨∨运算符分配给所有“运算符变量”即可。我不知道第二个问题,但这看起来很有趣。
— 乔治,

3
@GeorgeB:我认为解决方案不正确。如果所有布尔值都设置为false怎么办?这个问题很有趣,但是可能需要一些工作。我们从哪一组布尔运算符中选择?大概是指一个有趣的二进制布尔运算子集,例如{ ∨ ,∧ ,⇔ }{ ∨ ,∧ ,⇔ }。如果包括所有二进制布尔运算符,那么问题就微不足道-只需将常量映射选择为“ true”即可。
— 哈克·贝内特

1
正如哈克说,拾取X ö p 我 ý = 1对于所有我。但是,如果将运算符限制为特定集合,则该问题将更加有趣。对于算术情况类似。X Ò p一世ÿ= 1一世
— 卡夫

看来它可能与QBF有某种联系,或者可能减少了。可能会构造出一个QBF,当求解时,该QBF会给运算符。对?在快速检查中,看起来它可能是Pspace完整的...如果没有括号,还必须定义优先级。AND高于OR?该问题似乎更自然,也许可以定义括号/分组。
— vzn 2012年

@乔治B. 对不起,我没有说清楚。布尔表达式的评估可以是任何给定的布尔值,为0或1
— DSounders

Answers:


10

通过加减,我认为对NP困难的分区问题可以归结为第二个问题。

给定集合S = { s 1,s 2,… ,s n },我们创建问题小号= { s1个,秒2,… ,sñ}

小号1 ö p 1 小号2 ö p 2 小号3 ö p 3 ... ö p ñ - 1个小号ñ = 0。 s1个 Ø p1个 s2 Ø p2 s3 Ø p3 ... Ø pn − 1 sñ= 0

如果存在解决方案,我们将创建两个集合:

S 1 = { s 1 } ∪ { s i | o p i − 1 = + }小号1个= { s1个} ∪ { s一世| Ø pi − 1= + }

S 2 = { s i | o p i − 1 = − }小号2= { s一世| Ø pi − 1= - }

通过我们原始问题的设置,这两个集合必须具有相同的总和,因此可以解决分区问题。这表明不仅很难为该问题提供实际的解决方案,而且实际上NP也很难确定是否存在解决方案(至少对于加法和减法而言)。

对于不允许创建负整数的一组运算(例如乘法和加法),目前尚不清楚。而且,这仅表明该问题对NP的影响很弱。可能会产生比此更强的结果。


1
我认为您的证明可以很容易地适应× / ÷情况,只需将目标问题设置为s 1 … s n = 1即可。然后,一个解决方案意味着分母与分子相同(假设所有i的s i > 0)。当然,这不会给出四位运算符的情况,但随后我们还必须处理操作的顺序。× / ÷s1个… 秒ñ= 1s一世> 0一世
— 路加·马蒂森

谢谢,@ Sam和Luke。如果我们混合使用所有四个运算符怎么办?凭直觉拥有更多的运算符只会使问题变得更加复杂,但是我看不到直接的证明。
— DSounders 2012年

还在考虑所有四个。我们也可以轻松获得+ / ÷,但是一次仍然只有两个。+ / ÷
— 路加·马蒂森

1
另外,对于(强)的参考Ñ P产品分区的-completeness:“‘产品分区’和的调度和系统可靠性相关的问题:计算的复杂性和近似” sciencedirect.com/science/article/pii/S0377221710003905ñP
— 卢克梅赛森

4

简短的答案。SAT的运算符版本可以有效解决-至少,如果我们假设任意输入的门输入选择电路都没有扇出,则假设两个输入门的任意电路。

长答案。 我假设布尔问题的形式如下:

2棵树-OPSAT。给定一个输入X ∈ { 0 ,1 } Ñ为Ñ ⩾ 2和栅极组ģ由2输入一输出门,确实存在一个电路Ç在由门ģ其中接受X,也就是,这是给定输入x时是否满足(按顺序将x的位映射到电路C的叶子)?X ∈ { 0 ,1 }ñÑ ⩾ 2GCG XXXC

特别是,我们在电路C上没有施加任何特定的结构(除了是二叉树之外),不允许扇出(因此x的每个位仅使用一次),并且门可能是不对称的。通过仅允许两位门,我排除了非门(但是可以通过具有多个通过取反相互关联的门来模拟,例如与 / 与非;并且我也排除那些只输出没有输入常数的常数的门,使门电路中的数量将实际上总是ñ - 1用于ñ位输入为简洁起见,我将提到。2-TREE-OPSAT以下简称为CXn − 1ñOPSAT ; 尽管对于允许任意k输入门(k-TREE-OPSAT)或允许扇出(我们可能称为k-FANOUT-OPSAT)的电路,问题的分析可能变得更加困难。

[ 编辑补充:我们可以很容易适应这种考虑你的问题的当前版本中,我们试图映射一个给定的更普遍的问题X ∈ { 0 ,1 } *为目标值b ∈ { 0 ,1 },在以下分析中互换0和1的角色;这具有互换的作用的效果AND和OR,NAND和NOR,等 ] X ∈ { 0 ,1 }∗b ∈ { 0 ,1 }01个

对于的固定选择,选择具有合适门的合适树的问题与逻辑分离无异:使用诸如等价物 我们可以在将更复杂的门集与简单(且功能强大)的门集相关的集合之间执行归约。一个人可以说,通过明智地选择某些元素(与特定的输入一起显示),与一个门具有相同的效果,一个门集能够模仿不属于该门集的其他门。。特别是,门的某些组合(例如)可以模拟常数函数,得出X ∈ { 0 ,1 } Ñ OR(X ,ÿ )X ∈ { 0 ,1 }ñ≡( AND(x,y)∨PARITY(X ,ÿ )) ģ ģ ∉ ģ { OR,NAND } 1

要么(x ,y)≡(和(x ,y)∨平价(x ,y))
G摹∉ g ^{ 或,NAND }1个:我们说这样的门集是互斥的。

我们通过考虑包括不同类型的门门集,随后从以后的分析案例中排除那些门来表明,涉及任何一个门的门集都会导致一个棘手的问题。我们将从满足恒定门数的两位串的数量顺序开始,从常数门到常数门开始。G 1 0G1个0

  1. 对于包含常数门任何门集合,我们可以仅使用该门简单地构建电路,在这种情况下接受任何。G G (x ,y )= 1 C C xGģ (X ,ÿ)= 1CCX

  2. 或和与非。对于包含任何门集:如果所有其他门满足,那么选择任何其他门没有任何优势,但在构建电路。只有门的电路可以接受除外的任何字符串。否则,存在一个门使得是互斥的。因此,带有任何OPSAT实例都是容易的;并且类似的注释适用。ģ OR ģ ∈ ģ ģ (X ,ÿ )G要么g ^ ∈ g ^⟹OR(X ,ÿ )OR Ç OR X ∈ 0 * g ^ ∈ ģ { g ^ ,OR } OR ∈ ģ NAND ∈ ģģ (X ,ÿ)⟹要么(x ,y)要么C要么X ∈ 0∗g ^ ∈ g ^{ g ^ ,OR }OR ∈ g ^NAND ∈ ģ

  3. 隐含的门。考虑门,如果,则仅输出零。对于接下来的内容,类似的分析将适用于门。 考虑任何字符串。如果端部,分解入形式的子串 ; 在每个这样的,我们从右到左递归应用,这对于每个产生输出。(对于长度为1的子字符串,我们使用琐碎的电路,即不理会该输入。)类似地,如果ģ (X ,ÿ )= ¬ X ∨ Ý (X ,Ý )= (1 ,0 )ģ '(X ,ÿ )= X ∨ ¬ ý X ∈ { 0 ,1 } Ñ X 0 X 瓦特Ĵ = 1 * 0 w j G 0 w j x 1 x wģ (X ,ÿ)= ¬ X ∨ ÿ(x ,y)= (1 ,0 )G′(x ,y)= X ∨ ¬ ÿ

    X ∈ { 0 ,1 }ñX0XwĴ= 1∗0wĴG0wĴX以结尾,将分解为形式的子字符串,然后对每个从左到右递归应用,这将为每个产生输出。因此,我们可以将问题简化为构建满足或,其中是子串或。对于,我们可以通过从左到右递归应用来接受使用门。只是这样1个XĴ = 0 * 1 ģ 瓦特Ĵ 1 瓦特Ĵ 0 米1 米米1 * 0 0 * 1 米⩾ 2 ģ ģ 米= 1 X ∈ 1 * 0 X = 1 * 0 ģ 1 * 0 0 ģ ħ ∈ ģ ħ (1 ,0 )= 1 { g ^ ,ħwĴ= 0∗1个GwĴ1个wĴ0米1个米米1个∗00∗1个米⩾ 2GGm = 1,对于有问题的情况,输入。对于,任何仅由门组成的电路将只产生形式为较短的串,最终产生单位串:因此,门不能满足任何电路此输入。如果还存在一个门其,则是异体的;或者,如果存在一个门中的,我们可以简化形式为字符串X ∈ 1∗0

    x = 1∗0G1个∗00GH∈ g ^H(1 ,0 )= 1} ħ ∈ ģ ħ (1 ,1 )= 0 11 * 0 (1 * 0 )* H ^ X X ∈ 1 * 0 ģ{ G ,H}H∈ g ^H(1 ,1 )= 011∗0通过将应用于前两位,将字符串转换为形式的字符串。否则,将无法构造接受。 因此,对于包含蕴含类门的任何门集 math,OPSAT是容易的。(1∗0 )∗HXX ∈ 1∗0

    G

  4. 否定投影。考虑门和。我们认为与的分析相似。就其本身而言,可以接受任何字符串为通过减少最终位以单个比特,然后应用 ; 并且它可以通过将最后的位减少为一位,然后应用电路类似地,对接受¬ π 1(X ,ÿ )= ¬ X ¬ π 2(X ,ÿ )= ¬ Ý ¬ π 1 ¬ π 2 ¬ π 1 0 (0 | 1 )ñ - 1 ñ ⩾ 2 Ñ - 1 ¬ π 1 1 (0 | 1 )ñ - 1 ñ ⩾ 3¬ π1个(x ,y)= ¬ X¬ π2(x ,y)= ¬ ÿ¬ π1个¬ π2¬π10(0|1)n−1n⩾2n−1¬π11(0|1)n−1n⩾3ñ - 2 ¬ π 1(¬ π 1(X 1,X 2),X 3)¬ π 1 10 11n−2¬π1(¬π1(x1,x2),x3)。电路不能接受的唯一输入为或;确定任何补充门是否接受这些都是微不足道的。因此,OPSAT对于投影的求反很容易。¬π11011

  5. 奇偶与平等。考虑门。门集显然只能由奇数1s 的字符串精确地满足;我们考虑添加任何其他门的好处。PARITY(X ,Ý )= (X ∨ ¬ Ý )∧ (¬ X ∨ Ý )ģ = { PARITY } X ∈ { 0 ,1 } ÑPARITY(x,y)=(x∨¬y)∧(¬x∨y)G={PARITY}x∈{0,1}n

    • 任何同时包含和或 都可以模拟分别为固定输入包含 或门的电路。OPSAT的简单案例。PARITY 与NOR(X ,ÿ )= ¬ (X ∨ Ý )OR NANDPARITYANDNOR(x,y)=¬(x∨y)ORNAND
    • 任一或可用于任一模拟或上偶校验的两比特串,以便我们可以减少与这些栅极集门和到前面的情况。π 1(X ,ÿ )= X π 2(X ,ÿ )= ÿ AND NOR PARITYπ1(x,y)=xπ2(x,y)=yANDNORPARITY
    • PARITY EQUAL = ¬ PARITYPARITY与是不言而喻的。EQUAL=¬PARITY
    • 如果我们补充与栅极,我们可以接受除了任何偶数奇偶校验串通过施加,以的字符串,然后将电路应用于其余部分。类似地,与可以接受任何字符串,但形式为字符串除外。同时使用和补充允许我们构建接受除和PARITY ģ 01 = ¬ X ∧ Ý X ∈ (11 )* 0 * ģ 01 01 X PARITY PARITY ģ 10 = X ∧ ¬ ý X ∈ 0 *(11 )* PARITY ģ 01 ģ 10 X ∈ 0 * X = 11PARITYG01=¬x∧yx∈(11)∗0∗G0101xPARITYPARITYG10=x∧¬yx∈0∗(11)∗PARITY。
    • 最后,如果我们用常数门补充,则可以通过将门应用于来接受除或之外的任何输入。子字符串或,减少为奇校验位。PARITY Ž (X ,ÿ )= 0 X ∈ (11 )* X ∈ 0 * ģ 01 10

    因此,OPSAT对于任何包含 math都是容易的。门和门也适用类似的分析:因为,电路的门基本上计数的数目的奇偶性 S IN的输入端。然后,我们可以通过交换和的分析减少为的分析。ģ PARITY EQUAL PARITY EQUAL(X ,ÿ )= ¬ PARITY(X ,ÿ )= ¬ PARITY(¬ X ,¬ ÿ )EQUAL 0 EQUAL PARITY 0 1

  6. 投影门。使用的门和只能建立分别接受以开头或结尾的字符串的电路。考虑用其他任何门来增加门的效果(类似的分析适用于):π 1(X ,ÿ )= X π 2(X ,ÿ )= ÿ 1 π 1 π 2

    • 同时允许和可以构建“选择”电路,该电路仅从输入中输出任何一位。这些可以接受任何,并与任何补充栅极他们针对允许满意电路用于任何建造。π 1 π 2 X ≠ 0 Ñ ģ ģ (0 ,0 )= 1 X
    • 如果我们用或补充,我们可以为固定输入模拟或类似蕴含的门;这两种情况都解决了OPSAT问题。π 1 NOR g ^ 01 = ¬ X ∧ ÿ OR
    • 如果我们给添加,,常数门或它们的任意组合,我们将没有额外的接受能力,因此我们仍然只能接受以开头的字符串。π 1 和G ^ 10 = X ∧ ¬ Ý Ž (X ,Ý )= 0 1

    因此,对于其他任何门,我们都可以用(或)来补充,我们要么获得一个集,要么仅获得(或)就没有额外的接受能力,或者可以简化为更简单的OPSAT情况。然后的任何实例OPSAT与或是容易的。π 1 π 2 π 1 π 2 π 1 ∈ ģ π 2 ∈ ģ

  7. 三角函数门。考虑只有两个输入的两个门的满足:,,和。仅用门构成的电路只能接受字符串:用任何其他增量函数门进行补充可以使它们模拟,或,这是解决的情况;类似的说明适用于。同样,门集也可以用来模拟与NOR g ^ 10(X ,ÿ )= X ∧ ¬ Ý ģ 01(X ,ÿ )= ¬ X ∧ ý AND 1 * EQUAL π 1 π 2 NOR { G ^ 01,G ^ 10 } PARITY ģ 10 ģ 01 ż (X ,y )= 0 G 10 G 01门。因此,我们可能专注于门或,可能会加上门。我们关注,而情况与此类似。通过将任意电路应用于最后的位,然后应用电路可以构建仅由电路以接受(字符串除外)。。显然,字符串不能被或;我们可以通过归纳证明任何

    ģ 10 1 (0 | 1 )ñ - 1个 11 ñ - 2 G ^ 10(X 1,G ^ 10(X 2,X 3))11 ģ 10 ż ģ 10 1 ž ģ 10 X ∈ 1 (0 | 10 | 11 )(0 | 1 )∗接受字符串的电路必须在最左边的分支中的门的中间结果全部产生,直到最左边的输入本身为止。通过添加门无法获得额外的好处。因此,电路只能接受。

  8. 最后,仅由门组成的电路不接受任何输入。ž

当每个门都产生一个定义明确且通常相当大的输入类别时,随着其他门趋于平息这个问题,我们发现2-TREE-OPSAT在P中。


1
@DSounders:关于您最近对问题的修订,确定是否存在将映射到某个目标值的电路,而不仅仅是特殊情况,如我现在的答案所示的分析仍然足以表明问题在P中 ; 只有大门的作用改变了。例如,在交换期望的结果和,我们有效地交换了AND和OR,NAND和NOR,类似于蕴涵的门与其他delta函数等的角色Ç X b ∈ { 0 ,1 } b = 1 0 1
— Niel de Beaudrap 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.