विभाजक प्रश्नों से एक पेड़ का पुनर्निर्माण


18

मान लीजिए एक निरंतर डिग्री वाला पेड़ है जिसकी संरचना हमें नहीं पता है। समस्या उत्पादन के लिए पेड़ है प्रपत्र के प्रश्नों पूछकर: "नोड करता है नोड से पथ पर झूठ नोड के लिए ?"। मान लें कि प्रत्येक क्वेरी का जवाब निरंतर समय में एक ओरेकल द्वारा दिया जा सकता है। हम के मूल्य को जानते हैं , पेड़ में नोड्स की संख्या। इसका उद्देश्य संदर्भ में पेड़ के उत्पादन में लगने वाले समय को कम करना है ।TTxabnn

क्या उपरोक्त समस्या के लिए एक एल्गोरिदम मौजूद है?o(n2)

मान लें कि में किसी भी नोड की डिग्री अधिकतम 3 पर है।T


क्या मुझे पता है

बाउंडेड व्यास का मामला आसान है । यदि पेड़ का व्यास , तो हम एक डिवाइड-एंड-कॉनकोर एल्गोरिथ्म प्राप्त कर सकते हैं:D

किसी भी बाइनरी ट्री में एक अच्छा विभाजक होता है जो पेड़ को 1 / 3n से कम आकार के घटकों में विभाजित करता है।

  1. किसी भी शीर्ष x को चुनें। यदि यह एक अच्छा विभाजक लेबल है जो पुनरावृत्ति करता है।
  2. X के सभी 3 पड़ोसी खोजें।
  3. पड़ोसी की दिशा में आगे बढ़ें जिसमें सबसे अधिक संख्या में नोड्स हैं। पड़ोसी के साथ चरण 2 को दोहराएं।

चूंकि विभाजक सबसे चरणों में लेता है , हमें एकDO(nDlogn) एल्गोरिदम मिलता है।

O(nlog2n) यादृच्छिक एल्गोरिथ्म। (नीचे टिप्पणी से स्थानांतरित)

दो कोने एक्स और वाई बेतरतीब ढंग से उठाओ। 1/9 संभावना के साथ वे एक विभाजक के विपरीत पक्षों पर झूठ बोलेंगे। से y तक पथ के मध्य नोड को चुनें । देखें कि क्या यह एक विभाजक है, यदि बाइनरी खोज नहीं करते हैं।एक्सy

इसमें O ( n) लगता है विभाजक को खोजने के लिए अपेक्षित समय। तो हमें O ( n) मिलता हैहे(nलॉगn) यादृच्छिक एल्गोरिथ्म।हे(nलॉग2n)


पृष्ठभूमि। मुझे इस समस्या के बारे में एक दोस्त से पता चला, जो संभाव्य चित्रमय मॉडल में काम करता है। उपरोक्त समस्या मोटे तौर पर एक जंक्शन वृक्ष की संरचना को सीखने में मेल खाती है , जो एक अलंकरण का उपयोग करते हुए दी जाती है, जिसे तीन यादृच्छिक चर X, Y और Z दिए गए हैं, X और Y के बीच पारस्परिक सूचना के मूल्य को Z का मान बता सकते हैं। यदि मान करीब है शून्य के लिए, हम मान सकते हैं कि Z, X से Y तक के मार्ग पर स्थित है।


7
कृपया बताएं कि आप पहले से ही समस्या के बारे में क्या जानते हैं, इसलिए हम पहिया को फिर से स्थापित करने में अपना समय बर्बाद नहीं करते हैं।
जेफ

@ J @ ɛ E मैंने अपना प्रश्न संपादित किया है।
जगदीश

जवाबों:


5

नहीं । निम्नलिखित सरल विरोधी रणनीति का अर्थ है कि node पेड़ के पुनर्निर्माण के लिए किसी भी एल्गोरिदम को कम से कम ( n - 1) की आवश्यकता होती हैn"समानता" प्रश्न।(n-12)=n(n-1)/2

