हाँ, आप सही हैं कंप्यूटर नियतात्मक स्वचालित हैं। गैर-नियतात्मक मॉडल सैद्धांतिक उद्देश्य के लिए अधिक उपयोगी होते हैं, कभी-कभी नियतात्मक समाधान परिभाषा के अनुसार स्पष्ट नहीं होता है (या समस्या कथन) और इसलिए समाधान खोजने के लिए बहुत कम मुश्किल है। फिर एक दृष्टिकोण यह है कि पहले एक गैर-नियतात्मक मॉडल तैयार करें जो तुलनात्मक रूप से डिजाइन करना आसान हो और फिर इसे एक नियतात्मक में बदलने की कोशिश करें। नीचे, मैंने एक उदाहरण के साथ जो मेरा मतलब है उसे प्रदर्शित करने की कोशिश की है। नियमित अभिव्यक्ति पर विचार करें:
(01)*01(0 + 1)*
अब मान लीजिए, यदि आपको आरईए से ऊपर की भाषा के लिए डीएफए आकर्षित करने के लिए कहा जाता है।
एफए को डिजाइन करने के अपने ज्ञान के साथ, मुझे पता है कि (1) जब *
नियमित अभिव्यक्ति में एक वर्तमान ने संकेत दिया कि मुझे एफए (2) में समान लूप की आवश्यकता है जैसे a.b
कि ऑपरेशन का मतलब कुछ इस तरह है :।(q0)─a→(q1)─b→(q2)
इसलिए, मेरे मुट्ठी के प्रयास में मैं एक NFA आकर्षित करूंगा:
यह एक नियतात्मक समाधान नहीं है, लेकिन बहुत सरल एफए लगता है जिसे आसानी से दिए गए नियमित अभिव्यक्ति का उपयोग करके बनाया जा सकता है। उपरोक्त नियमित अभिव्यक्ति और मेरे एनएफए के बीच समानता दिखाने के लिए मेरी तरह की समानता नीचे दी गई है:
- राज्य क्ष 0 पर लूप के लिए होना चाहिए
(01)*
01
(के बाद (01)*
) देता है(q0)─0→(q1)─1→(q2)
(0 + 1)*
लेबल 0, 1 के लिए राज्य q 2 पर एक सेल्फ लूप देता है
मेरे सादृश्य के अनुसार मुझे लगता है कि एफए I ऊपर दिया गया तुलनात्मक रूप से आरई से आकर्षित करने के लिए सरल है। और सौभाग्य से परिमित ऑटोमेटा के वर्ग में प्रत्येक गैर-नियतात्मक मॉडल को एक समतुल्य नियतात्मक में परिवर्तित किया जा सकता है। एनएफए को डीएफए में बदलने के लिए हमारे पास एल्गोरिथम विधि है । इसलिए मैं आसानी से एनएफए से ऊपर डीएफए में परिवर्तित कर सकता हूं:
अन्य भाग दुर्भाग्य से यह एक गैर-नियतात्मक मॉडल को नियतात्मक एक में परिवर्तित करना हमेशा संभव नहीं होता है, उदाहरण के लिए निर्धारक पुश डाउन ऑटोमैटिक के लिए वर्ग निर्धारक पुश-डाउन स्वचालित "चेक वेन आरेख " के वर्ग का सबसेट है और आप हमेशा परिवर्तित नहीं कर सकते एक पीडीए में एक एनपीडीए।
आमतौर पर जब गैर-नियतात्मक समाधान को निर्धारक में बदलना संभव नहीं होता है, तो गैर-निर्धारक समाधान की सहायता से हम पूर्ण डोमेन के बजाय उप-डोमेन में नियतात्मक समाधान को परिभाषित करते हैं (या आंशिक डोमेन कहते हैं)। या हम कुछ अन्य तरीकों से समाधान को परिभाषित करते हैं (जैसे लालची दृष्टिकोण) कि-कोर्स आपको एक इष्टतम समाधान नहीं दे सकता है ।
कभी-कभी गैर-नियतत्ववाद कुछ जटिल समस्या / समाधान का सटीक और प्रभावी ढंग से वर्णन करने के लिए एक प्रभावी तंत्र है, उदाहरण के लिए गैर-नियतात्मक मशीनें खोज और बैक-बैक एल्गोरिथ्म के मॉडल के रूप में काम कर सकती हैं (पढ़ें: बैक-ट्रैक में गैर-नियतात्मक मॉडल में स्ट्रिंग प्रक्रिया कैसे होती है )। विपरीत रूप से नियतात्मक मॉडल बेहतर, कम से कम और निरर्थक समाधानों का प्रतिनिधित्व करते हैं।
यहाँ मैं Nondeterministic एल्गोरिथ्म के विकिपीडिया उपयोग से उद्धृत करना चाहूंगा :
एल्गोरिथ्म डिजाइन में, nondeterministic एल्गोरिदम का उपयोग अक्सर किया जाता है जब एल्गोरिथ्म द्वारा हल की गई समस्या स्वाभाविक रूप से एकाधिक परिणामों की अनुमति देती है (या जब कई पथों के साथ एक एकल परिणाम होता है जिसके द्वारा परिणाम की खोज की जा सकती है, प्रत्येक समान रूप से बेहतर)। महत्वपूर्ण रूप से, नॉनडेटर्मिनिस्टिक एल्गोरिदम का हर परिणाम मान्य होता है, इसके बावजूद कि एल्गोरिथ्म को चलाने के दौरान कौन से विकल्प मिलते हैं।
कंप्यूटिंग सिद्धांत, पी बनाम एनपी में सबसे प्रसिद्ध अनसुलझे प्रश्न सहित, बड़ी संख्या में समस्याओं की अवधारणा nondeterministic एल्गोरिदम के माध्यम से की जा सकती है।
जैसा कि @keshlam ने अपनी टिप्पणी में भी उल्लेख किया है : "नोंडेटर्मिनिज्म" व्यवहार में है जो किसी प्रक्रिया के परिणाम में किसी भी अप्रत्याशितता का उल्लेख करने के लिए उपयोग किया जाता है । एक उदाहरण के लिए, समवर्ती कार्यक्रम गैर-नियतात्मक व्यवहार प्रदर्शित करते हैं - एक ही इनपुट के साथ एक ही कार्यक्रम के दो निष्पादन अलग-अलग परिणाम उत्पन्न कर सकते हैं (यदि संगामिति नियंत्रण तंत्र लागू नहीं होते हैं)। इसके बारे में अधिक पढ़ें "गैर-नियतत्ववाद की उपयोगिता" में ।
मैं आपको निम्नलिखित लिंक पढ़ने का सुझाव भी दूंगा:
1. गैर-नियतात्मकता और यादृच्छिकता के बीच अंतर क्या है?
2. 9.2.2 nondeterministic बनाम संभाव्य मॉडल: (क)। Nondeterministic: मुझे नहीं पता कि प्रकृति क्या करेगी। (ख)। संभाव्य: मैं प्रकृति का अवलोकन कर रहा हूं और आंकड़े जुटा रहा हूं।
3. Nondeterministic प्रोग्रामिंग