यदि नहीं, तो क्या इसका मतलब यह है जब कुछ राज्य के लिए और कुछ प्रतीक एक , δ ( क्ष , एक ) मौजूद नहीं है?
यदि नहीं, तो क्या इसका मतलब यह है जब कुछ राज्य के लिए और कुछ प्रतीक एक , δ ( क्ष , एक ) मौजूद नहीं है?
जवाबों:
आप एक विवादास्पद मुद्दे पर लड़खड़ा गए हैं। जाहिर है कि कंप्यूटर वैज्ञानिक बहस करना पसंद करते हैं। मैं निश्चित रूप से बहस करना पसंद करता हूं, इसलिए यहां जाता है!
मेरा उत्तर एक असमान है: नहीं। एक नियत परिमित ऑटोमेटा को हर प्रतीक के लिए हर राज्य से एक संक्रमण की आवश्यकता नहीं है। अर्थ जब मौजूद नहीं है बस उस DFA इनपुट स्ट्रिंग को स्वीकार नहीं करता है।
आप DFA की एक परिभाषा है कि उस की आवश्यकता है बना सकते हैं मौजूद है, यह बस मामला नहीं है कि एक लापता संक्रमण किसी भी तरह से (जो भी आप इसे बुलाते हैं) जिसके परिणामस्वरूप संरचना बनाता nondeterministic रूप टिप्पणीकर्ताओं के कई हैं यह दावा करते हुए। यदि आप ऑटोमेटा सिद्धांत पर एक पाठ्यक्रम ले रहे हैं, तो अगला विषय संदर्भ-मुक्त भाषा और पुश-डाउन ऑटोमेटा होगा जहां नॉन्डेटर्मिनिस्टिक और निर्धारक ऑटोमेटा के बीच का अंतर crtical है, और आपको गैर-नियतात्मकता की सही परिभाषा का उपयोग करने की आवश्यकता है।
गैर-नियतत्ववाद एक से अधिक कानूनी संक्रमण के साथ जुड़ा हुआ है ।
मुझे लगता है कि हम सभी निम्नलिखित विकिपीडिया परिभाषा से सहमत हैं (जो मैं सिर्फ एक सेकंड में दिखाऊंगा थोड़ा अस्पष्ट है):
Automaton एक नियतात्मक परिमित 5 टपल, (है , , , , ,) से मिलकर
चलो होना वर्णमाला के ऊपर एक स्ट्रिंग । ऑटोमेटन स्ट्रिंग स्वीकार करता है यदि राज्यों का एक क्रम, , निम्न स्थितियों के साथ में मौजूद है :
अस्पष्टता, और विवाद संक्रमण समारोह के defintion, खत्म हो गया है (संख्या "3" में पहली बुलेट की गई सूची।) हम सभी सहमत हैं कि क्या एक NFA से एक DFA अलग करता है कि एक समारोह के बजाय एक है संबंध । लेकिन है एक आंशिक समारोह या एक कुल समारोह ?
DFA की परिभाषा सिर्फ ठीक काम करता है अगर एक आंशिक कार्य है। एक इनपुट स्ट्रिंग को देखते हुए, यदि आप एक राज्य तक पहुंचने एक इनपुट प्रतीक के साथ जहां कोई अगले राज्य तो ऑटोमेटा बस को स्वीकार नहीं करता है।
इसके अलावा जब आप पुश-डाउन ऑटोमेटा की परिभाषा बनाने के लिए इस परिभाषा का विस्तार करते हैं, तो यह मामला होगा कि आपको यह अंतर करना होगा कि संक्रमण कार्यों के साथ पुश-डाउन ऑटोमेटा जो आंशिक कार्य हैं उन्हें नियतात्मक के रूप में वर्गीकृत किया गया है, नॉनडेटर्मिनिस्टिक नहीं।
यदि आंशिक फ़ंक्शन आपको परेशान करता है तो यहां एक तुच्छ परिवर्तन है जो कुल फ़ंक्शन को बनाता है। (यह परिवर्तन सबसेट निर्माण एल्गोरिथ्म की तरह नहीं है, यह अधिकांश O (1) राज्यों में जोड़ता है, मूल संख्या में राज्यों में रैखिक है, और PDAs के साथ काम करने के लिए बढ़ाया जा सकता है। उन तथ्यों में से कोई भी उप-निर्माण एल्गोरिथ्म का सच नहीं है। ।)
टिप्पणी करने वाले @Alex स्मार्ट ने न तो संदर्भ देने के लिए सही आलोचना की, न ही यह समझाने के लिए कि हमें क्यों परवाह करनी चाहिए। तो यहाँ जाता है:
हम निर्धारक बनाम गैर-नियतावाद की सटीक परिभाषा के बारे में परवाह करते हैं, यह है कि गैर-नियतात्मक ऑटोमेटा के कुछ वर्ग अपने नियतात्मक चचेरे भाई की तुलना में अधिक शक्तिशाली हैं, और गैर-नियतात्मक ऑटोमेटा के कुछ वर्ग उनके नियतात्मक चचेरे भाई से अधिक शक्तिशाली नहीं हैं । परिमित ऑटोमेटा और ट्यूरिंग मशीनों के लिए नियतात्मक और गैर-नियतात्मक संस्करण समान शक्ति के हैं। पुशडाउन ऑटोमेटा के लिए ऐसी भाषाएं हैं जहां भेद महत्वपूर्ण है: एनपीडीए हैं जो भाषा को स्वीकार करते हैं, और कोई भी डीपीडीए भाषा को स्वीकार नहीं करता है। लीनियर बाउंड ऑटोमेटा के लिए सवाल है (या पिछली बार जब मैंने जाँच की थी) खुला है। DPDA से अधिक NPDA की शक्ति की वृद्धि की इजाजत दी से आता है कई संक्रमण, कुल फ़ंक्शन से एक आंशिक फ़ंक्शन में संक्रमण फ़ंक्शन को चालू करने से नहीं।
संकलक समुदाय की पुस्तकें:
अहो और उलेमान, कंपाइलर डिज़ाइन के सिद्धांत , 1977: पहले एनएफए (पृष्ठ 88) को एक संक्रमण संबंध के साथ परिभाषित करता है, फिर (पृष्ठ 90-91):
अहो, सेठी, और उलेमान, कंपाइलर, सिद्धांत, टेक्निक्स और उपकरण , 1988 पुनर्मुद्रण, समान है, यह पहले एनएफए को एक संक्रमण संबंध के साथ परिभाषित करता है, फिर (पृष्ठ 115-116):
(ध्यान दें कि टिप्पणियों में @ एलेक्स स्मार्ट कहते हैं, "ड्रैगन विशेष रूप से उल्लेख करता है कि फ़ंक्शन कुल है।" मुझे लगता है कि वह सह-लेखक लैम के साथ बाद के संस्करण के बारे में बात कर रहा है, जिसकी फिलहाल मेरी पहुंच नहीं है। )
एपल, आधुनिक संकलक कार्यान्वयन जावा , 1988 (पृष्ठ 22) में:
एक में नियतात्मक परिमित automaton (DFA), एक ही राज्य से छोड़ने के कोई दो किनारों एक ही प्रतीक के साथ लेबल रहे हैं।
इसके बाद अपेल यह समझाता है कि जब सबसे लंबे मैचों को पहचानने के लिए डीएफए का उपयोग करते हैं तो हम स्पष्ट रूप से लापता बदलावों का उपयोग करने का निर्णय लेते हैं कि कब रोकना है (पृष्ठ 23):
जब एक मृत अवस्था (बिना आउटपुट संक्रमण वाला एक नॉनफ़ाइनल राज्य) तक पहुँच जाता है, तो चर [जो अब तक का सबसे लंबा मैच रिकॉर्ड करता है] बताता है कि टोकन का मिलान किससे किया गया था, और यह कहाँ समाप्त हुआ।
स्विचिंग-सिद्धांत समुदाय से पुस्तकें:
कोहावी, स्विचिंग और परिमित ऑटोमेटा सिद्धांत, 2 / ई , 1978, पी। 611 कहते हैं:
क्योंकि एक राज्य आरेख एक नियतात्मक मशीन का वर्णन करता है, अगला राज्य संक्रमण वर्तमान स्थिति और वर्तमान में स्कैन किए गए इनपुट प्रतीक द्वारा विशिष्ट रूप से निर्धारित किया जाना चाहिए ।
मैं आमतौर पर "बिल्कुल एक" का अर्थ करने के लिए विशिष्ट रूप से व्याख्या करता हूं , न कि "एक से अधिक"। (यानी, कोहावी कहती हैं कि दृढ़ संकल्प को कुल कार्य की आवश्यकता होती है)
सिद्धांत-गणना समुदाय से पुस्तकें:
एनएफए से पहले डीएफए को परिभाषित करने के लिए यहां अधिक आम लगता है, और डीएफए के लिए कुल संक्रमण फ़ंक्शन की आवश्यकता होती है, लेकिन फिर डीपीडीए से पहले एनपीडीए को परिभाषित करते हैं, और "नियतिवाद" को परिभाषित करते हैं कि संक्रमण संबंध का प्रतिबंध नहीं-से-अधिक होने से है। प्रत्येक राज्य / प्रतीक जोड़ी के लिए प्रवेश।
यह होपक्रॉफ्ट और उलेमन, 1979, लुईस और पापादिमित्रिउ, 1981, और विशेष रूप से सिपसर, 2006 का सच है, जो सटीक औपचारिक परिभाषाओं को पेश करने के लिए डीएफए की परिभाषा का उपयोग करता है, और उनके महत्व को स्पष्ट रूप से समझाता है (p.36):
दिलचस्प रूप से राबिन और स्कॉट, कुल फ़ंक्शन के संदर्भ में गैर-नियतात्मक परिमित ऑटोमेटा को भी परिभाषित करते हैं! पृष्ठ १२०, परिभाषा ९:
अर्थात: संक्रमण फ़ंक्शन कुल होने के कारण सिस्टम को नियतात्मक नहीं बनाता है!
Sipser 2006 Rabin और Scott का अनुसरण करता है और राज्यों / प्रतीकों से राज्यों के शक्ति सेट के लिए कुल-निर्धारणवादी परिमित ऑटोमेटा, गैर-नियतात्मक पीडीए और गैर-नियतात्मक ट्यूरिंग मशीनों की अपनी परिभाषा के लिए कुल संक्रमण फ़ंक्शन का उपयोग करता है, लेकिन निर्धारक के विषय को छोड़ देता है पीडीए।
हॉपक्राफ्ट और उलेमन, 1979, और लुईस और पापादिमित्रिउ, 1981 दोनों नियतात्मक पीडीए की अपनी परिभाषाओं में आंशिक कार्यों का उपयोग करते हैं। वे पहले एनपीडीए को एक संक्रमण संबंध के साथ परिभाषित करते हैं, और फिर जब उन्हें पीडीएएस मिलता है, तो लुईस और पापादिमित्रि कहते हैं (पृष्ठ 135)।
एक पुशडाउन ऑटोमेटन नियतात्मक , सहज रूप से बोलने वाला होता है, अगर प्रत्येक कॉन्फ़िगरेशन पर लागू एक संक्रमण हो।
जबकि हॉपक्रॉफ्ट और उलेमन कहते हैं (पृष्ठ 112):
पीडीए ... इस अर्थ में निर्धारक है कि किसी भी आईडी से अधिकतम एक चाल संभव है।
कम्प्यूटेबिलिटी के संदर्भ में, एनएफए डीएफए के बराबर हैं - एक एनएफए से डीएफए में बदलने के लिए एक एल्गोरिथ्म है, और एक डीएफए केवल तुच्छ रूप से एक एनएफए है जो किसी भी nondeterminism का उपयोग नहीं करता है, इसलिए दोनों नियमित भाषाओं के सेट को परिभाषित करते हैं।
की तर्ज पर डीएफए की परिभाषाएँ हैं
उस स्थिति में, आपको सभी परिवर्तनों की आवश्यकता नहीं है। यदि ऑटोमेटन के पास अगले इनपुट प्रतीक को बदलने वाला कोई संक्रमण नहीं है, तो यह अस्वीकार कर देता है।
यह दिखाने के लिए एक अच्छी कवायद है कि दोनों परिभाषाएं समान हैं, जिसके अनुसार भाषाओं को स्वीकार किया जा सकता है।
डीएफए की परिभाषा में, हर राज्य को पाउंड में सभी वर्णमाला होनी चाहिए। एक उदाहरण के लिए यदि £ = {a, b, c} और Q = {q0, q1, q2}, इन सभी अवस्थाओं में सभी a, b, c प्रतीक होने चाहिए जो अन्य राज्य या उसी अवस्था में संक्रमण करते हैं।