कैसे साबित किया जाए कि एक भाषा संदर्भ-मुक्त है?


26

रहे हैं कई तकनीकों साबित होता है कि एक भाषा है नहीं विषय से मुक्त है, लेकिन मैं कैसे साबित करते हैं कि एक भाषा है विषय से मुक्त?

इसे साबित करने के लिए क्या तकनीकें हैं? जाहिर है, एक तरीका भाषा के लिए एक संदर्भ-मुक्त व्याकरण का प्रदर्शन करना है। क्या किसी दिए गए भाषा के लिए एक संदर्भ-मुक्त व्याकरण खोजने के लिए कोई व्यवस्थित तकनीकें हैं?

नियमित रूप से भाषाओं के लिए, वहाँ रहे हैं व्यवस्थित तरीके एक नियमित व्याकरण / परिमित राज्य automaton प्राप्त करने के लिए: उदाहरण के लिए, Myhill-Nerode प्रमेय एक तरीका प्रदान करता है। क्या संदर्भ-मुक्त भाषाओं के लिए कोई संगत तकनीक है?


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


मुझे अपना सामान्य नोट छोड़ने की अनुमति दें: जब हाथ में भाषा के लिए एक संदर्भ-मुक्त व्याकरण प्रदान करते हैं, तो आपको एक शुद्धता प्रमाण की आवश्यकता होती है जो दृष्टिकोण को बल्कि अस्पष्ट बना सकती है।
राफेल

इसे एक उचित संदर्भ प्रश्न बनाने के लिए हम समस्या डंपर पर फेंक सकते हैं, क्या आप व्याकरण और ऑटोमेटा के साथ आने के बारे में एक उत्तर जोड़ सकते हैं, शायद प्रत्येक उदाहरण के साथ? धन्यवाद!
राफेल

जब तक सामग्री यहां नहीं ले जाया जाता है, तब तक ध्यान दें कि रिक डेकर और बाबू ने डुप्लिकेट प्रश्न पर कुछ विशिष्ट संदर्भ-मुक्त मुहावरे एकत्र किए ।
राफेल

जवाबों:


13

एक व्यावहारिक दृष्टिकोण जो कई उदाहरणों में काम करता है [लेकिन हमेशा नहीं, मुझे पता है] भाषा में तारों के घोंसले के ढांचे को खोजने की कोशिश कर रहा है । "नेस्टेड निर्भरता" को स्ट्रिंग के विभिन्न हिस्सों में एक ही समय में उत्पन्न करना होगा।

इसके अलावा हमारे पास मूल टूलबॉक्स है :

  1. संघनन: यदि आप भाषा को दो लगातार भागों में विभाजित कर सकते हैं तो इस उत्पादन का उपयोग करेंSS1S2

  2. संघ: संबंध तोड़ना भागों में विभाजितSS1S2

  3. यात्रा: SS1Sε

उदाहरण 1

यहां घोंसले के शिकार के लिए एक उदाहरण (धन्यवाद राफेल)।

L={bkal(bc)manbok,l,m,n,oN,ko,2l=n,m2}

को 2 l से बदलें । अब हम परिस्थितियों में n छोड़ सकते हैं ।n2ln

बदलें द्वारा कश्मीर >  या  कश्मीर < (असमंजस में हैं? है 'ओह' नहीं 'शून्य')। संघ के लिए उपकरण लागू करें। हम यहां k > o के साथ काम करते हैं। इसके अलावा k > o iff k = s + o और s > 0 जहां s एक नया चर है। K को s + o से बदलें ।kok>o or k<ook>ok>ok=s+os>0sks+o

L1={bs+oal(bc)ma2lbol,m,o,sN,s>0,m2}

कुछ सरल पुनर्लेखन।

L1={bbsboalbcbc(bc)m(aa)lbol,m,o,sN}

