यादृच्छिक और नॉनडेटर्मिनिस्टिक एल्गोरिदम के बीच अंतर और संबंध?


30

यादृच्छिक एल्गोरिदम और nondeterministic एल्गोरिदम के बीच क्या अंतर और संबंध हैं?

विकिपीडिया से

एक यादृच्छिक एल्गोरिथ्म एक एल्गोरिथ्म है जो अपने तर्क के हिस्से के रूप में यादृच्छिकता की एक डिग्री को नियोजित करता है। एल्गोरिथ्म आमतौर पर अपने व्यवहार को निर्देशित करने के लिए सहायक इनपुट के रूप में समान रूप से यादृच्छिक बिट्स का उपयोग करता है, यादृच्छिक बिट्स के सभी संभावित विकल्पों पर "औसत मामले" में अच्छा प्रदर्शन प्राप्त करने की उम्मीद में। औपचारिक रूप से, एल्गोरिथ्म का प्रदर्शन यादृच्छिक बिट्स द्वारा निर्धारित एक यादृच्छिक चर होगा; इस प्रकार या तो चलने का समय, या आउटपुट (या दोनों) यादृच्छिक चर हैं।

एक nondeterministic एल्गोरिथ्म एक एल्गोरिथ्म है जो एक नियतात्मक एल्गोरिथम के विपरीत, विभिन्न रनों पर विभिन्न व्यवहारों को प्रदर्शित कर सकता है। एल्गोरिथ्म को चलाने के लिए अलग-अलग तरीके से व्यवहार कर सकते हैं कई तरीके हैं। एक समवर्ती एल्गोरिथ्म एक दौड़ की स्थिति के कारण अलग-अलग रनों पर अलग-अलग प्रदर्शन कर सकता है। एक संभाव्य एल्गोरिथ्म का व्यवहार एक यादृच्छिक संख्या जनरेटर पर निर्भर करता है। एक एल्गोरिथ्म जो nondeterministic बहुपद समय में एक समस्या को हल करता है वह बहुपद समय या निष्पादन समय में उन विकल्पों के आधार पर चला सकता है जो निष्पादन के दौरान बनाता है।

क्या यादृच्छिक एल्गोरिदम और संभाव्य एल्गोरिदम एक ही अवधारणा हैं?

यदि हाँ, तो क्या यादृच्छिक एल्गोरिदम सिर्फ एक तरह के नॉनडेटर्मिनिस्टिक एल्गोरिदम हैं?


मुझे लगता है कि भ्रम का हिस्सा इसलिए पैदा होता है क्योंकि "गैर-नियतात्मक" और "नियतात्मक नहीं" ध्वनि जैसे कि उन्हें एक ही चीज़ का मतलब होना चाहिए, लेकिन वे नहीं करते हैं: "निर्धारक" का अर्थ "यादृच्छिक नहीं" और "गैर-निर्धारक नहीं" है। तो "यादृच्छिक" और "गैर-नियतात्मक" दोनों तरीके हैं कि एक एल्गोरिथ्म "नियतात्मक नहीं" हो सकता है, लेकिन "गैर-नियतात्मक" की एक विशिष्ट तकनीकी परिभाषा है, और "नियतात्मक" के लिए केवल एक एंटोनीम नहीं है।
जो

जवाबों:


24

गैर-नियतात्मक एल्गोरिदम संभाव्य एल्गोरिदम से बहुत अलग हैं।

Θ(nlogn)Θ(n2)

nn

हम गैर-नियतात्मक एल्गोरिदम की परवाह क्यों करते हैं? समस्याओं की एक श्रेणी है, जिसे एनपी के रूप में जाना जाता है, जिसमें निर्णय की समस्याएं होती हैं जिनमें कुशल गैर-नियतात्मक एल्गोरिदम होते हैं। अधिकांश लोग सोचते हैं कि उस वर्ग की सबसे कठिन समस्याएं, तथाकथित एनपी-पूर्ण समस्याएं, कुशल नियतात्मक (या यहां तक ​​कि यादृच्छिक) एल्गोरिदम नहीं हैं; इसे P बनाम NP प्रश्न के रूप में जाना जाता है। चूंकि कई प्राकृतिक समस्याएं एनपी-पूर्ण हैं, इसलिए यह जानना दिलचस्प है कि क्या वास्तव में वे कुशलता से हल करने योग्य नहीं हैं, सबसे खराब स्थिति में (व्यवहार में, अक्सर होने वाले उदाहरणों को उचित समय में हल करने योग्य हैं)।


धन्यवाद! (1) मुझे याद है कि एनपी की समस्याएं वे हैं जिन्हें पोलियोनामोमिक समय में एक नॉनडेटर्मिनिस्टिक ट्यूरिंग मशीन पर एल्गोरिदम द्वारा हल किया जा सकता है। तो "एक एल्गोरिथ्म एक nondeterministic ट्यूरिंग मशीन पर" और "एक नियतात्मक ट्यूरिंग मशीन पर एक nondeterministic एल्गोरिथ्म" कुछ अर्थ में बराबर हैं? (२) क्या आपको लगता है कि प्रोबैलिस्टिक एल्गोरिथम और रैंडमाइज्ड एल्गोरिथम एक ही अवधारणा हैं? (३) क्या आपको भी लगता है कि विकिपीडिया कहता है कि समवर्ती एल्गोरिथ्म और प्रोबालालिस्टिक एल्गोरिथ्म दो प्रकार के हैं नॉनडेटर्मिनिस्टिक एल्गोरिदम गलत हैं?
टिम

1
मुझे नहीं लगता कि nondeterminism का प्रमाणपत्र स्वाद यादृच्छिकता के साथ अंतर को स्पष्ट करने का काम करता है।
राफेल

