यह जाँचने के लिए एल्गोरिथ्म कि क्या कोई भाषा संदर्भ-मुक्त है


18

क्या यह परीक्षण करने के लिए एक एल्गोरिथ्म / व्यवस्थित प्रक्रिया है कि क्या कोई भाषा संदर्भ-मुक्त है?

दूसरे शब्दों में, बीजीय रूप में निर्दिष्ट भाषा को देखते हुए ( ) के बारे में सोचें , परीक्षण करें कि भाषा संदर्भ-मुक्त है या नहीं । कल्पना करें कि हम अपने सभी होमवर्क के साथ छात्रों की सहायता के लिए एक वेब सेवा लिख ​​रहे हैं; आप भाषा निर्दिष्ट करते हैं, और वेब सेवा "संदर्भ-मुक्त" या "संदर्भ-मुक्त नहीं" को आउटपुट करती है। क्या इसे स्वचालित करने का कोई अच्छा तरीका है?L={anbnan:nN}

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

मैं देख रहा हूं कि केव ने कहीं और लिखा है कि गैर-संदर्भ-मुक्त भाषाओं का सेट पुनरावृत्ति करने योग्य नहीं है, इसलिए ऐसा लगता है कि किसी भी एल्गोरिदम के लिए सभी संभव भाषाओं पर काम करने की कोई उम्मीद नहीं है। इसलिए, मुझे लगता है कि वेब सेवा को "संदर्भ-मुक्त", "संदर्भ-मुक्त नहीं" या "मैं बता नहीं सकता" को आउटपुट करने में सक्षम होना चाहिए। क्या कोई एल्गोरिथ्म है जो अक्सर "मुझे नहीं बता सकता" के अलावा एक उत्तर देने में सक्षम होगा, कई भाषाओं में एक को पाठ्यपुस्तकों में देखने की संभावना है? आप इस तरह की वेब सेवा का निर्माण कैसे करेंगे?


इस प्रश्न को अच्छी तरह से प्रस्तुत करने के लिए, हमें यह तय करने की आवश्यकता है कि उपयोगकर्ता भाषा को कैसे निर्दिष्ट करेगा। मैं सुझाव के लिए खुला हूँ, लेकिन मैं कुछ इस तरह सोच रहा हूँ:

L={E:S}

जहाँ एक शब्द-भाव है और , निम्नांकित परिभाषाओं के साथ, लंबाई-चर पर रैखिक असमानताओं की एक प्रणाली है:एसES

  • प्रत्येक एक शब्द-अभिव्यक्ति है। (ये वैरिएबल का प्रतिनिधित्व करते हैं जो किसी भी शब्द को में पकड़ सकते हैं ।)Σ *x,y,z,Σ

  • प्रत्येक एक शब्द-अभिव्यक्ति है। (स्पष्ट रूप से, , इसलिए अंतर्निहित वर्णमाला में एक प्रतीक का प्रतिनिधित्व करते हैं।)Σ = { , बी , सी , } , बी , सी , a,b,c,Σ={a,b,c,}a,b,c,

  • प्रत्येक एक शब्द-अभिव्यक्ति है, अगर लंबाई-चर है।ηaη,bη,cη,η

  • शब्द-भावों का मिलन शब्द-अभिव्यक्ति है।

  • प्रत्येक एक लंबाई-चर है। (ये ऐसे चरों का प्रतिनिधित्व करते हैं जो किसी भी प्राकृतिक संख्या को पकड़ सकते हैं।)m,n,p,q,

  • प्रत्येक एक लंबाई-चर है। (ये एक संबंधित शब्द की लंबाई का प्रतिनिधित्व करते हैं।)|x|,|y|,|z|,

पाठ्यपुस्तक के अभ्यासों में हम कई मामलों को संभालने के लिए पर्याप्त व्यापक हैं। निश्चित रूप से, यदि आप चाहें, तो आप भाषा को बीजीय रूप में निर्दिष्ट करने की किसी अन्य पाठ विधि को स्थानापन्न कर सकते हैं।


क्या भाषाओं की नियमितता के साथ शुरुआत करना आसान नहीं होगा?
युवल फिल्मस 20

