NC 회로가 순열을 계산 하는지 여부 결정


27

QiCheng이 대답하지 않은 채로 주어진 주어진 NC 0 회로가 순열을 계산 하는지 결정 하는 문제의 특별한 경우에 대해 묻고 싶습니다 .

부울 회로는 NC라고 0 K의 각 출력 게이트 구문 이하인 경우에 따라 달라 회로 (K)의 입력 게이트. (우리는 출력 게이트라고 g이 구문에 따라 입력 게이트 g '로부터 직접 경로가있을 때 g '로 g 방향성 비순환 그래프로 볼 때 회로).

위에서 언급 한 질문에서 QiCheng은 다음 문제의 복잡성에 대해 물었습니다. 여기서 k 는 상수입니다.

인스턴스 : n 비트 입력 및 n 비트 출력을 가진 NC 0 k 회로 . 질문 : 주어진 회로가 {0, 1} n 에서 순열을 계산 합니까? 즉, 회로 전단 사 함수에 의해 산출 된 함수는 {0, 1} 내지 N 행 {0, 1} , N ?

Kaveh가 그 질문에 대해 언급했듯이, 문제가 coNP에 있다는 것을 쉽게 알 수 있습니다. 대답에서, 문제는 k = 5에 대해 coNP- 완료 이며 k = 2에 대해 P에 있음을 보여주었습니다 .

질문 . k = 3 의 복잡성은 무엇입니까 ?

2013 년 5 월 29 일의 설명 : "{0, 1} n 의 순열 "은 {0, 1} n 에서 자신으로 의 형용사 적 매핑을 의미 합니다. 즉, 문제는 모든 n 비트 문자열이 일부 n 비트 입력 문자열에 대해 주어진 회로의 출력 인지 묻습니다 .


1
개인 메모 : QiCheng의 질문에 대한 답변을 게시 할 때 특정 응용 프로그램을 염두에 두지 않고 문제가 흥미로워 보이기 때문에 그렇게했습니다. 그로부터 몇 달 후, 나는 주어진 프로그램이 순열을 계산하는지 여부를 결정하는 것이 사소한 일이 아니라고 누군가에게 설명 해야하는 상황에 처했습니다. QiCheng의 질문 덕분에 나는 완벽한 모범을 보였습니다 (이 우연의 일치입니다!) 그 후 k = 3과 k = 4의 경우에 대해 더 궁금해졌습니다. 나는 k = 3의 경우가 이미 coNP-complete라고 생각하지만 어느 쪽도 증명할 수 없었습니다.
이토 쓰요시

이 문제는 Papadimitriou ( sciencedirect.com/science/article/pii/S0022000005800637 )에 의해 정의 된 Pigeonhole Circuit 문제의 특별한 경우 인 것으로 보이며, 이는 검색 문제 사이의 다중 시간 감소와 관련하여 PPP에 대해 완벽합니다.
Marcos Villagra

@Marcos Villagra : 의견을 보내 주셔서 감사합니다.하지만 "특별한 경우"라고 말하면 비둘기 구멍 회로 문제의 정의가 크게 바뀌고 있습니다. Pigeonhole Circuit 문제의 중요한 속성은 전체 검색 문제이고 현재 문제 (동일한 출력을 생성하는 두 입력에 대한 검색 문제로 간주)는 전체 검색 문제가 아니라는 것입니다.
Ito Tsuyoshi

답변:


3

이 문제 는 coNP-hard (따라서 coNP-complete)입니다.k=3

이를 증명하기 위해 3-SAT에서이 문제의 보완으로 (주어진 회로의 경우 회로가 이 아닌 기능을 ).NC30

먼저 도움이 될 예비 정의 :

레이블이 붙은 그래프를 유향 그래프로 정의합니다. 일부 정점에는 리터럴로 레이블이 지정되어 있으며 모든 정점에는 레이블이없는 수신 모서리, 레이블이없는 수신 모서리 또는 레이블이없는 수신 모서리가 있습니다.

감소