(१) हाँ, दोनों एक ही हैं। (२) ये एक ही अवधारणा के दो नाम हैं। (३) विकिपीडिया अन्य प्रकार के एल्गोरिदम के कुछ उदाहरण दे रहा है, हालांकि प्रस्तुति भ्रामक हो सकती है। समानांतर और संभाव्य एल्गोरिदम गैर-नियतात्मक नहीं हैं।
युवल फिल्मस

4
@ShelbyMooreIII गैर-निर्धारणवाद का पुनरावर्तन सिद्धांत और सैद्धांतिक कंप्यूटर विज्ञान में एक बहुत ही विशिष्ट तकनीकी अर्थ है।
युवल फिल्मस

1
युवल, कृपया टिप्पणी करें कि आपको लगता है कि रचनात्मक या अप्रचलित नहीं हैं; हम उन्हें निकाल देंगे।
राफेल

15

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

नॉनडेटर्मिनिज्म का अर्थ है कि एल्गोरिथ्म का कुछ हिस्सा अनिर्दिष्ट है। उदाहरण के लिए, "int i = 0 और n के बीच एक सम संख्या" अंडरस्क्राइब है। इसका मतलब यह है कि इस बिंदु पर निर्दिष्ट कोई अनूठा व्यवहार नहीं है।

उपयोगी होने के लिए इस अंतर के लिए, आपको (निर्धारक) एल्गोरिदम के लिए 'शुद्धता' की सामान्य (सामान्य) अवधारणा की आवश्यकता है, जो अनौपचारिक रूप से यह है कि "एल्गोरिथ्म हमेशा गणना करता है कि मैं क्या चाहता हूं कि यह गणना करें"। इसके बाद यह सोचना दिलचस्प हो जाता है कि nondeterministic एल्गोरिथम का क्या मतलब होगा, जिसे बिना सोचे समझे निर्देशों में संभव विकल्पों को ध्यान में रखना चाहिए।

नॉनडेर्मिनिज़्म के लिए शुद्धता को परिभाषित करने के दो तरीके हैं। पहला एक बल्कि सरल और कम दिलचस्प है, जिसके लिए शुद्धता का अर्थ है "एल्गोरिथ्म हमेशा गणना करता है कि मैं क्या चाहता हूं कि यह गणना करें, सभी विकल्पों के अनुक्रमों के लिए जिन्हें मुझे बनाने की अनुमति है"। यह कभी-कभी तब होता है जब एक नंबर का कोई लेखक एक नंबर लेने के लिए बहुत आलसी होता है और कहता है कि "किसी भी समान संख्या को 0 और n के बीच चुनें", जब "पिक 0" ने एल्गोरिदम को निर्धारक बना दिया होता। अनिवार्य रूप से, सभी पसंद के परिणाम के आधार पर सभी nondeterminism को बदलकर आप एल्गोरिथ्म को निर्धारक बना सकते हैं।

यह आपके दूसरे पैराग्राफ में उल्लिखित 'नॉनडेटर्मिनिज़म' भी है। समानांतर एल्गोरिदम में यह नोंडेटर्मिनिज्म भी है: इन एल्गोरिदम में आप बिल्कुल निश्चित नहीं हैं कि निष्पादन ठीक क्या दिखता है, लेकिन आप जानते हैं कि यह हमेशा काम करेगा, कोई फर्क नहीं पड़ता कि वास्तव में क्या होता है (अन्यथा आपका समानांतर एल्गोरिदम गलत होगा)।

नॉनडेर्मिनिस्टिक एल्गोरिथ्म के लिए शुद्धता की दिलचस्प परिभाषा है "एल्गोरिथ्म हमेशा गणना करता है कि मैं क्या चाहता हूं कि मैं इसे गणना करूं, कुछ अनुक्रमों के लिए जिन्हें मुझे बनाने की अनुमति है"। इसका मतलब है कि ऐसे विकल्प हो सकते हैं जो गलत हैं, इस अर्थ में कि वे एल्गोरिथ्म को गलत उत्तर देते हैं या यहां तक ​​कि एक अनंत लूप में जाते हैं। उदाहरण में "0 और n के बीच किसी भी सम संख्या को चुनें", शायद 4 और 16 सही विकल्प हैं, लेकिन अन्य सभी संख्याएं गलत हैं, और ये संख्या इनपुट, आंशिक परिणाम और अब तक किए गए विकल्पों के आधार पर भिन्न हो सकती हैं।

जब कंप्यूटर विज्ञान में उपयोग किया जाता है, तो आमतौर पर nondeterministism केवल 0 या 1. चुनने के लिए nondeterministically तक सीमित होता है। हालाँकि, यदि आप ऐसे कई बिट्स nondeterministically चुनते हैं, तो आप लंबे समय तक nondeterministic या अन्य ऑब्जेक्ट उत्पन्न कर सकते हैं, साथ ही nondeterministic विकल्प भी बना सकते हैं, इसलिए यह शायद ही ऐसा हो। (यदि कभी) इसकी प्रयोज्यता को सीमित करता है - यदि प्रयोज्यता सीमित है, तो पहले स्थान पर नॉनडेटर्मिनिज़्म बहुत शक्तिशाली था।

Nondeterminism एक ऐसा उपकरण है जो सर्टिफिकेट-आधारित निर्धारक एल्गोरिथम के रूप में बिल्कुल शक्तिशाली है, अर्थात्, एक एल्गोरिथ्म जो किसी संपत्ति को दिए गए उदाहरण और उस संपत्ति के लिए एक प्रमाण पत्र की जांच करता है। आप बस एक दिशा के लिए प्रमाणिक रूप से अनुमान लगा सकते हैं, और आप एक प्रमाण पत्र दे सकते हैं जिसमें अन्य दिशाओं के लिए आपके कार्यक्रम के 0 और 1 के सभी अनुमानों के 'सही' उत्तर हों।

