Orlp дає рішення, використовуючи O ( n ) слова простір, які є O ( n журналn ) біт простору (якщо вважати, що це простота n = m). І навпаки, це легко показатиΩ ( n ) біти місця потрібні, зменшуючи встановлену непересічність вашої проблеми.
Припустимо, що Аліса містить бінарний вектор х1, … ,хн а Боб утримує двійковий вектор у1, … ,ун, і вони хочуть знати, чи існує індекс i такий як хi=уi= 1. Вони виконують ваш алгоритм для2 × ( 2 n - 1 ) матриця, рядки якої є х1, 0 ,х2, 0 , … , 0 ,хн і у1, 0 ,у2, 0 , … , 0 ,ун. Після того, як перший рядок буде прочитаний, Аліса надсилає Боба∑iхi а також вміст пам'яті, щоб Боб міг скласти алгоритм та порівняти ∑i(хi+уi)до кількості підключених компонентів. Якщо два числа збігаються, два вектори роз'єднані (немає індексуi), і навпаки. Оскільки потрібен будь-який протокол для встановленої непересічностіΩ ( n ) біт (навіть якщо це може помилитися з невеликою постійною ймовірністю), ми виводимо an Ω ( n ) нижня межа, яка справедлива навіть для рандомізованих протоколів, яким дозволено помилятися з невеликою постійною ймовірністю.
Ми можемо покращити рішення Orlp, використовуючи некросинг-розділи . Читаємо матрицю рядок. Для кожного ряду ми пам’ятаємо, які зразки пов’язані через шляхи, що проходять через попередні рядки. Відповідний розділ не є схрещувальним, і тому його можна кодувати за допомогоюO ( n )біти (оскільки непересічні розділи обчислюються каталонськими числами, швидкість зростання яких є швидше експоненціальною, ніж факторною). Читаючи наступний рядок, ми підтримуємо це зображення, і збільшуємо лічильник, коли всі кінці частини не з'єднані з поточним рядком (лічильник займає додатковийO ( журналn )біт). Як і в рішення Орлпа, ми додаємо остаточний макетний ряд нулів, щоб закінчити обробку матриці. Це рішення використовуєO ( n ) біт, що є асимптотично оптимальним, враховуючи нижню межу.