गैर-निर्धारणवाद एक उपयोगी अवधारणा क्यों है?


23

एक ऑटोमेटन एक डिजिटल कंप्यूटर का एक सार मॉडल है। डिजिटल कंप्यूटर पूरी तरह से नियतात्मक हैं; किसी भी समय उनका राज्य इनपुट और प्रारंभिक स्थिति से विशिष्ट रूप से अनुमानित है।

जब हम वास्तविक प्रणालियों को मॉडल करने की कोशिश कर रहे हैं, तो ऑटोमेटा सिद्धांत में नॉनडेटर्मिनिज़म क्यों शामिल है?


1
यह संभवतः यह पूछने में मदद करेगा कि मूल रूप से एनटीएम का वर्णन किसने किया था और उस समय उनका उद्देश्य / लक्ष्य क्या था।
usul

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

जब आप मल्टीथ्रेडिंग के बारे में बात करते हैं, तो यकीनन, आपके पास गैर-नियतात्मकता है, कम से कम यदि आप मशीन बनाने के लिए धातु और ओएस पर विचार करते हैं। क्या अजीब बात यह है कि कोड में ही है है नियतात्मक।
राफेल


@keshlam मैंने अपने उत्तर में अपनी बात जोड़ी, @ तन्मय ने मेरे उत्तर को अद्यतन किया।
बृजेश चौहान

जवाबों:


16

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

(01)*01(0 + 1)*  

अब मान लीजिए, यदि आपको आरईए से ऊपर की भाषा के लिए डीएफए आकर्षित करने के लिए कहा जाता है।

एफए को डिजाइन करने के अपने ज्ञान के साथ, मुझे पता है कि (1) जब *नियमित अभिव्यक्ति में एक वर्तमान ने संकेत दिया कि मुझे एफए (2) में समान लूप की आवश्यकता है जैसे a.bकि ऑपरेशन का मतलब कुछ इस तरह है :।(q0)─a→(q1)─b→(q2)

इसलिए, मेरे मुट्ठी के प्रयास में मैं एक NFA आकर्षित करूंगा:

अंजीर

यह एक नियतात्मक समाधान नहीं है, लेकिन बहुत सरल एफए लगता है जिसे आसानी से दिए गए नियमित अभिव्यक्ति का उपयोग करके बनाया जा सकता है। उपरोक्त नियमित अभिव्यक्ति और मेरे एनएफए के बीच समानता दिखाने के लिए मेरी तरह की समानता नीचे दी गई है:

  1. राज्य क्ष 0 पर लूप के लिए होना चाहिए(01)*
  2. 01(के बाद (01)*) देता है(q0)─0→(q1)─1→(q2)
  3. (0 + 1)*लेबल 0, 1 के लिए राज्य q 2 पर एक सेल्फ लूप देता है

मेरे सादृश्य के अनुसार मुझे लगता है कि एफए I ऊपर दिया गया तुलनात्मक रूप से आरई से आकर्षित करने के लिए सरल है। और सौभाग्य से परिमित ऑटोमेटा के वर्ग में प्रत्येक गैर-नियतात्मक मॉडल को एक समतुल्य नियतात्मक में परिवर्तित किया जा सकता है। एनएफए को डीएफए में बदलने के लिए हमारे पास एल्गोरिथम विधि है । इसलिए मैं आसानी से एनएफए से ऊपर डीएफए में परिवर्तित कर सकता हूं:

रेखा चित्र नम्बर 2

अन्य भाग दुर्भाग्य से यह एक गैर-नियतात्मक मॉडल को नियतात्मक एक में परिवर्तित करना हमेशा संभव नहीं होता है, उदाहरण के लिए निर्धारक पुश डाउन ऑटोमैटिक के लिए वर्ग निर्धारक पुश-डाउन स्वचालित "चेक वेन आरेख " के वर्ग का सबसेट है और आप हमेशा परिवर्तित नहीं कर सकते एक पीडीए में एक एनपीडीए।

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

कभी-कभी गैर-नियतत्ववाद कुछ जटिल समस्या / समाधान का सटीक और प्रभावी ढंग से वर्णन करने के लिए एक प्रभावी तंत्र है, उदाहरण के लिए गैर-नियतात्मक मशीनें खोज और बैक-बैक एल्गोरिथ्म के मॉडल के रूप में काम कर सकती हैं (पढ़ें: बैक-ट्रैक में गैर-नियतात्मक मॉडल में स्ट्रिंग प्रक्रिया कैसे होती है )। विपरीत रूप से नियतात्मक मॉडल बेहतर, कम से कम और निरर्थक समाधानों का प्रतिनिधित्व करते हैं।

