부울 변수 NP를 만족시키는 연산자를 찾는 데 문제가 있습니까?


11

이것은 각 변수의 할당은 알고 있지만 부울 연산자의 할당은 알지 못한다는 점을 제외하고는 SAT와 유사합니다. 이 경우 각 연산자의 할당을 찾고 있으므로식이 주어진 부울 값으로 NPC 문제를 평가합니까?

실제로, 정수 산술 표현 (예 : = 10) 을 만족시키기 위해 산술 연산자의 할당을 찾는 것이 NP가 완전한지 궁금합니다.11 op1op1 33 op2op2 77 op3op3 op4op4


2
따라서 내가 올바르게 이해하면 수식이 만족스럽고 부울 연산자의 할당을 알고 싶습니다. 모든 "연산자 변수"에 연산자를 지정하면 됩니다. 두 번째 문제에 대해서는 잘 모르지만 흥미로워 보입니다.
조지

3
@ GeorgeB : 해결책이 정확하다고 생각하지 않습니다. 모든 부울 값이 false로 설정되면 어떻게됩니까? 이 질문은 흥미롭지 만 약간의 작업이 필요할 수 있습니다. 어떤 부울 연산자 세트를 선택합니까? 아마도 와 같은 이진 부울 연산자의 흥미로운 부분 집합을 의미 할 것 입니다. 모든 이진 부울 연산자를 포함하면 문제는 사소한 것입니다-상수 맵을 'true'로 선택하십시오. {,,}{,,}
Huck Bennett

1
Huck이 말했듯 이 모든 대해 을 선택하십시오 . 그러나 연산자를 특정 세트로 제한하면 질문이 더 흥미로울 것입니다. 산술 사례와 유사합니다. x o p i y = 1 ixopiy=1i
Kaveh

이것은 QBF와의 연결이 있거나 축소되었을 수 있습니다. 아마도 QBF는 해결되면 운영자에게 제공하는 것으로 구성 될 수 있습니다. 권리? 빠른 검사에서 Pspace 완료가 될 수있는 것처럼 보입니다 ... 괄호가 없으면 우선 순위를 정의해야합니다. 그리고 OR보다 높습니까? 괄호 / 그룹을 정의 할 수있을 때 문제가 더 자연스럽게 보입니다.
vzn

@GeorgeB. 명확하지 않은 것이 유감입니다. 부울 표현식의 평가는 0 또는 1의 지정된 부울 값일 수 있습니다.
DSounders

답변:


10

덧셈과 뺄셈을 사용하면 NP 문제인 Partition 문제 가 두 번째 문제로 줄어 듭니다.

S = { s 1 , s 2 , , s n } 세트가 주어지면 문제가 발생합니다.S={s1,s2,,sn}

s 1 o p 1 s 2 o p 2 s 3 o p 3o p n - 1 s n = 0 . s1 op1 s2 op2 s3 op3 opn1 sn=0

솔루션이 존재하면 두 세트를 만듭니다.

S 1 = { s 1 } { s i | O P I - 1 = + }S1={s1}{si|opi1=+}

S 2 = { s i | O P I - 1 = - }S2={si|opi1=}

이 두 세트는 원래 문제를 설정하여 동일한 합계를 가져야하므로 파티션 문제가 해결됩니다. 이것은이 문제에 대한 실제 해결책을 열심히 제시 할뿐만 아니라 실제로 솔루션이 존재하는지 여부를 결정하는 것이 어렵습니다 (적어도 덧셈과 뺄셈).

곱셈과 덧셈과 같은 음의 정수 생성을 허용하지 않는 일련의 연산의 경우 명확하지 않습니다. 또한 이것은 문제가 약하게 NP-hard라는 것을 보여줍니다. 이보다 더 강한 결과를 제공하는 축소가있을 수 있습니다.


1
나는 당신의 증명이 × / ÷ 케이스에 상당히 쉽게 적용될 수 있다고 생각합니다 . 목표 문제를 s 1s n = 1로 설정하십시오 . 그런 다음 해는 분모가 분자와 같다는 것을 암시합니다 ( 모든 i에 대해 s i > 0으로 가정 ). 물론 이것은 네 가지 연산자 사례를 제공하지는 않지만 작업 순서를 처리해야합니다. ×/÷s1sn=1si>0i
Luke Mathieson

