कैसे सहज रूप से महसूस किया जाए कि एक भाषा नियमित है


9

एक भाषा को देखते हुए , मैं सीधे कैसे कह सकता हूं, बिना उत्पादन नियमों को देखे, कि यह भाषा नियमित नहीं है?L={anbncn}

मैं पम्पिंग लेम्मा का उपयोग कर सकता था लेकिन कुछ लोग व्याकरण को देखते हुए कह रहे हैं कि यह नियमित नहीं है। यह कैसे संभव है?


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

हाँ, लेकिन कभी-कभी व्याख्यान में वे सिर्फ कुछ शुष्क गणितीय
सिद्धों

भूल जाइए । क्या आपने कभी महसूस किया है कि नियमित नहीं है? anbncnanbn
उदय रेड्डी

2
एक व्याकरण को देखना और घोषणा करना क्योंकि व्याकरण नियमित नहीं है भाषा नियमित नहीं है एक गिरावट है। नियमित भाषाओं के लिए पर्याप्त गैर-नियमित व्याकरण हैं। सावधान रहें! उस ने कहा, क्या एक व्याकरण नियमित है यह तय करना आसान है; बस प्रस्तुतियों की जाँच करें।
राफेल

जवाबों:


11

डीएफए / एनएफए की मुख्य संपत्ति अनबाउंड मेमोरी की कमी है। यदि आप किसी भाषा को देखते हैं और एकमात्र एल्गोरिथ्म (जिसे बाद में एक Finite Automaton में अनुवादित किया जाना चाहिए) तो आप इस संपत्ति की आवश्यकता के बारे में सोच सकते हैं, अर्थात, आपको लगता है कि कोई भी एल्गोरिथम जो इसे पहचानता है, उसे एक बड़ी संख्या में मनमानी याद रखने की आवश्यकता होगी (जैसे आपके उदाहरण में ) तो वह भाषा शायद नियमित नहीं है।n

बेशक, आपको हमेशा याद रखना चाहिए कि गणितीय अंतर्ज्ञान गलत हो सकता है, और अपने अंतर्ज्ञान के बारे में सुनिश्चित करने का एकमात्र तरीका यह साबित करना है।

संपादित करें: मैं जगह की कमी के कारण टिप्पणियों में अंतिम प्रश्न का उत्तर दूंगा।

आप लोग अनबाउंड मेमोरी के बारे में बात कर रहे हैं, जिसका मतलब है कि यही कारण है कि यह नियमित नहीं है। लेकिन एक ^ nb ^ m भी अनबाउंड मेमोरी हो सकता है अगर मैं चाहता हूं, तो यह नहीं है? यह अभी भी मुझे शांति नहीं दे रहा है।

मुद्दा यह नहीं है कि शब्द कितने बड़े हो सकते हैं (आप आमतौर पर अनंत नियमित भाषाओं का सामना करेंगे, क्योंकि प्रत्येक परिमित भाषा नियमित है, और यह बहुत उबाऊ है) लेकिन डीएफए को याद रखने की कितनी आवश्यकता है।
में उदाहरण के लिए, याद करने के लिए कोई जरूरत नहीं है । अल्गोरिह्म को केवल यह सुनिश्चित करने की आवश्यकता है कि वे सकारात्मक हैं और यह शब्द सही ढंग से आदेश दिया गया है। यह एक परिमित सूची है, और सूची में प्रत्येक आइटम को स्मृति की निरंतर मात्रा की आवश्यकता होती है। करने के लिए इसकी तुलना है, जिसके लिए एक सरल alogrithm याद रखना होगा कि की संख्या की आवश्यकता होती है 's की संख्या के बराबर हैambnm,n
anbnab'है। इसके लिए निर्बाध स्मृति की आवश्यकता होगी। जब मैं किसी भाषा को देखता हूं और देखता हूं कि किसी भी एल्गोरिथ्म को मैं अनबाउंड मेमोरी की जरूरत के बारे में सोच सकता हूं, तो मेरा अंतर्ज्ञान यह है कि भाषा नियमित रूप से मजबूत नहीं होती है। यदि मुझे समय की उचित मात्रा में "स्मार्ट" अल्गोरिद्म (जिसके लिए मेमोरी की निरंतर मात्रा की आवश्यकता होती है) नहीं मिल सकता है (आपके लिए कितना समय उचित है) मैं यह साबित करने की कोशिश करूंगा कि भाषा नियमित नहीं है।
आशा है कि यह थोड़ा स्पष्ट हो जाएगा।


धन्यवाद, गणितीय अंतर्ज्ञान लाता है, लेकिन इस उत्पादन नियम को देखें: S -> ab | ASB। यह एक ^ nb ^ n के लिए है जो कहता है कि यह भी नियमित नहीं है। लेकिन एक ^ mb ^ n, m, n> = 1 के साथ नियमित है। यही कारण है? ये वास्तव में एक ही रूप हैं, है ना? मैं इन दो भाषाओं के बीच अंतर को नहीं समझता
दान