अगर हम रनिंग टाइम को मिक्स में फेंक देते हैं, तो चीजें और भी दिलचस्प हो जाती हैं। एक nondeterministic एल्गोरिथ्म के चलने का समय आमतौर पर सभी (दाएं) विकल्पों पर न्यूनतम होता है। हालांकि, अन्य विकल्प नाटकीय रूप से बदतर चल रहे समय का कारण बन सकते हैं (जो कि न्यूनतम रूप से विषम रूप से बदतर या मनमाने ढंग से भी बदतर हो सकता है), या यहां तक ​​कि एक अनंत लूप भी हो सकता है। यही कारण है कि हम न्यूनतम लेते हैं: हम इन अजीब मामलों की परवाह नहीं करते हैं।

अब हम रैंडमाइज्ड एल्गोरिदम प्राप्त करते हैं। रैंडमाइज्ड अल्गोरिद्म नोंडेटेर्मिनिस्टिक अल्गोरिथम की तरह होते हैं, लेकिन कुछ बिंदुओं पर 0 और 1 के बीच की पसंद को 'अनुमति' देने के बजाय, यह पसंद रैंडम कॉइन टॉस द्वारा निर्धारित की जाती है कि चुनाव करना है (जो कि रन के लिए अलग हो सकता है) , या जब एल्गोरिथम के निष्पादन के दौरान उसी विकल्प को बाद में फिर से बनाया जाना हो)। इसका मतलब यह है कि परिणाम समान संभावना के साथ 0 या 1 है। सुधार अब या तो हो जाता है "एल्गोरिथ्म लगभग हमेशा गणना करता है कि मैं इसे क्या गणना करना चाहता हूं" या "एल्गोरिथ्म हमेशा गणना करता है कि मैं क्या चाहता हूं कि यह गणना करें" (सिर्फ नियतात्मक संस्करण)। दूसरे मामले में जिस समय एल्गोरिथ्म को अपने उत्तर की गणना करने की आवश्यकता होती है, वह आमतौर पर 'लगभग हमेशा तेज' होता है, एक निर्धारक 'सरल' के विपरीत।

PZPPNP


1
O(|s|)s

14

संक्षेप में: गैर-नियतात्मकता का अर्थ है कि एक संगणना को जारी रखने के लिए एकाधिक, समान रूप से मान्य विकल्प। रैंडमाइजेशन का मतलब कम्प्यूटेशन गाइड करने के लिए (रैंडम) बिट्स के बाहरी स्रोत का उपयोग करना है।


नोंदेर्तिस्म को समझने के लिए, मेरा सुझाव है कि आप परिमित ऑटोमेटा (एफए) को देखें। एक के लिए नियतात्मक एफए (DFA), संक्रमण समारोह, अच्छी तरह से एक समारोह है,। वर्तमान स्थिति और अगले इनपुट प्रतीक को देखते हुए, अगले राज्य को विशिष्ट रूप से परिभाषित किया गया है।

(ab)(ac)

NFA
[ स्रोत ]

a(ab)(ac)a

यहाँ मुख्य बिंदु यह है कि स्वीकृति को एनएफए के लिए "स्वीकार करें कि क्या कोई स्वीकार रन है" के रूप में परिभाषित किया गया है । इस अस्तित्व मानदंड की व्याख्या "हमेशा सही अनुमान लगाने" के रूप में की जा सकती है, भले ही कोई वास्तविक अनुमान न हो।

ध्यान दें कि कहीं भी, यहां कोई संभावना नहीं है। यदि आप प्रोग्रामिंग भाषाओं में नॉनडेटर्मिनिज़्म का अनुवाद करने के लिए थे, तो आपके पास ऐसे स्टेटमेंट होंगे जो एक ही राज्य को दिए गए अलग-अलग स्टेटमेंट्स को जम्प कर सकते हैं । ऐसी बात मौजूद नहीं है, सिवाय शायद गूढ़ प्रोग्रामिंग भाषाओं में जिसे आपके दिमाग को छोड़ दिया गया हो।


रैंडमाइजेशन काफी अलग है। यदि हम इसे तोड़ते हैं, तो ऑटोमेटन / प्रोग्राम में निरंतर निष्पादन के लिए कई विकल्प नहीं हैं। एक बार यादृच्छिक बिट (ड्रा) हो जाने पर, अगला कथन विशिष्ट रूप से परिभाषित किया जाता है:

if ( rand() > 5 )
  do_stuff();
else
  do_other_stuff();

परिमित ऑटोमेटा के संदर्भ में, इस पर विचार करें:

पीएफए
[ स्रोत ]

{a,b,c}10

Σ×ΠΠ