यहाँ मैं Nondeterministic एल्गोरिथ्म के विकिपीडिया उपयोग से उद्धृत करना चाहूंगा :

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

कंप्यूटिंग सिद्धांत, पी बनाम एनपी में सबसे प्रसिद्ध अनसुलझे प्रश्न सहित, बड़ी संख्या में समस्याओं की अवधारणा nondeterministic एल्गोरिदम के माध्यम से की जा सकती है।

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

मैं आपको निम्नलिखित लिंक पढ़ने का सुझाव भी दूंगा:
1. गैर-नियतात्मकता और यादृच्छिकता के बीच अंतर क्या है?
2. 9.2.2 nondeterministic बनाम संभाव्य मॉडल: (क)। Nondeterministic: मुझे नहीं पता कि प्रकृति क्या करेगी। (ख)। संभाव्य: मैं प्रकृति का अवलोकन कर रहा हूं और आंकड़े जुटा रहा हूं।
3. Nondeterministic प्रोग्रामिंग


@ विशाल: इतने बड़े विस्तार के लिए बहुत धन्यवाद। केवल एक भ्रम: "विपरीत रूप से निर्धारक मॉडल बेहतर कुशल, कम से कम और निरर्थक समाधानों का प्रतिनिधित्व करते हैं।" - लेकिन मुझे लगता है कि निर्धारक मॉडल neteterministic one की तुलना में कम कुशल हैं (यही वजह है कि NP की समस्याएं। P.
Is’t

@tan वास्तव में "कुशल" शब्द का उपयोग करना गलत है, और हाँ, आप सही हैं कि गैर-नियतात्मक मॉडल दृढ़ संकल्प वाले की तुलना में अधिक सक्षम हैं। निर्धारक मॉडल द्वारा कवर की जाने वाली समस्याओं का वर्ग गैर-निर्धारक मॉडल का सबसेट है।
बृजेश चौहान

तो किस संदर्भ में नियतात्मक मॉडल नॉनडेर्मिनिस्टिक एक की तुलना में "कुशल" हैं (जैसा आपने उल्लेख किया है)?
तन्मय

@ मान लीजिए कि यदि आप आगे ऑपरेशन करना चाहते हैं (जैसे कि एफए को आरई में बदलना चाहते हैं, या लेम्मा पंप करने के लिए प्रमाण की व्याख्या करना चाहते हैं, या कुछ अन्य ..) तो निर्धारक मॉडल आपको बेहतर परिणाम देता है (इसलिए मैंने कुशल कहा था)।
बृजेश चौहान

@tan क्या आप अस्पष्ट व्याकरण को समझते हैं?
ग्रजेश चौहान

9

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

और जबकि nondeterministic प्रोग्रामिंग भाषाएं मुख्यधारा नहीं हैं, उनके पास एक शानदार इतिहास है, शायद Dijkstra की GCL के साथ शुरू । जैसे-जैसे मशीनें अधिक से अधिक कोर (स्वतंत्र प्रोसेसर) बनाती हैं, नोंडेटर्मिनिज़्म का कुछ रूप सभी प्रोग्रामिंग में रिस रहा है।


मुझे लगता है कि आपके उत्तर का पहला भाग तथ्यात्मक रूप से गलत है। आपको क्या लगता है कि ऑटोमेटा पहले क्यों उठी? टीएफए को परिभाषित टीएम के बाद डीएफए और एनएफए दोनों को 10+ साल परिभाषित किया गया था। Cstheory पर
Artem Kaznatcheev

@ArtemKaznatcheev, ट्यूरिंग मशीन मॉडल एक ऑटोमेटन है, और यह निश्चित रूप से कम से कम एक दशक से कंप्यूटरों का पूर्वानुमान लगाता है।
वॉनब्रांड

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

4
@ArtemKaznatcheev, DFA / NFA, PDA, LBA, TM सभी ऑटोमेटा हैं। जैसा कि ट्रांसड्यूसर (आउटपुट के साथ एफए, आउटपुट के साथ पीडीए) हैं।
वॉनब्रांड

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

7

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

Nondeterminism संगणना जटिलता के लिए भी महत्वपूर्ण है, जहाँ इसका उपयोग कक्षा NP को परिभाषित करने के लिए किया जाता है। (क्लास एनपी में गवाहों के उपयोग के लिए अन्य, समान परिभाषाएं भी हैं।)


आपके उत्तर को समझना लेकिन इसे ठीक से समझ नहीं सका। क्या आप इस तथ्य को विस्तार से बता सकते हैं कि नॉनडेटर्मिनिज़्म का उपयोग करके आसानी से पावरसेट निर्माण कैसे किया जा सकता है?
तन्मय

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

@ राफेल एनपी-पूर्णता गैर-नियतत्ववाद पर आपके रुख की परवाह किए बिना एक महत्वपूर्ण अवधारणा है।
युवल फिल्मस

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

4

आप सही ढंग से बताते हैं कि ऑटोमेटा मॉडल हैं, इसलिए गैर-नियतात्मकता के उपयोग के दो भाग हो सकते हैं:

  1. मॉडलिंग वास्तविक समस्याओं में उपयोग करें।

    इसके अलावा, गैर-नियतात्मक ऑटोमेटा भाषाओं के अधिक कॉम्पैक्ट प्रतिनिधित्व प्रदान कर सकता है। उदाहरण के लिए, यह सर्वविदित है कि NFA हैं जिनके न्यूनतम समकक्ष DFA घातीय रूप से बड़े हैं।

  2. सिद्धांत में उपयोग करें।

    गैर-निर्धारकवाद का उपयोग साक्ष्यों को सरल बना सकता है, उदाहरण के लिए नियमित अभिव्यक्तियों को परिमित ऑटोमेटा में परिवर्तित करना।


4

(यह कुछ अन्य जवाबों की रिवीडिंग है लेकिन मैं इसे फिर भी पोस्ट करूंगा :)

आप लिखते हैं: एक ऑटोमेटन एक डिजिटल कंप्यूटर का एक सार मॉडल है।

मैं असहमत हूं! ऑटोमेटा मॉडल कि हम मनुष्य कैसे कम्प्यूटेशन निर्दिष्ट करते हैं, न केवल यह कि कंप्यूटर इसे कैसे निष्पादित करते हैं। Nondeterminism बिल्कुल अंतर है। हमारी विशिष्टताओं को अक्सर गैर-सरकारी माना जाता है।

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

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

Nondeterministic विशिष्टताओं के साथ काम करने के विचार को Dijkstra की प्रोग्रामिंग की विधि द्वारा औपचारिक रूप दिया गया था, जो उन विशिष्टताओं द्वारा शुरू होता है जो केवल पूर्व और बाद के कार्यक्रम से मिलते हैं, और व्यवस्थित रूप से उनसे एक नियतात्मक, अनिवार्य कार्यक्रम विकसित करते हैं। दीजकस्ट्रा ने शायद कहा होगा: सॉर्टिंग समस्या है, पूर्व और बाद के संबंधों के बीच संबंध जो हम स्थापित करने की कोशिश कर रहे हैं; मर्ज़ सॉर्टऐसा करने के लिए एक दृष्टिकोण है, समस्या विनिर्देशन और एक नियतात्मक समाधान के बीच कहीं आधा; एक विशेष, नियतात्मक मर्ज छँटाई एल्गोरिथ्म एक ठोस नियतात्मक समाधान है। लेकिन समान सामान्य दृष्टिकोण का उपयोग समवर्ती कार्यक्रमों को विकसित करने के लिए किया जा सकता है, जिसमें अंतिम कार्यक्रम अभी भी nondeterministic है। इस तरह के कार्यक्रमों को वितरित कंप्यूटिंग वातावरण में चलाया जा सकता है।


2

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


प्रसंग-मुक्त बनाम निर्धारक प्रसंग-मुक्त?
आल्टो

@alto इसके बारे में क्या?
बबौ

@ बब्बू मैं यह बताने की कोशिश कर रहा था कि "नॉडटर्मिनिज़्म नियतत्ववाद से अधिक शक्तिशाली नहीं है," एक गलत बयान है। एनपीडीए पीडीए से अधिक शक्तिशाली हैं।
ऑल्टो

1
@alto: नहीं, आप बयान को गलत समझ रहे हैं। एक संगणनात्मक दृष्टिकोण से, वे पूरी तरह से समतुल्य हैं, क्योंकि समस्याओं का वर्ग (या यदि आप चाहें तो भाषाएं) जिन्हें आप हल कर सकते हैं कि कितने कम्प्यूटेशनल संसाधनों की आवश्यकता है, एक ही है। और वास्तव में, आप एक नियतात्मक के साथ एक nondeterministic मशीन का अनुकरण कर सकते हैं। फिर, समय और स्थान की आवश्यकता होती है कम्प्यूटेबिलिटी के संदर्भ में सामग्री नहीं।
मासिमो काफ़ारो

1
सिद्धांत में @MassimoCafaro अधिक सहमत नहीं हो सकता है। व्यवहार में ऐसा प्रतीत होता है कि मैं शब्दार्थ के बारे में जानना चाहता हूँ।
ऑल्टो

2

ट्यूरिंग मशीन का आविष्कार 1936 में ट्यूरिंग द्वारा किया गया था। एफएसएम जैसे मॉडल 1943 में न्यूरोलॉजिकल गतिविधि के लिए एक मॉडल के रूप में दो न्यूरोफिज़ियोलॉजिस्ट मैकुलोच और पिट्स द्वारा पेश किए गए थे । स्टैनफोर्ड सीएस इतिहास पृष्ठ से :

कैसे परिमित ऑटोमेटा कंप्यूटर विज्ञान की एक शाखा बन गया इसका रोमांचक इतिहास इसके विस्तृत अनुप्रयोगों को दर्शाता है। एक परिमित-राज्य मशीन की अवधारणा पर विचार करने वाले पहले लोगों में जीवविज्ञानियों, मनोवैज्ञानिकों, गणितज्ञों, इंजीनियरों और कुछ पहले कंप्यूटर वैज्ञानिकों की एक टीम शामिल थी। वे सभी एक साझा रुचि रखते थे: मानव विचार प्रक्रिया को मॉडल करने के लिए, चाहे वह मस्तिष्क में हो या कंप्यूटर में। वारेन मैककुलोच और वाल्टर पिट्स, दो न्यूरोफिज़ियोलॉजिस्ट, 1943 में परिमित ऑटोमेटा का विवरण प्रस्तुत करने वाले पहले थे। उनके पेपर, जिसका शीर्षक था, "ए लॉजिकल कैलकुलस इमैनेंट इन नर्वस एक्टिविटी", ने तंत्रिका नेटवर्क सिद्धांत, सिद्धांत के अध्ययन में महत्वपूर्ण योगदान दिया। ऑटोमेटा, अभिकलन और साइबरनेटिक्स का सिद्धांत। बाद में, दो कंप्यूटर वैज्ञानिक, जीएच मेइली और ईएफ मूर, 1955-56 में प्रकाशित अलग-अलग पत्रों में बहुत अधिक शक्तिशाली मशीनों के सिद्धांत को सामान्यीकृत किया। उनके काम की पहचान के लिए परिमित-राज्य मशीनों, मेयली मशीन और मूर मशीन का नाम दिया गया है।

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


3
अरे मैंने आपको प्रोफाइल देखा और ऐसा लग रहा है कि कोई व्यक्ति जानबूझकर आपके उत्तरों को कम कर रहा है (हर जगह जहां आपके पास बस दो डाउनवोट हैं) ... यह उत्तर गलत नहीं है , उत्तर उपयोगी जानकारी जोड़ता है। +1
ब्रिजेश चौहान

0

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

वास्तव में मुझे एक भ्रम था जो नोंडेटेर्मिनिस्टिक मॉडल के तंत्र के बारे में था। मैं हमेशा nondeterministic मशीन के बारे में सोचता था क्योंकि यह एक गैर-यांत्रिक मशीन है जो वास्तविक दुनिया में मौजूद नहीं है। मैंने हमेशा ऑटोमेटा की तुलना अपने अब के दिनों के कंप्यूटरों से की है जो पूरी तरह से प्रकृति में नियतात्मक है। आमतौर पर मैं नॉन्डेटेरिमोनिस्टिक मॉडल को ठीक से नहीं समझ रहा था। अब मुझे लगता है कि मैं नॉनडर्मिनिस्टिक मॉडल को अच्छी तरह से समझ रहा हूं: एक nondeterministic मशीन एक मशीन है जो हमेशा निष्पादन के उस रास्ते का पालन करती है जो स्ट्रिंग की स्वीकृति की ओर जाता है (बिना Backtracking)। लेकिन वास्तविक जीवन में यह कैसे संभव हो सकता है? : वर्तमान दिनों के कंप्यूटर के लिए भविष्य की भविष्यवाणी करने के लिए ऐसा बुद्धिमान होना बिल्कुल असंभव है। तो क्यों nondeterminism बिल्कुल? इस सवाल का जवाब काफी मुश्किल है। मैंने इस सवाल के बारे में क्या निष्कर्ष निकाला है: ऑटोमेटा थ्योरी का अस्तित्व तब था जब कंप्यूटर मौजूद नहीं थे (पहले थ्योरी फिर व्यावहारिक)। यह विशुद्ध रूप से सैद्धांतिक विषय है और nondeterminism की अवधारणा सहज रूप से सामने आई। 'ऑटोमेटा थ्योरी' विषय का मकसद व्यावहारिक कंप्यूटरों से निपटना नहीं था। लेकिन जब व्यावहारिक रूप से कंप्यूटर आता है तो ऑटोमेटा थ्योरी का उपयोग करते हुए हम व्यावहारिक कंप्यूटरों को सटीक रूप से परिभाषित करने में सक्षम होते हैं: वर्तमान कंप्यूटरों की सीमाएं क्या हैं। जो एल्गोरिथम समस्या कंप्यूटर के लिए बहुत जटिल हैं और इसलिए अव्यावहारिक हैं (यहां गैर-व्यवस्थावाद की भूमिका बहुत महत्वपूर्ण है जिसके द्वारा हम दो जटिलता वर्गों पी और एनपी को अलग कर सकता है)। इन अव्यवहारिक समस्याओं का समाधान क्या है जिसके द्वारा इसे अपेक्षाकृत तेजी से निष्पादित किया जा सकता है ।etc। यह nondeterminism की उपयोगिता है। यह विशुद्ध रूप से सैद्धांतिक विषय है और nondeterminism की अवधारणा सहज रूप से सामने आई। 'ऑटोमेटा थ्योरी' विषय का मकसद व्यावहारिक कंप्यूटरों से निपटना नहीं था। लेकिन जब व्यावहारिक रूप से कंप्यूटर आता है तो ऑटोमेटा थ्योरी का उपयोग करते हुए हम व्यावहारिक कंप्यूटरों को सटीक रूप से परिभाषित करने में सक्षम होते हैं: वर्तमान कंप्यूटरों की सीमाएं क्या हैं। जो एल्गोरिथम समस्या कंप्यूटर के लिए बहुत जटिल हैं और इसलिए अव्यावहारिक हैं (यहां गैर-व्यवस्थावाद की भूमिका बहुत महत्वपूर्ण है जिसके द्वारा हम दो जटिलता वर्गों पी और एनपी को अलग कर सकता है)। इन अव्यवहारिक समस्याओं का समाधान क्या है जिसके द्वारा इसे अपेक्षाकृत तेजी से निष्पादित किया जा सकता है ।etc। यह nondeterminism की उपयोगिता है। यह विशुद्ध रूप से सैद्धांतिक विषय है और nondeterminism की अवधारणा सहज रूप से सामने आई। 'ऑटोमेटा थ्योरी' विषय का मकसद व्यावहारिक कंप्यूटरों से निपटना नहीं था। लेकिन जब व्यावहारिक रूप से कंप्यूटर आता है तो ऑटोमेटा थ्योरी का उपयोग करते हुए हम व्यावहारिक कंप्यूटरों को सटीक रूप से परिभाषित करने में सक्षम होते हैं: वर्तमान कंप्यूटरों की सीमाएं क्या हैं। जो एल्गोरिथम समस्या कंप्यूटर के लिए बहुत जटिल हैं और इसलिए अव्यावहारिक हैं (यहां गैर-व्यवस्थावाद की भूमिका बहुत महत्वपूर्ण है जिसके द्वारा हम दो जटिलता वर्गों पी और एनपी को अलग कर सकता है)। इन अव्यवहारिक समस्याओं का समाधान क्या है जिसके द्वारा इसे अपेक्षाकृत तेजी से निष्पादित किया जा सकता है ।etc। यह nondeterminism की उपयोगिता है। लेकिन जब व्यावहारिक रूप से कंप्यूटर आता है तो ऑटोमेटा थ्योरी का उपयोग करते हुए हम व्यावहारिक कंप्यूटरों को सटीक रूप से परिभाषित करने में सक्षम होते हैं: वर्तमान कंप्यूटरों की सीमाएं क्या हैं। जो एल्गोरिथम समस्या कंप्यूटर के लिए बहुत जटिल हैं और इसलिए अव्यावहारिक हैं (यहां गैर-व्यवस्थावाद की भूमिका बहुत महत्वपूर्ण है जिसके द्वारा हम दो जटिलता वर्गों पी और एनपी को अलग कर सकता है)। इन अव्यवहारिक समस्याओं का समाधान क्या है जिसके द्वारा इसे अपेक्षाकृत तेजी से निष्पादित किया जा सकता है ।etc। यह nondeterminism की उपयोगिता है। लेकिन जब व्यावहारिक रूप से कंप्यूटर आता है तो ऑटोमेटा थ्योरी का उपयोग करते हुए हम व्यावहारिक कंप्यूटरों को सटीक रूप से परिभाषित करने में सक्षम होते हैं: वर्तमान कंप्यूटरों की सीमाएं क्या हैं। जो एल्गोरिथम समस्या कंप्यूटर के लिए बहुत जटिल हैं और इसलिए अव्यावहारिक हैं (यहां गैर-व्यवस्थावाद की भूमिका बहुत महत्वपूर्ण है जिसके द्वारा हम दो जटिलता वर्गों पी और एनपी को अलग कर सकता है)। इन अव्यवहारिक समस्याओं का समाधान क्या है जिसके द्वारा इसे अपेक्षाकृत तेजी से निष्पादित किया जा सकता है ।etc। यह nondeterminism की उपयोगिता है। इन अव्यवहारिक समस्याओं का समाधान क्या है जिसके द्वारा इसे अपेक्षाकृत तेजी से क्रियान्वित किया जा सकता है। यह nondeterminism की उपयोगिता है। इन अव्यवहारिक समस्याओं का समाधान क्या है जिसके द्वारा इसे अपेक्षाकृत तेजी से क्रियान्वित किया जा सकता है। यह nondeterminism की उपयोगिता है।

अगर कुछ गलत है तो कृपया मुझे सुधारें।


यह कहना गलत है कि एक nondeterministic मशीन एक मशीन है जो हमेशा निष्पादन के मार्ग का अनुसरण करती है जो स्ट्रिंग की स्वीकृति की ओर ले जाती है । यह ऐसा नहीं करता है! एक nondeterministic मशीन एक ऐसी मशीन है जिसका संचालन निष्पादन के दौरान किए जाने वाले कुछ निश्चित (= nondeterministic) विकल्पों की अनुमति देता है। ऐसी मशीनों के बारे में कुछ भी अवास्तविक नहीं है, उदाहरण के लिए वे पर्यावरण को उन विकल्पों को बनाने के लिए कह सकते हैं। इन मशीनों को फिर उन कार्यों पर लागू किया जाता है जिनके लिए यह माना जाता है कि कुछ विकल्प एक स्वीकार स्थिति उत्पन्न करेंगे।
रीयरियरपोस्ट

@reinierpost: तो आप कह रहे हैं कि गैर-नियतात्मक मशीन वास्तविक जीवन में मौजूद हैं।
tanmoy

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

@reinierpost: क्या कोई गैर-नियतात्मक कंप्यूटर मौजूद है? मेरा जवाब है नहीं। क्योंकि अगर यह मौजूद है, तो एनपी समस्याओं में बहुपद समय जटिलता होगी। है ना?
तन्मय

चाहे कंप्यूटर नियतात्मक हों या नोंडेटेर्मिनिस्टिक इस बात पर निर्भर करते हैं कि आप उन्हें कैसे देखते हैं। जब एक कंप्यूटर बंद हो जाता है और उपयोगकर्ता को कुछ करने के लिए इंतजार करता है, और इसकी अगली क्रियाएं उपयोगकर्ता द्वारा किए गए कार्यों पर निर्भर करती हैं, तो आप कह सकते हैं कि यह एक nondeterministic पसंद है। नहीं, इसका मतलब यह नहीं है कि पी = एनपी।
रीयरियरपोस्ट 22

0

गैर-नियतत्ववाद उपयोगी है क्योंकि यह आपको नियतत्ववाद को समझने में मदद करता है, लेकिन दूसरे तरीके से नहीं। आप कह सकते हैं गैर-निर्धारकवाद बड़ा विचार है। एक नियतात्मक ट्यूरिंग मशीन एक गैर-नियतात्मक एक का एक विशेष मामला है। - Nondeterminism हमें यह समझने में मदद कर सकता है कि, आज के प्लेटफार्मों पर, कुछ समस्याओं को कम करना मुश्किल है। कई कम्प्यूटेशनल समस्याएं हैं जो एक नियतात्मक कंप्यूटिंग प्लेटफॉर्म पर कोई कुशल समाधान नहीं है, लेकिन हम समझते हैं कि नॉनडेटर्मिनिस्टिक लोगों पर कुशल समाधान हो सकते हैं। ... राज्य, एन्कोडिंग, नॉनडेटर्मिनिज़्म वे सभी जुड़े हुए हैं http://people.cs.umass.edu/~rsnbrg/teach-eatcs.pdf

नियतात्मक ट्यूरिंग मशीन में, नियमों का समूह किसी भी स्थिति के लिए निष्पादित की जाने वाली अधिकांश एक कार्रवाई पर निर्धारित करता है। एक गैर-नियतात्मक ट्यूरिंग मशीन (एनटीएम), इसके विपरीत, नियमों का एक सेट हो सकता है जो किसी दिए गए स्थिति के लिए एक से अधिक कार्रवाई निर्धारित करता है। http://en.wikipedia.org/wiki/Non-deterministic_Turing_machine यदि आप एक ऐसे सॉफ़्टवेयर बॉक्स का निर्माण कर सकते हैं जो राज्य संक्रमणों को इतनी अच्छी तरह से प्रबंधित कर सकता है कि यह एक से अधिक क्रियाओं को संभाल सके तो आप निर्धारक मशीनों से परे प्रदर्शन प्राप्त कर सकते हैं।


मुझे यकीन नहीं है कि वास्तविकता के लिए कथित लिंक बिल्कुल मददगार हैं। यह बिल्कुल स्पष्ट है कि हम एक गैर-नियतात्मक मशीन का निर्माण नहीं कर सकते हैं (आज कम से कम) तो यह एक पूरी तरह से सैद्धांतिक निर्माण है।
राफेल

हम एक nondeterministic मशीन का निर्माण कर सकते हैं जिससे मशीन के लिए कुछ बाहरी द्वारा nondeterministic निर्णय किए जा सकें।
रिस्टोरियरपोस्ट

@ reinierpost, अधिक महत्वपूर्ण बात यह है कि हम गैर-नियतात्मक मशीनों को नियतात्मक के रूप में निर्मित कर सकते हैं, बिना घातीय ओवरहेड के। साविच की प्रमेय देखें। en.wikipedia.org/wiki/Savitch's_theorem
टॉम

@ राफेल, वास्तविक दुनिया के कुछ संदर्भ महत्वपूर्ण हैं। कैशिंग काम क्यों करता है? क्योंकि वास्तविक दुनिया में घटनाएं, जो अंततः सभी डेटा का स्रोत होती हैं, एक सामान्य वितरण का पालन करने के लिए होती हैं। टेम्पोरल इलाके देखें: durablescope.blogspot.co.at/2009/11/…
टॉम

@ reinierpost, और यह बाहरी कुछ है जो ट्यूरिंग को एक ओरेकल मशीन कहा जाता है। मुझे लगता है कि आप सोच सकते हैं कि क्या यह कैश से बाहर आ रहा है या एक मल्टी-टेप मशीन जैसा कुछ है या रैंडम एक्सेस मेमोरी में टैपिंग भी है।
टॉम

0

गैर-नियतत्ववाद उपयोगी अवधारणा क्यों है?

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

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


क्या आप एक विशिष्ट उदाहरण दे सकते हैं? मुझे यह देखना कठिन है कि आपके यहाँ "समरूपता" से क्या मतलब है।
राफेल

@ रिपेल कैसे (01) * 01 (0 + 1) * से (0 + 1) * 10 (10) * ऐसा उलटा इनपुट स्ट्रिंग को पहचानता है, और सभी को उलट-पलट कर गैर-नियतात्मक मशीन में इस समरूपता को लागू करता है तीर और स्वैपिंग शुरू और अंत राज्य? मुझे यकीन नहीं है कि क्या परिमित राज्य मशीनों के लिए काफी अधिक दिलचस्प उदाहरण हैं, लेकिन मैं इसके बजाय एक पीडीए के लिए एक दिलचस्प उदाहरण के साथ आने की कोशिश कर सकता हूं।
थॉमस क्लिम्पेल

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