각각 3 개의 리터럴을 포함하는 절로 구성된 3-SAT 공식 가 있다고 가정 합니다. 첫 번째 단계는 에서 레이블이 지정된 그래프 를 구성하는 것입니다.m G ϕϕmGϕ 입니다. 이 레이블이있는 그래프에는 각 절에 대해 다음 가젯 (끔찍한 다이어그램에 대해 죄송합니다)의 사본 하나가 포함되어 있습니다 . L1, L2 및 L3으로 표시된 세 개의 모서리는 대신 절의 리터럴로 레이블이 지정됩니다.ϕ

   |
   |               |
   |               |
   |               O<-----\
   |               ^      |
   |               |      |
   |               |      |
   |        /----->O      |
   |        |      ^      |
   |        |      |      |
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |L1    |L2    |L3
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |      |      |
   |        \------O------/
   |               ^
   |               |
   |               |
   |               O
   |               ^
   |               |
   |

가제트 (각 절마다 하나씩)는 하나의 가제트의 하단이 다음의 상단에 연결되어 하나의 큰 주기로 정렬됩니다.

이 가제트 배열은 실제로 레이블이 지정된 그래프를 형성합니다 (모든 정점은 1 또는 2의 부정확 한 모서리를 가지므로 1의 정점은 부정확 한 1의 정점이 레이블로 표시됨).

화학식에서 와 표시된 그래프 G (로부터 제조 하였다 φ ) 우리 옆 구성 N C 0 3 회로 (이는 감소를 종결한다). 이 회로의 입력 및 출력 수는 n + v입니다. 여기서 nϕ 의 변수 수 이고 vG 의 꼭짓점 수입니다 . 하나의 입력과 하나의 출력이 ϕ의 각 변수 와 G의 각 정점에 할당됩니다 . xϕ 에서 일부 변수 인 경우ϕGϕNC30n+vnϕvGϕGxϕ 와 관련된 입력 및 출력 비트 를 x i nx o u t로 참조 합니다. 경우 또한, L은 로 리터럴 L이 = X 우리 정의 I N = X N 과 경우 L은 함께 리터럴 L = ¬ X 우리 정의 I N = ¬ X I N은 . 마지막으로 vG의 정점 인 경우xxinxoutll=xlin=xinll=¬xlin=¬xinvG그런 다음 와 관련된 입력 및 출력 비트 를 v i nv o u t로 참조 합니다.vvinvout

출력 비트에는 네 가지 유형이 있습니다.

1) 모든 변수 φ , X O U t = X N . 이 출력은 하나의 입력 비트에만 의존합니다.xϕxout=xin

2) 레이블이 붙은 그래프의 모든 정점 에 대해 모서리가 레이블이 지정되지 않도록 정확히 하나의 들어오는 모서리 ( u , v ) 가있는 경우 v o u t = v i nu i n . 이 출력은 두 개의 입력 비트에만 의존합니다.v(u,v)vout=vinuin

3) 모서리가 l , v o u t = v i n( u i nl i n )으로 레이블링되도록 정확히 하나의 들어오는 모서리 ( u , v )를 갖는 레이블이있는 그래프의 모든 정점 에 대해 . 참고이 출력은 세 개의 입력 비트들에 의존하는 사람 L I N 밖에는 X N 변수간에 대한 X 리터럴에서 사용되는 L .v(u,v)lvout=vin(uinlin)linxinxl

4) 정확히 2 개의 들어오는 모서리 ( u , v )( w , v )를 가진 레이블이있는 그래프의 모든 정점 에 대해 , v o u t = v i n( u i nw i n ) . 이 출력은 3 개의 입력 비트에만 의존합니다.v(u,v)(w,v)vout=vin(uinwin)

모든 경우에 출력은 3 개의 입력에만 의존하기 때문에 원하는 회로는 에 있습니다.NC30

정확성 증명 사례 1 : 가 만족 스럽다ϕ

만족스러운 할당이 있다고 가정합니다 . 그런 다음 입력에 대해 다음 두 세트의 값을 구성하십시오.ϕ

1) 의 변수와 관련된 입력 은 만족스러운 할당의 값이 주어진다. G의 꼭짓점과 관련된 모든 입력 에 값 0이 제공됩니다.ϕG

2) 의 변수와 관련된 입력 은 만족스러운 할당 값이 주어진다. G의 한 절 가젯에서 꼭짓점을 고려하십시오 . 레이블 값이 0 (만족 할당 아래)이면 해당 레이블로 레이블이 지정된 가장자리의 대상 끝점에서 정점과 관련된 입력에 값 0이 제공됩니다. L1과 L2 모두 값이 0 인 경우 두 번째 값 가젯의 -top 꼭짓점 (위 그림 참조)에도 0 값이 지정됩니다. 다른 모든 꼭짓점에는 1 값이 지정됩니다.ϕG