एक अंतिम नोट: हम देख सकते हैं कि नॉनडेटर्मिनिज़्म एक विशुद्ध रूप से सैद्धांतिक अवधारणा है, इसे लागू नहीं किया जा सकता है! तो हम इसका उपयोग क्यों करते हैं?

  1. यह अक्सर छोटे अभ्यावेदन के लिए अनुमति देता है। आप जान सकते हैं कि एनएफए ऐसे हैं जिनके लिए सबसे छोटा डीएफए बड़े रूप में घातीय है। छोटे का उपयोग करना केवल ऑटोमेटन डिजाइन और तकनीकी प्रमाण को सरल बनाने की बात है।

  2. यदि लक्ष्य मॉडल में नॉनडेटर्मिनिज़्म की अनुमति दी जाती है तो मॉडल के बीच अनुवाद अक्सर अधिक सीधे-आगे होता है। उदाहरण के लिए, नियमित अभिव्यक्तियों को डीएफए में परिवर्तित करना: सामान्य (और सरल) तरीका यह है कि इसे एनएफए में अनुवाद करें और इसे निर्धारित करें। मुझे प्रत्यक्ष निर्माण की जानकारी नहीं है।

  3. यह एक अकादमिक चिंता हो सकती है, लेकिन यह दिलचस्प है कि nondeterminism एक उपकरण की शक्ति को बढ़ा सकता है। यह परिमित ऑटोमेटा और ट्यूरिंग मशीनों के लिए मामला नहीं है, यकीनन सबसे लोकप्रिय मशीन मॉडल डिवाइस हैं, लेकिन उदाहरण के लिए निर्धारक पुशडाउन-ऑटोमेटा, बुची ऑटोमेटा और टॉप-डाउन ट्री ऑटोमेटा अपने गैर-निर्धारक भाई-बहनों की तुलना में कड़ाई से कम भाषाओं को स्वीकार कर सकते हैं।


  1. उदाहरण के लिए cstheory.SE पर इस प्रश्न को देखें ।
  2. देखें यहाँ , यहाँ और यहाँ (प्रस्ताव 1.6.2) क्रमश:।

इसलिए, प्रोग्रामिंग के बाद से, हम एक ही स्थिति में कई "यदि और" नहीं बना सकते हैं, तो क्या इसीलिए प्रायिकता / वजन को कभी-कभी स्थिति में शामिल किया जाता है?
केट

@ पता नहीं मुझे इससे क्या मतलब है। प्रोग्रामिंग भाषाओं - बिल्ली, कंप्यूटर! - स्वाभाविक रूप से निर्धारक होते हैं। हम PRNGs का उपयोग करके यादृच्छिकता का भ्रम पैदा कर सकते हैं और यादृच्छिक (जो भी इसका मतलब है) इनपुट का उपयोग कर सकते हैं।
राफेल

14

आपको इस बात की जानकारी होनी चाहिए कि नोंडेटरमिनिज़्म की दो अलग-अलग परिभाषाएँ यहाँ-वहाँ फेंकी जा रही हैं।

  1. जैसा कि विकिपीडिया इसे परिभाषित करता है, बहुत अधिक "नियतत्ववाद नहीं", अर्थात्, कोई भी एल्गोरिथ्म जिसमें हमेशा समान इनपुट पर समान व्यवहार नहीं होता है। रैंडमाइज्ड एल्गोरिदम "नियतांकवादी नहीं" एल्गोरिदम का एक विशेष मामला है, क्योंकि वे परिभाषा को फिट करते हैं जैसा कि मैंने अभी दिया।

  2. कम्प्यूटेशन के नॉनडेटर्मिनिस्टिक मॉडल (जैसे नॉनडेटर्मिनिस्टिक ट्यूरिंग मशीन) कम्प्यूटेशन के सैद्धांतिक मॉडल हैं। उनके पास निष्पादन के कई संभावित रास्ते हो सकते हैं और यदि कोई उन रास्तों को स्वीकार करता है तो वे "स्वीकार" करते हैं। आपको ध्यान देना चाहिए कि वे वास्तविक नहीं हैं। इस अर्थ में एक एल्गोरिथ्म को शारीरिक रूप से चलाने का कोई तरीका नहीं है, हालांकि आप इसे यादृच्छिक या निर्धारक के साथ अनुकरण कर सकते हैं।

सीएस में, nondeterminism का अर्थ आमतौर पर (2) होता है, इसलिए विकिपीडिया की परिभाषा जो आपने दी (जो (1) है) भ्रामक है। अब तक दिए गए अधिकांश उत्तर (2), नहीं (1) बताते हैं।


1) के अनुसार, यादृच्छिक क्विकॉर्ट्स एक नियतात्मक एल्गोरिथ्म है; मुझे यकीन नहीं है कि यह उपयोगी शब्दावली है। मुझे लगता है कि 1) को "ब्लैक-बॉक्स" दृश्य के रूप में वर्णित किया जा सकता है जबकि 2) वास्तव में हाथ में एल्गोरिदम / मशीन का निरीक्षण करता है। यकीनन, सीएस सभी के बारे में 2); मैं 1 () मॉड्यूलर सॉफ्टवेयर इंजीनियरिंग के लिए दृष्टिकोण) असाइन करेंगे।
राफेल

@ राफेल, अच्छी बात है, मुझे (1) यह कहना चाहिए कि "समान इनपुट पर समान व्यवहार है"। (2) ओवर (1) को प्राथमिकता देने के बारे में सहमत।
usul

"व्यवहार" अस्पष्ट है, बिल्कुल काले रंग में बनाम सफेद बॉक्स में। :)
राफेल

ज़रूर, लेकिन, मुझे लगता है कि मैं एक औपचारिक, ठीक-ठीक परिभाषित nondeterministic ट्यूरिंग मशीन (2) और अस्पष्ट / अस्पष्ट "नहीं नियतत्ववाद" (1) के बीच महत्वपूर्ण अंतर देखता हूं, जिसमें यादृच्छिकता शामिल हो सकती है (जबकि एक NTM नहीं)। तो बस इतना ही मैं कहना चाहता था ....
usul

एक nondeterministic एल्गोरिथ्म चलाने के बारे में कुछ भी 'असत्य' नहीं है, इसका मतलब यह है कि दौड़ते समय, विकल्पों को बनाने की आवश्यकता होती है, जिसके लिए एल्गोरिदम द्वारा परिणाम निर्धारित नहीं किया जाता है। 1 और 2 के बीच एकमात्र अंतर यह है कि 1 में आपने यह नहीं कहा है कि एल्गोरिथ्म को "सफल" माना जाता है, जबकि 2 में एल्गोरिथ्म उस प्रकार का होना चाहिए जो हमेशा "हां" या "नहीं" कहता है। एक रन और आपके पास निर्णय की समस्या है और आप समस्या के एल्गोरिथ्म के उत्तर को "हां" के रूप में परिभाषित करते हैं, यदि और केवल यदि इसके किसी संभावित रन का जवाब "हां" में है। तो 2 सिर्फ 1 का एक विशेष मामला है
reinierpost

