Orlp ให้ทางออกโดยใช้ O(n) คำของพื้นที่ซึ่งเป็น O(nlogn) บิตของพื้นที่ (สมมติว่าความเรียบง่ายนั้น n=m) ตรงกันข้ามมันง่ายที่จะแสดงให้เห็นว่าΩ(n) จำเป็นต้องใช้พื้นที่บิตโดยการลดความไม่ลงรอยกันที่กำหนดให้กับปัญหาของคุณ
สมมติว่าอลิซถือไบนารีเวกเตอร์ x1,…,xn และ Bob ถือเวกเตอร์ไบนารี่ y1,…,ynและพวกเขาต้องการทราบว่ามีดัชนีอยู่หรือไม่ i ดังนั้น xi=yi=1. พวกเขาเรียกใช้อัลกอริทึมของคุณสำหรับ2×(2n−1) เมทริกซ์ซึ่งมีแถวอยู่ x1,0,x2,0,…,0,xn และ y1,0,y2,0,…,0,yn. หลังจากอ่านแถวแรกแล้วอลิซก็ส่งบ๊อบ∑ixi เช่นเดียวกับเนื้อหาของหน่วยความจำเพื่อให้ Bob สามารถทำอัลกอริทึมและเปรียบเทียบให้เสร็จสมบูรณ์ ∑i(xi+yi)ถึงจำนวนของส่วนประกอบที่เชื่อมต่อ หากตัวเลขสองตัวตรงกันทั้งสองเวกเตอร์จะแยกกัน (ไม่มีดัชนีi), และในทางกลับกัน. เนื่องจากโพรโทคอลใด ๆ สำหรับชุดความไม่ต่อเนื่องนั้นต้องการΩ(n) บิต (แม้ว่ามันจะผิดพลาดกับความน่าจะเป็นคงที่เล็ก ๆ ) เราก็อนุมาน Ω(n) ขอบเขตล่างซึ่งเก็บไว้สำหรับโปรโตคอลแบบสุ่มซึ่งอนุญาตให้ทำผิดพลาดด้วยความน่าจะเป็นคงที่เล็กน้อย
เราสามารถปรับปรุงวิธีการแก้ปัญหาของ Orlp โดยใช้พาร์ทิชันที่ไม่ข้าม เราอ่านเมทริกซ์ทีละแถว สำหรับแต่ละแถวเราจำได้ว่า 1s ใดที่เชื่อมต่อผ่านเส้นทางที่ผ่านแถวก่อนหน้า พาร์ติชันที่สอดคล้องกันนั้นไม่มีการข้ามและสามารถเข้ารหัสได้โดยใช้O(n)บิต (เนื่องจากพาร์ทิชันที่ไม่ข้ามจะถูกนับโดยหมายเลขคาตาลันซึ่งมีอัตราการเติบโตเป็นเลขชี้กำลังแทนแฟกทอเรียล) เมื่ออ่านแถวต่อไปนี้เรายังคงเป็นตัวแทนนี้และเพิ่มตัวนับเมื่อใดก็ตามที่จุดสิ้นสุดของบางส่วนไม่ได้เชื่อมต่อกับแถวปัจจุบัน (ตัวนับจะเพิ่มO(logn)บิต) เช่นเดียวกับในโซลูชันของ Orlp เราเพิ่มแถวดัมมี่สุดท้ายของเลขศูนย์เพื่อสิ้นสุดการประมวลผลเมทริกซ์ วิธีนี้ใช้O(n) บิตซึ่งเป็นค่าที่เหมาะสมที่สุดเนื่องจากขอบเขตล่างของเรา