मूलांक के पेड़ और पेट्रीसिया के बीच क्या अंतर है?


31

मैं मूलांक वृक्षों के बारे में सीख रहा हूं (उर्फ संपीड़ित कोशिश करता है) और पेट्रीसिया कोशिश करता है, लेकिन मैं वास्तव में एक ही है या नहीं इस पर परस्पर विरोधी जानकारी पा रहा हूं। एक मूलांक का पेड़ एक सामान्य (असम्पीडित) तिकड़ी से अपने माता-पिता के साथ नोड्स को मर्ज करके प्राप्त किया जा सकता है जब नोड्स एकमात्र बच्चा होते हैं। यह पेट्रीसिया की कोशिशों के लिए भी है। किस तरह से दो डेटा संरचनाएं भिन्न हैं?

उदाहरण के लिए, NIST दोनों को समान रूप से सूचीबद्ध करता है:

पेट्रीसिया का पेड़

(डेटा संरचना)

परिभाषा: एक तिकड़ी का एक कॉम्पैक्ट प्रतिनिधित्व जिसमें कोई भी नोड जो एकमात्र बच्चा है, उसके माता-पिता के साथ विलय कर दिया जाता है।

जिसे मूलांक वृक्ष के नाम से भी जाना जाता है।

वेब पर कई स्रोत एक ही दावा करते हैं। हालांकि, स्पष्ट रूप से पेट्रीसिया की कोशिश मूलांक के पेड़ों का एक विशेष मामला है। विकिपीडिया प्रविष्टि कहती है:

PATRICIA की कोशिश कर रहे हैं मूलांक 2 मूलांक 2 के साथ मूलांक की कोशिश करता है, जिसका अर्थ है कि कुंजी के प्रत्येक बिट की व्यक्तिगत रूप से तुलना की जाती है और प्रत्येक नोड एक दो तरफा (यानी, बाएं बनाम दाएं) शाखा है।

मैं वास्तव में यह नहीं समझता। क्या केवल लुक-अप करते समय तुलना करने के तरीके में अंतर होता है? प्रत्येक नोड "टू-वे ब्रांच" कैसे हो सकता है? ALPHABET_SIZEकिसी दिए गए नोड के लिए सबसे अधिक संभव शाखाओं पर नहीं होना चाहिए ?

क्या कोई इसे स्पष्ट कर सकता है? व्यावहारिक उद्देश्यों के लिए, रेडिक्स आम तौर पर पेट्रीसिया की कोशिश करता है (और, इसलिए, अक्सर एक ही माना जाता है) की कोशिश करता है? या इस तरह के सामान्यीकरण नहीं किए जा सकते हैं?

जवाबों:


23

मुझे यह पोस्ट बहुत मददगार लगी।

पेट्रीसिया की कोशिश करता है और मूलांक के पेड़ों के बीच अंतर देखने के लिए, यह समझना महत्वपूर्ण है:

  • मूलांक की धारणा , चूंकि पेट्रीसिया की कोशिश है कि मूलांक 2 के बराबर मूलांक वाले पेड़ हैं।
  • आर2आर

मान लीजिए कि हम एक पेट्रीसिया तिकड़ी में चाबियाँ मुस्कुराते हैं , मुस्कुराते हैं , और मुस्कुराते हैं (इस क्रम में)। इन कुंजियों का द्विआधारी प्रतिनिधित्व निम्नलिखित है:

तीन उदाहरण कुंजी के द्विआधारी प्रतिनिधित्व

ध्यान दें कि मुस्कान का एक उपसर्ग है मुस्कराए , और, द्विआधारी प्रतिनिधित्व का विश्लेषण करने के लिए, हम देख सकते हैं कि पहली बिट अलग है (बाएं से दाएं) है कि 0 (दूसरी पंक्ति में लाल रंग में हाइलाइट); इस कारण से, मुस्कुराहट मुस्कान का बायाँ बच्चा होगा । इसी तरह, मुस्कान होगा सही बच्चे के मुस्कराए , क्योंकि वे एक सा जिसका मूल्य है के लिए एक ही उपसर्ग ऊपर का हिस्सा 1 (तीसरी पंक्ति में लाल रंग में हाइलाइट)। तीन कुंजियों को सम्मिलित करने के बाद परिणामी पेट्रीसिया ट्राइ निम्न है:

पेट्रीसिया 3 नोड्स के साथ

यदि मूलांक, उदाहरण के लिए, 4 था, तो आंतरिक नोड्स में, कम से कम, चार बच्चे हो सकते हैं (जिनके किनारों पर क्रमशः 00, 01, 10 और 11 लेबल होते हैं)। इस मामले में, चाबियों की तुलना 2 बिट्स के टुकड़े से की जाएगी, और 1 नहीं (जैसा कि पेट्रीसिया की कोशिश करता है)।


किस तरह से दो डेटा संरचनाएं भिन्न हैं?

मेरी समझ में, केवल अंतर मूलांक है, जो पेट्रीसिया की कोशिश के मामले में 2 के बराबर है। नियमित मूलांक वृक्षों में यह मान 2 की कोई भी शक्ति हो सकती है।

क्या केवल लुक-अप करते समय तुलना करने के तरीके में अंतर होता है?

लॉग2आरआर

प्रत्येक नोड "टू-वे ब्रांच" कैसे हो सकता है? ALPHABET_SIZEकिसी दिए गए नोड के लिए सबसे अधिक संभव शाखाओं पर नहीं होना चाहिए ?

मूलांक अधिकतम संख्या में बच्चों को स्थापित करता है जो एक मूलांक वृक्ष के नोड हो सकते हैं। उदाहरण के लिए, जब मूलांक = 2, प्रत्येक नोड में अधिकतम दो बच्चे हो सकते हैं। यह पेट्रीसिया की कोशिशों (बाइनरी रेडिक्स पेड़ों के रूप में भी जाना जाता है) का मामला है।

क्या रेडिक्स आम तौर पर पेट्रीसिया की कोशिश करता है (और, इसलिए, अक्सर एक ही माना जाता है) को लागू करने की कोशिश करता है? या इस तरह के सामान्यीकरण नहीं किए जा सकते हैं?

सच कहूं तो मेरे पास इस सवाल का जवाब नहीं है। ऐसा लगता है कि दोनों डेटा संरचनाओं को अलग-अलग लेखकों द्वारा एक ही समय के आसपास प्रस्तावित किया गया था। ऐतिहासिक कारणों से, जिनसे मैं अनजान हूँ, दोनों शब्द आज भी जीवित हैं।


3

पेट्रीसिया ट्राइ एक बाइनरी रेडिक्स ट्राइ है, जो पैट्रिआसिया एल्गोरिथ्म के अल्फ़ान्यूमेरिक डेटा के अनुप्रयोग से उत्पन्न होती है।

PATRICIA का अर्थ अल्फ़ान्यूमेरिक [ डोनाल्ड आर। मॉरिसन द्वारा मूल कागज ] में कोड किए गए सूचना को पुनः प्राप्त करने के लिए व्यावहारिक एल्गोरिथम है । कागज एक बुनियादी शब्दावली को परिभाषित करता है जिसमें START, STOP, END, L-PHRASE, BRANCH, TWIN और CHAIN ​​शामिल हैं। PATRICIA कोशिश करता है कि इस एल्गोरिदम के आवेदन से परिणाम - बाइनरी रेडिक्स कोशिश करता है जहां मूलांक, r, 2 [ विकिपीडिया ] (और ऊपर) है; प्रत्येक नोड पर एक द्विआधारी विकल्प जब ट्राइवर को ट्रेस किया जाता है)।

हालाँकि, व्यवहार में, पेट्रीसिया शब्द का उपयोग r> = 2 (अर्थात मूलांक) के साथ किया जाता है, जहाँ एक समान भंडारण और खोज का उपयोग किया जाता है। उदाहरण के लिए, इसे पेट्रीसिया के रूप में शीर्षक दिया गया है। Ethereum पेट्रीसिया मर्कल Trie एक और उदाहरण, जहां r कुछ नोड्स में 16 है।

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