1

कुछ संबंधित शोध जो मैं कर रहा हूं, उसके कारण इस पर फिर से गौर करते हुए, मेरे और कुछ अन्य लोगों के बीच जो असहमति थी, उसका उत्तर एक समग्र समझ में दिया जा सकता है जिसमें हम सभी सही थे। लेकिन आईएमओ द्वारा अपनाया गया कंप्यूटर विज्ञान शब्दावली "बाउंडेड नॉनटर्मिनिज़्म" एक गलत ऑक्सीमोरोन है (जो कि पहले मेरे शरीर में था)।

वे मुख्य बिंदु है बंधे हुए और असंबद्ध nondeterminism के बीच अंतर करना। [१]

नॉनडेर्मिनिस्टिक ट्यूरिंग मशीन (उर्फ "एनटीएम") ने नोंडेटर्मिनिज़्म को बाध्य किया है कि प्रत्येक राज्य संक्रमण में संभावनाओं की एक सीमित संख्या होती है, अर्थात कार्यक्रमों की संख्या (उर्फ "कॉन्फ़िगरेशन") परिमित होती है। टेप निर्बाध रहता है, इसलिए समाप्ति का प्रमाण अनिर्दिष्ट रहता है। लेकिन किसी भी दिए गए इनपुट के लिए जो रुकता है, आउटपुट नियतात्मक होता है और समयो में बँधा होता है अर्थात किसी भी इनपुट के लिए परिणाम निर्धारक होता है या समाप्त नहीं होता है। इसके अलावा NTM समानांतर में सभी संभावित विन्यासों को निष्पादित करते हैं, इसलिए वे नियतात्मक ट्यूरिंग मशीनों (NT "DTMs") पर NTMs के अनुकरण की तुलना में तेजी से निष्पादित होते हैं। [२]

NTMs में इनपुट और परिणामों के बीच वास्तव में कोई भी संबंध नहीं है क्योंकि परिणाम हमेशा किसी भी इनपुट या प्रारंभिक स्थिति के लिए समान होता है, जो स्पष्ट है क्योंकि वे DTMs द्वारा बिना किसी यादृच्छिकता के अनुकरण किए जा सकते हैं। [2] अनिर्वचनीय निर्धारक का विरोधी नहीं है, क्योंकि रुकना भी एक नियतात्मक परिणाम नहीं है। नियतात्मक मशीनों में हमेशा दिए गए इनपुट के लिए समान परिणाम होते हैं, तब भी जब उस परिणाम को रोकना नहीं है। NTM के स्थानीयकृत नॉनडेटर्मिनिज़म निष्पादन एल्गोरिथ्म के प्रत्येक राज्य संक्रमण में है। यह अनिर्णायक है कि पेड़ का कौन सा मार्ग उत्पादन की स्थिति प्रदान कर सकता है। लेकिन अविवेक निंदनीयता नहीं है। इस प्रकार "बंधे हुए नॉनडेटर्मिनिज़्म" शब्द का उद्देश्य राज्य मशीन के भीतर स्थानीयकृत अनिश्चितता का वर्णन करना है, लेकिन परिणाम के इनपुटों का संबंध नहीं है, इसलिए "बंधे" की अवधारणा। मुझे अभी भी लगता है कि शब्द "बंधे हुए नॉनडेटर्मिनिज़म" एक ऑक्सीमोरोन है और इसे "समानांतर राज्य संक्रमण" ट्यूरिंग मशीन के रूप में अधिक सटीक रूप से वर्णित किया जा सकता है।

जबकि, किसी भी दिए गए इनपुट या प्रारंभिक स्थिति के लिए, अनबॉन्डेड नॉनडेटर्मिनिज़्म (उर्फ "अनिश्चिततावाद") में संभावित राज्यों की संख्या नहीं है। अनबंडेड नॉनडेटर्मिनिज़म में न केवल कार्यक्रमों के संभावित कॉन्फ़िगरेशन की संख्या शामिल है, बल्कि कुछ अनबाउंड बाहरी राज्य जो इनपुट या प्रारंभिक स्थिति का हिस्सा नहीं है, जैसे कि अनबाउंड विलंब। और इस प्रकार परिणाम एक ही इनपुट या प्रारंभिक स्थिति के लिए बार-बार निष्पादित होने पर भिन्न हो सकते हैं; इस प्रकार आदानों और परिणामों के बीच एक निर्धारक संबंध नहीं है। [३]

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

[१] https://en.wikipedia.org/w/index.php?title=Unbounded_nondeterminism&oldid=710628370#Nondeterministic_automata

[२] https://en.wikipedia.org/w/index.php?title=Non-deterministic_Turing_machine&oldid=754212081#Equivalence_with_DitMs

[३] हेविट, मीजेर और स्ज़ेपर्सकी: द एक्टर मॉडल (वह सब कुछ जो आप जानना चाहते थे ...) । 17:44 मिनट के निशान पर कूदें।


1
मैं यह नहीं देखता कि यह प्रश्न का उत्तर कैसे देता है।
एड्रियनएन

1
@adrianN जवाब इस बात की व्याख्या करता है कि वास्तव में नोंदेर्मेरिनवाद क्या है। और फिर बताते हैं कि कैसे यादृच्छिक एल्गोरिदम संबंधित हैं। सवाल दोनों से संबंधित है। बिंगो। प्रश्न उत्तर दिया।
शेल्बी मूर तृतीय

