बाइनरी पेड़ों की गिनती


28

(मैं कुछ गणितीय पृष्ठभूमि वाला एक छात्र हूं और मैं जानना चाहता हूं कि एक विशिष्ट प्रकार के बाइनरी पेड़ों की संख्या कैसे गिना जाए।)

बाइनरी पेड़ों के लिए विकिपीडिया पृष्ठ को देखते हुए , मैंने इस दावे पर ध्यान दिया है कि आकार के मूल बाइनरी पेड़ों की संख्या यह कैटलन संख्या होगी : C_n = \ dfrac {1} {n + 1} {2n \ choose n}n

Cn=1n+1(2nn)

लेकिन मुझे समझ नहीं आ रहा है कि मैं खुद कैसे इस तरह के परिणाम के साथ आ सकता हूं? क्या इस परिणाम को खोजने की कोई विधि है?

अब, क्या होगा यदि उप-पेड़ों का क्रम (जो बाएं है, जो सही है) नहीं माना जाता है? उदाहरण के लिए, मेरे दृष्टिकोण से, मैं समझता हूं कि ये दोनों पेड़ समान हैं:

   /\   /\
  /\     /\

क्या यह गणना करना संभव होगा कि इनमें से कितनी वस्तुओं में बिल्कुल n नोड्स हैं?


क्या पोल्या की गिनती प्रमेय जड़ वाले 2-एरी पेड़ों पर है?
निकोलस मंचुसो

जवाबों:


35

कई प्रकार की दहनशील वस्तुओं की गिनती के लिए, इस मामले में पेड़ों की तरह, शक्तिशाली गणितीय उपकरण (प्रतीकात्मक विधि) हैं जो आपको एक विवरण से इस तरह के मायने निकालने के लिए अनुमति देते हैं कि कैसे दहनशील वस्तुओं का निर्माण किया जाता है। इसमें जनरेटिंग कार्य शामिल हैं।

एक उत्कृष्ट संदर्भ है स्वर्गीय फिलिप फ्लैजलेट और रॉबर्ट सेडगविक द्वारा एनालिटिक कॉम्बिनेटरिक्स है। यह ऊपर दिए गए लिंक से उपलब्ध है।

स्वर्गीय हर्बर्ट विल्फ की पुस्तक generatingfunctionology एक और मुक्त स्रोत है।

और निश्चित रूप से ठोस गणित द्वारा एक खजाना है।


द्विआधारी पेड़ों के लिए यह इस प्रकार है: पहले आपको पेड़ की स्पष्ट परिभाषा की आवश्यकता है।

एक बाइनरी ट्री एक जड़ वाला पेड़ है जिसमें हर गैर-पत्ती के नोड में डिग्री 2 बिल्कुल होती है।

आगे हमें सहमत होना होगा कि हम पेड़ के आकार को क्या कहना चाहते हैं ।

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

बाईं ओर सभी नोड्स समान हैं। बीच में हम पत्तियों और गैर-पत्तियों को अलग करते हैं। दाईं ओर हमारे पास एक कांटेदार बाइनरी ट्री है जहाँ पत्तियाँ निकाली गई हैं। ध्यान दें कि इसकी दो प्रकार की शाखाएँ हैं (बाएँ और दाएँ)!

अब हमें एक विवरण प्राप्त करना है कि इन दहनशील वस्तुओं का निर्माण कैसे किया जाता है। बाइनरी पेड़ों के मामले में एक पुनरावर्ती अपघटन संभव है।

Let पहले प्रकार के सभी बाइनरी पेड़ों का सेट हो, फिर प्रतीकात्मक रूप से हमारे पास: यहाँ छवि विवरण दर्ज करें

यह इस प्रकार है: "बाइनरी पेड़ों के वर्ग की एक वस्तु या तो एक नोड या दो बाइनरी पेड़ों के बाद वाला नोड है।" इसे सेट के समीकरण के रूप में लिखा जा सकता है:

={}({}××)

जनरेटिंग फंक्शन शुरू करने से जो कि कॉम्बीनेटरियल ऑब्जेक्ट्स के इस वर्ग को शामिल करता है, हम सेट समीकरण को जेनरेटिंग फंक्शन से जुड़े समीकरण में ट्रांसलेट कर सकते हैं।(z)

(z)=z+z2(z)