이 두 세트의 입력이 동일한 출력을 생성하므로 회로가 순열을 인코딩하지 않음 을 보여 주려고합니다 .NC30

네 가지 유형의 출력 비트를 고려하십시오.

1) 모든 변수 φ , X O U t = X N . 이후 X N 입력 세트 모두에 대해 동일하며,이 형태의 출력은 항상 입력의 두 세트에 대해 동일한 것이다.xϕxout=xinxin

2) 레이블이 붙은 그래프의 모든 정점 에 대해 모서리가 레이블이 지정되지 않도록 정확히 하나의 들어오는 모서리 ( u , v ) 가있는 경우 v o u t = v i nu i n . 복사본이 G 를 구성하는 가제트를 살펴보면 이러한 모든 모서리는 두 번째 입력 세트에서 입력 값이 항상 1 인 정점 쌍으로 만 구성되어 있음을 알 수 있습니다. 따라서 v o u t = v i nu i n = 0 0 =v(u,v)vout=vinuinG첫 번째 입력 세트에서는 0 이고 두 번째 입력 세트에서는 v o u t = v i nu i n = 1 1 = 0 입니다. 따라서이 형식의 출력은 두 입력 세트에서 항상 동일합니다 (실제로 0).vout=vinuin=00=0vout=vinuin=11=0

3) 각 정점 용 정확히 하나의 입력 에지 표지 그래프 ( U , V ) 에지 레이블링되도록 L , V O U t = V I N( U I NL ) . 경우 L은 할당 아래 거짓 다음 v에 N 입력의 두 세트 하에서 0이고; 그런 다음 v o u t = v i n( u i nv(u,v)lvout=vin(uinl)lvin 두 입력 세트 모두에서. 경우 L은 할당하에 사실, V N 번째 아래의 첫 번째 입력 세트 1 미만 0이고; 또한, 가제트 유일한 레이블 에지 점에 유의 ( U를 , V ) 의 정점을 하는 항상 가지고 U에게 난을 N = 1vout=vin(uinl)=vin(uin0)=vin=0lvin(u,v)uuin=1두 번째 입력 세트에서. 결과적으로 두 입력 세트에서 l 이 참일 때마다 임을 알 수 있습니다. 그런 다음 v o u t = v i n( u i nl ) = v i n( u i n1 ) = v i nu i n = v i nvuin=vinl입니다. 따라서이 형식의 출력은 두 입력 세트에서 항상 동일합니다 (실제로 0).vout=vin(uinl)=vin(uin1)=vinuin=vinvin=0

4) 정확히 2 개의 들어오는 모서리 ( u , v )( w , v )를 가진 레이블이있는 그래프의 모든 정점 에 대해 , v o u t = v i n( u i nw i n ) . 각 가젯에는 두 개의 정점이 있습니다. 최상위 정점과 두 번째 정점. 우리는이 두 가지 경우를 별도로 고려합니다.v(u,v)(w,v)vout=vin(uinwin)

4a) 가 가젯의 두 번째 정점 인 경우 uw 는 L1과 L2로 표시된 가장자리의 두 대상 끝점입니다. 첫 번째 입력 세트에서, v o u t = v i n( u i nw i n ) = 0 ( 0 0 ) = 0 입니다. 두 번째 입력 세트에서 u i n 은 0입니다. iff L1이 만족스러운 할당에서 값 0을 갖습니다 (aka u i n =vuwvout=vin(uinwin)=0(00)=0uin ); 유사하게, w i n 은 0이고, L2가 만족하는 할당 하에서 값 0을 갖는 경우 (일명, w i n = L 2 ); 그리고 마지막으로, V N L1 및 L2가 모두 값 0이 IFF에 정의되고 0이어야 (일명 v에 난을 N = L 1 L 2 ). 따라서 두 번째 입력 세트에서, v o u t = v i n( u i nw i n ) = (uin=L1winwin=L2vinvin=L1L2 . 따라서이 형식의 출력은 두 입력 세트에서 항상 동일합니다 (실제로 0).vout=vin(uinwin)=(L1L2)(L1L2)=0

4b) 가젯에서 가 최상위 정점 인 경우 u 는 두 번째 정점이며 w 는 L3으로 표시된 가장자리의 대상 끝점입니다. 첫 번째 입력 세트에서, v o u t = v i n( u i nw i n ) = 0 ( 0 0 ) = 0 입니다. 두 번째 입력 세트에서 L i1과 L2 모두 0 값을 갖는 경우 u i n 은 0입니다 (일명 u i n = Lvuwvout=vin(uinwin)=0(00)=0uin ); w i n 은 0이고, L3은 0을 갖는다 (일명, w i n = L 3 ); 그리고 마지막으로 v i n = 1 입니다. 따라서 두 번째 입력 세트에서, v o u t = v i n( u i nw i n ) = 1 ( ( L 1 L 2 ) L 3 )uin=L1L2winwin=L3vin=1 여기서, 등식 ( L 1 L 2 L 3 ) = 1 은 모든 절에 대해 만족할만한 대입으로 정의에 의해 유지됩니다. 따라서이 형식의 출력은 두 입력 세트에서 항상 동일합니다 (실제로 0).vout=vin(uinwin)=1((L1L2)L3)=1(L1L2L3)=11=0(L1L2L3)=1