감사합니다, @Sam과 Luke. 네 명의 연산자를 모두 혼합하면 어떻게됩니까? 직관적으로 더 많은 연산자를 사용하면 문제가 더 복잡해 지지만 직접적인 증거는 없습니다.
DSounders

여전히 네 가지 모두에 대해 생각하고 있습니다. + / ÷도 쉽게 얻을 수 있지만 한 번에 두 개만 남아 있습니다. +/÷
Luke Mathieson

1
또한 제품 파티션 의 (강력한) N P 완전성에 대한 참조 : ""제품 파티션 "및 예약 및 시스템 안정성 관련 문제 : 계산 복잡성 및 근사" sciencedirect.com/science/article/pii/S0377221710003905NP
Luke Mathieson

4

짧은 답변. SAT 의 운영자 버전 은 효율적으로 해결할 수 있습니다. 적어도 원하는 게이트 세트 선택에 대해 팬 아웃이없는 2 입력 게이트의 임의 회로를 가정하면 가능합니다.

긴 대답입니다. 부울 문제의 다음 형식을 가정합니다.

2- 트리 OPSAT. 주어진 입력 X { 0 , 1 } , NN 2 게이트 세트 G 회로가 존재하지 않는 2 입력 단일 출력 게이트들로 구성된 C 에 게이트 이루어진 G 받아 X를 이다, 입력 x ( 회로 C 의 잎에 x의 비트를 순서대로 매핑) 가 주어지면 만족 합니까?x{0,1}nn2GCG xxxC

특히, 우리 는 (이진 트리는 제외 하고) 회로 C 에 특별한 구조를 부과하지 않으며 , 팬 아웃을 허용하지 않으므로 ( x의 각 비트가 한 번만 사용되도록) 게이트가 비대칭 적 일 수 있습니다. 2 비트 게이트 만 허용함으로써 NOT 게이트 는 제외 하지만 ( AND / NAND 와 같은 부정에 의해 서로 관련된 여러 게이트를 가짐으로써 시뮬레이션 할 수 있음) 입력없이 상수를 간단히 출력하는 게이트도 제외합니다. 따라서 회로의 게이트 수는 실제로 n 비트 입력의 경우 항상 n - 1이 됩니다 . 간결성을 위해 아래에서는 다음과 같이 간단히 2-TREE-OPSAT 를 참조합니다.Cxn1nOPSAT ; 임의의 k- 입력 게이트 ( k-TREE-OPSAT )를 허용하거나 팬 아웃 ( k-FANOUT-OPSAT이라고도 함 )을 허용하는 회로에서는 문제 분석이 훨씬 어려워 질 수 있습니다 .

[ 추가 편집 : 우리는 주어진 x { 0 , 1 } 를 목표 값 b { 0 , 1 에 매핑하려고 시도하는 현재 수정 질문의 더 일반적인 문제를 고려하도록 이것을 쉽게 조정할 수 있습니다. } , 아래 분석에서 01 의 역할을 교환함으로써 ; 이것의 역할이 상호 교환 효과 갖는 ANDOR , NAND을 하고 NOR , ] x{0,1}b{0,1}01

x { 0 , 1 } n 의 고정 된 선택의 경우 , 적절한 게이트를 가진 적합한 트리를 선택하는 문제는 논리적 분리와 다르지 않습니다 : OR ( x , y ) 와 같은 등가를 사용 x{0,1}n( AND(x,y)PARITY ( x , y ) ) 더 복잡한 게이트 세트와 관련된 컬렉션 사이를 단순하고 강력한 게이트 세트로 축소 할 수 있습니다. 현명 일부 요소를 선택하여, 설정에 속하지 않는 다른 게이트를 에뮬레이트 할 수있는 하나 개의 게이트 세트 말할 수 G 게이트와 동일한 효과 (특정 입력을 제공 할 때)를 갖는다 G G를 . 특히 게이트의 특정 조합 (예 : { OR , NAND } )은 상수 함수 1을 생성하는 시뮬레이션을 시뮬레이션 할 수 있습니다. 이러한 게이트 세트는tautologous입니다.

OR(x,y)(AND(x,y)PARITY(x,y))
GGG{OR,NAND}1

