अनुमानित लुकअप का समर्थन करने वाले कुशल मानचित्र डेटा संरचना


25

मैं एक डेटा संरचना की तलाश कर रहा हूं जो कुंजी के कुशल अनुमानित लुकअप का समर्थन करती है (जैसे, स्ट्रिंग्स के लिए लेवेंसहाइट दूरी), इनपुट कुंजी के लिए निकटतम संभावित मैच लौटाता है। अब तक मैंने जो सबसे उपयुक्त डेटा संरचना पाई है, वह बुर्कहार्ड-केलर के पेड़ हैं , लेकिन मैं सोच रहा था कि क्या इस उद्देश्य के लिए अन्य / बेहतर डेटा संरचनाएं हैं।

संपादित करें: मेरे विशिष्ट मामले के कुछ और विवरण:

  • स्ट्रिंग्स में आमतौर पर एक दूसरे से काफी बड़े लेवेंसाइटिन अंतर होते हैं।
  • स्ट्रिंग्स की अधिकतम लंबाई लगभग 20-30 वर्ण होती है, जिसमें औसत 10-12 के करीब होता है।
  • मैं प्रविष्टि की तुलना में कुशल लुकअप में अधिक रुचि रखता हूं क्योंकि मैं ज्यादातर स्थिर डेटा का एक सेट बनाऊंगा जिसे मैं कुशलतापूर्वक क्वेरी करना चाहता हूं।

क्या इनपुट स्ट्रिंग, और मानचित्र में वस्तुओं की संख्या के आकार पर कोई शर्तें हैं? नक्शे के लिए प्रविष्टि कितना कुशल है?
edA-qa मोर्ट-ओर-वाई

mrm, जहाँ तक मैं बता सकता हूँ BK- पेड़ अभी भी पूरे पेड़ के काफी बड़े हिस्से को देखते हैं। लेकिन मेरी ओर से समय से पहले अनुकूलन हो सकता है, मुझे लगता है?
'13

3
: बारीकी से लगभग एक-डुप्लिकेट होने की बात से संबंधित एक तेजी से वर्तनी परीक्षक के निर्माण के लिए कुशल डेटा संरचना
राफेल

जवाबों:


18

आप जो खोज रहे हैं वह "लेवेनशेटिन / संपादन दूरी में पड़ोसी खोज के निकट" (ANNS) है। सैद्धांतिक दृष्टिकोण से, संपादित दूरी अब तक निकट-पड़ोसी खोजों, अफाक के लिए अपेक्षाकृत कठिन हो गई है। फिर भी, कई परिणाम हैं, इस ओस्ट्रोव्स्की और रबानी पेपर में संदर्भ देखें । यदि आप वैकल्पिक दूरी के मैट्रिक्स पर विचार करने के लिए तैयार हैं, जिसके लिए सरल और बेहतर समाधान हैं, तो अगले पैराग्राफ पर जाएं। संपादित दूरी में ANNs के लिए, वहाँ की वजह से एक परिणाम है Indyk , जो दिखाता है कि कैसे आकार के एक डेटा संरचना के निर्माण के लिए जो किसी भी प्रश्न का उत्तरO(d) में देता हैऔर एक स्ट्रिंग की रिपोर्ट करता है जो क्वेरी स्ट्रिंग के निकटतम स्ट्रिंग की तुलना में तीन गुना अधिक होती है (यहnO(dϵ)और सन्निकटन31/ϵ) का आकार देता है। यहाँnस्ट्रिंग्स की संख्या है औरdकिसी भी स्ट्रिंग की अधिकतम लंबाई है। ऊपर दिए गए ओस्ट्रोव्स्की और रबानी पेपर ने इस परिणाम को वैक्टरों के लिए तार को मैप करके बेहतर बनाया ताकिRab1nO(d)O(d)nO(dϵ)31/ϵnd1-वैक्टर (वैक्टर के बीच यूक्लिडियन दूरी के समान एक प्रकार की प्राकृतिक ज्यामितीय दूरी) इसी तार के बीच संपादित दूरी का अनुमान लगाता है (इसे "कम विरूपण विरूपण" कहा जाता है)। एक बार ऐसा हो रहा है, के लिए एक ANNs डेटा संरचना इस्तेमाल किया जा सकता है, और इन अधिक कुशल होने का बाहर कर देते हैं (अगले पैराग्राफ को देखें)।1