분명히, 우리는 두 개의 서로 다른 입력 세트에 대해 출력이 동일하므로 회로가 궤적이 아닌 기능을 수행 한다는 것을 알 수 있습니다.NC30

ϕ

ϕNC30

xinxϕx

SvGvin

우리는 아래의 정리를 증명할 것입니다 :

SS

SS

SGSS

(L1L2L3)(u,v)Lvout=vin(uinL)L=0vout=vin(uinL)=vin(uin0)=vin0=vinvinvSS

SNC30

남은 것은 부지런함을 증명하는 것입니다.

GSSvout=vinXXvSXvin=voutXvS

SS


-1

저자가 원하는 답이 아니라,이 맥락에서 "순열"이 무엇인지 명확히하는 의견을보십시오.

나는 monogenic 순열 그룹 포함 digraph에 대한 최소 지배 세트의 크기를 알아 냈습니다 : https://oeis.org/A186202

모든 주요주기 분해의 한 구성원을 테스트하기 만하면됩니다.

각 프라임 사이클마다 요소를 (10101010 ...), (01010101 ..)로 코딩하면 충분해야합니다.

------ Clarification ------이 방법의 목표는 2 ^ n 테스트 사례를 digraph로 모델링하는 것입니다. 하나의 성공한 테스트 사례가 다른 성공한 테스트 사례를 암시하는 경우이 테스트 공간 digraph의 최소 지배 세트 만 테스트하면됩니다. 순열 공간에서 OEIS A186202는 사소하지 않은 부분 군을 탐지하거나 존재하지 않음을 입증하기 위해 테스트해야하는 최대 값입니다. 이 숫자는 여전히 크지 만 n보다 훨씬 작습니다!.

--Musing-- n-1 개의 0과 1 개의 n 반복을 사용하여 원하는 고정 순열을 탐지 할 수 있습니다. 그 후 O (n {(n-1) \ choose (k-1)} (2 ^ (k-1))에서 모든 (k-1) 변수 세트가 셔플의 각 인덱스에 영향을 미치지 않는지 테스트 할 수 있습니다 k가 고정되어 있기 때문에 다항식입니다.


흠. (01) *, (10) *가 충분한 지 확실하지 않습니다. 각 프라임 사이클마다 2 ^ p 구성을 모두 시도해야 할 수도 있습니다.
Chad Brewbaker

2
(2n)!n11

2
C:{0,1}n{0,1}nx,x{0,1}nC(x)=C(x)xxC입력 비트를 순열 (셔플 / 재정렬 / 재 순서)합니다. 차이점이 보입니까? 당신이 잘못된 질문에 대답 한 것 같습니다.
DW

2
도와 주셔서 감사합니다. 그러나 DW가 설명했듯이, 당신이 대답 한 질문이 내가 물어 본 질문과 다른 것이 두렵습니다. "{0,1} ^ n에서의 순열"은 {0,1} ^ n에서 자신까지의 형용사 함수를 의미하며, n 비트를 재배 열하는 것은 아닙니다.
이토 쓰요시

3
차드,이 답변을 삭제하거나 적어도 Tsuyoshi의 질문에 대한 답변이 아니라는 메모를 맨 위에 추가 하시겠습니까?
Kaveh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.