सभी नोड्स को समान रूप से मानने और पेड़ में नोड्स की संख्या लेने के बारे में हमारी पसंद है क्योंकि इसके आकार की धारणा को चर साथ नोड्स "चिह्नित" द्वारा व्यक्त किया गया है ।z

अब हम द्विघात समीकरण को लिए हल कर सकते हैं और सामान्य रूप से दो समाधान प्राप्त कर सकते हैं, जो जनरेटिंग फंक्शन का स्पष्ट बंद रूप है:A ( z )z2(z)-(z)+z=0(z)

(z)=1±1-4z22z

अब हमें बस न्यूटन की (सामान्यीकृत) द्विपद प्रमेय की आवश्यकता है:

(1+एक्स)=Σकश्मीर=0(कश्मीर)एक्सकश्मीर

साथ और घात श्रृंखला में पैदा समारोह पीठ के बंद फार्म का विस्तार करने के। हम ऐसा इसलिए करते हैं, क्योंकि पर गुणांक सिर्फ आकार के दहनशील वस्तुओं की संख्या है , जिसे आमतौर पर रूप में लिखा जाता है । लेकिन यहाँ वृक्ष के "आकार" की हमारी धारणा हमें पर गुणांक देखने के लिए मजबूर करती है।एक्स = - 4 जेड 2 जेड एन एन [ z n ] एक ( जेड ) z 2 n + 1=1/2एक्स=-4z2znn[zn](z)z2n+1 । द्विपद और गुत्थियों के साथ कुछ करतब दिखाने के बाद:

[z2n+1](z)=1n+1(2nn)

यदि हम आकार की दूसरी धारणा से शुरू करते हैं तो पुनरावर्ती अपघटन होता है:

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

हमें कॉम्बीनेटरियल ऑब्जेक्ट्स एक अलग वर्ग मिलता है । यह पढ़ता है: "द्विआधारी पेड़ों की श्रेणी की एक वस्तु या तो एक पत्ती या एक अंतर नोड है जिसके बाद दो बाइनरी पेड़ हैं।"बी

हम एक ही दृष्टिकोण का उपयोग कर सकते हैं और को में बदल सकते हैं। । केवल इस बार चर केवल आंतरिक नोड्स को चिह्नित करता है, पत्तियों को नहीं, क्योंकि परिभाषा "आकार" यहां अलग है। हमें एक अलग जनरेटिंग फंक्शन भी मिलता है: बी = 1 + z बी 2 ( जेड ) zB={}({}×B×B)B=1+zB2(z)z

बी(z)=1-1-4z2z

गुणांक पैदावार निकालना

[zn]बी(z)=1n+1(2nn)

क्लास और काउंट्स पर सहमत हैं, क्योंकि आंतरिक नोड्स वाले एक बाइनरी ट्री में पत्ते हैं, इस प्रकारबी एन एन + 1 2 एन + 1बीnn+12n+1 कुल नोड्स हैं।

आखिरी मामले में हमें थोड़ी मेहनत करनी होगी:

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

जो गैर-रिक्त छंटनी बाइनरी कोशिशों का विवरण है। हम इसे

सी={}({}×सी)({}×सी)({}×सी×सी)डी={ε}({}×सी×सी)

और इसे जनरेटिंग फ़ंक्शंस के साथ फिर से लिखना

C(z)=z+2zC(z)+zC2(z)D(z)=1+zC2(z)

द्विघात समीकरणों को हल करें

C(z)=12z14z2zD(z)=114z2z

और फिर से मिलता है

[zn]C(z)=1n+1(2nn)n1[zn]D(z)=1n+1(2nn)n0

ध्यान दें कि कैटलन जनरेटिंग फ़ंक्शन है

(z)=1-1-4z2

यह सामान्य पेड़ों के वर्ग की गणना करता है । यह नोड डिग्री पर कोई प्रतिबंध नहीं है।

={}×एसक्यू()

यह इस प्रकार है: "सामान्य पेड़ों के वर्ग की एक वस्तु सामान्य पेड़ों के संभावित खाली अनुक्रम के बाद एक नोड है।"

E(z)=z1E(z)

साथ Lagrange-Bürmann उलट फॉर्मूला पर हम पाते हैं

[zn]E(z)=1n+1(2nn)

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