0

सभी उत्तरों के अलावा जो अंतर की व्याख्या करते हैं, मेरे पास एक उदाहरण है जो आपको वह बात कहने में मदद कर सकता है जो वे कहना चाहते हैं।
एक सिक्का टॉस पर विचार करें, आप या तो एक एच या एक टी प्राप्त करते हैं । यदि सिक्का टॉस यादृच्छिक है, तो यह अत्यधिक संभावना है कि 1000 सिक्कों में से 500, एच होगा और यह काफी संभावना नहीं है कि उनमें से 999 एच होंगे । लेकिन अगर सिक्का टॉस गैर-नियतात्मक है, तो हम यह नहीं कह सकते कि 999 एच प्राप्त करना अत्यधिक संभावना नहीं है।


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

-6

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

सबसेटिंग जटिलता एक सेट से दूसरे सेट में समस्याओं को कम करने के बारे में है। इस प्रकार आरपी algorith एनपी यादृच्छिक एल्गोरिदम की संभावना को बाहर नहीं करता है जो गैर-नियतात्मक भी हैं क्योंकि आमतौर पर एक सुपरसेट में सबसेट होता है। सबसेट का अर्थ है प्रत्येक आरपी एल्गोरिथ्म (या कोई आरपी-पूर्ण एल्गोरिथ्म) को कुछ एनपी एल्गोरिथ्म (या किसी एनपी-पूर्ण एल्गोरिथ्म) में कम किया जा सकता है। P, RP का एक उपसमूह है क्योंकि P की प्रत्येक समस्या को RP में एक समस्या को कम किया जा सकता है जहां अनियंत्रित एंट्रोपी की मात्रा 0 है।

तात्कालिक रूप से, यह अनुरूप है कि कैसे नेकां में हर समस्या (समानांतर गणना) पी में एक सीरियल समस्या में कमी में समानांतर गणना का अनुकरण करके पी में एक समस्या को कम किया जा सकता है, लेकिन यह अभी तक साबित नहीं हुआ है कि काफिला सच है, अर्थात P में प्रत्येक समस्या NC में किसी समस्या के लिए reducible है, और न ही सत्य सिद्ध नहीं है, अर्थात यह अनुमान लगाया जा सकता है कि P- पूर्ण समस्या NC में किसी समस्या के लिए reducible नहीं है। यह संभव हो सकता है कि ऐसी समस्याएं हैं जो स्वाभाविक रूप से धारावाहिक हैं और समानांतर में गणना नहीं की जा सकती हैं, लेकिन यह साबित करने के लिए कि पी impl एनसी अनुमानित है (कारणों के लिए इस जवाब में चर्चा करने के लिए बहुत ही स्पर्शरेखा)।

अधिक आम तौर पर (अर्थात बूलियन परिणाम प्रकारों तक सीमित नहीं), यादृच्छिक एल्गोरिदम को नियतात्मक एल्गोरिदम से अलग किया जाता है जिसमें कुछ एन्ट्रापी बाह्य रूप से खट्टे होते हैं । रैंडमाइज्ड एल्गोरिदम को गैर-नियतात्मक एल्गोरिदम से अलग किया जाता है क्योंकि एन्ट्रापी बाध्य है , और इस तरह यादृच्छिक (और गैर-नियतात्मक नहीं) एल्गोरिदम हमेशा समाप्त करने के लिए सिद्ध हो सकते हैं।

नॉनडेर्मिनिस्टिक एल्गोरिदम की अप्रत्याशितता इनपुट एन्ट्रापी के सभी संभावित क्रमों की गणना करने में असमर्थता के कारण है (जिसके परिणामस्वरूप समाप्ति की अप्रत्याशितता है)। एक यादृच्छिक एल्गोरिथ्म की अप्रत्याशितता नियंत्रण में असमर्थता के कारण हैसभी इनपुट एन्ट्रॉपी (जिसके परिणामस्वरूप अनिश्चित परिणाम की अप्रत्याशितता होती है, हालांकि अप्रत्याशितता की दर का अनुमान लगाया जा सकता है)। समस्या के सही उत्तर की अप्रत्याशितता के बारे में न तो ये कथन हैं, बल्कि क्रमशः समाप्ति और अनिश्चित परिणाम के साइड-चैनल में अप्रत्याशितता प्रकट होती है। ऐसा लगता है कि कई पाठक सही परिणाम के अप्रत्याशित होने के साथ एक क्षेत्र में अप्रत्याशितता का सामना कर रहे हैं, जो कि एक उलझन है जो मैंने कभी नहीं लिखा (संपादित इतिहास की समीक्षा करें)।

यह समझना महत्वपूर्ण है कि गैर-निर्धारकवाद हमेशा (किसी भी विज्ञान या शब्द के उपयोग में) सार्वभौमिक (अर्थात अबाधित) एन्ट्रॉपी को एन्यूमरेट करने में असमर्थता है। जबकि, रैंडमाइजेशन से तात्पर्य एन्ट्रापी के एक अन्य स्रोत तक पहुँचना है (इन्ट्रोपी कार्यक्रमों के अलावा और इस प्रकार इनपुट चर के नियंत्रण में नहीं है) जो अनबाउंड हो सकता है या नहीं।

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

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

यादृच्छिक और नॉनडेटर्मिनिस्टिक के बीच एकमात्र मुख्य अंतर के बारे में मेरी बात को स्पष्ट करने के लिए कुछ बेहतरीन टिप्पणियां जोड़ना।

भेद देखना वास्तव में बहुत ही सुरुचिपूर्ण और आसान है, एक बार जब आप सभी इसे सल्यूट एन्ट्रॉपी पॉइंट-ऑफ-व्यू के बजाय एक ऑपरेशनल पॉइंट-ऑफ़-व्यू से वर्णन करने का प्रयास करके इसे बंद कर देते हैं।

