गैर-निर्धारणवाद और यादृच्छिकता के बीच अंतर क्या है?
38
मैंने हाल ही में यह सुना है -
"एक गैर-नियतात्मक मशीन एक संभाव्य मशीन के समान नहीं है। कच्चे शब्दों में, एक गैर-नियतात्मक मशीन एक संभाव्य मशीन है जिसमें संक्रमण के लिए संभावनाएं ज्ञात नहीं हैं"।
मुझे लगता है जैसे मुझे बात मिलती है, लेकिन मैं सच में नहीं। क्या कोई मुझे यह समझा सकता है (मशीनों के संदर्भ में या सामान्य रूप से)?
संपादित करें 1:
बस स्पष्ट करने के लिए, उद्धरण परिमित ऑटोमेटन के संदर्भ में था, लेकिन सवाल ट्यूरिंग मशीनों के लिए भी सार्थक है, जैसा कि अन्य लोगों ने उत्तर दिया है।
इसके अलावा, मैं लोगों को यह कहते हुए सुनता हूं - "... तो मैं सेट x से ऑब्जेक्ट x को निर्विवाद रूप से चुनता हूं"। मैं समझता था कि उनका मतलब है - "बेतरतीब ढंग से"। इसलिए भ्रम।
कंप्यूटर विज्ञान में, लोग कभी-कभी "नियतात्मक" शब्द का उपयोग इस बात पर जोर देने के लिए करते हैं कि एल्गोरिथ्म यादृच्छिक नहीं है। इसलिए भ्रम: निर्धारक का मतलब गैर-यादृच्छिक होता है, लेकिन गैर-नियतात्मक का मतलब यादृच्छिक नहीं होता है।
यह समझना महत्वपूर्ण है कि कंप्यूटर वैज्ञानिक शब्द "नॉन्डेटेरिमिनिस्टिक" का उपयोग अलग-अलग तरीके से करते हैं कि यह आमतौर पर अन्य विज्ञानों में कैसे उपयोग किया जाता है। एक nondeterministic TM वास्तव में भौतिकी के अर्थ में नियतात्मक है - यह कहना है, एक NTM हमेशा दिए गए इनपुट पर एक ही उत्तर देता है: यह या तो हमेशा स्वीकार करता है, या हमेशा अस्वीकार करता है। एक संभाव्य टीएम एक इनपुट को एक निश्चित संभावना के साथ स्वीकार या अस्वीकार कर देगा, इसलिए एक रन पर यह स्वीकार कर सकता है और दूसरे पर इसे अस्वीकार कर सकता है।
अधिक विवरण में: NTM द्वारा किए गए अभिकलन में प्रत्येक चरण में, एक एकल संक्रमण नियम होने के बजाय, कई नियम हैं जिन्हें लागू किया जा सकता है। यह निर्धारित करने के लिए कि NTM स्वीकार या अस्वीकार करता है, आप गणना के सभी संभावित शाखाओं को देखते हैं। (इसलिए अगर वहाँ हैं, कहते हैं, प्रत्येक चरण से चुनने के लिए बिल्कुल 2 संक्रमण, और प्रत्येक गणना शाखा में कुल एन चरण हैं, तो विचार करने के लिए कुल शाखाएं होंगी ।) मानक एनटीएम के लिए, एक इनपुट स्वीकार किया जाता है। यदि गणना शाखाओं में से कोई भी स्वीकार करता है।2N
परिभाषा के इस अंतिम हिस्से को अन्य, संबंधित प्रकार की ट्यूरिंग मशीनों को प्राप्त करने के लिए संशोधित किया जा सकता है। यदि आप उन समस्याओं में रुचि रखते हैं जिनके पास एक अद्वितीय समाधान है, तो आप TM को स्वीकार कर सकते हैं यदि वास्तव में एक शाखा स्वीकार करती है। यदि आप बहुमत व्यवहार में रुचि रखते हैं, तो आप स्वीकार करने के लिए TM को परिभाषित कर सकते हैं यदि आधे से अधिक शाखाएं स्वीकार करती हैं। और यदि आप बेतरतीब ढंग से (कुछ संभावना वितरण के अनुसार) संभावित शाखाओं में से एक को चुनते हैं, और उस शाखा के आधार पर स्वीकार या अस्वीकार करते हैं, तो आपको एक संभाव्य टीएम मिल गया है।
कर्ट, क्या आप यह बता सकते हैं कि 2 ^ N आंकड़ा कैसे आया था। अगर हर ब्रांच के लिए 2 संभावनाएँ हैं और एन स्टेज हैं जैसे कि समाधान तक पहुँचने के लिए यह 2 ^ (N + 1) -1 नहीं बनाता है। मैं इसे एक ग्राफ की तरह सोचने की कोशिश कर रहा हूं और मैं गलत हो सकता हूं। क्या आप बता सकते हैं कि आप 2 ^ N नंबर पर कैसे पहुंचे। धन्यवाद।
ठीक है, यदि आप एक पेड़ के रूप में संगणना का प्रतिनिधित्व करते हैं, तो रूट प्रारंभिक चरण 0 के रूप में प्रारंभिक कॉन्फ़िगरेशन का प्रतिनिधित्व करता है, तो एन चरणों के बाद आपको 2 ^ एन पत्तियां मिली हैं, और जिसे मैं शाखा कह रहा हूं वह रूट से एक रास्ता है। एक पत्ता। यह सच है कि आपके पास 2 ^ (एन + 1) -1 कुल नोड होंगे, जो गणना में कुछ बिंदु पर सभी संभव कॉन्फ़िगरेशन का प्रतिनिधित्व करते हैं। मुझे आशा है कि मेरी शब्दावली ठीक है!
सभी विज्ञान अप्रत्यक्ष एन्ट्रापी की अवधारणा पर एकीकृत nondeterminism की समान परिभाषा का उपयोग करते हैं। सभी विज्ञानों में अप्रत्याशित परिणाम एक एल्गोरिथ्म (या सिस्टम) के एक प्राथमिक सभी संभव आउटपुट को एन्यूमरेट करने में असमर्थता के कारण होते हैं क्योंकि यह अनबाउंड राज्यों, अर्थात एनपी जटिलता वर्ग को स्वीकार करता है। किसी विशेष इनपुट को निर्दिष्ट करने के लिए कि क्या यह रुकता है और यह देखते हुए कि परिणाम एक ही राज्य परिवर्तन को दोहराते समय ब्रह्मांड के बाकी एन्ट्रापी को स्थिर रखने के लिए अन्य विज्ञानों के बराबर है, यह देखने के लिए कि क्या परिणाम है। कम्प्यूटिंग इस एन्ट्रापी अलगाव की अनुमति देता है, जबकि प्राकृतिक विज्ञान नहीं करते हैं।
@DavidRicherby माफ करना डेविड। दूसरे धागे पर जाइए और देखिए कि मैंने आपके बारे में ज़िक्र किया है। आप मेरे द्वारा प्रस्तुत तर्क का खंडन करने का प्रयास कर सकते हैं। बस सबूत और स्पष्टीकरण के बिना जोर देने से आपको कोई सच्चाई नहीं मिलती।
ट्यूरिंग मशीनों के संदर्भ में, "गैर-नियतात्मक" वास्तव में "समानांतर" का अर्थ है। एक यादृच्छिक एल्गोरिथ्म एक गैर-नियतात्मक ट्यूरिंग मशीन की गणना वृक्ष की शाखाओं को बेतरतीब ढंग से खोज सकता है, लेकिन एक गैर-नियतात्मक ट्यूरिंग मशीन उन्हें -all का पता लगा सकती है-उसी समय, जो वह अपनी शक्ति देता है।
अन्य संदर्भों में (यदि आप ट्यूरिंग मशीनों के बारे में बात कर रहे हैं तो मैं आपके उद्धरण से नहीं बता सकता), एक यादृच्छिक एल्गोरिथ्म जानबूझकर यादृच्छिकता का उपयोग कर सकता है, जबकि एक एल्गोरिथ्म जिसे आप नियतात्मक होना चाहते थे, बग के कारण गैर-नियतत्ववाद का प्रदर्शन कर सकता है। ...
आपके संपादन के जवाब में, जब लोग कहते हैं कि "एक सेट को गैर-नियतात्मक रूप से एक तत्व चुनें", तो संभव है कि उनका अर्थ "बेतरतीब ढंग से" हो सकता है। हालांकि, यह भी संभव है कि उनका मतलब है "जादुई रूप से सेट से सटीक-तत्व चुनें"। गैर-नियतात्मक ट्यूरिंग मशीनों को देखने का एक सामान्य तरीका यह है कि वे पहले एक समाधान "जादुई" अनुमान लगाते हैं, और फिर इसकी शुद्धता की जांच करते हैं। बेशक, आप इस जादू के अनुमान को समानांतर में सभी संभावनाओं की जांच के परिणाम के रूप में देख सकते हैं।
"जादुई रूप से सही तत्व का चयन करें" से संबंधित : जब इस अर्थ में 'नोंडेटर्मिनिज़्म' शब्द का उपयोग किया जाता है, तो लोग कभी-कभी इसे 'एंगेलिक' के साथ योग्य बनाते हैं। वहाँ भी 'राक्षसी' nondeterminism है। (फिर भी, जैसा कि आप कहते हैं, सार यह है कि सामान समानांतर में होता है।)
कई अलग-अलग संदर्भ हैं जहां "नियतात्मक", "यादृच्छिक" और "गैर-नियतात्मक" का अर्थ तीन अलग-अलग चीजें हैं। संदर्भों में जहां कई भागीदार होते हैं, जैसे कि सुरक्षा और संगामिति, अंतर्ज्ञान अक्सर कुछ इस तरह होता है:
नियतात्मक का अर्थ है "मुझे चुनना है"
गैर-नियतात्मक का अर्थ है "किसी और को चुनना"
यादृच्छिक का अर्थ है "कोई भी चुनने के लिए नहीं जाता है"
कुछ उदाहरण:
[संक्षिप्त, यादृच्छिक] ईथरनेट जैसे नेटवर्किंग प्रोटोकॉल पर विचार करें , जहां कई नोड्स किसी भी समय एक संदेश भेज सकते हैं। यदि दो नोड्स बहुत निकट अंतराल पर एक संदेश भेजते हैं, तो एक टकराव होता है: संदेश ओवरलैप होते हैं और अपठनीय होते हैं। यदि टक्कर होती है, तो दोनों नोड्स को बाद में फिर से संदेश भेजने की कोशिश करनी चाहिए। कल्पना कीजिए कि आप ईथरनेट के विनिर्देश लिख रहे हैं। आप रिट्रीट के बीच देरी को कैसे निर्दिष्ट करते हैं? (देरी बेहतर थी अलग हो सकता है या फिर एक टकराव होगा!)
नियतात्मक: एक एल्गोरिथ्म को परिभाषित करता है जिसे दोनों नोड्स का उपयोग करना चाहिए। यह ईथरनेट के लिए नहीं किया गया है क्योंकि अलग-अलग परिणाम देने के लिए, एल्गोरिथ्म को एक नोड को दूसरे पर (किसी भी संदेश सामग्री के लिए) विशेषाधिकार प्राप्त करना होगा, और ईथरनेट ऐसा करने से बचता है।
गैर-नियतात्मक: प्रत्येक कार्यान्वयनकर्ता को निर्णय लेने दें। यह अच्छा नहीं है क्योंकि दोनों नोड्स पर कार्यान्वयनकर्ता एक ही एल्गोरिदम चुन सकते हैं।
रैंडम: प्रत्येक नोड को रैंडम (निर्दिष्ट वितरण के साथ) पर एक विलंब मूल्य का चयन करना होगा। यह वैसे काम करता है। एक छोटी सी संभावना है कि दो नोड एक ही देरी का चयन करते हैं और एक और टकराव होता है, लेकिन सफलता की संभावना 1 गुना बढ़ जाती है जैसे ही रिट्रीट की संख्या बढ़ जाती है।
[संगामिति, nondeterministic] आप एक समवर्ती एल्गोरिथ्म लिखते हैं। एक विशिष्ट स्थिति में, एक गतिरोध हो सकता है। आप गतिरोध को होने से कैसे रोक सकते हैं? यह इस बात पर निर्भर करता है कि आपके समसामयिक परिवेश में किस प्रकार का शेड्यूल है।
नियतात्मक: अनुसूचक हमेशा कुछ अच्छी तरह से परिभाषित बिंदुओं पर थ्रेड्स के बीच स्विच करता है, उदाहरण के लिए, जब कोड स्पष्ट रूप से उपज देता है। तो आप बस धागे की व्यवस्था करें कि बुरे समय में उपज न हो।
यादृच्छिक: अनुसूचक को धागे को बेतरतीब ढंग से स्विच करने की गारंटी है। फिर एक व्यवहार्य रणनीति गतिरोध का पता लगाने के लिए हो सकती है यदि ऐसा होता है, और शुरू से एल्गोरिथ्म को पुनरारंभ करें।
गैर-नियतात्मक (अधिकांश अनुसूचक इस तरह हैं): आपको नहीं पता कि शेड्यूलर थ्रेड्स के बीच कब स्विच करेगा। इसलिए आपको वास्तव में गतिरोध से बचना होगा। यदि आपने यादृच्छिक मामले की तरह पता लगाने और पुनः आरंभ करने का प्रयास किया है, तो आप जोखिम उठाते हैं कि शेड्यूलर आपके थ्रेड्स को उसी तरह से बार-बार शेड्यूल करेगा।
[सुरक्षा, यादृच्छिक] आप एक पासवर्ड संकेत के साथ एक आवेदन लिखें। आप एक हमलावर को कैसे मॉडल बनाते हैं?
नियतात्मक: हमलावर हमेशा एक ही पासवर्ड की कोशिश करता है। यह हमलावर का एक उपयोगी मॉडल नहीं है - हमलावर परिभाषा के अनुसार अनुमानित नहीं हैं।
nondeterministic: हमलावर किसी भी तरह आपका पासवर्ड जानता है और उसमें प्रवेश करता है। यह पासवर्ड की सीमा दिखाता है: उन्हें गुप्त रखा जाना चाहिए। यदि आपका पासवर्ड गुप्त है, तो यह हमलावर अवास्तविक है।
यादृच्छिक: हमलावर यादृच्छिक पर पासवर्ड की कोशिश करता है। इस मामले में, यह हमलावर का एक यथार्थवादी मॉडल है। आप यह अध्ययन कर सकते हैं कि हमलावर को आपके पासवर्ड का अनुमान लगाने में कितना समय लगेगा, वह इस बात पर निर्भर करता है कि वह किस यादृच्छिक वितरण का उपयोग करता है। एक अच्छा पासवर्ड वह है जो किसी भी यथार्थवादी वितरण के लिए लंबा समय लेता है।
[सुरक्षा, nondeterministic] आप एक आवेदन लिखते हैं, और आप चिंता करते हैं कि इसमें एक सुरक्षा छेद हो सकता है। आप एक हमलावर को कैसे मॉडल बनाते हैं?
नियतात्मक: हमलावर वह सब कुछ जानता है जो आप जानते हैं। फिर, यह किसी हमलावर का उपयोगी मॉडल नहीं है।
यादृच्छिक: हमलावर यादृच्छिक कचरा फेंकता है और आपके कार्यक्रम को दुर्घटनाग्रस्त होने की उम्मीद करता है। यह कभी-कभी उपयोगी ( फ़ज़िंग ) हो सकता है, लेकिन हमलावर इससे अधिक चतुर हो सकता है।
गैर-नियतात्मक: यदि कोई छेद है, तो हमलावर इसे अंततः ढूंढ लेगा। इसलिए आप अपने आवेदन को बेहतर बनाएंगे (हमलावर के लिए खुफिया आवश्यकता को बढ़ाएं; ध्यान दें कि चूंकि यह गणना की आवश्यकता के बजाय एक खुफिया आवश्यकता है, यह गैर-निर्धारक के रूप में गिना जाता है जब तक कि एआई साथ नहीं आता), या बेहतर, साबित करें कि कोई भी नहीं है सुरक्षा छेद और इसलिए ऐसा कोई हमलावर मौजूद नहीं है।
लापता शब्द के आसपास सुधार घूमता साबित अपने बयान में: नियतात्मक है "मैं कर सकते हैं साबित मैं चुनने हूँ (यानी पूरी तरह से परिणाम पी जटिलता कक्षा में मेरी इनपुट पर जो समाप्त निर्दिष्ट करने)", nondeterministic है "मैं नहीं कर सकता साबित मैं चुनने हूँ (यानी समाप्ति का प्रमाण एनपी जटिलता वर्ग में अप्राप्य है) ", और यादृच्छिक है" मैं यह साबित कर सकता हूं कि मुझे समय (यानी ZPP जटिलता वर्ग) चुनने के लिए मिलता है।
@ShelbyMooreIII मुझे समझ नहीं आ रहा है कि आप कहाँ पर हैं। नियतत्ववाद, सामान्य रूप से, यह साबित करने के बारे में नहीं है कि कुछ वास्तव में निर्धारक है, या कुछ समस्या एक निश्चित जटिलता वर्ग में है। इसके अलावा, जटिलता वर्ग प्रणाली के बारे में नहीं है जो अपने नियतत्ववाद के बारे में कुछ साबित करने में सक्षम है (अधिकांश समस्याओं में सिस्टम के अंदर साबित करने की धारणा भी नहीं है!)।
नॉनडेटर्मिनिज्म हमेशा अनबाउंड एन्ट्रॉपी का परिणाम होता है, इस प्रकार यह कहने का एक और तरीका है कि मैं यह साबित नहीं कर सकता कि मैं परिणाम का चयन कर रहा हूं (क्योंकि मैं साबित नहीं कर सकता कि मेरी पसंद समाप्त हो जाएगी)। मैं जो कुछ भी कर सकता हूं, वह है, जिसका अर्थ है कि मुझे हर विकल्प को पूरा करना होगा जो मैं जानना चाहता हूं कि क्या यह समाप्त हो जाएगा। जबकि नियतत्ववाद के साथ, मैं यह साबित कर सकता हूं कि मैं उस परिणाम bcz को चुन सकता हूं जिसे उसे समाप्त करना होगा। रैंडमाइजेशन वह जगह है जहां मैं साबित कर सकता हूं कि मुझे केवल एक रैंडम राशि का चयन करना है क्योंकि कुछ एन्ट्रापी मेरे नियंत्रण में नहीं हैं। यदि मुझे पता है कि राशि मेरे नियंत्रण में नहीं है, तो मैं सटीक आंकड़े साबित कर सकता हूं।
सहमत यह जटिलता वर्ग एनपी नहीं है जो नोंदेर्तिवाद को जन्म देता है, बल्कि एनपी एक निर्भरता है। ट्यूरिंग-पूर्ण नॉनडेटर्मिनिज़्म का एक उदाहरण है। Plz कर्ट के जवाब के तहत मेरी टिप्पणी देखें, साथ ही संबंधित धागे पर मेरा जवाब । मेरे बारे में मेरा कहना है कि जो शब्द नियतात्मक, निरर्थक और यादृच्छिक हैं उनके लिए सटीक और अप्रत्याशित है। यह सब एन्ट्रॉपी (और बास के बारे में नहीं ) के बारे में है
कहें कि आपको 10000 दरवाजों में से एक को खोलने के लिए एक दरवाजा चुनना होगा (कहते हैं कि दरवाजों में से एक के पीछे एक पुरस्कार है)। बेतरतीब ढंग से चुनने का मतलब है कि आप 10000 दरवाजों में से एक का चयन करेंगे और उसमें प्रवेश करेंगे। यदि केवल एक दरवाजे के पीछे कोई पुरस्कार है, तो आप शायद इसे नहीं पाएंगे। एक गैर-नियतात्मक मशीन सभी 10000 दरवाजे एक साथ प्रवेश करेगी। यदि कहीं भी पुरस्कार है, तो गैर-नियतात्मक मशीन उसे ढूंढ लेगी।
@ रॉबिनकोठारी: "वैकल्पिक रूप से, एक गैर-नियतात्मक मशीन केवल एक दरवाजा खोलेगी, लेकिन यह हमेशा सही होगा" और "एक गैर-नियतात्मक मशीन सभी 10000 दरवाजों को एक साथ दर्ज करेगी" -? कौन सा सही है?
@ तान: दोनों सही व्याख्याएं हैं। नियतात्मक और यादृच्छिक मशीनों के विपरीत, जो शारीरिक रूप से वसूली योग्य हैं, एक गैर-नियतात्मक मशीन एक काल्पनिक वस्तु है। तो आप इसकी कल्पना कर सकते हैं लेकिन आप इसे पसंद करते हैं, मुद्दा यह है कि यह हमेशा सही दरवाजा पाता है। शायद यह सबसे अच्छा अनुमानक है, हो सकता है कि किसी ने चुपके से मशीन को बताया जहां पुरस्कार था, शायद यह सभी दरवाजों को जादुई रूप से जांचता है, आदि
गैर-नियतात्मक ट्यूरिंग मशीन की परिभाषा : एक ट्यूरिंग मशीन जिसमें वर्तमान सेल और वर्तमान स्थिति की सामग्री के कुछ संयोजनों के लिए एक से अधिक राज्य हैं। यदि कोई चाल अनुक्रम स्वीकृति की ओर जाता है तो एक इनपुट स्वीकार किया जाता है।
प्रोबेबिलिटिस्टिक ट्यूरिंग मशीन की परिभाषा :
एक nondeterministic Turing Machine (TM) जो कुछ संभावना वितरण के अनुसार प्रत्येक बिंदु पर उपलब्ध संक्रमणों के बीच बेतरतीब ढंग से चुनता है।
प्रोबेबिलिस्टिक ट्यूरिंग मशीन एक गैर-नियतात्मक ट्यूरिंग मशीन है जो गलतियाँ कर सकती है।
एक संभाव्य ट्यूरिंग मशीन जैसी कोई चीज नहीं है! केवल नियतात्मक मशीनें हैं (हर चरण में एक एकल संभव अनुवर्ती स्थिति) और गैर निर्धारक मशीनें (प्रत्येक चरण में संभव अनुवर्ती राज्यों की एक निरंतर संख्या)।
गैर-नियतात्मकता निम्नानुसार काम करती है: एक गैर-नियतात्मक मशीन पर विचार करें जो प्रत्येक इनपुट पर संभव है (यदि समस्या का समाधान संभव है), जहां प्रत्येक संभव गणना समान चरणों का उपयोग करती है, और जहां प्रत्येक चरण में 2 संभावित अनुवर्ती अवस्थाएं हैं ( दोनों वास्तव में प्रतिबंध नहीं है)। एनपी की परिभाषा के अनुसार, एक nondeterministic मशीन एक इनपुट को स्वीकार करता है अगर वहाँ कम से कम एक संभव स्वीकार करने वाला संगणना मौजूद है, और यह इनपुट को अस्वीकार कर देता है यदि सभी संगणना अस्वीकार करते हैं।
रैंडमनेस निम्नानुसार खेल में आती है: आप समान रूप से इस तरह के गैर-नियतात्मक मशीन से गणना के यादृच्छिक पथ पर समान रूप से चुन सकते हैं। आप स्वीकार करते हैं कि क्या और केवल अगर यह बेतरतीब ढंग से गणना के मार्ग को स्वीकार करता है। यह यादृच्छिक दृष्टिकोण आपकी समस्या को हल करता है, यदि अत्यधिक संभावना के साथ, यह उत्तर सही है।
इसलिए गैर-नियतात्मकता और यादृच्छिकता के बीच का अंतर यह है कि क्या आप एक सही हां-जवाब (और विश्वसनीय नो-उत्तर) के अस्तित्व की तलाश कर रहे हैं , या क्या आप "ज्यादातर समय" अपनी समस्या को हल करने में रुचि रखते हैं ।
-1 अपने पहले पैराग्राफ में त्रुटियां। प्रोबेबिलिस्टिक ट्यूरिंग मशीन मौजूद हैं और बाहरी एन्ट्रापी से एक सिक्का टॉस का नमूना लेते हैं, ZPP जटिलता वर्ग से। गैर-नियतात्मकता में वैकल्पिक राज्यों की एक सीमित संख्या नहीं है, एनपी जटिलता वर्ग है। नियतत्ववाद P जटिलता वर्ग है और आपने इसे सही किया।
मुझे लगता है कि आप मेरे जवाब को गलत बता रहे हैं। मेरा तर्क है कि आपको संभाव्य जटिलता वर्गों को परिभाषित करने के लिए "साधारण" गैर-निर्धारक टीएम की तुलना में किसी भी अलग मशीन (सिक्का-उछाल या अन्य क्षमताओं के साथ) की आवश्यकता नहीं है। आप केवल एनटीएम का उपयोग कर सकते हैं और केवल स्वीकृति की एक अलग परिभाषा का उपयोग कर सकते हैं, अर्थात् "अधिकांश कम्प्यूटेशनल पथ इनपुट स्वीकार करते हैं", "इनपुट के लिए कम से कम एकल स्वीकार पथ मौजूद है" के विपरीत।
इसे सरल रखने के लिए: एक गैर-नियतात्मक मशीन प्रत्येक सिक्का फ्लिप के परिणाम को चुन सकती है (यदि आप एक संभाव्य मशीन के साथ सादृश्य पसंद करते हैं)। आप यह भी सोच सकते हैं कि यह समानांतर में सिक्के के प्रत्येक परिणाम के लिए गणना को निष्पादित करता है।
गैर-नियतत्ववाद के लिए प्रेरणा के रूप में डिबगिंग के दौरान पीछे की ओर कदम
एक गैर-नियतात्मक मशीन की धारणा खुद को बताती है जब आप डिबगिंग करते समय एक कार्यक्रम के माध्यम से पिछड़े (समय में) कदम रखना चाहते हैं। एक सामान्य कंप्यूटर में, प्रत्येक चरण केवल एक सीमित मात्रा में मेमोरी को संशोधित करता है। यदि आप हमेशा इस जानकारी को पिछले 10000 चरणों के लिए सहेजते हैं, तो आप अच्छी तरह से प्रोग्राम में आगे और पीछे दोनों कदम उठा सकते हैं, और यह संभावना खिलौना कार्यक्रमों तक सीमित नहीं है। यदि आप आगे के चरणों और पिछड़े चरणों के बीच विषमता को हटाने की कोशिश करते हैं, तो आप एक गैर-नियतात्मक मशीन की धारणा के साथ समाप्त होते हैं।
गैर-नियतात्मकता और यादृच्छिकता के बीच समानताएं और अंतर
जबकि संभाव्य मशीनें गैर-नियतात्मक मशीनों के साथ कुछ विशेषताओं को साझा करती हैं, आगे के चरणों और पिछड़े चरणों के बीच यह समरूपता साझा नहीं की जाती है। इसे देखने के लिए, चलो (कुल या आंशिक) कार्यों द्वारा (एक या नियत) संबंधों द्वारा एक गैर-नियतात्मक मशीन के संक्रमण, (उप) स्टोचैस्टिक मैट्रिसेस द्वारा एक संभाव्य मशीन के संक्रमण के चरणों या संक्रमणों को मॉडल करें । उदाहरण के लिए, यहां परिमित ऑटोमेटा के लिए समान परिभाषाएं हैं
Q
Σ
δ:Q×Σ→Q
Δ:Q×Σ→P(Q)
Δ⊂Q×Σ×Q
Δ:Σ→P(Q×Q)
δ:Σ→ssM(Q)
P(Q)QssM(Q)Q
कई अलग-अलग उचित स्वीकृति शर्तें हैं
संक्रमण केवल एक मशीन का एक हिस्सा है, प्रारंभिक और अंतिम राज्य, संभव उत्पादन और स्वीकृति की स्थिति भी महत्वपूर्ण है। हालाँकि, नियतात्मक मशीनों के लिए केवल कुछ ही गैर-गैर-स्वीकार्य स्वीकृति स्थितियां हैं, गैर-नियतात्मक मशीनों (एनपी, सीओएनपी, # पी, ...) के लिए उचित स्वीकृति शर्तों की एक संख्या, और संभाव्य मशीनों के लिए कई संभावित स्वीकृति शर्तें हैं। इसलिए यह उत्तर मुख्य रूप से बदलाव पर केंद्रित है।
प्रत्यावर्ती मशीनों के लिए प्रतिवर्ती गैर-तुच्छता है
PPTP≠PPBAkABk
गैर-नियतात्मक मशीनों के लिए प्रत्यावर्तन भी मुश्किल है
PPTP≠PR∘Rop∘R≠RRRR∘Rop∘R=RRop∘R∘Rop=RopPQP∘Q
ये विचार पुशडाउन ऑटोमेटा के लिए भी मायने रखते हैं
इस पोस्ट से पता चलता है कि गैर-निर्धारणवाद के लिए एक प्रेरणा आगे के चरणों और पिछड़े चरणों के बीच उस विषमता को दूर करना है। क्या गैर-निर्धारणवाद की यह समरूपता परिमित ऑटोमेटा तक सीमित है? यहां पुशडाउन ऑटोमेटा के लिए समान सममित परिभाषाएं हैं
Q
Σ
Γ
δ:Q×Γ×(Σ∪{ϵ})→Q×Γ{0,2}δ(q,γ,ϵ)≠ϵδ(q,γ,σ)=ϵσ∈Σ
Δ:Q×Γ{0,1}×(Σ∪{ϵ})→P(Q×Γ{0,1})
Δ⊂Q×Γ{0,1}×(Σ∪{ϵ})×Q×Γ{0,1}
Δ:Σ∪{ϵ}→P(Q×Γ{0,1}×Q×Γ{0,1})
δ:Σ∪{ϵ}→ssM(Q×Γ{0,1})δ(ϵ)+δ(σ)∈ssM(Q×Γ{0,1})σ∈Σ
ϵΓ{0,2}={ϵ}∪Γ∪(Γ×Γ)Γ{0,1}={ϵ}∪ΓΓ∗
(गैर) अग्रिम इनपुट और स्टैक संचालन के लिए उत्क्रमण के आरेखित सत्यापन
b∈Σ⊂Σ∪{ϵ}
a|bc→a|bc→ab|c a|bc←ab|c←ab|c c|ba→c|ba→cb|a
ϵ∈Σ∪{ϵ}
a|bc→a|bc→a|bc a|bc←a|bc←a|bc cb|a→cb|a→cb|a
यहाँ एक अग्रिम इनपुट ऑपरेशन का आरेख है जिसका उलटा बुरा लगेगा
एक से अधिक स्टैक वाली मशीन ट्यूरिंग मशीन के बराबर है, और स्टैक संचालन को आसानी से उलट दिया जा सकता है। शुरुआत में प्रेरणा यह भी बताती है कि उत्क्रमण (एक ट्यूरिंग मशीन) मुश्किल नहीं होना चाहिए। एक विशिष्ट निर्देश सेट के साथ एक ट्यूरिंग मशीन उलटाव के लिए बहुत बढ़िया नहीं है, क्योंकि सिर के नीचे का प्रतीक प्रभावित कर सकता है कि टेप बाएं या दाएं चलेगा। लेकिन अगर निर्देश सेट को उचित रूप से संशोधित किया जाता है (मशीन की कम्प्यूटेशनल शक्ति को कम किए बिना), तो उलटा लगभग फिर से मामूली है।
निर्देश सेट को संशोधित किए बिना एक उलटाव का निर्माण भी किया जा सकता है, लेकिन यह विहित और थोड़ा बदसूरत नहीं है। ऐसा लग सकता है कि ट्यूरिंग मशीनों से संबंधित कई अन्य प्रश्नों के बारे में निर्णय लेना उतना ही कठिन है, लेकिन एक उलटफेर एक स्थानीय निर्माण है और कठिन सवालों में अक्सर एक वैश्विक स्वाद होता है, इसलिए निराशावाद शायद यहाँ अन्याय होगा।
समतुल्य अनुदेश सेट (आसान से उल्टा) पर स्विच करने का आग्रह दर्शाता है कि ये प्रश्न पहले दिखाई देने की तुलना में कम स्पष्ट हैं। इस पोस्ट में पहले एक अधिक सूक्ष्म स्विच हुआ, जब कुल कार्यों और स्टोकेस्टिक मैट्रिक को आंशिक कार्यों और सबोचस्टिक मैट्रिस द्वारा प्रतिस्थापित किया गया था। यह स्विच कड़ाई से आवश्यक नहीं है, लेकिन उलटा अन्यथा बदसूरत है। स्थानापन्न मेट्रिसेस पर स्विच वास्तव में वह बिंदु था जहां यह स्पष्ट हो गया कि प्रत्यावर्तन सब के बाद इतना तुच्छ नहीं है, और किसी को केवल उच्च स्तर के परिप्रेक्ष्य में लेने के बजाय विवरण लिखना चाहिए (जैसा कि ऊपर किया गया है) (जैसा कि प्रेरणा में प्रस्तुत किया गया है) शुरुवात)। निएल डी बेउड्राप द्वारा उठाए गए सवालों ने इस अहसास में भी योगदान दिया कि उच्च स्तर का परिप्रेक्ष्य थोड़ा अस्थिर है।
निष्कर्ष
गैर-नियतात्मक मशीनें प्रत्येक चरण पर नियतात्मक संक्रमणों की एक सीमित संख्या की अनुमति देती हैं। संभाव्य मशीनों के लिए, इन परिवर्तनों के अतिरिक्त संभावना है। यह पद गैर-नियतत्ववाद और यादृच्छिकता पर एक अलग दृष्टिकोण बताता है। वैश्विक स्वीकृति की शर्तों को नजरअंदाज करते हुए, इसके बजाय स्थानीय प्रतिवर्तीता (स्थानीय समरूपता के रूप में) पर ध्यान केंद्रित किया जाता है। क्योंकि यादृच्छिकता कुछ स्थानीय समरूपताओं को संरक्षित करती है जो नियतावाद द्वारा संरक्षित नहीं हैं, यह परिप्रेक्ष्य गैर-निर्धारक और संभाव्य मशीनों के बीच गैर-तुच्छ अंतर को प्रकट करता है।
क्या आप मान रहे हैं कि गैर-नियतात्मक संक्रमण एक-से-कई संबंध हैं? क्या होगा अगर दो अलग-अलग कॉन्फ़िगरेशन दूसरों के बीच एक सामान्य कॉन्फ़िगरेशन में संक्रमण कर सकते हैं? - यह मुझे प्रतीत होता है कि यादृच्छिकता और नॉनडेटर्मिनिज्म के बीच का अंतर प्रतिवर्तीता नहीं है (न ही, आगे की बाधा के बिना), बल्कि परिणाम के अनुसार शाखाओं के महत्व को कैसे बताता है: यादृच्छिकता के लिए पूरी तरह से लोकतांत्रिक, या "हां" के लिए संवेदनशील रूप से संवेदनशील नॉनडेर्मिनिज़्म के लिए "नहीं" जवाब।
@ नीलदेब्यूप्रैप मुझे लगता है कि गैर-नियतात्मक संक्रमण "मनमाना" संबंध हैं (इनपुट वर्णमाला से प्रत्येक प्रतीक के लिए एक)। मैं उन्हें रिवर्स कर सकता हूं, स्टार्ट एंड स्टेट स्टैप कर सकता हूं, और फिर से एक गैर-नियतात्मक परिमित राज्य मशीन प्राप्त कर सकता हूं, जो उलटा इनपुट स्ट्रिंग स्वीकार करता है। इसे मैं "मशीन को समय में पीछे चलाना" कहता हूं। (मशीन स्वीकार करती है कि गैर-नियतात्मक मामले में शुरू से अंत तक राज्य में कम से कम एक रास्ता है, और समय को उलटते समय यह स्थिति नहीं बदलती है।) कृपया खुद को समझाने की कोशिश करें कि यह कम से कम एक परिमित राज्य मशीन के लिए काम करता है। ।
तो, आप मशीन के दोहरे को देखें। एनएफए के लिए यह उत्क्रमण की एक सार्थक धारणा है। यह भी स्पष्ट है कि एक एनटीएम (एक एकल राज्य के साथ) का दोहरी एक और एनटीएम है, लेकिन मुझे यह कहने में संकोच होगा कि यह वही मशीन है जिसे रिवर्स में चलाया जा रहा है। क्या आपकी उत्तर राशि "Nondeterminism आपको दोहरे, यादृच्छिक (और नियतात्मक) उत्पाद" के तहत बंद करने की अनुमति देती है?
@NieldeBeaudrap मेरा विचार निश्चित रूप से समय में पीछे की ओर दौड़ने का है, लेकिन मुझे पता है कि यह पूरी तरह से संतुष्ट नहीं है (क्योंकि उलटे अर्धवृत्त के सामान्यीकृत व्युत्क्रम के लिए शर्तें संतुष्ट नहीं हैं)। लेकिन मैंने यह बताने की कोशिश की है कि यादृच्छिक (और नियतात्मक) मशीनें हमेशा इस तरह के उत्क्रमण की अनुमति नहीं देती हैं।
ट्यूरिंग मशीन ( टीएम ) और ऑटोमेटा सिद्धांत के संदर्भ में , एक गैर-नियतात्मक मशीन वह है जिसमें मशीन की कोई भी तात्कालिकता जो स्वीकार करती है वह ठीक है। इस अर्थ में, यह समानांतर में कई निर्धारक मशीनों को चलाने और इनपुट को स्वीकार करने वाले किसी भी उदाहरण के आउटपुट को लेने जैसा है । वास्तव में किसी भी गैर-नियतात्मक ऑटोमेटन ( साथ बदलने के लिए एक (निर्धारक) एल्गोरिदम हैn2n राज्यों, घातांक) को राज्यों के समतुल्य वर्गों पर विचार करके, कोई फर्क नहीं पड़ता कि मशीन में कार्यान्वित एल्गोरिदम में रैंडमाइजेशन या संभाव्यताएं शामिल हैं (नीचे देखें)।
लेकिन यदि मशीन में कार्यान्वित एल्गोरिथ्म में रैंडमाइजेशन या संभाव्यता (एल्गोरिथम में आंतरिक) शामिल है, तो यह एक यादृच्छिक (या संभाव्य) मशीन है।
सामान्य तौर पर, मशीन से गैर-नियतात्मकता को निकालना और एक नियत समतुल्य समतुल्य (ऊपर एल्गोरिथ्म देखें) का निर्माण करना हमेशा संभव होता है, लेकिन ऐसा नहीं किया जा सकता है (सामान्य तौर पर) यादृच्छिकता को हटाने के लिए (उपरोक्त के संदर्भ में) क्योंकि यह है कार्यान्वित एल्गोरिथ्म के आंतरिक ।
ध्यान दें कि उपरोक्त के प्रकाश में, एक नियतात्मक मशीन और एक गैर-निर्धारक मशीन दोनों संभाव्य हो सकते हैं यदि एल्गोरिथ्म (शामिल) इस तरह यादृच्छिकता (या संभाव्यता) का उपयोग करता है।
संक्षेप में, ऑटोमेटा (इस संदर्भ में) में गैर-निर्धारकवाद समान ऑटोमेटा की कक्षाओं को संदर्भित करता है, जबकि रैंडमाइजेशन या संभाव्य मशीनों का उल्लेख इस ऑटोमेटा द्वारा लागू वास्तविक एल्गोरिदम में (रैंडमाइजेशन का आंतरिक अनुप्रयोग) है।