गैर-निर्धारणवाद (पुश-डाउन ऑटोमेटा) क्यों आवश्यक है?


9

मैं जानना चाहूंगा कि संदर्भ-मुक्त भाषाओं की मान्यता के लिए केवल गैर-नियतात्मक पुश-डाउन ऑटोमेटा (डीपीए = एनपीडीए) काम क्यों नहीं करता है। नियतात्मक पुश-डाउन ऑटोमेटा (DPDA) ऐसी भाषाओं को क्यों नहीं पहचानता है?


10
एक भाषा को एक नियतात्मक पुशडाउन ऑटोमेटा द्वारा पहचाना जा सकता है यदि उस भाषा के लिए कुछ LR (1) व्याकरण मौजूद है। जैसे कि संदर्भ मुक्त भाषाएं हैं जिनमें कोई LR (1) व्याकरण नहीं है, जिसका वर्णन करना है, NPDA! = DPDA। जैसा कि इन परिणामों को बहुत अच्छी तरह से जाना जाता है और आमतौर पर संकलक पर एक कोर्स में इलाज किया जाएगा, मुझे यकीन नहीं है कि अगर यह आपके प्रश्न का उत्तर देता है: क्या आप शायद इस तथ्य के पीछे अंतर्ज्ञान की तलाश कर रहे हैं?
एलेक्स टेन ब्रिंक

यह वास्तव में कुछ हद तक प्रतिवादपूर्ण है, अन्य प्रमुख मॉडल हैं जहां नॉनडेटर्मिनिज़्म स्वीकृत भाषाओं पर कोई फर्क नहीं पड़ता है - एफएसएम और टीएम।
vnn

जवाबों:


25

मुझे यकीन नहीं है कि "क्यों" का स्वाद आपको पसंद है। नॉनडेटर्मिनिज़म की अनुमति देते समय शक्ति में वृद्धि का एक कारण निम्नलिखित उदाहरण में देखा जा सकता है:

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

एक नियतात्मक पीडीए को उस स्थिति को चुनना होगा जो किसी तरह से मध्य को मानता है जो केवल वर्तमान उपसर्ग पर निर्भर करता है। मान लीजियेAऐसा डीपीडीए है। किसी के लिएkN, चलो uk=ab2ka; चलोv0 खाली शब्द हो, और vk+1=vkukvk। यह पलिंड्रोम्स का एक क्रम है, प्रत्येक अगले का उपसर्ग है, ताकिA स्वीकार करने की स्थिति में होना चाहिए qk, स्टैक खाली के साथ, पढ़ने के बाद vk। कबूतर छेद सिद्धांत द्वारा, कुछ होना चाहिएk,l ऐसा है कि kl तथा qk=ql (राज्यों की एक सीमित संख्या है, और इसलिए कुछ का पुन: उपयोग किया जाना चाहिए क्योंकि वहाँ अनंत संख्या में हैं kरों)। परन्तु फिरA भेद नहीं कर सकते vkukvk, जो एक पैलिंड्रोम है, से vlukvk, जो नहीं है।


0

एफए निर्धारक या गैर-नियतात्मक रूप से एक ही भाषा (यानी रेगुलर लैंग) को स्वीकार करता है।

लेकिन पीडीए के मामले में , अगर हम इसे नियतात्मक रूप से व्यवहार करने के लिए प्रतिबंधित करते हैं तो यह कुछ सीएफएल (सीएफएल बिना उपसर्ग संपत्ति (आरएल को छोड़कर)) को स्वीकार नहीं करेगा ।

ऐसा क्यों?

सीएफएल के एक उदाहरण पर विचार करें जिसमें उपसर्ग संपत्ति नहीं है (एक लंग की उपसर्ग संपत्ति: कोई स्ट्रिंग लंग में एक और स्ट्रिंग का उचित उपसर्ग नहीं है)।

ल = लेखक

जैसे। तार 00 और 0000 । (00 0000 का एक उचित उपसर्ग है। इस तरह से वियर प्रीफ प्रॉपर्टी नहीं है)।

की घटना पर 00 DPDA अंतिम अवस्था के लिए जाना जाएगा। अब चूंकि DPDA के पास स्वीकार्यता और निरंतरता के बीच कोई विकल्प नहीं है , इसलिए यह 00 स्वीकार करने के बाद 0000 स्वीकार नहीं कर सकता है । यह वह स्थान है जहां पीडीए को गैर-नियतात्मकता की आवश्यकता होती है ।

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

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