@reinierpost हर कोई यादृच्छिक और nondeterministic के बीच अंतर को स्वीकार कर रहा है। इससे आपकी टिप्पणी मद्धम हो जाती है। एल्गोरिथ्म इनपुट (चर) एन्ट्रापी और इसके स्रोत कोड (इनवेरिएंट) आंतरिक एन्ट्रॉपी की बातचीत का जवाब देता है। नॉनडेटर्मिनिज्म अबाधित एन्ट्रॉपी है। अपरिवर्तनीय एन्ट्रॉपी को आंतरिक रूप से अनबाउंड भी किया जा सकता है जैसे ent के अंकों का विस्तार । रैंडमाइज्ड कुछ एन्ट्रापी है जो इनपुट के रूप में परिभाषित नहीं है (यानी यह सिस्टम कॉल से आ सकता है /dev/random, या यादृच्छिक यादृच्छिकता जैसे NFA या PRNG) हो सकता है।

@ गैर-नियतात्मक परिमित ऑटोमे (एनएफए) की औपचारिक परिभाषा परिमित इनपुट एनट्रॉपी (डेटा: 5-ट्यूपल) है। इस प्रकार प्रत्येक एनएफए एक नियतात्मक ट्यूरिंग मशीन पर चल सकता है, अर्थात इसके लिए एक nondeterministic ट्यूरिंग-पूर्ण मशीन की आवश्यकता नहीं होती है। इस प्रकार NFAs nondeterministic समस्याओं के वर्ग में नहीं हैं। एनएफए में "नॉनडेर्मिनिज़्म" की धारणा यह है कि इसका निर्धारणवाद (जबकि स्पष्ट रूप से हर एनएफए को डीएफए में परिवर्तित किया जा सकता है) स्पष्ट रूप से विस्तारित नहीं है - कम्प्यूटेशन के नॉनडेटर्मिनिज़्म के समान नहीं

@ राफेल ने एनएफए में "गैर-नियतत्ववाद" का दावा किया है वास्तव में यादृच्छिकता और यादृच्छिकता के बीच अंतर की मेरी परिभाषा की भावना है। मेरी परिभाषा यह है कि यादृच्छिकता वह है जहां कुछ एन्ट्रापी कार्यक्रम या फ़ंक्शन के इनपुट के ज्ञान, (या एनएफए के मामले में वांछित गैर-स्पष्ट विस्तार) के नियंत्रण में नहीं है। जबकि, किसी भी मामले में एन्ट्रापी को जानने में असमर्थता का सही अर्थ है, क्योंकि यह अबाधित है। यह ठीक वही है जो नॉनडेटर्मिनिज़्म से यादृच्छिक रूप से प्रतिष्ठित है। इसलिए एनएफए पूर्व का उदाहरण होना चाहिए, न कि बाद का जैसा आपने दावा किया है।

@ राफेल जैसा कि मैंने पहले ही समझाया, एनएफए में गैर-नियतिवाद की धारणा परिमित एन्ट्रापी के साथ गैर-नियतात्मक जोड़ी है। इस प्रकार गैर-नियतात्मकता संपीड़न या सुविधा के रूप में नियतात्मकता का विस्तार नहीं करने की एक स्थानीय अवधारणा है, इस प्रकार हम यह नहीं कहते हैं कि एनएफए गैर-नियतात्मक हैं, बल्कि वे नियतात्मक विस्तार की गणना करने के लिए एक अलौकिक अनिच्छा के लिए यादृच्छिकता की उपस्थिति रखते हैं। लेकिन यह सब एक मृगतृष्णा है क्योंकि इसमें कॉल का विस्तार किया जाना नियत रूप से bcz होता है ताकि एन्ट्रॉपी अनबाउंड न हो अर्थात परिमित न हो।

शब्दकोश उपकरण हैं। उनका उपयोग करना सीखो।

यादृच्छिक विशेषण

सांख्यिकी। या चयन की एक प्रक्रिया की विशेषता जिसमें किसी सेट के प्रत्येक आइटम को चुने जाने की समान संभावना होती है।

किसी सेट या किसी ऐसे तत्व के तत्व से संबंधित होना या होना, जिनके तत्वों में घटना होने की समान संभावना है

इस प्रकार रैंडमाइजेशन के लिए केवल यह आवश्यक है कि इनपुट एन्ट्रापी में से कुछ ट्रांसफॉर्मेबल हो, जो इस प्रकार मेरी परिभाषा के अनुरूप है कि कुछ इनपुट एन्ट्रापी को फंक्शन के कॉलर द्वारा नियंत्रित नहीं किया जाता है। ध्यान दें कि रेंडमाइजेशन के लिए जरूरी नहीं है कि इनपुट एन्ट्रापी टर्मिनेशन के लिए अयोग्य हो।

कंप्यूटर विज्ञान में, एक नियतात्मक एल्गोरिथ्म एक एल्गोरिथ्म है, जो एक विशेष इनपुट दिया जाता है, हमेशा एक ही आउटपुट का उत्पादन करेगा, अंतर्निहित मशीन हमेशा राज्यों के समान अनुक्रम से गुजरती है।

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

