दो पेड़ संरचनाओं की तुलना


13

मैं सही समय पर इसका वर्णन करने की कोशिश कर रहा हूं, इसलिए मैं जितना संभव हो सके उतना विस्तार दूंगा और उम्मीद है कि किसी को पता है कि मैं क्या करने की कोशिश कर रहा हूं = -)

मैं यह निर्धारित करने के लिए दो नोड पेड़ों की तुलना करने की कोशिश कर रहा हूं कि वे संरचना-वार समान / भिन्न कैसे हैं। नीचे दिए गए मेरे आरेखों में, दोनों उदाहरणों में समान संख्या में बच्चे, पोते, आदि हैं। उदाहरण 1 में, रूट के दो बच्चे हैं, लेकिन उदाहरण दो में, जड़ नहीं है।

मैं शायद पता लगा सकता हूं कि कैसे पुनरावर्ती पाश के माध्यम से गणना करें और गिनें कि प्रत्येक स्तर के कितने स्तर हैं और तुलना करें, मुझे एक विचार दे कि पेड़ कैसे समान हैं, लेकिन केवल इस तरह से कर रहे हैं, ऐसा लगेगा कि वे समान हैं, लेकिन वास्तव में वे नहीं हैं।

किसी को भी इस बारे में पता है? या यहां तक ​​कि यह क्या है के लिए तकनीकी शब्द?

संपादित करें: इसके अलावा, यह C # में है और मैं इन वस्तुओं और उनके बच्चों को संग्रहीत करने के लिए सूचियों का उपयोग कर रहा हूं।

उदाहरण 1

यहाँ छवि विवरण दर्ज करें

उदाहरण 2

यहाँ छवि विवरण दर्ज करें


1
आप वास्तव में क्या हासिल करने की कोशिश कर रहे हैं? यह थोड़ा XY समस्या की तरह लगता है
एमएसल

सबसे अच्छा तरीका है कि मैं यह वर्णन कर सकता हूं कि 'आणविक' संरचनाओं की तुलना करने के लिए उपयोगकर्ता एक बार में एक अणु बनाता है। उदाहरण 1 एक ऐसी संरचना होगी जो एक उपयोगकर्ता द्वारा बनाई गई है और उदाहरण 2 यह निर्धारित करने में मदद करने के लिए पूर्वनिर्धारित संरचनाओं की सूची का हिस्सा हो सकता है कि क्या उपयोगकर्ता ने सही संरचना बनाई है। रूट ट्री
आइसोमॉर्फिज़्म

जवाबों:


11

आप जो खोज रहे हैं वह रूट ट्री आइसोमॉर्फिज्म है, जो कि ग्राफ आइसोमोर्फिज्म का एक विशेष संस्करण है , पेड़ों को छोड़कर और रूट नोड तय है।

इस कार्य में दिए गए स्पष्टीकरण में दो गुणों का उपयोग किया गया है:

  • समान स्तर हैं (रूट और लीफ नोड्स के बीच की दूरी)
  • प्रत्येक स्तर पर नोड्स की समान संख्या होती है

इन दोनों गुणों का उपयोग करते हुए, पत्तियों से जड़ तक अपने तरीके से काम करें, बच्चों की संख्या के साथ प्रत्येक नोड को लेक्सिकोग्राफ़िक क्रम में लेबल करें। उदाहरण के लिए, उदाहरण 1 में आपके रूट को लेबल किया जाएगा (0, 0, (0, 1)) - इसके तीन बच्चे हैं, पहले / दूसरे में 0 बच्चे हैं, और तीसरे के 2 बच्चे हैं जिनमें क्रमशः 0 और 1 बच्चे हैं। अंत में आप बस रूट लेबल की तुलना करके देखते हैं कि क्या पेड़ समान हैं।

मैंने इस तरह का विषय नहीं किया है और मैंने कुछ मिनट पहले ही इस पेपर को पढ़ा है, इसलिए मैं इसकी शुद्धता के लिए व्रत नहीं कर सकता; आशा है कि यह वैसे भी मदद करता है।


बहुत बढ़िया, बहुत ज्यादा वास्तव में मैं क्या देख रहा हूँ! मुझे इसे छोड़ देना होगा। धन्यवाद!
मुंगोइड

मुझे लगता है कि यह केवल तभी काम करता है जब आपके पास रूट नोड हो, लेकिन इस मामले में यह हो सकता है: D +1
रॉय टी।

यदि रूट नोड नहीं दिया गया है, तो आप अभी भी इस तकनीक का उपयोग कर सकते हैं, लेकिन हर रूट का प्रयास करें। जब दो पेड़ों की तुलना करते हैं, तो इसका मतलब है n से लेकर कई बार।
कॉंगसबोंगस

हाँ, यह एक आकर्षण की तरह काम किया। इसे समझने में थोड़ा समय लगा लेकिन सही काम करता है = -)
मुंगोइड

इसके लिए धन्यवाद, कुछ ऐसा दिखता है जिसका मैं भी उपयोग कर सकता हूं, मैं एक पेड़ के केंद्र को खोजने के लिए एल्गोरिथ्म से प्यार कर रहा हूं। बहुत चालाक।
.ूवीदिवस

4

यह देखने के लिए कि क्या दो ग्राफ़ तार्किक रूप से एक ही हैं, इसे ग्राफ़ इसोम्फिशम कहा जाता है ताकि आप चाहते हैं कि वहाँ से शुरुआत हो।

ध्यान दें कि सामान्य ग्राफ़ Isomorphism समस्या एनपी में है, लेकिन इस विशेष मामले के लिए एक शॉर्टकट हो सकता है, मुझे यकीन नहीं है क्योंकि यह तर्कसंगत लगता है कि अंतर जानने के लिए आपको जांचना होगा कि क्या वे समान हैं।


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