스트리밍 방식으로 순열의 패리티 계산


16

순열의 패리티를 계산하는 원 패스 알고리즘을 찾고 있습니다. 입력 순열은 스트림 의해 주어진다고 가정합니다 π[1],π[2],,π[n]. 출력은 순열의 패리티 여야합니다. 결정 론적 알고리즘이 사용해야하는 메모리 양에 관심이 있습니다. 문제에 대한 무작위 알고리즘이 있습니까?

한 번에 반전 횟수를 계산할 때 Θ(n) 메모리를 사용한다는 것을 알고 있습니다. 모든 BST로 상한을 쉽게 얻을 수 있습니다. 하한은 여기에 표시됩니다 : http://citeseerx.ist.psu.edu/viewdoc/versions?doi=10.1.1.112.5622

아아, 종이의 하한 증거는 패리티 사례로 확장 될 수 없습니다 (또는 나에게 분명하지 않습니다).

또한 순열에 무작위로 액세스 할 수있는 작은 공간에서의 컴퓨팅 패리티는 결정 알고리즘에 의해 시간 및 O ( log 2 n ) 메모리에서 수행되거나 O ( n log n ) 시간 및 O ( 로그 N ) 무작위로 하나를 메모리. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.2256 참조O(nlogn)O(log2n)O(nlogn)O(logn)

주된 아이디어는 순열의 패리티 식으로 계산 될 수 있다는 것이다 , (C)는 사이클의 수이고, N 크기이다. 저자는 순열을 순환 분해합니다. 따라서 사이클 수를 쉽게 계산할 수 있습니다.sgn(π)=(1)nccn

스트리밍 모델의 컴퓨팅 패리티에 대한 효과적인 알고리즘 또는 메모리의 하한을 아는 사람이 있습니까? 랜덤 코인보다 랜덤 알고리즘이 더 흥미 롭습니다.


흥미 롭군. 증거를 스케치하거나 문제의 이름을 지어 패리티로 줄일 수 있습니까?
Vsevolod Oparin

4
@ András : O (n) 공간 알고리즘은 단순히 어떤 요소가 이미 보 였는지 (비트 벡터에서와 같이) 추적 한 다음 새 요소마다 x의 패리티를 x보다 작은 요소를 볼 수 있습니까?
László Kozma

1
@laszlo 당신의 상한은 이제 더 큰 하한에 대한 나의 주장보다 더 설득력있는 것처럼 보입니다. O(n)
András Salamon

하한에 대한 하나의 부정적인 결과. 첫 번째 논문의 저자는 두 세트 AB를 기반으로 순열 합니다 . AB가 교차 하는지 계산하는 데 사용합니다 . 순열의 컴퓨팅 패리티는 단방향 통신의 3 비트 만 필요합니다. 해당 행렬의 순위를 계산하여 쉽게 얻을 수 있습니다. π=A0¯B1A0B1¯ABAB
Vsevolod Oparin

답변:


2

나는 이것이 대답이 아니라 확장 된 의견 이므로이 질문에 대한 답변을 얻지 못한 이유를 논쟁하고 싶습니다. 저의 주요 요점은 커뮤니케이션 복잡도 하한이 작동하지 않는다는 것입니다. 이것은 입력을 어떻게 두 부분으로 잘라서 두 선수 A와 B에게 주 었는지에 관계없이 A는 단일 비트를 B로 전송하여 순열의 패리티를 계산할 수 있음을 의미합니다. (이것은 단순히 반전을 고려하여 수행됩니다.)

다른 경계를 사용하는 증거는 어렵습니다. (비 결정적 버전) 노암 니산에 의해 여기이 댓글을 참조하십시오 : L_k-별개의 작은 NFA의 크기에 경계를 ,

이 관련 질문은 Hermann Gruber가 답변 한 것으로, 의사 소통의 복잡성 하한이 ( 비결정론 적 버전에서) 진실과는 거리가 멀다는 것을 보여줍니다 .

또한 순열이 단일주기인지 여부를 결정하는 것은 어렵습니다. Ran Raz와 Boris Spieker의이 FOCS 논문을 참조하십시오 : http://www.computer.org/csdl/proceedings/focs/1993/4370/00 /0366870-abs.html .

저는 또한이 질문에 대한 답을 배우는 데 매우 관심이 있습니다.


When you say that "no matter how we cut the input into two parts" does your argument also rule out reductions when the permutation is split into more than two parts? For example in the linked paper about counting the number of inversions, there is a reduction from set disjointness, where Alice and Bob have inputs A,B[n], and they form permutations A0¯B1A0B1¯ and A1¯B0A1B0¯. The index 0 or 1 refers to the transformations 2x and 2x+1, and the bar refers to complementing. In other words, what if communication can be multi-round?
László Kozma

@laszlo: In this problem it really does not matter how you cut the input as long as you give it to only two players as the parity of the permutation is determined by the number of its cycles (so this is why it differs from the number of inversions).
domotorp

Is it easy to see how A can compute a bit from her input using which which B can compute the parity? I see how both A and B know the number of cycles "within their parts". But how do they find the parity of the # of "crossing" cycles?
László Kozma

2
@laszlo: Suppose A's input is something like 1->7, 2->5, 3->8, 4->6. This has the same number of inversions as 1->5, 2->6, 3->8, 4->7. More generally, B knows into what numbers the numbers of A are mapped. Using an even number of inversions, A can permute these numbers into an increasing order, except possibly for the last two. The relation of these last two numbers is the one bit she sends.
domotorp

@ domotor: follow-up question - if A gets a1,,an, B gets an+1,,a2n, C gets a2n+1,,a3n of a permutation a of [3n], can they establish the parity with o(n) bits of communication?
László Kozma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.