यदि आप अन्य दूरियों पर विचार करने के इच्छुक हैं, तो स्थानीय संवेदनशील हैशिंग (एलएसएच) बहुत अच्छा काम करता है। स्थानीय संवेदनशील हैशिंग एएनएनएस की समस्या को हल करने के लिए इंडीके और मोटवानी द्वारा अग्रणी तकनीक है, जहां ऐसे बिंदु हैं जो एक उच्च-आयामी स्थान में रहते हैं (लंबे वैक्टर, लंबे तार, आदि) को कम संख्या में बाल्टियों में हैशड किया जाता है जो कि बिंदु एक दूसरे के समीप एक ही बिन में अच्छे संभावना के साथ मैप किया जाता है और एक दूसरे से दूर होने वाले बिंदुओं को अलग-अलग डिब्बे में मैप किया जाता है, वह भी अच्छी संभावना के साथ। CACM में Indyk और Andoni द्वारा एक महान और बहुत ही सुलभ सर्वेक्षण लेख है । यह तकनीक सरल और तेज है, और इसमें छोटे स्थान की आवश्यकताएं हैं; वहाँ भी कोड है (मुझे लगता है कि लेख कोड के लिंक)। यह हेमिंग दूरी (और कुछ शासन में) जैसी चीजों के लिए अच्छी तरह से काम करता है दूरी) और यूक्लिडियन दूरी, कोसाइन दूरी। इसके अलावा,मुथु और सहिनालपएलएसएच योजनाओं को संपादित दूरी की एक बहुत ही सामान्य सामान्यीकरण के लिए डिज़ाइन करते हैं,ब्लॉक एडिट दूरी(जहां कुछ संपादन ऑपरेशन प्रतीकों के एक ब्लॉक पर काम कर सकते हैं)।1

इस तरह का सवाल cstheory.SE के लिए एक अच्छा फिट है । वहाँ एक संबंधित सवाल है , लेकिन यह पड़ोसी के पास सटीक पूछने के लिए लगता है।


12

जिन डेटा संरचनाओं में आपकी रुचि है, वे मीट्रिक ट्री हैं। यही है, वे मीट्रिक रिक्त स्थान में कुशल खोजों का समर्थन करते हैं। एक मीट्रिक स्थान वस्तुओं के एक सेट से बनता है और उनके बीच परिभाषित दूरी फ़ंक्शन त्रिकोण असमानता को संतुष्ट करता है। लक्ष्य को उन वस्तुओं का एक सेट और एक क्वेरी तत्व दिया जाता है, जिससे उन वस्तुओं को क्वेरी के लिए पर्याप्त रूप से बंद किया जा सके।

चूंकि कंप्यूटर विज्ञान में हर जगह खोज समस्याएं सचमुच हैं, इसलिए विभिन्न मीट्रिक पेड़ों की एक बड़ी मात्रा है। हालांकि, उन्हें कम से कम दो समूहों में विभाजित किया जा सकता है: धुरी-आधारित और क्लस्टरिंग आधारित (और निश्चित रूप से संकर भी हैं)। एक अच्छा सर्वेक्षण ई। शावेज एट अल।, सर्चिंग इन मेट्रिक स्पेस, 2001 है । उदाहरण के लिए देखें अध्याय 5: मीट्रिक रिक्त स्थान का वर्तमान समाधान, पृष्ठ 283।

O(nα)0<α<1O(n2)O(1)

शावेज एट अल। अन्य पेड़ों का एक अच्छा अवलोकन भी दें, और स्वाभाविक रूप से अधिक संदर्भ यदि कोई विशेष रूप से आपकी रुचि को बढ़ाता है। व्यवहार में, विभिन्न पेड़ों के प्रदर्शन का अक्सर प्रयोगात्मक रूप से मूल्यांकन किया जाता है। मुझे लगता है कि यह अंतरिक्ष की संरचना पर बहुत कुछ निर्भर करता है। इसलिए यह कहना मुश्किल है कि कौन सा पेड़ आपके मामले में सबसे अधिक कुशल होगा। फिर भी, मुझे लगता है कि पहले सबसे आसान के साथ जाना एक अच्छा विचार है। यदि बीके-पेड़ बनाने में सबसे आसान है, तो पहले उन्हें आज़माएं। यदि वे आपकी आवश्यकताओं को पूरा नहीं करते हैं, तो अपने स्थान के बारे में अधिक तथ्य जुटाने में समय (और शायद प्रोग्रामिंग समय) निवेश करें जो आपको अधिक सूचित निर्णय लेने में मदद कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.