Orlp는 다음을 사용하여 솔루션을 제공합니다. O(n) 공간의 단어 O(nlogn) 공간의 비트 (간단 성을 가정하여 n=m). 반대로, 보여주기 쉽다Ω(n) 문제의 불일치를 줄이기 위해 약간의 공간이 필요합니다.
Alice가 이진 벡터를 가지고 있다고 가정 x1,…,xn 밥은 이진 벡터를 가지고 있습니다 y1,…,yn그들은 색인이 있는지 알고 싶어합니다. i 그런 xi=yi=1. 그들은 당신의 알고리즘을2×(2n−1) 행이있는 행렬 x1,0,x2,0,…,0,xn 과 y1,0,y2,0,…,0,yn. 첫 번째 행을 읽은 후 Alice는 Bob을 보냅니다.∑ixi Bob이 알고리즘을 완성하고 비교할 수 있도록 메모리 내용뿐만 아니라 ∑i(xi+yi)연결된 구성 요소의 수. 두 숫자가 일치하면 두 벡터가 분리됩니다 (인덱스 없음)i), 그 반대. 세트 분리에 대한 프로토콜이 필요하기 때문에Ω(n) 비트 (작은 상수 확률로 오류가 발생할 수 있더라도) Ω(n) 하한은 임의의 일정한 확률로 약간의 오차가 허용되는 무작위 프로토콜에도 적용됩니다.
비교 차 파티션 을 사용하여 Orlp 솔루션을 개선 할 수 있습니다 . 행렬을 한 줄씩 읽습니다. 각 행마다 앞의 행을 통과하는 경로를 통해 연결된 1을 기억합니다. 해당 파티션은 비 크로싱이므로 다음을 사용하여 인코딩 할 수 있습니다.O(n)비트 (비교 차 파티션은 카탈로니아 어 숫자로 계산되므로 성장률이 계승이 아닌 지수 임). 다음 행을 읽을 때 우리는 이것을 나타내며 일부 부분의 모든 끝이 현재 행에 연결되어 있지 않을 때마다 카운터를 증가시킵니다 (카운터는 추가O(logn)비트). Orlp의 솔루션에서와 같이 행렬 처리를 마치기 위해 마지막 더미 행 0을 추가합니다. 이 솔루션은O(n) 우리의 하한을 감안할 때 무조건 최적입니다.