1
एक ^ nb ^ n के लिए आपको 2 चीजों पर नज़र रखने की आवश्यकता है: पहला, कि बराबरी की संख्या b की संख्या के बराबर होती है (यह DFA के लिए असंभव भाग है), और दूसरी यह कि 'b' के बाद 'a' नहीं है '। ^ Mb ^ n के लिए आपको m, n के मान की परवाह नहीं है। आप केवल इस बात का ध्यान रखते हैं कि कम से कम एक 'ए' और कम से कम एक 'बी' हो और उसके बाद किसी 'बी' का 'ए' न हो। अनौपचारिक रूप से कहें, तो आपको केवल 3 चीज़ों को याद रखना चाहिए।
बोरिस ट्रायवास

ओह ठीक है, अब मैं समझ गया।
दानिय्यार

तो आदेश भी महत्वपूर्ण बात है, है ना? जैसे aabbcc को स्वीकार किया जाता है लेकिन aabcbc को केवल इसलिए नहीं कि आदेश ठीक नहीं है। सही?
दानिय्यार

1
"नियमित भाषाओं की मुख्य संपत्ति अनबाउंड मेमोरी की कमी है।" - मुझे पता है कि आपका क्या मतलब है, लेकिन उस वाक्य का कोई मतलब नहीं है। "आपको लगता है कि कोई भी एल्गोरिथ्म जो इसे पहचानता है, उसे मनमाने ढंग से बड़ी संख्या में याद रखने की आवश्यकता होगी" - यह वास्तव में एकमात्र अंतर्ज्ञान है जिसे मैं भी जानता हूं, लेकिन इसकी तरह बहुत, बहुत खतरनाक है; यहाँ देखें ।
राफेल

5

मैं पम्पिंग लेम्मा का उपयोग कर सकता हूं

बिल्कुल सही। आपके द्वारा पम्पिंग लेम्मा या अन्य तकनीकों में से एक युगल (दर्जनों बार) का उपयोग करने के बाद, आप उन भाषाओं में पैटर्न देखना शुरू कर देंगे जो उन्हें नियमित होने से रोकते हैं। एक बहुत ही बुनियादी एक है जिसे आपने शायद पहले ही महारत हासिल कर ली है। तो यह केवल अंतर्ज्ञान ही नहीं, अनुभव का भी विषय है।anbn

अपने अंतर्ज्ञान का परीक्षण करने का एक अच्छा तरीका इन भाषाओं को देख रहा है:

  1. {xyyzx,y,z{a,b}+}
  2. {xyyzx,y,z{a,b}}
  3. {xyyzx,y,z{a,b,c}+}
  4. {xyyzx,y,z{a,b,c}}

जो संदर्भ-मुक्त हैं?


1
यदि कोई नियमित भाषाओं की सीमा के लिए इसी तरह के अच्छे उदाहरण जानता है, तो कृपया ऐसा कहें। कृपया टिप्पणियों में उत्तर को खराब न करें।
राफेल

राफेल - महान काम! उदाहरण देने के लिए और मुझे स्पष्ट रूप से परीक्षण करने के लिए धन्यवाद।
दाता


4

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

सहज रूप से, एक भागफल वह है जो आपको इनपुट के भाग में पहले से पढ़े जाने के बाद एक शब्द को पूरा करने की आवश्यकता है। अधिक औपचारिक रूप से, एक भाषा के बाईं भागफल द्वारा एक स्ट्रिंग , लिखा तार का सेट है ऐसी है कि । उदाहरण के लिए, यदि , तो , जबकि । हम आसानी से देख सकते हैं कि। फार्म के असीम रूप से कई कोटेशन हैं, इसलिए यह तुरंत अनुसरण करता है कि नियमित नहीं है।LxxLwxwLL={anbn}aL={an1bn|n1}bL=akL={ankbn|nk}L

यदि हम L को तय करने के लिए DFA का निर्माण करते हैं, और स्थिति में पढ़ने के बाद स्थिति में होगा , तो , राज्य को प्रारंभ करने के लिए द्वारा संशोधित की गई भाषा है । इसी विचार का उपयोग सीधे न्यूनतम डीएफए के निर्माण के लिए किया जा सकता है जो इसकी परिभाषा से एक नियमित भाषा तय करता है।DDSaaLDS


b \ L का अर्थ है: अगर मैं L को b से विभाजित करता हूं, तो मुझे खाली सेट मिलेगा। क्या इसलिए कि मुझे वास्तव में भीख से शब्द पढ़ना शुरू करना है? और पीछे से नहीं?
डोनर

1
bL= क्योंकि L में कोई स्ट्रिंग्स नहीं हैं जो B. से शुरू होते हैं। आप एक सही भागफल समान रूप से परिभाषित कर सकते हैं जो "पीछे से पढ़ने" से मेल खाती है। एक भाषा भी नियमित रूप से होती है अगर इसमें बहुत सारे सही उद्धरण हैं, क्योंकि एक नियमित भाषा का उलटा नियमित है। (यह NFAs का उपयोग करके दिखाना आसान है।)L/b
जेम्स कोप्पल

1
यहाँ एक अच्छा स्लाइड डेक है जो उद्धरणों को समझाता है, और उनसे डीएफए का निर्माण कैसे करें: cs.cmu.edu/~cdm/pdf/Minimization.pdf
जेम्स कोप्पल

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