ऑप्टिमल बाइनरी सर्च ट्री: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Computer science concept}} | {{Short description|Computer science concept}} | ||
[[कंप्यूटर विज्ञान]] में, | [[कंप्यूटर विज्ञान]] में, सर्वोत्तम बाइनरी सर्च ट्री (ऑप्टिमल बीएसटी), जिसे कभी-कभी वजन-संतुलित बाइनरी ट्री भी कहा जाता है,<ref>{{cite book |first1=Jean-Paul |last1=Tremblay |first2=Grant A. |last2=Cheston |title=ऑब्जेक्ट-ओरिएंटेड डोमेन में डेटा संरचनाएं और सॉफ़्टवेयर विकास|publisher=Eiffel Edition/Prentice Hall |year=2001 |isbn=978-0-13-787946-5}}</ref> [[बाइनरी सर्च ट्री]] है जो एक्सेस के दिए गए अनुक्रम (या एक्सेस संभावनाओं) के लिए सबसे छोटा संभव खोज समय (या [[अपेक्षित मूल्य]]) प्रदान करता है। सर्वोत्तम बीएसटी को सामान्यतः दो प्रकारों स्थिर और गतिशील में विभाजित किया जाता है। | ||
स्थैतिक | स्थैतिक सर्वोत्तमता समस्या में, ट्री के निर्माण के पश्चात् उसे संशोधित नहीं किया जा सकता है। इस स्थिति में, ट्री के नोड्स का कुछ विशेष लेआउट उपस्थित है जो दी गई पहुंच संभावनाओं के लिए सबसे छोटा अपेक्षित खोज समय प्रदान करता है। अवयवों की पहुंच संभावनाओं पर जानकारी देते हुए सांख्यिकीय रूप से सर्वोत्तम ट्री का निर्माण या अनुमान लगाने के लिए विभिन्न एल्गोरिदम उपस्थित हैं। | ||
गतिशील | गतिशील सर्वोत्तमता समस्या में, ट्री को किसी भी समय संशोधित किया जा सकता है, सामान्यतः ट्री के घूमने की अनुमति देकर ऐसा माना जाता है कि ट्री की मूल से प्रारंभ होने वाला कर्सर होता है जिसे वह स्थानांतरित कर सकता है या संशोधन करने के लिए उपयोग कर सकता है। इस स्थिति में, इन परिचालनों का कुछ न्यूनतम-लागत अनुक्रम उपस्थित है जो कर्सर को लक्ष्य पहुंच अनुक्रम में प्रत्येक नोड पर क्रम से जाने का कारण बनता है। सभी स्थितियों में डायनामिक ऑप्टिमिटी ट्री की तुलना में [[ बिखरा हुआ पेड़ |मैनिफोल्ड ट्री]] में निरंतर [[प्रतिस्पर्धी अनुपात]] होने का अनुमान लगाया गया है, चूँकि यह अभी तक सिद्ध नहीं हुआ है। | ||
== | == स्थिर अनुकूलता == | ||
=== परिभाषा === | === परिभाषा === | ||
डोनाल्ड ई. नुथ द्वारा परिभाषित स्थैतिक | डोनाल्ड ई. नुथ द्वारा परिभाषित स्थैतिक सर्वोत्तमता समस्या में,<ref name="Knuth1971">{{Citation |first1=Donald E. |last1=Knuth |title=Optimum binary search trees |journal=Acta Informatica |volume=1 |issue=1 |pages=14–25 |year=1971 |doi=10.1007/BF00264289 |s2cid=62777263 }}</ref> हमें का समुच्चय दिया गया है इस प्रकार {{mvar|n}} आदेशित अवयव और का समुच्चय <math>2n+1</math> सम्भावनाएँ हम अवयवों को निरूपित करेंगे <math>a_1</math> द्वारा <math>a_n</math> और संभावनाएँ <math>A_1</math> द्वारा <math>A_n</math> और <math>B_0</math> द्वारा <math>B_n</math>. <math>A_i</math> अवयव के लिए खोज किये जाने की संभावना है <math>a_i</math> (या सफल खोज).<ref name=":0">{{Cite journal|last=Nagaraj|first=S. V.|date=1997-11-30|title=इष्टतम बाइनरी खोज पेड़|url=https://www.sciencedirect.com/science/article/pii/S0304397596003209|journal=Theoretical Computer Science|language=en|volume=188|issue=1|pages=1–44|doi=10.1016/S0304-3975(96)00320-9|s2cid=33484183 |issn=0304-3975}}</ref> के लिए <math>1 \le i < n</math>, <math>B_i</math> के बीच किसी अवयव की खोज होने की संभावना है <math>a_i</math> और <math>a_{i+1}</math>(या असफल खोज),<ref name=":0" /> <math>B_0</math> किसी अवयव के लिए खोज किए जाने की संभावना बिल्कुल कम <math>a_1</math>, और <math>B_n</math> है किसी अवयव के लिए खोज किए जाने की संभावना उससे कहीं अधिक <math>a_n</math> है इन <math>2n+1</math> संभावनाएँ सभी संभावित खोजों को कवर करती हैं, और इसलिए तक जुड़ जाती हैं। | ||
स्थैतिक | स्थैतिक सर्वोत्तमता समस्या बाइनरी खोज ट्री को खोजने की [[अनुकूलन समस्या]] है जो अपेक्षित खोज समय को कम करती है, जिसे देखते हुए <math>2n+1</math> सम्भावनाएँ के समुच्चय पर संभावित ट्री की संख्या के रूप में {{mvar|n}} अवयव है <math>{2n \choose n}\frac{1}{n+1}</math>,<ref name="Knuth1971" /> जो कि घातांकीय है {{mvar|n}}, क्रूर-बल खोज सामान्यतः व्यवहार्य समाधान नहीं है। | ||
=== नुथ का [[गतिशील प्रोग्रामिंग]] एल्गोरिदम === | === नुथ का [[गतिशील प्रोग्रामिंग]] एल्गोरिदम === | ||
1971 में, नुथ ने अपेक्षाकृत सीधा गतिशील प्रोग्रामिंग एल्गोरिदम प्रकाशित किया जो केवल O(n) में सांख्यिकीय रूप से | 1971 में, नुथ ने अपेक्षाकृत सीधा गतिशील प्रोग्रामिंग एल्गोरिदम प्रकाशित किया जो केवल O(n<sup>2</sup>) में सांख्यिकीय रूप से सर्वोत्तम ट्री का निर्माण करने में सक्षम था।) समय.<ref name="Knuth1971" /> इस कार्य में, नथ ने 1958 में [[एडगर गिल्बर्ट]] और एडवर्ड एफ. मूर द्वारा प्रस्तुत गतिशील प्रोग्रामिंग एल्गोरिदम का विस्तार और सुधार किया था।<ref>{{Cite journal|last1=Gilbert|first1=E. N.|last2=Moore|first2=E. F.|date=July 1959|title=परिवर्तनीय-लंबाई बाइनरी एनकोडिंग|url=https://ieeexplore.ieee.org/document/6768523|journal=Bell System Technical Journal|language=en|volume=38|issue=4|pages=933–967|doi=10.1002/j.1538-7305.1959.tb01583.x}}</ref> गिल्बर्ट और मूर का एल्गोरिदम आवश्यक है इस प्रकार <math>O(n^3)</math> समय और <math>O(n^2)</math> समिष्ट और सर्वोत्तम बाइनरी खोज ट्री निर्माण के विशेष स्थिति के लिए डिज़ाइन किया गया था (सर्वोत्तम वर्णमाला ट्री समस्या के रूप में जाना जाता है)।<ref>{{Cite journal|last1=Hu|first1=T. C.|last2=Tucker|first2=A. C.|date=December 1971|title=इष्टतम कंप्यूटर खोज वृक्ष और चर-लंबाई वर्णमाला कोड|url=http://dx.doi.org/10.1137/0121057|journal=SIAM Journal on Applied Mathematics|volume=21|issue=4|pages=514–532|doi=10.1137/0121057|issn=0036-1399}}</ref> जो केवल असफल खोजों की संभावना पर विचार करता है, अर्थात, <math display="inline">\sum _{i = 1}^{n} A_i = 0</math>. नुथ का कार्य निम्नलिखित अंतर्दृष्टि पर निर्भर था: स्थैतिक सर्वोत्तमता समस्या [[इष्टतम उपसंरचना|सर्वोत्तम उपसंरचना]] को प्रदर्शित करती है; अर्थात्, यदि निश्चित ट्री किसी दिए गए संभाव्यता वितरण के लिए सांख्यिकीय रूप से सर्वोत्तम है, तो उसके बाएँ और दाएँ उपट्री भी वितरण के उनके उपयुक्त उपसमूहों के लिए सांख्यिकीय रूप से सर्वोत्तम होने चाहिए (मूलों की एकरसता प्रोपर्टी के रूप में जाना जाता है)। | ||
इसे देखने के लिए, विचार करें कि नथ | इसे देखने के लिए, विचार करें कि नथ ट्री की भारित पथ लंबाई को क्या कहते हैं। n अवयवों के ट्री की भारित पथ लंबाई सभी की लंबाई का योग है <math>2n+1</math> संभावित खोज पथ, उनकी संबंधित संभावनाओं के आधार पर भारित न्यूनतम भारित पथ लंबाई वाला ट्री, परिभाषा के अनुसार, सांख्यिकीय रूप से सर्वोत्तम है। | ||
किन्तु भारित पथ लंबाई में रोचक गुण होता है। मान लीजिए E बाइनरी ट्री की भारित पथ लंबाई है, {{mvar|E<sub>L</sub>}} इसके बाएँ उपट्री की भारित पथ लंबाई हो, और {{mvar|E<sub>R</sub>}} इसके दाएँ उपट्री की भारित पथ लंबाई होता है। यह भी मान लें कि W ट्री की सभी संभावनाओं का योग है। ध्यान दें कि जब कोई भी उपट्री मूल से जुड़ा होता है, तो उसके प्रत्येक अवयव की गहराई (और इस प्रकार उसके प्रत्येक खोज पथ) में की वृद्धि होती है। यह भी ध्यान रखें कि मूल की गहराई भी होता है। इसका कारण यह है कि ट्री और उसके दो उपट्री के बीच भारित पथ की लंबाई का अंतर ट्री में हर संभावना का योग है, जिससे निम्नलिखित पुनरावृत्ति होती है: | |||
:<math>E = E_L + E_R + W</math> | :<math>E = E_L + E_R + W</math> | ||
यह पुनरावृत्ति प्राकृतिक गतिशील प्रोग्रामिंग समाधान की ओर ले जाती है। | यह पुनरावृत्ति प्राकृतिक गतिशील प्रोग्रामिंग समाधान की ओर ले जाती है। मान लीजिए <math>E_{ij}</math> बीच के सभी मानों के लिए सांख्यिकीय रूप से सर्वोत्तम खोज ट्री की भारित पथ लंबाई हो {{mvar|a<sub>i</sub>}} और {{mvar|a<sub>j</sub>}}, मान लीजिए <math>W_{ij}</math> उस ट्री का कुल वजन हो, और रहने दो <math>R_{ij}</math> इसकी मूल का सूचकांक बनें. एल्गोरिथ्म निम्नलिखित सूत्रों का उपयोग करके बनाया जा सकता है: | ||
:<math>\begin{align} | :<math>\begin{align} | ||
Line 30: | Line 30: | ||
E_{i, j} &= \min_{i\leq r \leq j}(E_{i,r-1} + E_{r+1,j}+W_{i,j}) \operatorname{for} 1 \leq i \leq j \leq n | E_{i, j} &= \min_{i\leq r \leq j}(E_{i,r-1} + E_{r+1,j}+W_{i,j}) \operatorname{for} 1 \leq i \leq j \leq n | ||
\end{align}</math> | \end{align}</math> | ||
इस एल्गोरिथ्म का सरल कार्यान्वयन वास्तव में O(n) लेता है<sup>3</sup>) समय, | इस एल्गोरिथ्म का सरल कार्यान्वयन वास्तव में O(n) लेता है<sup>3</sup>) समय, किन्तु नथ के पेपर में कुछ अतिरिक्त अवलोकन सम्मिलित हैं जिनका उपयोग केवल O(n) लेकर संशोधित एल्गोरिदम तैयार करने के लिए किया जा सकता है) | ||
अपने गतिशील प्रोग्रामिंग एल्गोरिदम के | इस प्रकार अपने गतिशील प्रोग्रामिंग एल्गोरिदम के अतिरिक्त, नुथ ने सर्वोत्तम बाइनरी खोज ट्री का लगभग (अनुमान) उत्पादन करने के लिए दो अनुमान (या नियम) प्रस्तावित किए जाते है। लगभग सर्वोत्तम बाइनरी खोज ट्री का अध्ययन करना आवश्यक था क्योंकि नुथ के एल्गोरिथ्म समय और समिष्ट की जटिलता निषेधात्मक हो सकती है <math>n</math> अधिक बड़ा है.<ref name="Mehlhorm1975">{{Citation|last1=Mehlhorn|first1=Kurt|title=Nearly optimal binary search trees|url=http://edoc.mpg.de/344677|journal=Acta Informatica|volume=5|issue=4|pages=287–295|year=1975|doi=10.1007/BF00264563|s2cid=17188103}}</ref> नुथ के नियमों को निम्नलिखित के रूप में देखा जा सकता है: | ||
* नियम I (रूट-मैक्स): सबसे अधिक बार आने वाले नाम को | * नियम I (रूट-मैक्स): सबसे अधिक बार आने वाले नाम को ट्री की मूल में रखें, फिर उपट्री पर भी इसी तरह आगे बढ़ें। | ||
* नियम II (द्विभाजन): | * नियम II (द्विभाजन): मूल का चयन करें ताकि बाएं और दाएं उपट्री के कुल वजन को जितना संभव हो सके समान किया जा सके, फिर उपट्री पर भी इसी तरह आगे बढ़ें। | ||
नुथ का अनुमान लगभग | नुथ का अनुमान लगभग सर्वोत्तम बाइनरी सर्च ट्री को प्रयुक्त करता है इस प्रकार <math>O(n \log n)</math> समय और <math>O(n)</math> समिष्ट सर्वोत्तम नुथ के अनुमान से कितनी दूर हो सकता है इसका विश्लेषण आगे [[कर्ट मेहलहॉर्न]] द्वारा प्रस्तावित किया गया था।<ref name="Mehlhorm1975" /> | ||
=== मेहलहॉर्न का सन्निकटन एल्गोरिथ्म === | === मेहलहॉर्न का सन्निकटन एल्गोरिथ्म === | ||
जबकि | जबकि o(n<sup>2</sup>) नथ के एल्गोरिदम द्वारा लिया गया समय जानवर-बल खोज के लिए आवश्यक घातीय समय से अधिक उत्तम है, यह अभी भी व्यावहारिक होने के लिए बहुत धीमा है जब ट्री में अवयवों की संख्या बहुत बड़ी है। | ||
1975 में, कर्ट मेहलहॉर्न ने नुथ के नियमों के संबंध में महत्वपूर्ण गुणों को | 1975 में, कर्ट मेहलहॉर्न ने नुथ के नियमों के संबंध में महत्वपूर्ण गुणों को सिद्ध करने वाला पेपर प्रकाशित किया था। मेहलहॉर्न के प्रमुख परिणाम बताते हैं कि नुथ के अनुमानों में से केवल (नियम II) सदैव लगभग सर्वोत्तम बाइनरी खोज ट्री उत्पन्न करता है। दूसरी ओर, रूट-मैक्स नियम अधिकांशतः निम्नलिखित सरल तर्क के आधार पर बहुत व्यर्थ खोज ट्री का कारण बन सकता है।<ref name="Mehlhorm1975" /> मान लीजिए | ||
<math display="inline">\begin{align} | |||
n = 2^k - 1,~~A_i = 2^{-k} + \varepsilon_i~~\operatorname{with}~~\sum^{n}_{i = 1} \varepsilon_i = 2^{-k} | n = 2^k - 1,~~A_i = 2^{-k} + \varepsilon_i~~\operatorname{with}~~\sum^{n}_{i = 1} \varepsilon_i = 2^{-k} | ||
\end{align} | \end{align} | ||
</math> और | </math> और | ||
<math display="inline">\begin{align} | |||
\varepsilon_1,\varepsilon_2,\dots,\varepsilon_n>0~~\operatorname{for}~~1 \leqq i \leqq n~~\operatorname{and}~~B_j = 0 \operatorname{for}~~0 \leqq j \leqq n. | \varepsilon_1,\varepsilon_2,\dots,\varepsilon_n>0~~\operatorname{for}~~1 \leqq i \leqq n~~\operatorname{and}~~B_j = 0 \operatorname{for}~~0 \leqq j \leqq n. | ||
\end{align} | \end{align} | ||
</math> भारित पथ लंबाई को ध्यान में रखते हुए <math>P | </math> भारित पथ लंबाई को ध्यान में रखते हुए <math>P | ||
</math> पिछली परिभाषा के आधार पर निर्मित | </math> पिछली परिभाषा के आधार पर निर्मित ट्री से, हमारे पास निम्नलिखित हैं: | ||
<math display="inline">\begin{align} | |||
P &= \sum_{i=1}^{n} A_i(a_i + 1) + \sum_{j=1}^{n} B_j b_j \\ | P &= \sum_{i=1}^{n} A_i(a_i + 1) + \sum_{j=1}^{n} B_j b_j \\ | ||
&= \sum_{i=1}^{n} A_i i \\ | &= \sum_{i=1}^{n} A_i i \\ | ||
&\geqq 2^{-k} \sum_{i=1}^{n} i = 2^{-k} \frac{n(n+1)}{2}\geqq \frac{n}{2}. | &\geqq 2^{-k} \sum_{i=1}^{n} i = 2^{-k} \frac{n(n+1)}{2}\geqq \frac{n}{2}. | ||
\end{align} | \end{align} | ||
</math> | </math> | ||
यह रणनीति अच्छा सन्निकटन उत्पन्न करती है, इसे सहज रूप से देखा जा सकता है, यह देखते हुए कि किसी भी पथ के साथ | इस प्रकार, रूट-मैक्स नियम के अनुसार परिणामी ट्री ऐसा ट्री होगा जो केवल दाईं ओर बढ़ता है (ट्री के सबसे गहरे स्तर को छोड़कर), और बाईं ओर सदैव टर्मिनल नोड्स होंगे। इस ट्री की पथ लंबाई से घिरा हुआ है <math display="inline">\Omega (\frac{n}{2})</math> और, जब संतुलित खोज ट्री के साथ तुलना की जाती है (पथ से घिरा हुआ) <math display="inline">O (2 \log n)</math>), समान आवृत्ति वितरण के लिए अधिक व्यर्थ प्रदर्शन करते है।<ref name="Mehlhorm1975" /> | ||
इसके अतिरिक्त, मेहलहॉर्न ने नुथ के काम में सुधार किया और बहुत ही सरल एल्गोरिथ्म प्रस्तुत किया जो नियम II का उपयोग करता है और केवल सांख्यिकीय रूप से सर्वोत्तम ट्री के प्रदर्शन का सूक्ष्मता से अनुमान लगाता है। {{tmath|O(n)}} समय <ref name="Mehlhorm1975" /> एल्गोरिथ्म बाएँ और दाएँ उपट्री के कुल वजन (संभावना द्वारा) को सबसे निकट से संतुलित करने के लिए ट्री की मूल को चुनकर द्विभाजन नियम के समान विचार का पालन करता है। और फिर रणनीति को प्रत्येक उपट्री पर पुनरावर्ती रूप से प्रयुक्त किया जाता है। | |||
यह रणनीति अच्छा सन्निकटन उत्पन्न करती है, इसे सहज रूप से देखा जा सकता है, यह देखते हुए कि किसी भी पथ के साथ उपट्री का वजन ज्यामितीय रूप से घटते क्रम के बहुत निकट होता है। वास्तव में, यह रणनीति ट्री उत्पन्न करती है जिसकी भारित पथ लंबाई अधिकतम होती है | |||
:<math>2+(1 - \log(\sqrt{5} - 1))^{-1}H = 2 + \frac H {1 - \log(\sqrt{5} - 1)}</math> | :<math>2+(1 - \log(\sqrt{5} - 1))^{-1}H = 2 + \frac H {1 - \log(\sqrt{5} - 1)}</math> | ||
जहाँ H संभाव्यता वितरण की [[एन्ट्रापी (सूचना सिद्धांत)]] है। चूँकि कोई भी | जहाँ H संभाव्यता वितरण की [[एन्ट्रापी (सूचना सिद्धांत)]] है। चूँकि कोई भी सर्वोत्तम बाइनरी सर्च ट्री कभी भी भारित पथ लंबाई से उत्तम नहीं कर सकता है | ||
:<math>(1/\log3)H = \frac H {\log 3}</math> | :<math>(1/\log3)H = \frac H {\log 3}</math> | ||
यह सन्निकटन बहुत | यह सन्निकटन बहुत निकट है.<ref name="Mehlhorm1975" /> | ||
===हू-टकर और गार्सिया-वाच एल्गोरिदम=== | ===हू-टकर और गार्सिया-वाच एल्गोरिदम=== | ||
{{main| | {{main|गार्सिया-वॉच एल्गोरिदम}} | ||
विशेष | |||
विशेष स्थिति में कि सभी <math>A_i</math> मान शून्य हैं, सर्वोत्तम ट्री समय में पाया जा सकता है <math>O(n\log n)</math>. यह पहली बार टी. सी. हू और [[एलन टकर]] द्वारा 1971 में प्रकाशित पेपर में सिद्ध किया गया था। गार्सिया और वाच्स द्वारा पश्चात् में सरलीकरण, गार्सिया-वाच एल्गोरिदम, समान क्रम में समान तुलना करता है। एल्गोरिथ्म [[लालची एल्गोरिदम|ग्रीडी एल्गोरिदम]] का उपयोग करके ट्री का निर्माण करता है जिसमें प्रत्येक पत्ते के लिए सर्वोत्तम ऊंचाई होती है, किन्तु क्रम से बाहर है, और फिर उसी ऊंचाई के साथ और बाइनरी खोज ट्री का निर्माण करता है।<ref>{{citation | |||
| last = Knuth | first = Donald E. | author-link = Donald Knuth | | last = Knuth | first = Donald E. | author-link = Donald Knuth | ||
| contribution = Algorithm G (Garsia–Wachs algorithm for optimum binary trees) | | contribution = Algorithm G (Garsia–Wachs algorithm for optimum binary trees) | ||
Line 86: | Line 91: | ||
== गतिशील | == गतिशील सर्वोत्तमता == | ||
{{unsolved| | {{unsolved|कंप्यूटर विज्ञान|क्या स्प्ले ट्री किसी अन्य बाइनरी सर्च ट्री एल्गोरिदम की तरह ही अच्छा प्रदर्शन करते हैं?}} | ||
=== परिभाषा === | === परिभाषा === | ||
गतिशील | गतिशील सर्वोत्तमता की कई अलग-अलग परिभाषाएँ हैं, जिनमें से सभी प्रभावी रूप से रनिंग-टाइम के संदर्भ में स्थिर कारक के समान हैं।<ref name="Demaine2004">{{Citation |first1=Erik D. |last1=Demaine |first2=Dion |last2=Harmon |first3=John |last3=Iacono |first4=Mihai |last4=Patrascu |contribution=Dynamic optimality—almost |title=Proceedings of the 45th Annual IEEE Symposium on Foundations of Computer Science |isbn=978-0-7695-2228-9 |pages=484–490 |year=2004 |doi=10.1109/FOCS.2004.23 |citeseerx=10.1.1.99.4964 |contribution-url=http://erikdemaine.org/papers/Tango_SICOMP/paper.pdf}}</ref> इस समस्या को सबसे पहले [[डेनियल स्लेटर]] और [[रॉबर्ट टार्जन]] ने स्प्ले ट्रीज़ पर अपने पेपर में स्पष्ट रूप से प्रस्तुत किया था,<ref name="SplayTrees">{{Citation |first1=Daniel |last1=Sleator |first2=Robert |last2=Tarjan |title=Self-adjusting binary search trees |journal=Journal of the ACM |volume=32 |issue=3 |pages=652–686 |year=1985 |doi=10.1145/3828.3835 |s2cid=1165848 }}</ref> किन्तु [[एरिक कल]] एट अल इसका बहुत अच्छा औपचारिक विवरण दें।<ref name="Demaine2004" /> | ||
गतिशील | गतिशील सर्वोत्तमता समस्या में, हमें एक्सेस x<sub>1</sub>, ..., x<sub>m</sub> का क्रम दिया गया है कीज पर प्रत्येक एक्सेस के लिए, हमें अपने बीएसटी के रूट पर [[पॉइंटर (कंप्यूटर प्रोग्रामिंग)]] दिया जाता है और हम निम्नलिखित में से कोई भी ऑपरेशन करने के लिए पॉइंटर का उपयोग कर सकते हैं: | ||
# पॉइंटर को वर्तमान नोड के बाएँ चाइल्ड पर ले जाएँ। | # पॉइंटर को वर्तमान नोड के बाएँ चाइल्ड पर ले जाएँ। | ||
Line 100: | Line 105: | ||
# वर्तमान नोड और उसके पैरेंट पर एकल ट्री रोटेशन निष्पादित करें। | # वर्तमान नोड और उसके पैरेंट पर एकल ट्री रोटेशन निष्पादित करें। | ||
(यह चौथे ऑपरेशन की उपस्थिति है, जो एक्सेस के | (यह चौथे ऑपरेशन की उपस्थिति है, जो एक्सेस के समय ट्री को पुनर्व्यवस्थित करता है, जो इसे गतिशील ऑप्टिमलिटी समस्या बनाता है।) | ||
प्रत्येक पहुंच के लिए, हमारा बीएसटी एल्गोरिदम उपरोक्त परिचालनों के किसी भी अनुक्रम को तब तक निष्पादित कर सकता है जब तक कि सूचक अंततः लक्ष्य मान x वाले नोड पर समाप्त न हो जाए।<sub>i</sub>. किसी दिए गए गतिशील बीएसटी एल्गोरिदम को एक्सेस के अनुक्रम को निष्पादित करने में लगने वाला समय उस अनुक्रम के | प्रत्येक पहुंच के लिए, हमारा बीएसटी एल्गोरिदम उपरोक्त परिचालनों के किसी भी अनुक्रम को तब तक निष्पादित कर सकता है जब तक कि सूचक अंततः लक्ष्य मान x वाले नोड पर समाप्त न हो जाए।<sub>i</sub>. किसी दिए गए गतिशील बीएसटी एल्गोरिदम को एक्सेस के अनुक्रम को निष्पादित करने में लगने वाला समय उस अनुक्रम के समय किए गए ऐसे ऑपरेशनों की कुल संख्या के समान है। अवयवों के किसी भी समुच्चय पर पहुंच के किसी भी क्रम को देखते हुए, उन पहुंचों को निष्पादित करने के लिए कुछ न्यूनतम कुल संचालन की आवश्यकता होती है। हम इस न्यूनतम के निकट पहुंचना चाहेंगे. | ||
चूँकि एक्सेस अनुक्रम क्या होगा, इसकी पूर्व जानकारी के बिना इस एल्गोरिदम को प्रयुक्त करना असंभव है, हम ओपीटी (x) को एक्सेस अनुक्रम x के लिए किए जाने वाले संचालन की संख्या के रूप में परिभाषित कर सकते हैं, और हम कह सकते हैं कि एल्गोरिदम है गतिशील सर्वोत्तमता यदि, किसी भी x के लिए, यह समय में [[ बिग ओ अंकन |बिग ओ अंकन]] (ओपीटी (एक्स)) में x प्रदर्शन करता है (अर्थात, इसका निरंतर प्रतिस्पर्धी अनुपात है)।<ref name="Demaine2004"/> | |||
कई डेटा संरचनाओं में यह गुण होने का अनुमान लगाया गया है, | कई डेटा संरचनाओं में यह गुण होने का अनुमान लगाया गया है, किन्तु कोई भी सिद्ध नहीं हुआ है। यह [[खुली समस्या|संवृत समस्या]] है कि क्या इस मॉडल में गतिशील रूप से सर्वोत्तम डेटा संरचना उपस्थित है। | ||
=== | === स्पले ट्री === | ||
{{Main| | {{Main|सिप्ली ट्री}} | ||
स्प्ले ट्री बाइनरी सर्च ट्री का रूप है जिसका आविष्कार 1985 में डैनियल स्लिएटर और रॉबर्ट टार्जन द्वारा किया गया था, जिस पर मानक सर्च ट्री ऑपरेशन चलते हैं। <math>O(\log(n))</math> परिशोधित समय.<ref>{{cite book|last1=Cormen|first1=Thomas H.|last2=Leiserson|first2=Charles E.|last3=Rivest|first3=Ronald|last4=Stein|first4=Clifford|title=एल्गोरिदम का परिचय|date=2009|publisher=The MIT Press|isbn=978-0-262-03384-8|page=503|edition=Third|url=http://ressources.unisciel.fr/algoprog/s00aaroot/aa00module1/res/%5BCormen-AL2011%5DIntroduction_To_Algorithms-A3.pdf|access-date=31 October 2017}}</ref> इसे आवश्यक अर्थों में | स्प्ले ट्री बाइनरी सर्च ट्री का रूप है जिसका आविष्कार 1985 में डैनियल स्लिएटर और रॉबर्ट टार्जन द्वारा किया गया था, जिस पर मानक सर्च ट्री ऑपरेशन चलते हैं। <math>O(\log(n))</math> परिशोधित समय.<ref>{{cite book|last1=Cormen|first1=Thomas H.|last2=Leiserson|first2=Charles E.|last3=Rivest|first3=Ronald|last4=Stein|first4=Clifford|title=एल्गोरिदम का परिचय|date=2009|publisher=The MIT Press|isbn=978-0-262-03384-8|page=503|edition=Third|url=http://ressources.unisciel.fr/algoprog/s00aaroot/aa00module1/res/%5BCormen-AL2011%5DIntroduction_To_Algorithms-A3.pdf|access-date=31 October 2017}}</ref> इसे आवश्यक अर्थों में गतिशील सर्वोत्तमता होने का अनुमान लगाया गया है। ऐसा माना जाता है कि स्प्ले ट्री समय O(OPT(X)) में किसी भी पर्याप्त लंबे एक्सेस अनुक्रम X को निष्पादित करता है।<ref name="SplayTrees"/> | ||
=== टैंगो | === टैंगो ट्री === | ||
{{Main| | {{Main|टैंगो ट्री}} | ||
[[टैंगो पेड़]] 2004 में एरिक डेमाइन और अन्य द्वारा प्रस्तावित डेटा संरचना है जो समय में किसी भी पर्याप्त-लंबे एक्सेस अनुक्रम | [[टैंगो पेड़|टैंगो ट्री]] 2004 में एरिक डेमाइन और अन्य द्वारा प्रस्तावित डेटा संरचना है जो समय में किसी भी पर्याप्त-लंबे एक्सेस अनुक्रम x को निष्पादित करने के लिए सिद्ध हुई है। <math>O(\log\log n \operatorname{OPT}(X))</math>. चूँकि यह गतिशील रूप से सर्वोत्तम नहीं है, किन्तु इसका प्रतिस्पर्धी अनुपात <math>\log\log n</math> n के उचित मूल्यों के लिए अभी भी बहुत छोटा है।<ref name="Demaine2004"/> | ||
=== अन्य परिणाम === | === अन्य परिणाम === | ||
2013 में, [[जॉन इकोनो]] ने पेपर प्रकाशित किया था जो एल्गोरिथ्म प्रदान करने के लिए बाइनरी सर्च ट्री की ज्यामिति का उपयोग करता है जो गतिशील रूप से | 2013 में, [[जॉन इकोनो]] ने पेपर प्रकाशित किया था जो एल्गोरिथ्म प्रदान करने के लिए बाइनरी सर्च ट्री की ज्यामिति का उपयोग करता है जो गतिशील रूप से सर्वोत्तम है यदि कोई बाइनरी सर्च ट्री एल्गोरिदम गतिशील रूप से सर्वोत्तम है।<ref name="Iacono2013">{{cite arXiv |first1=John |last1=Iacono |title=गतिशील इष्टतमता अनुमान की खोज में|eprint=1306.0207 |year=2013 |mode=cs2 |class=cs.DS }}</ref> नोड्स की व्याख्या दो आयामों में बिंदुओं के रूप में की जाती है, और सर्वोत्तम पहुंच अनुक्रम उन बिंदुओं का सबसे छोटा [[आर्बरली संतुष्ट]] सुपरसमुच्चय है। स्प्ले ट्री और टैंगो ट्री के विपरीत, इकोनो की डेटा संरचना को एक्सेस अनुक्रम चरण के अनुसार निरंतर समय में कार्यान्वयन योग्य नहीं माना जाता है, इसलिए तथापि यह गतिशील रूप से सर्वोत्तम हो, फिर भी यह गैर-स्थिर कारक द्वारा अन्य खोज ट्री डेटा संरचनाओं की तुलना में धीमी हो सकती है। | ||
इंटरलीव निचली सीमा गतिशील | इंटरलीव निचली सीमा गतिशील सर्वोत्तमता पर असम्बद्ध रूप से सर्वोत्तम है। | ||
==यह भी देखें== | ==यह भी देखें== | ||
* [[वृक्ष डेटा संरचना]] | * [[वृक्ष डेटा संरचना|ट्री डेटा संरचना]] | ||
* | * स्पले ट्री | ||
* टैंगो | * टैंगो ट्री | ||
* बाइनरी सर्च ट्री की ज्यामिति | * बाइनरी सर्च ट्री की ज्यामिति | ||
* निचली सीमा को इंटरलीव करें | * निचली सीमा को इंटरलीव करें | ||
==टिप्पणियाँ== | ==टिप्पणियाँ == | ||
{{reflist}} | {{reflist}} | ||
Revision as of 13:12, 19 July 2023
कंप्यूटर विज्ञान में, सर्वोत्तम बाइनरी सर्च ट्री (ऑप्टिमल बीएसटी), जिसे कभी-कभी वजन-संतुलित बाइनरी ट्री भी कहा जाता है,[1] बाइनरी सर्च ट्री है जो एक्सेस के दिए गए अनुक्रम (या एक्सेस संभावनाओं) के लिए सबसे छोटा संभव खोज समय (या अपेक्षित मूल्य) प्रदान करता है। सर्वोत्तम बीएसटी को सामान्यतः दो प्रकारों स्थिर और गतिशील में विभाजित किया जाता है।
स्थैतिक सर्वोत्तमता समस्या में, ट्री के निर्माण के पश्चात् उसे संशोधित नहीं किया जा सकता है। इस स्थिति में, ट्री के नोड्स का कुछ विशेष लेआउट उपस्थित है जो दी गई पहुंच संभावनाओं के लिए सबसे छोटा अपेक्षित खोज समय प्रदान करता है। अवयवों की पहुंच संभावनाओं पर जानकारी देते हुए सांख्यिकीय रूप से सर्वोत्तम ट्री का निर्माण या अनुमान लगाने के लिए विभिन्न एल्गोरिदम उपस्थित हैं।
गतिशील सर्वोत्तमता समस्या में, ट्री को किसी भी समय संशोधित किया जा सकता है, सामान्यतः ट्री के घूमने की अनुमति देकर ऐसा माना जाता है कि ट्री की मूल से प्रारंभ होने वाला कर्सर होता है जिसे वह स्थानांतरित कर सकता है या संशोधन करने के लिए उपयोग कर सकता है। इस स्थिति में, इन परिचालनों का कुछ न्यूनतम-लागत अनुक्रम उपस्थित है जो कर्सर को लक्ष्य पहुंच अनुक्रम में प्रत्येक नोड पर क्रम से जाने का कारण बनता है। सभी स्थितियों में डायनामिक ऑप्टिमिटी ट्री की तुलना में मैनिफोल्ड ट्री में निरंतर प्रतिस्पर्धी अनुपात होने का अनुमान लगाया गया है, चूँकि यह अभी तक सिद्ध नहीं हुआ है।
स्थिर अनुकूलता
परिभाषा
डोनाल्ड ई. नुथ द्वारा परिभाषित स्थैतिक सर्वोत्तमता समस्या में,[2] हमें का समुच्चय दिया गया है इस प्रकार n आदेशित अवयव और का समुच्चय सम्भावनाएँ हम अवयवों को निरूपित करेंगे द्वारा और संभावनाएँ द्वारा और द्वारा . अवयव के लिए खोज किये जाने की संभावना है (या सफल खोज).[3] के लिए , के बीच किसी अवयव की खोज होने की संभावना है और (या असफल खोज),[3] किसी अवयव के लिए खोज किए जाने की संभावना बिल्कुल कम , और है किसी अवयव के लिए खोज किए जाने की संभावना उससे कहीं अधिक है इन संभावनाएँ सभी संभावित खोजों को कवर करती हैं, और इसलिए तक जुड़ जाती हैं।
स्थैतिक सर्वोत्तमता समस्या बाइनरी खोज ट्री को खोजने की अनुकूलन समस्या है जो अपेक्षित खोज समय को कम करती है, जिसे देखते हुए सम्भावनाएँ के समुच्चय पर संभावित ट्री की संख्या के रूप में n अवयव है ,[2] जो कि घातांकीय है n, क्रूर-बल खोज सामान्यतः व्यवहार्य समाधान नहीं है।
नुथ का गतिशील प्रोग्रामिंग एल्गोरिदम
1971 में, नुथ ने अपेक्षाकृत सीधा गतिशील प्रोग्रामिंग एल्गोरिदम प्रकाशित किया जो केवल O(n2) में सांख्यिकीय रूप से सर्वोत्तम ट्री का निर्माण करने में सक्षम था।) समय.[2] इस कार्य में, नथ ने 1958 में एडगर गिल्बर्ट और एडवर्ड एफ. मूर द्वारा प्रस्तुत गतिशील प्रोग्रामिंग एल्गोरिदम का विस्तार और सुधार किया था।[4] गिल्बर्ट और मूर का एल्गोरिदम आवश्यक है इस प्रकार समय और समिष्ट और सर्वोत्तम बाइनरी खोज ट्री निर्माण के विशेष स्थिति के लिए डिज़ाइन किया गया था (सर्वोत्तम वर्णमाला ट्री समस्या के रूप में जाना जाता है)।[5] जो केवल असफल खोजों की संभावना पर विचार करता है, अर्थात, . नुथ का कार्य निम्नलिखित अंतर्दृष्टि पर निर्भर था: स्थैतिक सर्वोत्तमता समस्या सर्वोत्तम उपसंरचना को प्रदर्शित करती है; अर्थात्, यदि निश्चित ट्री किसी दिए गए संभाव्यता वितरण के लिए सांख्यिकीय रूप से सर्वोत्तम है, तो उसके बाएँ और दाएँ उपट्री भी वितरण के उनके उपयुक्त उपसमूहों के लिए सांख्यिकीय रूप से सर्वोत्तम होने चाहिए (मूलों की एकरसता प्रोपर्टी के रूप में जाना जाता है)।
इसे देखने के लिए, विचार करें कि नथ ट्री की भारित पथ लंबाई को क्या कहते हैं। n अवयवों के ट्री की भारित पथ लंबाई सभी की लंबाई का योग है संभावित खोज पथ, उनकी संबंधित संभावनाओं के आधार पर भारित न्यूनतम भारित पथ लंबाई वाला ट्री, परिभाषा के अनुसार, सांख्यिकीय रूप से सर्वोत्तम है।
किन्तु भारित पथ लंबाई में रोचक गुण होता है। मान लीजिए E बाइनरी ट्री की भारित पथ लंबाई है, EL इसके बाएँ उपट्री की भारित पथ लंबाई हो, और ER इसके दाएँ उपट्री की भारित पथ लंबाई होता है। यह भी मान लें कि W ट्री की सभी संभावनाओं का योग है। ध्यान दें कि जब कोई भी उपट्री मूल से जुड़ा होता है, तो उसके प्रत्येक अवयव की गहराई (और इस प्रकार उसके प्रत्येक खोज पथ) में की वृद्धि होती है। यह भी ध्यान रखें कि मूल की गहराई भी होता है। इसका कारण यह है कि ट्री और उसके दो उपट्री के बीच भारित पथ की लंबाई का अंतर ट्री में हर संभावना का योग है, जिससे निम्नलिखित पुनरावृत्ति होती है:
यह पुनरावृत्ति प्राकृतिक गतिशील प्रोग्रामिंग समाधान की ओर ले जाती है। मान लीजिए बीच के सभी मानों के लिए सांख्यिकीय रूप से सर्वोत्तम खोज ट्री की भारित पथ लंबाई हो ai और aj, मान लीजिए उस ट्री का कुल वजन हो, और रहने दो इसकी मूल का सूचकांक बनें. एल्गोरिथ्म निम्नलिखित सूत्रों का उपयोग करके बनाया जा सकता है:
इस एल्गोरिथ्म का सरल कार्यान्वयन वास्तव में O(n) लेता है3) समय, किन्तु नथ के पेपर में कुछ अतिरिक्त अवलोकन सम्मिलित हैं जिनका उपयोग केवल O(n) लेकर संशोधित एल्गोरिदम तैयार करने के लिए किया जा सकता है)
इस प्रकार अपने गतिशील प्रोग्रामिंग एल्गोरिदम के अतिरिक्त, नुथ ने सर्वोत्तम बाइनरी खोज ट्री का लगभग (अनुमान) उत्पादन करने के लिए दो अनुमान (या नियम) प्रस्तावित किए जाते है। लगभग सर्वोत्तम बाइनरी खोज ट्री का अध्ययन करना आवश्यक था क्योंकि नुथ के एल्गोरिथ्म समय और समिष्ट की जटिलता निषेधात्मक हो सकती है अधिक बड़ा है.[6] नुथ के नियमों को निम्नलिखित के रूप में देखा जा सकता है:
- नियम I (रूट-मैक्स): सबसे अधिक बार आने वाले नाम को ट्री की मूल में रखें, फिर उपट्री पर भी इसी तरह आगे बढ़ें।
- नियम II (द्विभाजन): मूल का चयन करें ताकि बाएं और दाएं उपट्री के कुल वजन को जितना संभव हो सके समान किया जा सके, फिर उपट्री पर भी इसी तरह आगे बढ़ें।
नुथ का अनुमान लगभग सर्वोत्तम बाइनरी सर्च ट्री को प्रयुक्त करता है इस प्रकार समय और समिष्ट सर्वोत्तम नुथ के अनुमान से कितनी दूर हो सकता है इसका विश्लेषण आगे कर्ट मेहलहॉर्न द्वारा प्रस्तावित किया गया था।[6]
मेहलहॉर्न का सन्निकटन एल्गोरिथ्म
जबकि o(n2) नथ के एल्गोरिदम द्वारा लिया गया समय जानवर-बल खोज के लिए आवश्यक घातीय समय से अधिक उत्तम है, यह अभी भी व्यावहारिक होने के लिए बहुत धीमा है जब ट्री में अवयवों की संख्या बहुत बड़ी है।
1975 में, कर्ट मेहलहॉर्न ने नुथ के नियमों के संबंध में महत्वपूर्ण गुणों को सिद्ध करने वाला पेपर प्रकाशित किया था। मेहलहॉर्न के प्रमुख परिणाम बताते हैं कि नुथ के अनुमानों में से केवल (नियम II) सदैव लगभग सर्वोत्तम बाइनरी खोज ट्री उत्पन्न करता है। दूसरी ओर, रूट-मैक्स नियम अधिकांशतः निम्नलिखित सरल तर्क के आधार पर बहुत व्यर्थ खोज ट्री का कारण बन सकता है।[6] मान लीजिए
और
भारित पथ लंबाई को ध्यान में रखते हुए पिछली परिभाषा के आधार पर निर्मित ट्री से, हमारे पास निम्नलिखित हैं:
इस प्रकार, रूट-मैक्स नियम के अनुसार परिणामी ट्री ऐसा ट्री होगा जो केवल दाईं ओर बढ़ता है (ट्री के सबसे गहरे स्तर को छोड़कर), और बाईं ओर सदैव टर्मिनल नोड्स होंगे। इस ट्री की पथ लंबाई से घिरा हुआ है और, जब संतुलित खोज ट्री के साथ तुलना की जाती है (पथ से घिरा हुआ) ), समान आवृत्ति वितरण के लिए अधिक व्यर्थ प्रदर्शन करते है।[6]
इसके अतिरिक्त, मेहलहॉर्न ने नुथ के काम में सुधार किया और बहुत ही सरल एल्गोरिथ्म प्रस्तुत किया जो नियम II का उपयोग करता है और केवल सांख्यिकीय रूप से सर्वोत्तम ट्री के प्रदर्शन का सूक्ष्मता से अनुमान लगाता है। समय [6] एल्गोरिथ्म बाएँ और दाएँ उपट्री के कुल वजन (संभावना द्वारा) को सबसे निकट से संतुलित करने के लिए ट्री की मूल को चुनकर द्विभाजन नियम के समान विचार का पालन करता है। और फिर रणनीति को प्रत्येक उपट्री पर पुनरावर्ती रूप से प्रयुक्त किया जाता है।
यह रणनीति अच्छा सन्निकटन उत्पन्न करती है, इसे सहज रूप से देखा जा सकता है, यह देखते हुए कि किसी भी पथ के साथ उपट्री का वजन ज्यामितीय रूप से घटते क्रम के बहुत निकट होता है। वास्तव में, यह रणनीति ट्री उत्पन्न करती है जिसकी भारित पथ लंबाई अधिकतम होती है
जहाँ H संभाव्यता वितरण की एन्ट्रापी (सूचना सिद्धांत) है। चूँकि कोई भी सर्वोत्तम बाइनरी सर्च ट्री कभी भी भारित पथ लंबाई से उत्तम नहीं कर सकता है
यह सन्निकटन बहुत निकट है.[6]
हू-टकर और गार्सिया-वाच एल्गोरिदम
विशेष स्थिति में कि सभी मान शून्य हैं, सर्वोत्तम ट्री समय में पाया जा सकता है . यह पहली बार टी. सी. हू और एलन टकर द्वारा 1971 में प्रकाशित पेपर में सिद्ध किया गया था। गार्सिया और वाच्स द्वारा पश्चात् में सरलीकरण, गार्सिया-वाच एल्गोरिदम, समान क्रम में समान तुलना करता है। एल्गोरिथ्म ग्रीडी एल्गोरिदम का उपयोग करके ट्री का निर्माण करता है जिसमें प्रत्येक पत्ते के लिए सर्वोत्तम ऊंचाई होती है, किन्तु क्रम से बाहर है, और फिर उसी ऊंचाई के साथ और बाइनरी खोज ट्री का निर्माण करता है।[7]
गतिशील सर्वोत्तमता
क्या स्प्ले ट्री किसी अन्य बाइनरी सर्च ट्री एल्गोरिदम की तरह ही अच्छा प्रदर्शन करते हैं?
परिभाषा
गतिशील सर्वोत्तमता की कई अलग-अलग परिभाषाएँ हैं, जिनमें से सभी प्रभावी रूप से रनिंग-टाइम के संदर्भ में स्थिर कारक के समान हैं।[8] इस समस्या को सबसे पहले डेनियल स्लेटर और रॉबर्ट टार्जन ने स्प्ले ट्रीज़ पर अपने पेपर में स्पष्ट रूप से प्रस्तुत किया था,[9] किन्तु एरिक कल एट अल इसका बहुत अच्छा औपचारिक विवरण दें।[8]
गतिशील सर्वोत्तमता समस्या में, हमें एक्सेस x1, ..., xm का क्रम दिया गया है कीज पर प्रत्येक एक्सेस के लिए, हमें अपने बीएसटी के रूट पर पॉइंटर (कंप्यूटर प्रोग्रामिंग) दिया जाता है और हम निम्नलिखित में से कोई भी ऑपरेशन करने के लिए पॉइंटर का उपयोग कर सकते हैं:
- पॉइंटर को वर्तमान नोड के बाएँ चाइल्ड पर ले जाएँ।
- पॉइंटर को वर्तमान नोड के दाएँ चाइल्ड पर ले जाएँ।
- पॉइंटर को वर्तमान नोड के पैरेंट पर ले जाएं।
- वर्तमान नोड और उसके पैरेंट पर एकल ट्री रोटेशन निष्पादित करें।
(यह चौथे ऑपरेशन की उपस्थिति है, जो एक्सेस के समय ट्री को पुनर्व्यवस्थित करता है, जो इसे गतिशील ऑप्टिमलिटी समस्या बनाता है।)
प्रत्येक पहुंच के लिए, हमारा बीएसटी एल्गोरिदम उपरोक्त परिचालनों के किसी भी अनुक्रम को तब तक निष्पादित कर सकता है जब तक कि सूचक अंततः लक्ष्य मान x वाले नोड पर समाप्त न हो जाए।i. किसी दिए गए गतिशील बीएसटी एल्गोरिदम को एक्सेस के अनुक्रम को निष्पादित करने में लगने वाला समय उस अनुक्रम के समय किए गए ऐसे ऑपरेशनों की कुल संख्या के समान है। अवयवों के किसी भी समुच्चय पर पहुंच के किसी भी क्रम को देखते हुए, उन पहुंचों को निष्पादित करने के लिए कुछ न्यूनतम कुल संचालन की आवश्यकता होती है। हम इस न्यूनतम के निकट पहुंचना चाहेंगे.
चूँकि एक्सेस अनुक्रम क्या होगा, इसकी पूर्व जानकारी के बिना इस एल्गोरिदम को प्रयुक्त करना असंभव है, हम ओपीटी (x) को एक्सेस अनुक्रम x के लिए किए जाने वाले संचालन की संख्या के रूप में परिभाषित कर सकते हैं, और हम कह सकते हैं कि एल्गोरिदम है गतिशील सर्वोत्तमता यदि, किसी भी x के लिए, यह समय में बिग ओ अंकन (ओपीटी (एक्स)) में x प्रदर्शन करता है (अर्थात, इसका निरंतर प्रतिस्पर्धी अनुपात है)।[8]
कई डेटा संरचनाओं में यह गुण होने का अनुमान लगाया गया है, किन्तु कोई भी सिद्ध नहीं हुआ है। यह संवृत समस्या है कि क्या इस मॉडल में गतिशील रूप से सर्वोत्तम डेटा संरचना उपस्थित है।
स्पले ट्री
स्प्ले ट्री बाइनरी सर्च ट्री का रूप है जिसका आविष्कार 1985 में डैनियल स्लिएटर और रॉबर्ट टार्जन द्वारा किया गया था, जिस पर मानक सर्च ट्री ऑपरेशन चलते हैं। परिशोधित समय.[10] इसे आवश्यक अर्थों में गतिशील सर्वोत्तमता होने का अनुमान लगाया गया है। ऐसा माना जाता है कि स्प्ले ट्री समय O(OPT(X)) में किसी भी पर्याप्त लंबे एक्सेस अनुक्रम X को निष्पादित करता है।[9]
टैंगो ट्री
टैंगो ट्री 2004 में एरिक डेमाइन और अन्य द्वारा प्रस्तावित डेटा संरचना है जो समय में किसी भी पर्याप्त-लंबे एक्सेस अनुक्रम x को निष्पादित करने के लिए सिद्ध हुई है। . चूँकि यह गतिशील रूप से सर्वोत्तम नहीं है, किन्तु इसका प्रतिस्पर्धी अनुपात n के उचित मूल्यों के लिए अभी भी बहुत छोटा है।[8]
अन्य परिणाम
2013 में, जॉन इकोनो ने पेपर प्रकाशित किया था जो एल्गोरिथ्म प्रदान करने के लिए बाइनरी सर्च ट्री की ज्यामिति का उपयोग करता है जो गतिशील रूप से सर्वोत्तम है यदि कोई बाइनरी सर्च ट्री एल्गोरिदम गतिशील रूप से सर्वोत्तम है।[11] नोड्स की व्याख्या दो आयामों में बिंदुओं के रूप में की जाती है, और सर्वोत्तम पहुंच अनुक्रम उन बिंदुओं का सबसे छोटा आर्बरली संतुष्ट सुपरसमुच्चय है। स्प्ले ट्री और टैंगो ट्री के विपरीत, इकोनो की डेटा संरचना को एक्सेस अनुक्रम चरण के अनुसार निरंतर समय में कार्यान्वयन योग्य नहीं माना जाता है, इसलिए तथापि यह गतिशील रूप से सर्वोत्तम हो, फिर भी यह गैर-स्थिर कारक द्वारा अन्य खोज ट्री डेटा संरचनाओं की तुलना में धीमी हो सकती है।
इंटरलीव निचली सीमा गतिशील सर्वोत्तमता पर असम्बद्ध रूप से सर्वोत्तम है।
यह भी देखें
- ट्री डेटा संरचना
- स्पले ट्री
- टैंगो ट्री
- बाइनरी सर्च ट्री की ज्यामिति
- निचली सीमा को इंटरलीव करें
टिप्पणियाँ
- ↑ Tremblay, Jean-Paul; Cheston, Grant A. (2001). ऑब्जेक्ट-ओरिएंटेड डोमेन में डेटा संरचनाएं और सॉफ़्टवेयर विकास. Eiffel Edition/Prentice Hall. ISBN 978-0-13-787946-5.
- ↑ 2.0 2.1 2.2 Knuth, Donald E. (1971), "Optimum binary search trees", Acta Informatica, 1 (1): 14–25, doi:10.1007/BF00264289, S2CID 62777263
- ↑ 3.0 3.1 Nagaraj, S. V. (1997-11-30). "इष्टतम बाइनरी खोज पेड़". Theoretical Computer Science (in English). 188 (1): 1–44. doi:10.1016/S0304-3975(96)00320-9. ISSN 0304-3975. S2CID 33484183.
- ↑ Gilbert, E. N.; Moore, E. F. (July 1959). "परिवर्तनीय-लंबाई बाइनरी एनकोडिंग". Bell System Technical Journal (in English). 38 (4): 933–967. doi:10.1002/j.1538-7305.1959.tb01583.x.
- ↑ Hu, T. C.; Tucker, A. C. (December 1971). "इष्टतम कंप्यूटर खोज वृक्ष और चर-लंबाई वर्णमाला कोड". SIAM Journal on Applied Mathematics. 21 (4): 514–532. doi:10.1137/0121057. ISSN 0036-1399.
- ↑ 6.0 6.1 6.2 6.3 6.4 6.5 Mehlhorn, Kurt (1975), "Nearly optimal binary search trees", Acta Informatica, 5 (4): 287–295, doi:10.1007/BF00264563, S2CID 17188103
- ↑ Knuth, Donald E. (1998), "Algorithm G (Garsia–Wachs algorithm for optimum binary trees)", The Art of Computer Programming, Vol. 3: Sorting and Searching (2nd ed.), Addison–Wesley, pp. 451–453. See also History and bibliography, pp. 453–454.
- ↑ 8.0 8.1 8.2 8.3 Demaine, Erik D.; Harmon, Dion; Iacono, John; Patrascu, Mihai (2004), "Dynamic optimality—almost" (PDF), Proceedings of the 45th Annual IEEE Symposium on Foundations of Computer Science, pp. 484–490, CiteSeerX 10.1.1.99.4964, doi:10.1109/FOCS.2004.23, ISBN 978-0-7695-2228-9
- ↑ 9.0 9.1 Sleator, Daniel; Tarjan, Robert (1985), "Self-adjusting binary search trees", Journal of the ACM, 32 (3): 652–686, doi:10.1145/3828.3835, S2CID 1165848
- ↑ Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald; Stein, Clifford (2009). एल्गोरिदम का परिचय (PDF) (Third ed.). The MIT Press. p. 503. ISBN 978-0-262-03384-8. Retrieved 31 October 2017.
- ↑ Iacono, John (2013), "गतिशील इष्टतमता अनुमान की खोज में", arXiv:1306.0207 [cs.DS]
[Category:Search tre