नियतात्मक एल्गोरिदम को एक राज्य मशीन के संदर्भ में परिभाषित किया जा सकता है: एक राज्य का वर्णन करता है कि एक मशीन समय में एक विशेष पल में क्या कर रही है। राज्य मशीनें एक राज्य से दूसरे राज्य में असतत तरीके से गुजरती हैं। हमारे द्वारा इनपुट दर्ज करने के ठीक बाद, मशीन अपने प्रारंभिक अवस्था या प्रारंभ स्थिति में है। यदि मशीन नियतात्मक है, तो इसका मतलब है कि इस बिंदु से, इसकी वर्तमान स्थिति यह निर्धारित करती है कि इसकी अगली स्थिति क्या होगी; राज्यों के सेट के माध्यम से इसका पाठ्यक्रम पूर्व निर्धारित है। ध्यान दें कि एक मशीन नियतात्मक हो सकती है और फिर भी कभी भी बंद या समाप्त नहीं हो सकती है, और इसलिए परिणाम देने में विफल रहती है।

तो यह हमें बता रहा है कि नियतात्मक एल्गोरिदम को फ़ंक्शन की इनपुट स्थिति द्वारा पूरी तरह से निर्धारित किया जाना चाहिए, अर्थात हमें यह साबित करने में सक्षम होना चाहिए कि फ़ंक्शन समाप्त हो जाएगा (या समाप्त नहीं होगा) और यह अनिर्दिष्ट नहीं हो सकता है। विकिपीडिया द्वारा परिभाषित के रूप में विकिपीडिया के उपद्रव का वर्णन करने की विकिपीडिया की घिनौनी कोशिश के बावजूद, विकिपीडिया द्वारा उपर्युक्त के रूप में नियतात्मकता का एकमात्र विरोधाभास एल्गोरिदम है, जिसका इनपुट राज्य (एन्ट्रॉपी) अ-परिभाषित है। और इनपुट स्टेट को केवल एक ही तरह से अ-परिभाषित किया जा सकता है, जब वह अनबाउंड होता है (इस प्रकार नियतांक रूप से प्रचारित नहीं किया जा सकता है)। यह ठीक वही है जो एक nondeterministic ट्यूरिंग मशीन (और कई वास्तविक दुनिया के कार्यक्रमों को अलग करता है जो सामान्य ट्यूरिंग पूर्ण भाषाओं जैसे सी, जावा, जावास्क्रिप्ट, एमएल, आदि में) नियतात्मक TM और प्रोग्रामिंग भाषाओं जैसे HTML, स्प्रेडशीट फ़ार्मुलों से लिखे गए हैं। कोक, एपिग्राम,

कम्प्यूटेशनल जटिलता सिद्धांत में, nondeterministic एल्गोरिदम वे हैं जो हर संभव कदम पर, कई निरंतरता के लिए अनुमति दे सकते हैं (कल्पना करें कि एक आदमी एक जंगल में एक रास्ते पर चल रहा है और, हर बार जब वह आगे कदम बढ़ाता है, तो उसे वह सड़क चुननी चाहिए जिसमें वह चाहता है लेना)। ये एल्गोरिदम हर संभव कम्प्यूटेशनल पथ के लिए एक समाधान पर नहीं पहुंचते हैं; हालाँकि, उन्हें कुछ रास्ते के लिए एक सही समाधान पर पहुंचने की गारंटी दी जाती है (अर्थात, जंगल से गुजरने वाले व्यक्ति को केवल अपना केबिन मिल सकता है यदि वह "सही" रास्तों के कुछ संयोजन को चुनता है)। खोज प्रक्रिया में अनुमानों के रूप में विकल्पों की व्याख्या की जा सकती है।

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

स्पष्ट रूप से निर्धारकता निर्धारित करने की क्षमता के बारे में है। स्पष्ट रूप से यादृच्छिककरण एन्ट्रापी के कुछ को परिवर्तनीय बनाने के बारे में है।

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

ओर्थोगोनल अवधारणाओं को समझना कम बुद्धि वाले लोगों को होता है। मुझे इस समुदाय से बेहतर की उम्मीद है!


4
कंप्यूटर विज्ञान में नोंडेटेर्मिनिज़म का मतलब यह नहीं है। Nondeterministic एल्गोरिदम "अप्रत्याशित" नहीं हैं।
डेविड रिचेर्बी

4
मेरा उत्तर है कि ऑटोमेटा सम्मान में गैर-नियतत्ववाद को कैसे परिभाषित किया गया है, इसके साथ कुछ भी नहीं है। संगणना सिद्धांत। शेल्बी, आपको इधर-उधर घूमना बंद कर देना चाहिए और एक पाठ्यपुस्तक प्राप्त करनी चाहिए। यदि आप अन्य उत्तरों को नहीं समझते हैं, तो मुझे नहीं लगता कि हम आपकी टिप्पणी में मदद कर सकते हैं।
राफेल

3
@ShelbyMooreIII आपने पूरी तरह से गलत समझा है कि कंप्यूटर विज्ञान में nondeterminism का क्या मतलब है। एन्ट्रापी से इसका कोई लेना-देना नहीं है। इसका मतलब यह नहीं है कि आप क्या सोचते हैं इसका मतलब है: यही कारण है कि आपको लगता है कि अन्य सभी उत्तर गलत हैं। शायद नाम बुरी तरह से चुना गया था, लेकिन वह इस बिंदु के बगल में है। कंप्यूटर विज्ञान में इसका एक विशेष अर्थ है, जो अन्य विज्ञानों में इसके अर्थ से अलग है। आप गलत परिभाषा का उपयोग करने की कोशिश कर रहे हैं, और यही कारण है कि सब कुछ आपको पूरी तरह से गलत लगता है।
डेविड रिचेर्बी

4
"कम्प्यूटेशनल जटिलता सिद्धांत [...] के बारे में बात करते समय नोंडेटर्मिनिज़्म शब्द का उपयोग स्पष्ट रूप से एन्ट्रॉपी के बारे में है" - नहीं, यह नहीं है।
राफेल

3
हम उस पर सहमत हो सकते हैं: कृपया हमें "सिखाने" की कोशिश करना बंद करें, यह किसी की मदद नहीं कर रहा है।
राफेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.