우리는 다른 유형의 게이트 G를 포함하는 게이트 세트를 고려하여 나중에 분석의 이후 사례에서 해당 게이트를 제외하고 게이트 중 하나를 포함하는 게이트 세트가 다루기 힘든 문제를 초래한다는 것을 보여줍니다. 상수 1 게이트에서 상수 0 게이트 까지 문제의 게이트를 만족시키는 2 비트 스트링의 순서로 진행합니다 .G10

  1. 상수 게이트 G ( x , y ) = 1 을 포함하는 모든 게이트 세트 G에 대해 게이트 만 사용하여 회로 C 를 구축 할 수 있습니다 .이 경우 Cx를 받아들 입니다.GG(x,y)=1CCx

  2. OR과 NAND. 모든 게이트 집합 G 포함 OR : 기타 모든 게이트 G G 충족 G ( X , Y )GORGGOR ( x , y ) 이면회로 C 를 구축 할 때 OR 이외의 다른 게이트를 선택하면 이점이 없습니다. OR 게이트만있는 회로는 x 0 ∗를 제외한 모든 문자열을 허용합니다. 그렇지 않으면,이 게이트 존재 G G 되도록 { G는 , OR } tautologous이다. 의 인스턴스 그래서OPSAT ORG는 간단합니다; NANDG에 대해서도 비슷한 언급이 적용됩니다.G(x,y)OR(x,y)ORCORx0GG{G,OR}ORGNANDG

  3. 시사점 같은 게이트. 게이트 G ( x , y ) = ¬ x y를 고려하십시오. ( x , y ) = ( 1 , 0 ) 이면 0 만 출력합니다 . 다음 것을 위해 유사한 분석을 적용한다 게이트 G ' ( X , Y ) = (X) ¬ Y . 문자열 x { 0 , 1 } n을 고려하십시오 . 만약 XG(x,y)=¬xy(x,y)=(1,0)G(x,y)=x¬y

    x{0,1}nx0으로 끝나고 xw j = 1 * 0 형식의 하위 문자열로 분해합니다 . 이러한 각각의 w J 우리 재귀 적용 G를 출력 산출 왼쪽 오른쪽 0을 각각 w J . 만약, 마찬가지로 (길이 1의 스트링을 위해, 우리는. 즉만으로는 입력을두고 사소한 회로를 사용) 의 X 만료 분해 X 형태의 문자열로 w J = 0 * 1 , 재귀 적용 G를 왼쪽에서 각각에0xwj=10wjG0wjx1xwj=01Gw J 출력 산출, 1 w J를 . 따라서, 우리가 어느 만족되는 회로를 구축하는 문제를 줄일 수 0 m 또는 1 m , m은 서브 스트링들의 수이고 1 * 0 또는 0 * 1 . 들면 m 2 우리는 사용하거나 수락 할 수 G의 반복적 적용에 의해 게이트 G를 왼쪽에서 오른쪽. 이것은 단지 m = 1 의 경우를 남겨두고문제가되는 경우는 입력 x 1입니다.wj1wj0m1mm1001m2GGm=1* 0 . 들면 X = 1 * 0 만 구성된 모든 회로 G의 유일한 형태의 짧은 스트링 수득한다 게이트 1 * 0 궁극적으로 단일 비트 열 수득 0 그래서 어떠한 회로 것을 G의 게이트는이 입력에 의해 만족 될 수 없다. 이 경우에도, 게이트 H G 되는 H ( 1 , 0 ) = 1 다음, { G , H가 } tautologous된다; 또는 게이트 H 가있는 경우x10

    x=10G100GHGH(1,0)=1{G,H}G가 있는 H ( 1 , 1 ) = 0 , 우리는 폼의 문자열 줄일 수 11 * 0 형태의 문자열 ( 1 * 0 ) * 적용하여 H를 첫 번째 두 비트 (X) . 그렇지 않으면 x 1 0을 받는 회로를 구성 할 수 없습니다. 따라서,의미와 같은 게이트를 포함하는모든 게이트 세트 G에 대해,OPSAT가 용이하다.HGH(1,1)=0110(10)Hxx10

    G

  4. 투영의 부정. 게이트 ¬ π 1 ( x , y ) = ¬ x¬ π 2 ( x , y ) = ¬ y를 고려하십시오 . 우리는 ¬ π 1 , ¬ π 2 와 유사한 분석을 고려 합니다. 자체적으로 ¬ π 1n 2에 대해 0 ( 0 | 1 ) n - 1의 문자열을 허용 할 수 있습니다.¬π1(x,y)=¬x¬π2(x,y)=¬y¬π1¬π2¬π10(0|1)n1n2최종 환원하여 N을 - 1 도포 후 단일 비트 비트 및 ¬ π 1 ; 마지막 n - 2 비트를 단일 비트로 줄이고 회로 ¬ π 1 ( ¬ π 1 ( x 1 , x 2 ) 를 적용하여 n 3 에 대해 1 ( 0 | 1 ) n - 1 을 비슷하게 받아 들일 수 있습니다. , x 3 ) . 유일한 입력이 ¬n1¬π11(0|1)n1n3n2¬π1(¬π1(x1,x2),x3)π 1 회로는 10 또는 11을 수용 할 수 없다. 보조 게이트가이를 허용하는지 결정하는 것은 사소한 일입니다. 따라서OPSAT는 예측을 부정하기가 쉽다.¬π11011

  5. 패리티와 평등 . 게이트 패리티 ( x , y ) = ( x ¬ y ) ( ¬ x y )를 고려하십시오 . 게이트 세트 G = { PARITY }는 분명히 홀수 1의 문자열 x { 0 , 1 } n 만으로 정확하게 만족 될 수 있습니다 . 다른 게이트를 추가 할 때의 이점을 고려합니다.PARITY(x,y)=(x¬y)(¬xy)G={PARITY}x{0,1}n

    • 모두 포함하는 모든 게이트 세트 PARITY 및 하나 AND 또는 NOR ( X , Y ) = ¬ ( X Y ) 함유 회로 시뮬레이션 할 OR 또는 NAND의 완벽한 경우 고정형 입력을위한 게이트 (각각)를 OPSAT .PARITYANDNOR(x,y)=¬(xy)ORNAND
    • 어느 π 1 ( X , Y ) = X 또는 π (2) ( X , Y ) = Y는 어느 시뮬레이션하는데 사용될 수 AND 또는 NOR 우리는이 게이트와 게이트 세트를 줄일 수 있도록, 짝수 패리티 2 비트 문자열과 앞의 경우에 대한 패리티 .π1(x,y)=xπ2(x,y)=yANDNORPARITY
    • PARITY EQUAL = ¬ PARITY 는 서로 유사합니다.PARITYEQUAL=¬PARITY
    • 우리가 보충하면 PARITY 게이트와 G 01 = ¬ X Y가 우리 제외한 모든 짝수 패리티 열을 받아 들일 수 X ( 11 ) * 0 * 적용하여 G 01 (A)에 01 의 -substring X 후 적용 PARITY의 회로 나머지. 마찬가지로, PARITY 함께 G 10 = X ¬ Y는 폼을 제외한 문자열을 수락 할 수 X 0 * (PARITYG01=¬xyx(11)0G0101xPARITYPARITYG10=x¬y11 ) . G 01 G 10으로 PARITY 를보완하면 x 0 x = 11을 제외한 모든 입력을 수용하는 회로를 구축 할 수있습니다.x0(11)PARITYG01G10x0x=11
    • 마지막으로, 보충 경우 패리티 상수 게이트와 Z ( X는 , Y는 ) = 0 우리 제외한 모든 입력을받을 수 있으며, X ( 11 ) * 또는 X 0 * 함으로써 G의 하위 문자열에 게이트가 01 또는 10를 , 환원 홀수 패리티 사건.PARITYZ(x,y)=0x(11)x0G0110

    따라서 OPSATPARITY를 포함하는 모든 G에 대해 쉽습니다 . 유사한 분석을 적용 EQUAL 로써 게이트 PARITY의 게이트 : 때문에 EQUAL ( X , Y ) = ¬ PARITY ( X , Y ) = ¬ PARITY ( ¬ X , ¬ Y가 ) 의 회로 EQUAL의 게이트는 본질적의 패리티를 계산 입력에서 0 의 수 그런 다음 EQUAL에 대한 분석을 줄일 수 있습니다GPARITY

    EQUALPARITYEQUAL(x,y)=¬PARITY(x,y)=¬PARITY(¬x,¬y)EQUAL0EQUAL01 을 교환함으로써 PARITY동등 합니다 .PARITY01

  6. 프로젝션 게이트. 게이트 π 1 ( x , y ) = xπ 2 ( x , y ) = y 는 자체적으로 취하여 각각 1로 시작하거나 끝나는 스트링을 받아들이는 회로 만 만들 수 있습니다 . 다른 게이트로 게이트 π 1 을 확장 하는 효과를 고려하십시오 ( π 2에 대한 유사한 분석이 유지됨 ).π1(x,y)=xπ2(x,y)=y1π1π2

    • π 1π 2를 모두 허용하면 "선택"회로를 구성 할 수 있으며 입력에서 단일 비트 만 출력합니다. 이것은 모든 x 0 n을 수용 할 수 있으며 G ( 0 , 0 ) = 1 인 게이트 G 를 보완하여 모든 x에 대해 만족스러운 회로를 구축 할 수 있습니다 .π1π2x0nG
    • π 1NOR 또는 G 01 = ¬ x y로 보충 하면 OR 또는 고정 입력에 대한 함의 유사 게이트를 시뮬레이션 할 수 있습니다 . 이 두 경우 모두 OPSAT 가 해결되었습니다.
    • AND , G 10 = x ¬ y , 상수 게이트 Z ( x , y ) = 0 또는 이들의 조합으로 π 1 을 보충하면 추가 수용 전력을 얻지 못하므로 여전히 문자열 만 수락 할 수 있습니다 1로 시작합니다 .

    따라서, 다른 게이트 위해 우리는 보충 수 π 1 (또는 π 2 ), 우리는 중 하나 tautologous 세트를 획득 바로 위에 별도의 수용 능력을 획득하지 π 1 (또는 π 2 ) 또는 이전 쉬운 경우에 감소시킬 OPSAT . 그런 다음 임의의 인스턴스 OPSATπ 1G 또는 π 2G는 쉽다.

  7. 델타 기능 게이트. AND , NOR , G 10 ( x , y ) = x ¬ yG 01 ( x , y ) = ¬ x y 와 같이 하나의 입력 만있는 2 비트 게이트를 고려하십시오 . AND 게이트 로만 만든 회로는 문자열 1 만 허용합니다. * : 다른 델타 기능 게이트로 보완하면 EQUAL , π 1 또는해결 된 경우 인 π 2 ; NOR 에도 비슷한 설명이 적용됩니다. 또한, 게이트 세트 { G 01 , G 10 } 을 사용하여 패리티 게이트를시뮬레이션 할 수도 있습니다. 따라서 게이트 G 10 또는 G 01 에 초점을 맞출 수있으며 게이트 Z ( x , y ) = 0으로 보완 될 수 있습니다. 우리는 G 10 에 중점을 두 었으며 , G 01 의 경우도 비슷합니다. G 10 만으로만들어진 회로는수용 가능하도록 제작 될 수 있습니다

    마지막 n - 2 비트에임의의 회로를적용한 다음 회로 G 10 ( x 1 , G 10 ( x 2 , x 3 ) ) 을 적용하여 문자열 11을 제외한 1 ( 0 | 1 ) n - 1 입니다. 분명히, 문자열 11 G 10 또는 Z에 의해받아 들여질 수 없습니다. 그리고 우리는 G 10이스트링을 받아들이는 회로는 가장 왼쪽에있는 게이트의 중간 결과를 가져야하며, 가장 왼쪽 입력 자체까지 1을 산출 해야합니다. Z 게이트 를 추가해도 추가적인 이점은 없습니다 . 따라서 G 10 회로는 x 1 ( 0 | 10 | 11 ) ( 0 | 1 ) ∗ 만 사용할 수 있습니다.

  8. 마지막으로 Z 게이트 로만 구성된 회로 는 입력을받지 않습니다.

각 게이트는 잘 정의되고 일반적으로 상당히 큰 입력 클래스를 생성하므로 추가 게이트가 문제를 사소하게 만드는 경향이 있으므로 2-TREE-OPSATP에 있음을 알 수 있습니다.


1
@DSounders : 회로가 있으면 문제중인 최근의 수정에 대해 결정하기 위해 C 매핑 X를 일부 목표 값 (B) { 0 , 1 } 단지 특별한 경우보다는, B = 1 에서와 동일한 분석 내 현재 답변은 여전히 ​​문제가 P에 있음을 보여주기에 충분합니다 . 게이트의 역할 만 바뀝니다. 예를 들어, 원하는 결과 01을 교환 할 때 ANDOR , NANDNOR 의 역할을 효과적으로 교환합니다. , 다른 델타 기능 등을
Niel de Beaudrap
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.