ध्यान दें कि यदि हम कक्षा में बाएँ और दाएँ भाई-बहन को अलग नहीं करते हैं, तो हमें पेड़ों का एक और वर्ग :टीCT

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

एकात्मक बाइनरी पेड़। उनके पास एक उत्पादक फ़ंक्शन भी है हालांकि उनका गुणांक अलग है। आपको मोटज़किन नंबर

T={}×SEQ2(T)
T(z)=1z12z3z22z
[zn]T(z)=1nk(nk)(nkk1)

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


बस यह ध्यान देने के लिए कि सेडग्विक और फ्लैजलेट की "एल्गोरिदम के विश्लेषण का परिचय" ( aofa.cs.princeton.edu ) "एनालिटिक कॉम्बिनेटरिक्स" पुस्तक के रूप में एक ही सामग्री का एक बहुत कवर करता है, लेकिन अधिक सुलभ रूप में।
वॉनब्रांड २ v'१३ को ०६:०३

7

सृजन कार्य एक बहुत शक्तिशाली और बहुत उपयोगी जादू की छड़ी है। पहले सवाल का निम्न समाधान (क्यों पेड़ हैं) कुछ कम जादुई है। इसलिए, प्यारा।Cn

उदाहरण। के एक पेड़ का उत्पादन करने के नोड्स हम एक दृश्य है जिसमें के साथ शुरू होता है बार, और होता है बार। उदाहरण के लिए, । सबसे छोटे (और संभवतः नकारात्मक) योग के साथ उपसर्गों में, सबसे लंबा उठाओ; इस मामले में, । इस उपसर्ग को शुरू से लें और इसे अंत में डालें; इस स्थिति में, हमें । अब बदल में और में ; इस मामले में हमें मिलता है । शुरू से एक निकालें , एक जोड़ें5+15+115+-++-+--++-+-++-+--++-+-++-+--+टी-TTETETTETEEटीअतं मै; इस मामले में हम प्राप्त करते हैं TETETTETEEE। यह वृक्ष का वर्णन है T(E,T(E,T(T(E,T(E,E)),E)))। नीचे कुछ स्पष्टीकरण है कि यह एक आक्षेप क्यों है। एक बार जब आप इसके बारे में आश्वस्त हो जाते हैं, तो गिनती आसान होती है। हैं के दृश्यों±1, तो हम से विभाजित5+6क्योंकि हम संभव चक्रीय क्रमपरिवर्तन में से एक चुना है।(5+65)±15+6

type tree = T of tree * tree | ET(T(E,E),T(T(E,E),T(E,E)))TTEETTEETEEETTEETTEETEnnn

nn0

>0n+1n

एक्स1...एक्समीटरकश्मीर1एक्सकश्मीर,...,एक्समीटर,एक्स1,...,एक्सकश्मीर-1एक्स1++एक्सकश्मीर-11एक्स1एक्सकश्मीर++एक्समीटर1एक्सकश्मीरएक्स1++एक्समीटर2

इसके अलावा, योग 1 के साथ कुछ अनुक्रम दिए गए हैं, हमेशा एक चक्रीय क्रमचय होता है जो सभी गैर-खाली उपसर्गों को सकारात्मक राशि देता है। (वास्तविक संख्याओं के लिए भी यह सही है।)

2n+1n+1(2n+1n+1)12n+1

12n+1(2n+1n+1)=12n+12n+1n+1(2nn)=1n+1(2nn)

बहुत अच्छा जवाब है, लेकिन निम्नलिखित कथन में कुछ स्पष्टीकरण की आवश्यकता है: "योग 1 के साथ कुछ अनुक्रम दिया गया है, हमेशा एक चक्रीय क्रमचय होता है जो सभी गैर-खाली उपसर्गों को सकारात्मक योग बनाता है" .... कम से कम प्रमाण के लिए एक संकेत होगा। अच्छा।
VOG

1
@vog: सबसे छोटी राशि के साथ उपसर्ग लें, और इसे अंत तक ले जाएं।
rgrig

1
@ वोग: यह सबसे लंबा उपसर्ग भी होना चाहिए, अगर एक ही सबसे छोटी राशि के साथ कई हों। मैंने शुरुआत में एक उदाहरण जोड़ने का उत्तर संपादित किया।
rgrig
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.