अब हम घोंसले के ढांचे को देखते हैं, और एक व्याकरण का निर्माण शुरू करते हैं।

, T b U ,(देखें:और पुनरावृत्ति यहाँ)S1TVTbUUbUε

बीVbVbW (हम दोनों तरफ का निर्माण करते हैं)o b

WaWaaX

, वाई , जेड Z | εXYZYbcbcZbcZε

उदाहरण 2

K={akblcml=m+k}

एक पहले "स्पष्ट" फिर से लिखना।

K={akbm+kcmm,k0}={akbmbkcmm,k0}

भाषाविज्ञान में इसे "क्रॉस-सीरियल निर्भरता" कहा जाता है: इंटरलेविंग (आमतौर पर) दृढ़ता से गैर-संदर्भहीनता को इंगित करता है। बेशक m + k = k + m और हम बच गए हैं।k,m,k,mm+k=k+m

K={akbk+mcmm,k0}={akbkbmcmm,k0}

प्रस्तुतियों के साथ , एक्स एक एक्स | ε , Y वाई सी | εSXYXaXbεYbYcε

इसी तरह K={akblcmm=k+l}={akblclckk,l0}

साथ प्रस्तुतियों , एक्स एक्स सी | εSaScXXbXcε


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


11

सीएफएल का एक लक्षण वर्णन है जो उपयोग का हो सकता है, चॉम्स्की-श्टज़ेनबर्गर प्रमेय

डाइक भाषा

चलो एक वर्णमाला। हम परिभाषित डैक -language डी टी( टी टी ) * की टी विषय से मुक्त व्याकरण से जी = ( { एस } , टी टी , δ , एस ) के साथ δ द्वारा दिए गएTDT(TT^)TG=({S},TT^,δ,S)δ

SaSa^Sε,aT

चॉम्स्की-श्टज़ेनबर्गर प्रमेय

विषय से मुक्त करता है, तो है और वहाँ केवल तभीLΣ

  • एक वर्णमाला ,T
  • एक नियमित रूप से भाषा औरR(TT^)
  • समरूपता ψ:(TT^)Σ

ताकि

L=ψ(DTR)

ध्यान दें कि समरूपता शब्द (प्रतीक द्वारा प्रतीक) और फिर भाषाओं (शब्द द्वारा शब्द) तक विस्तारित है।

उदाहरण

पर विचार करें । साथ मेंL={anbncmn,mN

  • (और, धर्मविधान, टी = { ] , } ),T={[,}T^={],}
  • औरR=L([])
  • ψ(x)={a,x=[b,x= ]ε,x=c,x= 

प्रमेय का अर्थ है कि संदर्भ-मुक्त है, विशेष रूप सेL

DTR={[n]nmmn,mN}

उदाहरण 2

पता चलता है कि विषय से मुक्त है।L={bkal(bc)manbok,l,m,n,oN,ko,2l=n,m2}

यहाँ, हम के लिए कोष्ठक का एक प्रकार की जरूरत है , के लिए एक , के लिए एक , और एक अन्य मॉडल के लिए इस्तेमाल है कि कारण कश्मीर । हम प्रयोग करते हैंabcbbko

  • ,T={[,,,<}
  • औरR=L(<+>+[++])L([++]<+>+)
  • ψ(x)={b,x{,,<}a,x=[aa,x= ]bc,x=ε,else

L=ψ(DTR)[]wDTR

DTR={<p>po[lmm]lop1,o0,l0,m2} {}

और इसके साथ

ψ(DTR)={bp+oal(bc)ma2lbop1,o0,l0,m2} {}={bkal(bc)manbok,l,m,n,oN,k>o,2l=n,m2} {}=L.

व्याकरण और ऑटोमेटा के लिए

अगर हम अंत में एक ऑटोमेटन या व्याकरण रखना चाहते हैं, तो हमारे आगे कुछ और काम हैं।

  • DTRψ

  • RDTψ

TRψ


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