ओर्लप अंतरिक्ष के शब्दों का उपयोग करके एक समाधान देता है , जो अंतरिक्ष के बिट्स हैं (सरलता के लिए मान लेते हैं कि )। इसके विपरीत, यह दिखाना आसान है कि आपकी समस्या के लिए असहमति को कम करके अंतरिक्ष के बिट्स की आवश्यकता है।ओ ( एन )ओ ( एन लॉगn )n = एमΩ ( एन )
मान लीजिए कि ऐलिस एक द्विआधारी वेक्टर रखती और बॉब एक द्विआधारी वेक्टर रखती , और वे जानते हैं कि करने के लिए एक सूचकांक वहाँ मौजूद है या नहीं चाहते ऐसा है कि । वे आपके एल्गोरिथ्म को मैट्रिक्स के लिए हैं जिनकी पंक्तियाँ और । पहली पंक्ति पढ़ने के बाद, ऐलिस बॉब साथ-साथ मेमोरी सामग्री भी भेजता है , ताकि बॉब एल्गोरिथ्म को पूरा कर सके और जुड़े हुए घटकों की संख्या के लिए तुलना कर सके। यदि दो संख्याएं मेल खाती हैं, तो दो वैक्टर असंतुष्ट हैं (कोई सूचकांक नहीं हैएक्स1, … ,एक्सny1, … ,ynमैंएक्समैं=yमैं= 12 × ( 2 एन - 1 )एक्स1, 0 ,एक्स2, 0 , … , 0 ,एक्सny1, 0 ,y2, 0 , … , 0 ,ynΣमैंएक्समैंΣमैं(एक्समैं+yमैं)मैं), और इसके विपरीत। चूंकि असंबद्धता के लिए किसी भी प्रोटोकॉल की जरूरत है बिट्स (भले ही यह एक छोटे से निरंतर संभावना के साथ गलत हो सकता है), हम एक कम बाध्य करते हैं, जो यादृच्छिक प्रोटोकॉल के लिए भी धारण करता है जिसे कुछ के साथ गलत करने की अनुमति होती है छोटी निरंतर संभावना।Ω ( एन )Ω ( एन )
हम नॉनक्रॉसिंग विभाजन का उपयोग करके ओर्लप के समाधान में सुधार कर सकते हैं । हम पंक्ति द्वारा मैट्रिक्स पंक्ति पढ़ते हैं। प्रत्येक पंक्ति के लिए, हमें याद है कि 1s पूर्ववर्ती पंक्तियों से गुजरने वाले रास्तों से जुड़े हैं। संबंधित विभाजन नॉनक्रॉसिंग है, और इसलिए बिट्स का उपयोग करके एन्कोड किया जा सकता है (क्योंकि नॉनक्रॉसिंग विभाजन कैटलन संख्याओं द्वारा गिने जाते हैं, जिनकी वृद्धि दर फैक्टरियल के बजाय घातीय है)। निम्नलिखित पंक्ति को पढ़ते समय, हम इसे प्रदर्शित करते हैं, और एक काउंटर बढ़ाते हैं जब भी कुछ भाग के सभी छोर वर्तमान पंक्ति से जुड़े नहीं होते हैं (काउंटर अतिरिक्त बिट्स लेता है )। जैसा कि ओर्लप के समाधान में, हम मैट्रिक्स को संसाधित करने के लिए शून्य की एक अंतिम डमी पंक्ति जोड़ते हैं। यह समाधान का उपयोग करता हैओ ( एन )ओ ( लॉग)n )ओ ( एन ) बिट्स, जो कि asymptotically इष्टतम है, हमारी निचली सीमा को दर्शाता है।