यादृच्छिक एल्गोरिथ्म: Difference between revisions
Line 71: | Line 71: | ||
=== डेटा संरचनाएं === | === डेटा संरचनाएं === | ||
जल्द से जल्द यादृच्छिक डेटा संरचनाओं में से | जल्द से जल्द यादृच्छिक डेटा संरचनाओं में से [[ हैश तालिका |हैश तालिका]] है, जिसे 1953 में [[आईबीएम]] में [[ उनका पीटर लुहान | हंस पीटर लुहान]] द्वारा पेश किया गया था।<ref name=":0">{{Cite book |last=Knuth |first=Donald E. |url=https://dl.acm.org/doi/10.5555/280635 |title=The art of computer programming, volume 3: (2nd ed.) sorting and searching |date=1998 |publisher=Addison Wesley Longman Publishing Co., Inc. |isbn=978-0-201-89685-5 |location=USA |pages=536–549 }}</ref> लुहान की हैश टेबल ने संघट्ट को हल करने के लिए चेनिंग का इस्तेमाल किया और [[ लिंक्ड सूची |लिंक्ड सूची]] के पहले अनुप्रयोगों में से एक था।<ref name=":0" />इसके बाद, 1954 में, [[आईबीएम रिसर्च]] के [[जीन अमदहल]], ऐलेन एम. मैकग्रा, [[नथानिएल रोचेस्टर (कंप्यूटर वैज्ञानिक)]], और [[आर्थर सैमुअल (कंप्यूटर वैज्ञानिक)]] ने [[रैखिक जांच]] शुरू की,<ref name=":0" />हालांकि 1957 में स्वतंत्र रूप से [[एंड्री एर्शोव]] का भी यही विचार था।<ref name=":0" />1962 में, [[डोनाल्ड नुथ]] ने रेखीय जांच का पहला सही विश्लेषण किया,<ref name=":0" />हालाँकि उनके विश्लेषण वाला ज्ञापन बहुत बाद तक प्रकाशित नहीं हुआ था।<ref>[[Donald Knuth|Knuth, Donald]] (1963), ''[https://web.archive.org/web/20160303225949/http://algo.inria.fr/AofA/Research/11-97.html Notes on "Open" Addressing]'', archived from the original on 2016-03-03</ref> पहला प्रकाशित विश्लेषण 1966 में कोनहेम और वीस के कारण हुआ था।<ref>{{Cite journal |last1=Konheim |first1=Alan G. |last2=Weiss |first2=Benjamin |date=November 1966 |title=एक अधिभोग अनुशासन और अनुप्रयोग|url=http://dx.doi.org/10.1137/0114101 |journal=SIAM Journal on Applied Mathematics |volume=14 |issue=6 |pages=1266–1274 |doi=10.1137/0114101 |issn=0036-1399}}</ref> | ||
हैश टेबल पर प्रारंभिक कार्य या तो पूरी तरह यादृच्छिक हैश फ़ंक्शन तक पहुंच मानते हैं या मानते हैं कि कीज़ स्वयं यादृच्छिक थीं।<ref name=":0" />1979 में, कार्टर और वेगमैन ने [[यूनिवर्सल हैशिंग]] की शुरुआत की,<ref>{{Cite journal |last1=Carter |first1=J. Lawrence |last2=Wegman |first2=Mark N. |date=1979-04-01 |title=हैश फ़ंक्शंस की सार्वभौमिक कक्षाएं|url=https://dx.doi.org/10.1016/0022-0000%2879%2990044-8 |journal=Journal of Computer and System Sciences |language=en |volume=18 |issue=2 |pages=143–154 |doi=10.1016/0022-0000(79)90044-8 |issn=0022-0000}}</ref> जो उन्होंने दिखाया कि प्रति ऑपरेशन निरंतर अपेक्षित समय के साथ चेन हैश टेबल को लागू करने के लिए इस्तेमाल किया जा सकता है। | |||
यादृच्छिक डेटा संरचनाओं पर प्रारंभिक कार्य भी हैश टेबल से आगे बढ़ता है। 1970 में, बर्टन हावर्ड ब्लूम ने अनुमानित-सदस्यता डेटा संरचना पेश की जिसे [[ब्लूम फिल्टर]] के रूप में जाना जाता है।<ref>{{Cite journal |last=Bloom |first=Burton H. |date=July 1970 |title=Space/time trade-offs in hash coding with allowable errors |url=http://dx.doi.org/10.1145/362686.362692 |journal=Communications of the ACM |volume=13 |issue=7 |pages=422–426 |doi=10.1145/362686.362692 |s2cid=7931252 |issn=0001-0782}}</ref> 1989 में, [[रायमुंड सीडेल]] और सेसिलिया आर. आरागॉन ने यादृच्छिक संतुलित खोज तरु पेश किया जिसे [[ट्रीप]] के रूप में जाना जाता है।<ref>{{Cite journal |last1=Aragon |first1=C.R. |last2=Seidel |first2=R.G. |date=October 1989 |title=यादृच्छिक खोज पेड़|url=https://ieeexplore.ieee.org/document/63531 |journal=30th Annual Symposium on Foundations of Computer Science |pages=540–545 |doi=10.1109/SFCS.1989.63531|isbn=0-8186-1982-1 }}</ref> उसी वर्ष, [[विलियम पुघ (कंप्यूटर वैज्ञानिक)]] ने एक और यादृच्छिक खोज तरु पेश किया जिसे स्किप सूची के रूप में जाना जाता है।<ref>[[William Pugh (computer scientist)|Pugh, William]] (April 1989). ''[http://drum.lib.umd.edu/handle/1903/542 Concurrent Maintenance of Skip Lists]'' (PS, PDF) (Technical report). Dept. of Computer Science, U. Maryland. CS-TR-2222.</ref> | |||
=== कॉम्बिनेटरिक्स में अंतर्निहित उपयोग === | === कॉम्बिनेटरिक्स में अंतर्निहित उपयोग === | ||
कंप्यूटर विज्ञान में यादृच्छिक एल्गोरिदम के लोकप्रिय होने से पहले, पॉल एर्डोस ने गणितीय वस्तुओं के अस्तित्व को स्थापित करने के लिए गणितीय तकनीक के रूप में यादृच्छिक निर्माण के उपयोग को लोकप्रिय | कंप्यूटर विज्ञान में यादृच्छिक एल्गोरिदम के लोकप्रिय होने से पहले, पॉल एर्डोस ने गणितीय वस्तुओं के अस्तित्व को स्थापित करने के लिए गणितीय तकनीक के रूप में यादृच्छिक निर्माण के उपयोग को लोकप्रिय बनाया था। इस तकनीक को [[संभाव्य विधि]] के रूप में जाना जाने लगा।<ref name=":1">{{Cite book |last=Alon |first=Noga |url=https://www.worldcat.org/oclc/910535517 |title=संभाव्य विधि|date=2016 |others=Joel H. Spencer |isbn=978-1-119-06195-3 |edition=Fourth |location=Hoboken, New Jersey |oclc=910535517}}</ref> पॉल एर्दोस ने 1947 में संभाव्यता पद्धति का अपना पहला आवेदन दिया, जब उन्होंने रैमसे ग्राफ के अस्तित्व को स्थापित करने के लिए सरल यादृच्छिक निर्माण का उपयोग किया था।<ref>P. Erdős: Some remarks on the theory of graphs, Bull. Amer. Math. Soc. '''53''' (1947), 292--294 '''MR'''8,479d; '''Zentralblatt''' 32,192.</ref> उन्होंने 1959 में उच्च परिधि और रंगीन संख्या वाले ग्राफ के अस्तित्व को स्थापित करने के लिए प्रसिद्ध रूप से अधिक परिष्कृत यादृच्छिक एल्गोरिथ्म का उपयोग किया था।<ref>{{Cite journal |last=Erdös |first=P. |date=1959 |title=ग्राफ सिद्धांत और संभावना|url=https://www.cambridge.org/core/journals/canadian-journal-of-mathematics/article/graph-theory-and-probability/154EF813293BC7D0652C4CBCD9D18E84 |journal=Canadian Journal of Mathematics |language=en |volume=11 |pages=34–38 |doi=10.4153/CJM-1959-003-9 |s2cid=122784453 |issn=0008-414X}}</ref><ref name=":1" /> | ||
== उदाहरण == | == उदाहरण == | ||
=== क्विकसॉर्ट === | === क्विकसॉर्ट === | ||
क्विकसॉर्ट एक परिचित, आमतौर पर इस्तेमाल किया जाने वाला एल्गोरिदम है जिसमें यादृच्छिकता उपयोगी हो सकती है। इस एल्गोरिथम के कई नियतात्मक संस्करणों के लिए [[बिग ओ नोटेशन | क्विकसॉर्ट एक परिचित, आमतौर पर इस्तेमाल किया जाने वाला एल्गोरिदम है जिसमें यादृच्छिकता उपयोगी हो सकती है। इस एल्गोरिथम के कई नियतात्मक संस्करणों के लिए [[बिग ओ नोटेशन|''O''(''n''<sup>2</sup>)]] की आवश्यकता होती है कुछ अच्छी तरह से परिभाषित निविष्ट वर्ग (जैसे कि पहले से ही क्रमबद्ध सरणी) के लिए ''n'' संख्याओं को सॉर्ट करने का समय, निविष्ट के विशिष्ट वर्ग के साथ जो पिवट चयन के लिए प्रोटोकॉल द्वारा परिभाषित इस व्यवहार को उत्पन्न करता है। हालांकि, अगर एल्गोरिद्म पिवट तत्वों को यादृच्छिक रूप से समान रूप से चुनता है, तो निविष्ट की विशेषताओं की परवाह किए बिना ''O''(''n'' log ''n'') समय में समाप्त होने की संभावना काफी अधिक होती है। | ||
=== ज्यामिति में [[यादृच्छिक वृद्धिशील निर्माण]] === | === ज्यामिति में [[यादृच्छिक वृद्धिशील निर्माण]] === | ||
[[कम्प्यूटेशनल ज्यामिति]] में, | [[कम्प्यूटेशनल ज्यामिति]] में, उत्तल हल या डेलाउने त्रिभुज जैसी संरचना बनाने के लिए मानक तकनीक निविष्ट बिंदुओं को यादृच्छिक रूप से क्रमबद्ध करना है और फिर उन्हें मौजूदा संरचना में एक-एक करके सम्मिलित करना है। यादृच्छिककरण यह सुनिश्चित करता है कि सम्मिलन के कारण संरचना में परिवर्तनों की अपेक्षित संख्या कम है, और इसलिए एल्गोरिथम के अपेक्षित चलने का समय ऊपर से बाध्य किया जा सकता है। इस तकनीक को यादृच्छिक वृद्धिशील निर्माण के रूप में जाना जाता है।<ref>Seidel R. [http://www.cs.berkeley.edu/~jrs/meshpapers/Seidel.ps.gz Backwards Analysis of Randomized Geometric Algorithms].</ref> | ||
===न्यूनतम कट=== | ===न्यूनतम कट=== | ||
{{Main| | {{Main|कार्गर का एल्गोरिदम}} | ||
निविष्ट: | निविष्ट: [[ग्राफ सिद्धांत]] ''G''(''V'',''E'') | ||
प्रक्षेपण: | प्रक्षेपण: [[ कट (ग्राफ सिद्धांत) |कट (ग्राफ सिद्धांत)]] ''L'' और ''R'' में कोने को विभाजित करता है, जिसमें ''L'' और ''R'' के बीच किनारों की न्यूनतम संख्या होती है। | ||
याद रखें कि एक (बहु-) ग्राफ़ में दो नोड्स, ''यू'' और ''वी'' के किनारे का संकुचन, किनारों के साथ एक नया नोड ''यू'' देता है, जो दोनों किनारों पर घटना के किनारों का मिलन है। ''यू'' और ''वी'' को जोड़ने वाले किसी भी किनारे को छोड़कर ''यू'' या ''वी''। चित्र 1 वर्टेक्स ''ए'' और ''बी'' के संकुचन का एक उदाहरण देता है। | याद रखें कि एक (बहु-) ग्राफ़ में दो नोड्स, ''यू'' और ''वी'' के किनारे का संकुचन, किनारों के साथ एक नया नोड ''यू'' देता है, जो दोनों किनारों पर घटना के किनारों का मिलन है। ''यू'' और ''वी'' को जोड़ने वाले किसी भी किनारे को छोड़कर ''यू'' या ''वी''। चित्र 1 वर्टेक्स ''ए'' और ''बी'' के संकुचन का एक उदाहरण देता है। |
Revision as of 12:40, 15 June 2023
Part of a series on |
Probabilistic data structures |
---|
Random trees |
Related |
यादृच्छिक एल्गोरिदम एक एल्गोरिदम है जो अपने तर्क या प्रक्रिया के हिस्से के रूप में यादृच्छिकता की डिग्री को नियोजित करता है। एल्गोरिथ्म आम तौर पर यादृच्छिक बिट्स द्वारा निर्धारित यादृच्छिक के सभी संभावित विकल्पों पर "औसत मामले" में अच्छा प्रदर्शन प्राप्त करने की आशा में, अपने व्यवहार को निर्देशित करने के लिए सहायक निविष्ट के रूप में एक समान यादृच्छिक (असतत) बिट्स का उपयोग करता है; इस प्रकार या तो चलने का समय, या प्रक्षेपण (या दोनों) यादृच्छिक चर हैं।
किसी को यादृच्छिक निविष्ट का उपयोग करने वाले एल्गोरिदम के बीच अंतर करना होगा ताकि वे हमेशा सही उत्तर के साथ समाप्त हो जाएं, लेकिन जहां अपेक्षित चलने का समय सीमित है (लास वेगास कलन विधि, उदाहरण के लिए क्विक सॉर्ट[1]), और एल्गोरिदम जिनके पास गलत परिणाम उत्पन्न करने का मौका है (मोंटे कार्लो एल्गोरिथ्म, उदाहरण के लिए न्यूनतम फीडबैक आर्क सेट समस्या के लिए मोंटे कार्लो एल्गोरिदम[2]) या तो विफलता का संकेत देकर या समाप्त करने में विफल होने पर परिणाम उत्पन्न करने में विफल हैं। कुछ मामलों में, समस्या को हल करने का एकमात्र व्यावहारिक साधन संभाव्य एल्गोरिदम हैं।[3]
सामान्य अभ्यास में, यादृच्छिक बिट्स के सच्चे स्रोत के स्थान पर छद्म यादृच्छिक संख्या जनरेटर का उपयोग करके यादृच्छिक एल्गोरिदम का अनुमान लगाया जाता है; ऐसा कार्यान्वयन अपेक्षित सैद्धांतिक व्यवहार और गणितीय गारंटी से विचलित हो सकता है जो एक आदर्श वास्तविक यादृच्छिक संख्या जनरेटर के अस्तित्व पर निर्भर हो सकता है।
प्रेरणा
प्रेरक उदाहरण के रूप में, n तत्वों की सरणी डेटा संरचना में 'a' निष्कर्ष की समस्या पर विचार करें।
निविष्ट: n≥2 तत्वों की सरणी, जिसमें आधे a हैं और अन्य आधे b हैं।
प्रक्षेपण: सरणी में a खोजें।
हम एल्गोरिथ्म के दो संस्करण देते हैं, एक लास वेगास एल्गोरिथम और एक मोंटे कार्लो एल्गोरिथम।
लास वेगास एल्गोरिथम:
findingA_LV(array A, n)
begin
repeat
Randomly select one element out of n elements.
until 'a' is found
end
यह एल्गोरिथ्म प्रायिकता 1 के साथ सफल होता है। पुनरावृत्तियों की संख्या भिन्न होती है और अक्रमतः बड़ी हो सकती है, लेकिन पुनरावृत्तियों की अपेक्षित संख्या है
चूंकि यह स्थिर है, कई कॉलों पर अपेक्षित रन टाइम है . (बिग थीटा नोटेशन देखें)
मोंटे कार्लो एल्गोरिथम:
findingA_MC(array A, n, k)
begin
i := 0
repeat
Randomly select one element out of n elements.
i := i + 1
until i = k or 'a' is found
end
यदि 'a' पाया जाता है, तो एल्गोरिथम सफल होता है, अन्यथा एल्गोरिथम विफल हो जाता है। k पुनरावृत्तियों के बाद, 'a' निष्कर्ष की संभावना है:
यह एल्गोरिदम सफलता की गारंटी नहीं देता है, लेकिन रन टाइम सीमित है। पुनरावृत्तियों की संख्या हमेशा k से कम या उसके बराबर होती है। k को स्थिर रखने के लिए रन टाइम (अपेक्षित और पूर्ण) है
यादृच्छिक एल्गोरिदम विशेष रूप से उपयोगी होते हैं जब दुर्भावनापूर्ण विपक्षी या आक्रामक का सामना करना पड़ता है जो जानबूझकर एल्गोरिदम को खराब निविष्ट देने की कोशिश करता है (देखें वर्स्ट-केस कम्प्लेक्सिटी और प्रतिस्पर्धी विश्लेषण (ऑनलाइन एल्गोरिदम)) जैसे बंदी की दुविधा में है। यही कारण है कि क्रिप्टोग्राफी में यादृच्छिकता सर्वव्यापी है। क्रिप्टोग्राफ़िक अनुप्रयोगों में, छद्म-यादृच्छिक संख्याओं का उपयोग नहीं किया जा सकता है, क्योंकि विरोधी उन्हें पूर्वानुमान कर सकते हैं, एल्गोरिदम प्रभावी रूप से निर्धारक बनाते हैं। इसलिए, या तो वास्तव में यादृच्छिक संख्याओं का स्रोत या क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म-यादृच्छिक संख्या जनरेटर की आवश्यकता होती है। अन्य क्षेत्र जिसमें यादृच्छिकता निहित है, क्वांटम कम्प्यूटिंग है।
उपरोक्त उदाहरण में, लास वेगास एल्गोरिथम हमेशा सही उत्तर देता है, लेकिन इसका चलने का समय यादृच्छिक चर है। मोंटे कार्लो एल्गोरिथम (सिमुलेशन के लिए मोंटे कार्लो विधि से संबंधित) को उस समय की मात्रा में पूरा करने की गारंटी दी जाती है जिसे फ़ंक्शन द्वारा निविष्ट आकार और उसके पैरामीटर k द्वारा बाध्य किया जा सकता है, लेकिन त्रुटि की छोटी संभावना की अनुमति देता है। ध्यान दें कि किसी भी लास वेगास एल्गोरिथम को मोंटे कार्लो एल्गोरिथम (मार्कोव की असमानता के माध्यम से) में परिवर्तित किया जा सकता है, यदि यह निर्दिष्ट समय के भीतर पूरा करने में विफल रहता है, तो यह यादृच्छिक, संभवतः गलत उत्तर देता है। इसके विपरीत, यदि कोई उत्तर सही है या नहीं, यह जांचने के लिए कुशल सत्यापन प्रक्रिया मौजूद है, तो मोंटे कार्लो एल्गोरिथम को सही उत्तर प्राप्त होने तक मोंटे कार्लो एल्गोरिथम को बार-बार चलाकर लास वेगास एल्गोरिथम में परिवर्तित किया जा सकता है।
कम्प्यूटेशनल जटिलता
कम्प्यूटेशनल जटिलता सिद्धांत मॉडल यादृच्छिक एल्गोरिदम को संभाव्य ट्यूरिंग मशीन के रूप में लास वेगास एल्गोरिथ्म और मोंटे कार्लो एल्गोरिदम दोनों पर विचार किया जाता है, और कई जटिलता वर्ग का अध्ययन किया जाता है। सबसे बुनियादी यादृच्छिक जटिलता वर्ग आरपी (जटिलता) है, जो निर्णय समस्याओं का वर्ग है जिसके लिए कुशल (बहुपद समय) यादृच्छिक एल्गोरिदम (या संभाव्य ट्यूरिंग मशीन) है जो पूर्ण निश्चितता के साथ नहीं- उदाहरण को पहचानता है और हाँ-उदाहरण को पहचानता है कम से कम 1/2 की संभावना के साथ है। RP के लिए पूरक वर्ग co-RP है। बहुपद समय औसत केस रनिंग टाइम वाले एल्गोरिदम (संभवतः गैर-समापन) वाले समस्या वर्ग जिनके प्रक्षेपण हमेशा सही होते हैं उन्हें ज़ेडपीपी (जटिलता) में कहा जाता है।
समस्याओं का वह वर्ग जिसके लिए हाँ और नहीं दोनों उदाहरणों को कुछ त्रुटि के साथ पहचानने की अनुमति दी जाती है, परिबद्ध-त्रुटि संभाव्य बहुपद कहलाती है। यह वर्ग P (जटिलता) के यादृच्छिक समतुल्य के रूप में कार्य करता है, अर्थात बीपीपी कुशल यादृच्छिक एल्गोरिदम के वर्ग का प्रतिनिधित्व करता है।
प्रारंभिक इतिहास
सॉर्टिंग
क्विक सॉर्ट की खोज 1959 में टोनी होरे द्वारा की गई थी, और बाद में 1961 में प्रकाशित हुई थी।[4] उसी वर्ष, होरे ने त्वरित चयन एल्गोरिथ्म प्रकाशित किया,[5] जो रैखिक अपेक्षित समय में किसी सूची का मध्य तत्व पाता है। यह 1973 तक खुला रहा कि क्या नियतात्मक रैखिक-समय एल्गोरिथम मौजूद है।[6]
संख्या सिद्धांत
1917 में, हेनरी कैबॉर्न पॉकलिंगटन ने यादृच्छिक एल्गोरिथम पेश किया, जिसे पॉकलिंगटन के एल्गोरिथ्म के रूप में जाना जाता है, जो कुशलतापूर्वक वर्गमूल मॉड्यूलो अभाज्य संख्या को निष्कर्ष के लिए है।[7]1970 में, एल्विन बर्लेकैंप ने परिमित क्षेत्र पर बहुपद की वर्गमूल की कुशलता से गणना करने के लिए यादृच्छिक एल्गोरिथ्म पेश किया है।[8] 1977 में, रॉबर्ट एम. सोलोवे और वोल्कर स्ट्रास ने बहुपद-समय सोलोवे-स्ट्रैसन प्रारंभिक परीक्षण की खोज की थी (अर्थात, किसी संख्या की प्रारंभिक परीक्षा का निर्धारण)। इसके तुरंत बाद माइकल ओ. राबिन ने प्रदर्शित किया कि 1976 मिलर के प्रारंभिक परीक्षण को बहुपद-समय यादृच्छिक एल्गोरिथम में भी बदला जा सकता है। उस समय, प्रारंभिक परीक्षण के लिए कोई सिद्ध बहुपद-समय नियतात्मक एल्गोरिथम ज्ञात नहीं था।
डेटा संरचनाएं
जल्द से जल्द यादृच्छिक डेटा संरचनाओं में से हैश तालिका है, जिसे 1953 में आईबीएम में हंस पीटर लुहान द्वारा पेश किया गया था।[9] लुहान की हैश टेबल ने संघट्ट को हल करने के लिए चेनिंग का इस्तेमाल किया और लिंक्ड सूची के पहले अनुप्रयोगों में से एक था।[9]इसके बाद, 1954 में, आईबीएम रिसर्च के जीन अमदहल, ऐलेन एम. मैकग्रा, नथानिएल रोचेस्टर (कंप्यूटर वैज्ञानिक), और आर्थर सैमुअल (कंप्यूटर वैज्ञानिक) ने रैखिक जांच शुरू की,[9]हालांकि 1957 में स्वतंत्र रूप से एंड्री एर्शोव का भी यही विचार था।[9]1962 में, डोनाल्ड नुथ ने रेखीय जांच का पहला सही विश्लेषण किया,[9]हालाँकि उनके विश्लेषण वाला ज्ञापन बहुत बाद तक प्रकाशित नहीं हुआ था।[10] पहला प्रकाशित विश्लेषण 1966 में कोनहेम और वीस के कारण हुआ था।[11]
हैश टेबल पर प्रारंभिक कार्य या तो पूरी तरह यादृच्छिक हैश फ़ंक्शन तक पहुंच मानते हैं या मानते हैं कि कीज़ स्वयं यादृच्छिक थीं।[9]1979 में, कार्टर और वेगमैन ने यूनिवर्सल हैशिंग की शुरुआत की,[12] जो उन्होंने दिखाया कि प्रति ऑपरेशन निरंतर अपेक्षित समय के साथ चेन हैश टेबल को लागू करने के लिए इस्तेमाल किया जा सकता है।
यादृच्छिक डेटा संरचनाओं पर प्रारंभिक कार्य भी हैश टेबल से आगे बढ़ता है। 1970 में, बर्टन हावर्ड ब्लूम ने अनुमानित-सदस्यता डेटा संरचना पेश की जिसे ब्लूम फिल्टर के रूप में जाना जाता है।[13] 1989 में, रायमुंड सीडेल और सेसिलिया आर. आरागॉन ने यादृच्छिक संतुलित खोज तरु पेश किया जिसे ट्रीप के रूप में जाना जाता है।[14] उसी वर्ष, विलियम पुघ (कंप्यूटर वैज्ञानिक) ने एक और यादृच्छिक खोज तरु पेश किया जिसे स्किप सूची के रूप में जाना जाता है।[15]
कॉम्बिनेटरिक्स में अंतर्निहित उपयोग
कंप्यूटर विज्ञान में यादृच्छिक एल्गोरिदम के लोकप्रिय होने से पहले, पॉल एर्डोस ने गणितीय वस्तुओं के अस्तित्व को स्थापित करने के लिए गणितीय तकनीक के रूप में यादृच्छिक निर्माण के उपयोग को लोकप्रिय बनाया था। इस तकनीक को संभाव्य विधि के रूप में जाना जाने लगा।[16] पॉल एर्दोस ने 1947 में संभाव्यता पद्धति का अपना पहला आवेदन दिया, जब उन्होंने रैमसे ग्राफ के अस्तित्व को स्थापित करने के लिए सरल यादृच्छिक निर्माण का उपयोग किया था।[17] उन्होंने 1959 में उच्च परिधि और रंगीन संख्या वाले ग्राफ के अस्तित्व को स्थापित करने के लिए प्रसिद्ध रूप से अधिक परिष्कृत यादृच्छिक एल्गोरिथ्म का उपयोग किया था।[18][16]
उदाहरण
क्विकसॉर्ट
क्विकसॉर्ट एक परिचित, आमतौर पर इस्तेमाल किया जाने वाला एल्गोरिदम है जिसमें यादृच्छिकता उपयोगी हो सकती है। इस एल्गोरिथम के कई नियतात्मक संस्करणों के लिए O(n2) की आवश्यकता होती है कुछ अच्छी तरह से परिभाषित निविष्ट वर्ग (जैसे कि पहले से ही क्रमबद्ध सरणी) के लिए n संख्याओं को सॉर्ट करने का समय, निविष्ट के विशिष्ट वर्ग के साथ जो पिवट चयन के लिए प्रोटोकॉल द्वारा परिभाषित इस व्यवहार को उत्पन्न करता है। हालांकि, अगर एल्गोरिद्म पिवट तत्वों को यादृच्छिक रूप से समान रूप से चुनता है, तो निविष्ट की विशेषताओं की परवाह किए बिना O(n log n) समय में समाप्त होने की संभावना काफी अधिक होती है।
ज्यामिति में यादृच्छिक वृद्धिशील निर्माण
कम्प्यूटेशनल ज्यामिति में, उत्तल हल या डेलाउने त्रिभुज जैसी संरचना बनाने के लिए मानक तकनीक निविष्ट बिंदुओं को यादृच्छिक रूप से क्रमबद्ध करना है और फिर उन्हें मौजूदा संरचना में एक-एक करके सम्मिलित करना है। यादृच्छिककरण यह सुनिश्चित करता है कि सम्मिलन के कारण संरचना में परिवर्तनों की अपेक्षित संख्या कम है, और इसलिए एल्गोरिथम के अपेक्षित चलने का समय ऊपर से बाध्य किया जा सकता है। इस तकनीक को यादृच्छिक वृद्धिशील निर्माण के रूप में जाना जाता है।[19]
न्यूनतम कट
निविष्ट: ग्राफ सिद्धांत G(V,E)
प्रक्षेपण: कट (ग्राफ सिद्धांत) L और R में कोने को विभाजित करता है, जिसमें L और R के बीच किनारों की न्यूनतम संख्या होती है।
याद रखें कि एक (बहु-) ग्राफ़ में दो नोड्स, यू और वी के किनारे का संकुचन, किनारों के साथ एक नया नोड यू देता है, जो दोनों किनारों पर घटना के किनारों का मिलन है। यू और वी को जोड़ने वाले किसी भी किनारे को छोड़कर यू या वी। चित्र 1 वर्टेक्स ए और बी के संकुचन का एक उदाहरण देता है। संकुचन के बाद, परिणामी ग्राफ़ में समानांतर किनार हो सकते हैं, लेकिन इसमें कोई सेल्फ लूप नहीं होता है। फ़ाइल: कार्गर का एकल रन 's Mincut algorithm.svg|thumb|340px|चित्र 2: 10-शीर्ष ग्राफ़ पर कार्गर के एल्गोरिथम का सफल संचालन। न्यूनतम कट का आकार 3 है और इसे शीर्ष रंगों द्वारा दर्शाया गया है।
कार्गर का[20] बुनियादी एल्गोरिथ्म:
शुरू मैं = 1 दोहराना दोहराना जी में एक यादृच्छिक किनारा (यू, वी) ∈ ई लें u और v को संकुचन u' से बदलें जब तक केवल 2 नोड शेष रहें संबंधित कट परिणाम सी प्राप्त करेंi
मैं = मैं + 1
जब तक मैं = एम सी के बीच न्यूनतम कटौती का उत्पादन करें1, सी2, ..., सीm. अंत
बाहरी लूप के प्रत्येक निष्पादन में, एल्गोरिथ्म आंतरिक लूप को तब तक दोहराता है जब तक कि केवल 2 नोड शेष न रह जाएं, संबंधित कट प्राप्त हो जाता है। एक निष्पादन का रन टाइम है , और n शीर्षों की संख्या को दर्शाता है। बाहरी लूप के m बार निष्पादन के बाद, हम सभी परिणामों के बीच न्यूनतम कट का उत्पादन करते हैं। चित्र 2 एक देता है एल्गोरिथ्म के एक निष्पादन का उदाहरण। निष्पादन के बाद, हमें आकार 3 में कटौती मिलती है।
Lemma 1 — Let k be the min cut size, and let C = {e1, e2, ..., ek} be the min cut. If, during iteration i, no edge e ∈ C is selected for contraction, then Ci = C.
If G is not connected, then G can be partitioned into L and R without any edge between them. So the min cut in a disconnected graph is 0. Now, assume G is connected. Let V=L∪R be the partition of V induced by C : C = { {u,v} ∈ E : u ∈ L,v ∈ R} (well-defined since G is connected). Consider an edge {u,v} of C. Initially, u,v are distinct vertices. As long as we pick an edge , u and v do not get merged. Thus, at the end of the algorithm, we have two compound nodes covering the entire graph, one consisting of the vertices of L and the other consisting of the vertices of R. As in figure 2, the size of min cut is 1, and C = {(A,B)}. If we don't select (A,B) for contraction, we can get the min cut.
Lemma 2 — If G is a multigraph with p vertices and whose min cut has size k, then G has at least pk/2 edges.
Because the min cut is k, every vertex v must satisfy degree(v) ≥ k. Therefore, the sum of the degree is at least pk. But it is well known that the sum of vertex degrees equals 2|E|. The lemma follows.
एल्गोरिदम का विश्लेषण
एल्गोरिद्म के सफल होने की प्रायिकता 1 − संभावना है कि सभी प्रयास विफल हो जाते हैं। स्वतंत्रता से, सभी प्रयासों के विफल होने की प्रायिकता है
इस प्रकार, .
तो चेन नियम से, न्यूनतम कट सी निष्कर्ष की संभावना है
डेरेंडोमाइजेशन
यादृच्छिकता को अंतरिक्ष और समय जैसे संसाधन के रूप में देखा जा सकता है। Derandomization तब यादृच्छिकता को हटाने की प्रक्रिया है (या जितना संभव हो उतना कम उपयोग करना)। यह वर्तमान में ज्ञात नहीं है कि क्या सभी एल्गोरिदम को उनके चलने के समय में उल्लेखनीय वृद्धि किए बिना डीरैंडमाइज किया जा सकता है। उदाहरण के लिए, एल्गोरिदम के विश्लेषण में, यह अज्ञात है कि क्या पी (जटिलता) = परिबद्ध-त्रुटि संभाव्य बहुपद, यानी, हम नहीं जानते कि क्या हम एक यादृच्छिक यादृच्छिक एल्गोरिदम ले सकते हैं जो एक छोटी त्रुटि संभावना के साथ बहुपद समय में चलता है और इसे डीरैंडमाइज करता है। यादृच्छिकता का उपयोग किए बिना बहुपद समय में चलाने के लिए।
ऐसे विशिष्ट तरीके हैं जिन्हें विशेष यादृच्छिक एल्गोरिदम को यादृच्छिक बनाने के लिए नियोजित किया जा सकता है:
- सशर्त संभावनाओं की विधि, और इसका सामान्यीकरण, निराशावादी अनुमानक
- विसंगति सिद्धांत (जिसका उपयोग ज्यामितीय एल्गोरिदम को अलग करने के लिए किया जाता है)
- एल्गोरिथ्म द्वारा उपयोग किए जाने वाले यादृच्छिक चर में सीमित स्वतंत्रता का शोषण, जैसे कि सार्वभौमिक हैशिंग में उपयोग की जाने वाली जोड़ीदार स्वतंत्रता
- प्रारंभिक यादृच्छिकता की सीमित मात्रा को बढ़ाने के लिए विस्तारक ग्राफ (या सामान्य रूप से फैलाने वाले) का उपयोग (यह अंतिम दृष्टिकोण एक यादृच्छिक स्रोत से छद्म यादृच्छिक बिट्स उत्पन्न करने के रूप में भी जाना जाता है, और छद्म यादृच्छिकता के संबंधित विषय की ओर जाता है)
- एल्गोरिथम के कार्यों के लिए यादृच्छिकता के स्रोत के रूप में हैश फंकशन का उपयोग करने के लिए यादृच्छिक एल्गोरिथ्म को बदलना, और फिर हैश फ़ंक्शन के सभी संभावित मापदंडों (बीजों) को क्रूर-बल खोज | ब्रूट-फोर्सिंग द्वारा एल्गोरिथ्म को अलग करना। इस तकनीक का प्रयोग आम तौर पर नमूना स्थान को व्यापक रूप से निष्कर्ष और एल्गोरिदम को नियतात्मक बनाने के लिए किया जाता है (उदाहरण के लिए यादृच्छिक ग्राफ एल्गोरिदम)
जहां यादृच्छिकता मदद करती है
जब संगणना का मॉडल ट्यूरिंग मशीनों तक ही सीमित है, तो यह वर्तमान में एक खुला प्रश्न है कि क्या यादृच्छिक विकल्प बनाने की क्षमता बहुपद समय में कुछ समस्याओं को हल करने की अनुमति देती है जिसे इस क्षमता के बिना बहुपद समय में हल नहीं किया जा सकता है; यह सवाल है कि क्या पी = बीपीपी। हालाँकि, अन्य संदर्भों में, समस्याओं के विशिष्ट उदाहरण हैं जहाँ यादृच्छिककरण से सख्त सुधार होते हैं।
- प्रारंभिक प्रेरक उदाहरण के आधार पर: 2 की एक घातीय रूप से लंबी स्ट्रिंग दी गई हैk वर्ण, आधा a और आधा b, एक रैंडम-एक्सेस मशीन के लिए 2 की आवश्यकता होती हैk−1 a की अनुक्रमणिका निष्कर्ष के लिए सबसे खराब स्थिति में खोजता है; अगर इसे यादृच्छिक विकल्प बनाने की अनुमति है, तो यह लुकअप की अपेक्षित बहुपद संख्या में इस समस्या को हल कर सकता है।
- अंतः स्थापित प्रणालियाँ या साइबर-भौतिक प्रणाली में एक संख्यात्मक गणना करने का प्राकृतिक तरीका एक परिणाम प्रदान करना है जो उच्च संभावना (या संभवतः लगभग सही गणना (PACC)) के साथ सही परिणाम का अनुमान लगाता है। अनुमानित और सही संगणना के बीच विसंगति हानि के मूल्यांकन से जुड़ी कठिन समस्या को यादृच्छिककरण का सहारा लेकर प्रभावी ढंग से संबोधित किया जा सकता है[21]
- संचार जटिलता में, दो तारों की समानता का उपयोग करके कुछ विश्वसनीयता के लिए सत्यापित किया जा सकता है एक यादृच्छिक प्रोटोकॉल के साथ संचार के बिट्स। किसी भी नियतात्मक प्रोटोकॉल की आवश्यकता होती है बिट्स अगर एक मजबूत प्रतिद्वंद्वी के खिलाफ बचाव करते हैं।[22]
- बहुपद समय में अक्रमतः परिशुद्धता के लिए एक उत्तल शरीर की मात्रा का अनुमान एक यादृच्छिक एल्गोरिदम द्वारा लगाया जा सकता है।[23] इमरे बैरनी | बैरनी और ज़ोलटन फ़्यूरेडी | फ़्यूरेडी ने दिखाया कि कोई नियतात्मक एल्गोरिथम ऐसा नहीं कर सकता है।[24] यह बिना शर्त के सच है, यानी किसी भी जटिलता-सैद्धांतिक मान्यताओं पर भरोसा किए बिना, उत्तल शरीर को केवल एक ब्लैक बॉक्स के रूप में माना जा सकता है।
- एक जगह का अधिक जटिलता-सैद्धांतिक उदाहरण जहां यादृच्छिकता मदद करने के लिए प्रकट होती है वह वर्ग आईपी (जटिलता) है। IP में वे सभी भाषाएँ शामिल हैं जिन्हें (उच्च संभावना के साथ) एक सर्व-शक्तिशाली प्रोवर और एक सत्यापनकर्ता के बीच बहुपद रूप से लंबी बातचीत द्वारा स्वीकार किया जा सकता है जोबीपीपी एल्गोरिथम को लागू करता है। आईपी \u003d पीएसपीएसीई।[25] हालाँकि, यदि यह आवश्यक है कि सत्यापनकर्ता नियतात्मक हो, तो IP = NP (जटिलता)।
- एक रासायनिक प्रतिक्रिया नेटवर्क में (ए + बी → 2 सी + डी जैसी प्रतिक्रियाओं का एक सीमित सेट अणुओं की एक सीमित संख्या पर काम कर रहा है), प्रारंभिक अवस्था से किसी दिए गए लक्ष्य राज्य तक कभी भी पहुंचने की क्षमता निर्णायक होती है, जबकि संभाव्यता का अनुमान भी लगाया जाता है किसी दिए गए लक्ष्य राज्य तक पहुंचने के लिए (मानक एकाग्रता-आधारित संभावना जिसके लिए प्रतिक्रिया आगे होगी) का उपयोग करना अनिर्णीत है। अधिक विशेष रूप से, एक सीमित ट्यूरिंग मशीन सभी समय के लिए सही ढंग से चलने की अक्रमतः उच्च संभावना के साथ सिम्युलेटेड किया जा सकता है, केवल तभी जब एक यादृच्छिक रासायनिक प्रतिक्रिया नेटवर्क का उपयोग किया जाता है। एक सरल गैर-नियतात्मक रासायनिक प्रतिक्रिया नेटवर्क (आगे कोई भी संभावित प्रतिक्रिया हो सकती है) के साथ, कम्प्यूटेशनल शक्ति आदिम पुनरावर्ती तक सीमित है।[26]
यह भी देखें
- एल्गोरिदम का संभाव्य विश्लेषण
- अटलांटिक सिटी एल्गोरिदम
- मोंटे कार्लो एल्गोरिथम
- लास वेगास एल्गोरिथम
- बोगोसॉर्ट
- स्थगित निर्णय का सिद्धांत
- शून्य-योग गेम के रूप में यादृच्छिक एल्गोरिदम
- संभाव्य रोडमैप
- हाइपरलॉग
- गिनती-मिनट स्केच
- अनुमानित गिनती एल्गोरिथ्म
- कार्गर का एल्गोरिदम
टिप्पणियाँ
- ↑ Hoare, C. A. R. (July 1961). "Algorithm 64: Quicksort". Commun. ACM. 4 (7): 321–. doi:10.1145/366622.366644. ISSN 0001-0782.
- ↑ Kudelić, Robert (2016-04-01). "न्यूनतम प्रतिक्रिया चाप सेट समस्या के लिए मोंटे-कार्लो यादृच्छिक एल्गोरिथ्म". Applied Soft Computing. 41: 235–246. doi:10.1016/j.asoc.2015.12.018.
- ↑ "In testing primality of very large numbers chosen at random, the chance of stumbling upon a value that fools the Fermat test is less than the chance that cosmic radiation will cause the computer to make an error in carrying out a 'correct' algorithm. Considering an algorithm to be inadequate for the first reason but not for the second illustrates the difference between mathematics and engineering." Hal Abelson and Gerald J. Sussman (1996). Structure and Interpretation of Computer Programs. MIT Press, section 1.2.
- ↑ Hoare, C. A. R. (July 1961). "Algorithm 64: Quicksort". Communications of the ACM (in English). 4 (7): 321. doi:10.1145/366622.366644. ISSN 0001-0782.
- ↑ Hoare, C. A. R. (July 1961). "Algorithm 65: find". Communications of the ACM (in English). 4 (7): 321–322. doi:10.1145/366622.366647. ISSN 0001-0782.
- ↑ Blum, Manuel; Floyd, Robert W.; Pratt, Vaughan; Rivest, Ronald L.; Tarjan, Robert E. (August 1973). "चयन के लिए समय सीमा". Journal of Computer and System Sciences (in English). 7 (4): 448–461. doi:10.1016/S0022-0000(73)80033-9.
- ↑ Williams, H. C.; Shallit, J. O. (1994), "Factoring integers before computers", in Gautschi, Walter (ed.), Mathematics of Computation 1943–1993: a half-century of computational mathematics; Papers from the Symposium on Numerical Analysis and the Minisymposium on Computational Number Theory held in Vancouver, British Columbia, August 9–13, 1993, Proceedings of Symposia in Applied Mathematics, vol. 48, Amer. Math. Soc., Providence, RI, pp. 481–531, doi:10.1090/psapm/048/1314885, MR 1314885; see p. 504, "Perhaps Pocklington also deserves credit as the inventor of the randomized algorithm".
- ↑ Berlekamp, E. R. (1971). "बड़े परिमित क्षेत्रों पर बहुपदों का गुणनखंडन*". Proceedings of the Second ACM Symposium on Symbolic and Algebraic Manipulation - SYMSAC '71 (in English). Los Angeles, California, United States: ACM Press: 223. doi:10.1145/800204.806290. ISBN 9781450377867. S2CID 6464612.
- ↑ 9.0 9.1 9.2 9.3 9.4 9.5 Knuth, Donald E. (1998). The art of computer programming, volume 3: (2nd ed.) sorting and searching. USA: Addison Wesley Longman Publishing Co., Inc. pp. 536–549. ISBN 978-0-201-89685-5.
- ↑ Knuth, Donald (1963), Notes on "Open" Addressing, archived from the original on 2016-03-03
- ↑ Konheim, Alan G.; Weiss, Benjamin (November 1966). "एक अधिभोग अनुशासन और अनुप्रयोग". SIAM Journal on Applied Mathematics. 14 (6): 1266–1274. doi:10.1137/0114101. ISSN 0036-1399.
- ↑ Carter, J. Lawrence; Wegman, Mark N. (1979-04-01). "हैश फ़ंक्शंस की सार्वभौमिक कक्षाएं". Journal of Computer and System Sciences (in English). 18 (2): 143–154. doi:10.1016/0022-0000(79)90044-8. ISSN 0022-0000.
- ↑ Bloom, Burton H. (July 1970). "Space/time trade-offs in hash coding with allowable errors". Communications of the ACM. 13 (7): 422–426. doi:10.1145/362686.362692. ISSN 0001-0782. S2CID 7931252.
- ↑ Aragon, C.R.; Seidel, R.G. (October 1989). "यादृच्छिक खोज पेड़". 30th Annual Symposium on Foundations of Computer Science: 540–545. doi:10.1109/SFCS.1989.63531. ISBN 0-8186-1982-1.
- ↑ Pugh, William (April 1989). Concurrent Maintenance of Skip Lists (PS, PDF) (Technical report). Dept. of Computer Science, U. Maryland. CS-TR-2222.
- ↑ 16.0 16.1 Alon, Noga (2016). संभाव्य विधि. Joel H. Spencer (Fourth ed.). Hoboken, New Jersey. ISBN 978-1-119-06195-3. OCLC 910535517.
{{cite book}}
: CS1 maint: location missing publisher (link) - ↑ P. Erdős: Some remarks on the theory of graphs, Bull. Amer. Math. Soc. 53 (1947), 292--294 MR8,479d; Zentralblatt 32,192.
- ↑ Erdös, P. (1959). "ग्राफ सिद्धांत और संभावना". Canadian Journal of Mathematics (in English). 11: 34–38. doi:10.4153/CJM-1959-003-9. ISSN 0008-414X. S2CID 122784453.
- ↑ Seidel R. Backwards Analysis of Randomized Geometric Algorithms.
- ↑ A. A. Tsay, W. S. Lovejoy, David R. Karger, Random Sampling in Cut, Flow, and Network Design Problems, Mathematics of Operations Research, 24(2):383–413, 1999.
- ↑ Alippi, Cesare (2014), Intelligence for Embedded Systems, Springer, ISBN 978-3-319-05278-6.
- ↑ Kushilevitz, Eyal; Nisan, Noam (2006), Communication Complexity, Cambridge University Press, ISBN 9780521029834. For the deterministic lower bound see p. 11; for the logarithmic randomized upper bound see pp. 31–32.
- ↑ Dyer, M.; Frieze, A.; Kannan, R. (1991), "A random polynomial-time algorithm for approximating the volume of convex bodies" (PDF), Journal of the ACM, 38 (1): 1–17, doi:10.1145/102782.102783, S2CID 13268711
- ↑ Füredi, Z.; Bárány, I. (1986), "Computing the volume is difficult", Proc. 18th ACM Symposium on Theory of Computing (Berkeley, California, May 28–30, 1986) (PDF), New York, NY: ACM, pp. 442–447, CiteSeerX 10.1.1.726.9448, doi:10.1145/12130.12176, ISBN 0-89791-193-8, S2CID 17867291
- ↑ Shamir, A. (1992), "IP = PSPACE", Journal of the ACM, 39 (4): 869–877, doi:10.1145/146585.146609, S2CID 315182
- ↑ Cook, Matthew; Soloveichik, David; Winfree, Erik; Bruck, Jehoshua (2009), "Programmability of chemical reaction networks", in Condon, Anne; Harel, David; Kok, Joost N.; Salomaa, Arto; Winfree, Erik (eds.), Algorithmic Bioprocesses (PDF), Natural Computing Series, Springer-Verlag, pp. 543–584, doi:10.1007/978-3-540-88869-7_27.
संदर्भ
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw–Hill, 1990. ISBN 0-262-03293-7. Chapter 5: Probabilistic Analysis and Randomized Algorithms, pp. 91–122.
- Dirk Draheim. "Semantics of the Probabilistic Typed Lambda Calculus (Markov Chain Semantics, Termination Behavior, and Denotational Semantics)." Springer, 2017.
- Jon Kleinberg and Éva Tardos. Algorithm Design. Chapter 13: "Randomized algorithms".
- Fallis, D. (2000). "The reliability of randomized algorithms". The British Journal for the Philosophy of Science. 51 (2): 255–271. doi:10.1093/bjps/51.2.255.
- M. Mitzenmacher and E. Upfal. Probability and Computing: Randomized Algorithms and Probabilistic Analysis. Cambridge University Press, New York (NY), 2005.
- Rajeev Motwani and P. Raghavan. Randomized Algorithms. Cambridge University Press, New York (NY), 1995.
- Rajeev Motwani and P. Raghavan. Randomized Algorithms. A survey on Randomized Algorithms.
- Christos Papadimitriou (1993), Computational Complexity (1st ed.), Addison Wesley, ISBN 978-0-201-53082-7 Chapter 11: Randomized computation, pp. 241–278.
- Rabin, Michael O. (1980). "Probabilistic algorithm for testing primality". Journal of Number Theory. 12: 128–138. doi:10.1016/0022-314X(80)90084-0.
- A. A. Tsay, W. S. Lovejoy, David R. Karger, Random Sampling in Cut, Flow, and Network Design Problems, Mathematics of Operations Research, 24(2):383–413, 1999.
- "Randomized Algorithms for Scientific Computing" (RASC), OSTI.GOV (July 10th, 2021).