이것은 각 변수의 할당은 알고 있지만 부울 연산자의 할당은 알지 못한다는 점을 제외하고는 SAT와 유사합니다. 이 경우 각 연산자의 할당을 찾고 있으므로식이 주어진 부울 값으로 NPC 문제를 평가합니까?
실제로, 정수 산술 표현 (예 : = 10) 을 만족시키기 위해 산술 연산자의 할당을 찾는 것이 NP가 완전한지 궁금합니다.1
이것은 각 변수의 할당은 알고 있지만 부울 연산자의 할당은 알지 못한다는 점을 제외하고는 SAT와 유사합니다. 이 경우 각 연산자의 할당을 찾고 있으므로식이 주어진 부울 값으로 NPC 문제를 평가합니까?
실제로, 정수 산술 표현 (예 : = 10) 을 만족시키기 위해 산술 연산자의 할당을 찾는 것이 NP가 완전한지 궁금합니다.1
답변:
덧셈과 뺄셈을 사용하면 NP 문제인 Partition 문제 가 두 번째 문제로 줄어 듭니다.
S = { s 1 , s 2 , … , s n } 세트가 주어지면 문제가 발생합니다.
s 1 o p 1 s 2 o p 2 s 3 o p 3 … o p n - 1 s n = 0 .
솔루션이 존재하면 두 세트를 만듭니다.
S 1 = { s 1 } ∪ { s i | O P I - 1 = + }
S 2 = { s i | O P I - 1 = - }
이 두 세트는 원래 문제를 설정하여 동일한 합계를 가져야하므로 파티션 문제가 해결됩니다. 이것은이 문제에 대한 실제 해결책을 열심히 제시 할뿐만 아니라 실제로 솔루션이 존재하는지 여부를 결정하는 것이 어렵습니다 (적어도 덧셈과 뺄셈).
곱셈과 덧셈과 같은 음의 정수 생성을 허용하지 않는 일련의 연산의 경우 명확하지 않습니다. 또한 이것은 문제가 약하게 NP-hard라는 것을 보여줍니다. 이보다 더 강한 결과를 제공하는 축소가있을 수 있습니다.
짧은 답변. SAT 의 운영자 버전 은 효율적으로 해결할 수 있습니다. 적어도 원하는 게이트 세트 선택에 대해 팬 아웃이없는 2 입력 게이트의 임의 회로를 가정하면 가능합니다.
긴 대답입니다. 부울 문제의 다음 형식을 가정합니다.
2- 트리 OPSAT. 주어진 입력 X ∈ { 0 , 1 } , N 대 N ⩾ 2 게이트 세트 G 회로가 존재하지 않는 2 입력 단일 출력 게이트들로 구성된 C 에 게이트 이루어진 G 받아 X를 이다, 입력 x ( 회로 C 의 잎에 x의 비트를 순서대로 매핑) 가 주어지면 만족 합니까?
x∈{0,1}n n⩾2 G C G x x x C
특히, 우리 는 (이진 트리는 제외 하고) 회로 C 에 특별한 구조를 부과하지 않으며 , 팬 아웃을 허용하지 않으므로 ( x의 각 비트가 한 번만 사용되도록) 게이트가 비대칭 적 일 수 있습니다. 2 비트 게이트 만 허용함으로써 NOT 게이트 는 제외 하지만 ( AND / NAND 와 같은 부정에 의해 서로 관련된 여러 게이트를 가짐으로써 시뮬레이션 할 수 있음) 입력없이 상수를 간단히 출력하는 게이트도 제외합니다. 따라서 회로의 게이트 수는 실제로 n 비트 입력의 경우 항상 n - 1이 됩니다 . 간결성을 위해 아래에서는 다음과 같이 간단히 2-TREE-OPSAT 를 참조합니다.
[ 추가 편집 : 우리는 주어진 x ∈ { 0 , 1 } ∗ 를 목표 값 b ∈ { 0 , 1 에 매핑하려고 시도하는 현재 수정 질문의 더 일반적인 문제를 고려하도록 이것을 쉽게 조정할 수 있습니다. } , 아래 분석에서 0 과 1 의 역할을 교환함으로써 ; 이것의 역할이 상호 교환 효과 갖는 AND 및 OR , NAND을 하고 NOR , 등 ]
x ∈ { 0 , 1 } n 의 고정 된 선택의 경우 , 적절한 게이트를 가진 적합한 트리를 선택하는 문제는 논리적 분리와 다르지 않습니다 : OR ( x , y ) 와 같은 등가를 사용
우리는 다른 유형의 게이트 G를 포함하는 게이트 세트를 고려하여 나중에 분석의 이후 사례에서 해당 게이트를 제외하고 게이트 중 하나를 포함하는 게이트 세트가 다루기 힘든 문제를 초래한다는 것을 보여줍니다. 상수 1 게이트에서 상수 0 게이트 까지 문제의 게이트를 만족시키는 2 비트 스트링의 순서로 진행합니다 .
상수 게이트 G ( x , y ) = 1 을 포함하는 모든 게이트 세트 G에 대해 게이트 만 사용하여 회로 C 를 구축 할 수 있습니다 .이 경우 C 는 x를 받아들 입니다.
OR과 NAND. 모든 게이트 집합 G 포함 OR : 기타 모든 게이트 G ∈ G 충족 G ( X , Y )
시사점 같은 게이트. 게이트 G ( x , y ) = ¬ x ∨ y를 고려하십시오. ( x , y ) = ( 1 , 0 ) 이면 0 만 출력합니다 . 다음 것을 위해 유사한 분석을 적용한다 게이트 G ' ( X , Y ) = (X) ∨ ¬ Y .
문자열 x ∈ { 0 , 1 } n을 고려하십시오 . 만약 X
투영의 부정. 게이트 ¬ π 1 ( x , y ) = ¬ x 및 ¬ π 2 ( x , y ) = ¬ y를 고려하십시오 . 우리는 ¬ π 1 , ¬ π 2 와 유사한 분석을 고려 합니다. 자체적으로 ¬ π 1 은 n ⩾ 2에 대해 0 ( 0 | 1 ) n - 1의 문자열을 허용 할 수 있습니다.
패리티와 평등 . 게이트 패리티 ( x , y ) = ( x ∨ ¬ y ) ∧ ( ¬ x ∨ y )를 고려하십시오 . 게이트 세트 G = { PARITY }는 분명히 홀수 1의 문자열 x ∈ { 0 , 1 } n 만으로 정확하게 만족 될 수 있습니다 . 다른 게이트를 추가 할 때의 이점을 고려합니다.
따라서 OPSAT 는 PARITY를 포함하는 모든 G에 대해 쉽습니다 . 유사한 분석을 적용 EQUAL 로써 게이트 PARITY의 게이트 : 때문에 EQUAL ( X , Y ) = ¬ PARITY ( X , Y ) = ¬ PARITY ( ¬ X , ¬ Y가 ) 의 회로 EQUAL의 게이트는 본질적의 패리티를 계산 입력에서 0 의 수 그런 다음 EQUAL에 대한 분석을 줄일 수 있습니다
프로젝션 게이트. 게이트 π 1 ( x , y ) = x 및 π 2 ( x , y ) = y 는 자체적으로 취하여 각각 1로 시작하거나 끝나는 스트링을 받아들이는 회로 만 만들 수 있습니다 . 다른 게이트로 게이트 π 1 을 확장 하는 효과를 고려하십시오 ( π 2에 대한 유사한 분석이 유지됨 ).
따라서, 다른 게이트 위해 우리는 보충 수 π 1 (또는 π 2 ), 우리는 중 하나 tautologous 세트를 획득 바로 위에 별도의 수용 능력을 획득하지 π 1 (또는 π 2 ) 또는 이전 쉬운 경우에 감소시킬 OPSAT . 그런 다음 임의의 인스턴스 OPSAT 와 π 1 ∈ G 또는 π 2 ∈ G는 쉽다.
델타 기능 게이트. AND , NOR , G 10 ( x , y ) = x ∧ ¬ y 및 G 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 ) ∗ 만 사용할 수 있습니다.
마지막으로 Z 게이트 로만 구성된 회로 는 입력을받지 않습니다.
각 게이트는 잘 정의되고 일반적으로 상당히 큰 입력 클래스를 생성하므로 추가 게이트가 문제를 사소하게 만드는 경향이 있으므로 2-TREE-OPSAT 가 P에 있음을 알 수 있습니다.