मनमाने ढंग से नोड्स लेबल । विरोधी सभी प्रश्नों का उत्तर देता है जैसे कि पेड़ केंद्र में शीर्ष 0 के साथ एक तारा है; अपने बच्चों के रूप में 0 और जड़ के रूप में अन्य नोड्स के बारे में सोचें ।0,1,2,...,n-100

Between?(a,x,b)
    if x=0 return TRUE else return FALSE

अब मान लें कि एल्गोरिथ्म प्रश्नों से कम प्रदर्शन करने के बाद रुकता है। फिर दो वर्टीकल y और z होने चाहिए , न तो शून्य के बराबर, जैसे कि एल्गोरिथम ने ट्रिपल ( 0 , y , z ) के किसी भी क्रमांकन की पुष्टि नहीं की है । यदि एल्गोरिथ्म का दावा है कि पेड़ केंद्र 0 के साथ एक तारा नहीं है , तो विरोधी अपने इनपुट को प्रकट करता है, एल्गोरिथ्म को गलत साबित करता है। फिर विरोधी ने खुलासा किया कि x वास्तव में y का एकमात्र बच्चा है , एल्गोरिथम को फिर से गलत साबित करता है।n(n-1)/2yz(0,y,z)0एक्सy

अद्यतन: उफ़, बस डिग्री की कमी देखी। सौभाग्य से, यह एक बड़ी बाधा नहीं है। नोड को अपने पसंदीदा बाइनरी ट्री के साथ बदलें , अन्य n - 1 नोड्स के साथ कुछ अज्ञात क्रम में पत्तियों के साथ, और फिर इस सबट्री को पुनर्निर्माण एल्गोरिथ्म में प्रकट करें। परिणामी ( 2 n - 3 ) का पुनर्निर्माण करते हुए -एक बाइनरी ट्री को अभी भी कम से कम n ( n - 1 ) / 2 प्रश्नों की आवश्यकता होती है। तुल्य, एक के पुनर्निर्माण मीटर द्विआधारी पेड़ -node कम से कम की आवश्यकता है ( मीटर + 3 )0n-1(2n-3)n(n-1)/2 प्रश्न (मुझे यकीन है कि एक अधिक सूक्ष्म निर्माण निरंतर सुधार होगा।)(+3)(+2)/8 जैसा कि जगदीश बताते हैं, यह सामान्यीकरण काम नहीं करता है; पेड़ में आंतरिक नोड के बारे में प्रश्न पत्तियों पर एक आदेश लगाते हैं, जिससे आवश्यक प्रश्नों की संख्या कम हो जाती है।


मेरा प्रश्न निरंतर डिग्री वाले पेड़ों के बारे में है। यह तर्क उस मामले के लिए काम नहीं करता है, है ना?
जगदीश

2
@ जगदीश: (1) मुझे नहीं लगता कि यादृच्छिक एल्गोरिदम के लिए कम बाध्य कार्यों का यह प्रमाण है। विरोधी अभी भी एक असफल उदाहरण का निर्माण कर सकता है, लेकिन यह परिकल्पना का खंडन नहीं करता है कि यादृच्छिक एल्गोरिदम उच्च संभावना के साथ सही ढंग से काम करता है। (२) वैसे, ऐसा लगता है कि आपने प्रश्न को उत्तर जानने के लिए कहा है। आपने यह किसके लिए किया?
त्सुकोशी इतो

2
समझा। स्पष्टीकरण के लिए धन्यवाद, और प्रश्न को संपादित करने के लिए भी धन्यवाद!
त्सुयोशी इतो

4
यदि आपके पास एक यादृच्छिक एल्गोरिदम है, तो आपके पास एक एल्गोरिथ्म है। नियतत्ववाद पर हावी है।
जेफ

1
यह समस्या मुझे छंटाई / मिलान नट और बोल्ट की याद दिलाती है। एक यादृच्छिक एल्गोरिथ्म जो उच्च संभावना के साथ समय में चलता है, यह आसान है - यह सिर्फ यादृच्छिक रूप से क्विकॉर्ट है । एक नियतात्मक ( एन लॉग एन ) -टाइम एल्गोरिथ्म है, लेकिन यह गंभीर रूप से nontrivial हैहे(nलॉगn)हे(nलॉगn)
जेफ

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