@YuvalFilmus, निश्चित रूप से होगा! अब जब आप इसका उल्लेख करते हैं, तो यह एक महान विचार है। क्या आपको लगता है कि समस्या नियमित भाषाओं के लिए संभव है? यदि आपको लगता है कि मूल्यवान हो सकता है, तो मुझे नियमित भाषाओं के बारे में पूछने में खुशी होगी।
DW

2
यह निश्चित रूप से नियमित भाषाओं के लिए आसान होगा। वैसे, सामान्य गैर-निर्णायकता आवश्यक रूप से आपके द्वारा उल्लिखित फॉर्म की भाषाओं पर लागू नहीं होती है।
युवल फिल्मस

4
मुझे डर है कि यह समस्या शायद खुली है, कम से कम एक विशिष्ट मामला है: cstheory.stackexchange.com/questions/17276 । आपकी अधिक सामान्य समस्या के लिए अनिर्णय प्राप्त करने का एक तरीका हो सकता है, लेकिन मैं इसे नहीं देखता।
sdcvvc

यह भाषा में कुछ उदाहरण शब्द देने में सहायक होगा। कंप्यूटर विज्ञान चैट
vzn

जवाबों:


0

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

कुछ भाषा विवरणों के लिए उत्तर तुच्छ है: यदि यह नियमित अभिव्यक्तियों द्वारा होता है, तो यह नियमित है, इस प्रकार संदर्भ मुक्त है। यदि यह संदर्भ मुक्त व्याकरण, डिट्टो द्वारा है।


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

-2

किसी भी भाषा को पुश डाउन ऑटोमेटा द्वारा स्वीकार किया जाता है, एक सीएफएल है। यहां यह निर्धारित करने के लिए एक विस्तृत ब्रेकडाउन है कि कोई भाषा सीएफएल है या नहीं। जाँच करें कि भाषा सीएफएल है या नहीं


यह एक एल्गोरिथ्म नहीं है।
xskxzr

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

AFAIK, अभी तक इसके लिए कोई अच्छी तरह से संरचित एल्गोरिथ्म नहीं है। (अगर मैं ग़लत हूं तो मेरी गलती सुझाएं)। सबसे अच्छा हम कर सकते हैं मामलों के लिए जाँच करें।
सिलुआपांडा

-3

JFLAP सॉफ्टवेयर आज़माएं अगर आप सिर्फ एक CFG चेक करना चाहते हैं। आप शायद JFLAP डेवलपर्स से सॉफ्टवेयर के लिए कोड या एल्गोरिथ्म देने के लिए भी कह सकते हैं। आप यहां से प्राप्त कर सकते हैं JFLAP http://www.jflap.org/jflaptmp/ यह नि: शुल्क है, लेकिन यह JDK या JRE या कुछ और की आवश्यकता है। या हो सकता है कि आप कुछ अन्य समान सॉफ्टवेयर्स और उनके डेवलपर्स की कोशिश कर सकते हैं।


1
मुझे यकीन नहीं है कि यह सवाल का जवाब देता है। JFLAP में कोई विशेषता नहीं है जो गणितीय संकेतन में एक भाषा को स्वीकार करता है और आपको बताता है कि यह संदर्भ-मुक्त है या नहीं।
युवल फिल्मस 16

SORser पुस्तक में THEOREM 2.20 एक भाषा संदर्भ मुक्त है यदि और केवल अगर कुछ पुशडाउन ऑटोमैटन इसे पहचानता है। और आप JFLAP में एक व्याकरण से पीडीए का निर्माण कर सकते हैं
हसीब हसन आसिफ

आप शायद गणितीय संकेतन के बारे में सही कह सकते हैं जो JFLAP में नहीं डाला जा सकता है, लेकिन आप अभी भी एक व्याकरण के सभी नियमों को रख सकते हैं और इसे या तो पीडीए में परिवर्तित कर सकते हैं या यह कह सकते हैं कि यह सीएफजी या कोई अन्य त्रुटि नहीं है
हसीब हसन असमान

{anbncn:nN}

2
मुझे लगता है कि JFLAP एक संदर्भ-मुक्त व्याकरण को एक समकक्ष पीडीए में बदल सकता है, लेकिन यह बिल्कुल यहाँ कोई मदद नहीं है।
युवल फिल्मस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.