चक्रीय पारी के तहत संदर्भ-मुक्त भाषाओं के लिए आसान प्रमाण


11

किसी भाषा की चक्रीय पारी (जिसे घूर्णन या संयुग्मन भी कहा जाता है ) को में रूप में परिभाषित किया गया है । विकिपीडिया (और यहां ) के अनुसार ओशिबा और मास्लोव के पत्रों के संदर्भ में, इस ऑपरेशन के तहत संदर्भ-मुक्त भाषाएं बंद हैं। क्या इस तथ्य का एक आसान प्रमाण है?{ y एक्स | एक्स वाई एल }L{yxxyL}

नियमित भाषाओं के लिए क्लोजर पर इस रूप में चर्चा की जाती है कि " सिद्ध करें कि नियमित भाषाएं साइकिल ऑपरेटर के तहत बंद हैं "।

जवाबों:


5

आप पुशडाउन ऑटोमेटा का उपयोग करने का प्रयास कर सकते हैं। मूल भाषा के लिए एक पुशडाउन ऑटोमेटन को देखते हुए, हम चक्रीय बदलाव के लिए एक का निर्माण करते हैं। नया दो चरणों में संचालित होता है, जो और शब्द के (जहाँ मूल भाषा में है) के अनुरूप है । पहले चरण में, जब भी ऑटोमेटन एक गैर-टर्मिनल को पॉप करना चाहेगा , तो इसके बजाय एक गैर-टर्मिनल धक्का दे सकता है ; यह विचार है कि पहले चरण के अंत में, स्टैक में रिवर्स ऑर्डर होगा, जो मूल ऑटोमेटन द्वारा पढ़ने के बाद स्टैक में पाए जाते हैं । एक गैर-टर्मिनल को धकेलने के बजाय दूसरे चरण में (स्विच गैर-नियतात्मक है)एक्स y एक्स एक्स y एक एक ' एक्स एक एक ' एक्सyxyxxyAAxA, हमें गैर-टर्मिनल पॉप करने की अनुमति है । यदि मूल ऑटोमेटन वास्तव में को पढ़ने पर स्टैक उत्पन्न कर सकता है , तो नया पूरी तरह से पूरे स्टैक को पॉप करने में सक्षम होगा।Ax

संपादित करें: यहां कुछ और विवरण दिए गए हैं। मान लीजिए कि हमें वर्णमाला साथ एक पीडीए दिया गया है , राज्यों का सेट , राज्यों को स्वीकार करने का सेट , गैर-टर्मिनल , प्रारंभिक राज्य और स्वीकार्य संक्रमण का एक सेट। प्रत्येक स्वीकार्य संक्रमण फॉर्म , जिसका अर्थ है कि जब राज्य , (या , जिस स्थिति में यह एक मुफ्त संक्रमण है) पढ़ रहा , यदि टॉप-ऑफ-स्टैक (या , जिसका अर्थ है कि स्टैक खाली है), तो PDA स्टेट जगह ले सकता है (यह एक गैर-नियतात्मक मॉडल है) , की जगहक्यू एफ Γ क्ष 0 ( क्ष , एक , एक , क्यू ' , अल्फा ) क्ष एक एक एक = ε एक Γ एक = ε क्ष ' एक अल्फा Γ *ΣQFΓq0(q,a,A,q,α)qaAa=ϵAΓA=ϵqA साथ ।αΓ

नए पीडीए में प्रत्येक लिए एक नया गैर-टर्मिनल । प्रत्येक दो राज्यों के लिए और , दो अवस्थाएँ । शुरुआती राज्य (वास्तविक प्रारंभिक राज्य को उनके बीच गैर-निर्धारक रूप से चुना जाता है ) -transitions के माध्यम से होते हैं । प्रत्येक संक्रमण के लिए इसके अनुरूप बदलाव होते हैं और । अन्य संक्रमण भी हैं।AAΓq,qQAΓ{ϵ}(q,q,1),(q,q,2,A)ϵ(q,q,1)(q,a,A,q,α)((q,q,1),a,A,(q,q,1),α)((q,q,2,B),a,A,(q,q,2,B),α)

प्रत्येक संक्रमण के लिए , संक्रमण , जहां और । प्रत्येक अंतिम अवस्था , संक्रमण , जहाँ ।(q,a,A,q,α)((q,q,1),a,B,(q,q,1),BAα)BΓ{ϵ}ϵ=ϵqF((q,q,1),ϵ,A,(q0,q,2,ϵ),A)AΓ{ϵ}

प्रत्येक संक्रमण के लिए , संक्रमण होते हैं , जहां । प्रत्येक संक्रमण के लिए , संक्रमण , जहां । प्रत्येक संक्रमण के लिए , "सामान्यीकृत बदलाव" ; ये एक मध्यवर्ती नए राज्य के माध्यम से दो संक्रमणों के अनुक्रम के रूप में कार्यान्वित किए जाते हैं। संक्रमण\ अल्फा) के साथ(q,a,ϵ,q,α)((q,q,2,A),a,B,(q,q,2,A),Bα)AΓ{ϵ}(q,a,ϵ,q,A)((q,q,2,B),a,A,(q,q,2,A),ϵ)BΓ{ϵ}(q,a,A,q,B)((q,q,2,C),a,BA,(q,q,2,C),ϵ)(q,a,ϵ,q,α)|α|2उसी तरह संभाला जाता है। प्रत्येक संक्रमण के लिए , संक्रमण , जहां । संक्रमण को इसी तरह संभाला जाता है। अंत में, एकमात्र अंतिम स्थिति , और संक्रमण ।(q,a,A,q,A)((q,q,2,A),a,B,(q,q,2,A),B)BΓ{ϵ}(q,a,A,q,Aα)f((q,q,2,A),ϵ,ϵ,f,ϵ)

(कुछ बदलाव हो सकते हैं जो मुझे याद थे, और कुछ विवरण जो मैं चूक रहा हूं, वे कुछ गड़बड़ हैं।)

याद रखें कि हम एक शब्द को स्वीकार करने की कोशिश कर रहे हैं , जहाँ को मूल पीडीए द्वारा स्वीकार किया जाता है। एक राज्य मतलब है कि हम चरण 1 पर हैं, राज्य , और मूल पीडीए राज्य पढ़ने के बाद । एक राज्य समान है, जहां अंतिम से मेल खाता है जो कि पॉप किया गया था। चरण 1 में, हम पुश करने के लिए अनुमति दी जाती है बजाय पॉपिंग के । हम प्रत्येक गैर-टर्मिनल के लिए करते हैं जो को संसाधित करते समय उत्पन्न होता है , लेकिन केवल को संसाधित करते समय ही पॉप होता है । स्टेज 2 पर, हमें को पॉप करने की अनुमति हैyxxy(q,q,1)qqx(q,q,2,A)AAAAxyAइसके बजाय धक्का । यदि हम ऐसा करते हैं, तो हमें यह याद रखना होगा कि शीर्ष-स्टॉक वास्तव में ; यह केवल तब लागू होता है जब स्टैक पर कोई "अस्थायी" चीजें नहीं होती हैं, जो सिम्युलेटेड पीडीए में टॉप-ऑफ-स्टैक या फॉर्म ।AAϵB

ये रहा एक सरल उदाहरण। लिए एक ऑटोमेटन पर विचार करें जो प्रत्येक लिए को धक्का देता है , और प्रत्येक लिए को पॉप करता है । नया ऑटोमेटन दो रूपों के शब्दों को स्वीकार करता है: और । पहले रूप के शब्दों के लिए, चरण 1 में समय को धकेलना शामिल है , चरण 2 में पॉपिंग समय , और बार धकेलना और बार । दूसरे रूप के शब्दों के लिए, हम पहले बार धक्का देते हैंxnynAxAyykxnynkxkynxnkkAkAnkAnkAkA, तो पॉप टाइम्स , पुश टाइम्स , स्टेज 2 के लिए संक्रमण, और पॉप टाइम्स ।kAnkAnkA

विभिन्न प्रकारों ("()", "[]", "<>") के संतुलित कोष्ठकों की भाषा के लिए यहां एक अधिक जटिल उदाहरण है, जैसे कि प्रत्येक प्रकार के कोष्ठकों के तत्काल वंशज एक अलग प्रकार के होने चाहिए। उदाहरण के लिए, "([] <>)" ठीक है लेकिन "()" गलत है। प्रत्येक "(", हम धक्का के लिए अगर शीर्ष ढेर नहीं है , प्रत्येक के लिए ")", हम पॉप । इसी तरह , "[]" और "<>" से जुड़े हैं। यहां बताया गया है कि हम ">" ([()] <"हम उपभोग करते हैं">) "स्वीकार करते हैं", धक्का , और स्टेज 2 पर संक्रमण करते हैं। हम उपभोग करते हैं "(", पॉपिंगऔर शीर्ष- -स्टैक को याद रखना । हम "[()]" का उपभोग करते हैं, धक्का देते हैं और पॉपिंग करते हैं ; जब धक्काA AABCCAAABAB , हम जानते हैं कि "असली" टॉप-ऑफ-स्टैक , और इसलिए स्क्वायर ब्रैकेट्स की अनुमति है (हम ">" () () <") द्वारा धोखा नहीं दिया जाएगा); जब धक्का दे रहा है , चूंकि शीर्ष-स्टैक (जो कि या फॉर्म ), तो हम जानते हैं कि "वास्तविक" टॉप-ऑफ-स्टैक है, और इसलिए गोल कोष्ठक की अनुमति है। (भले ही छाया टॉप-ऑफ-स्टैक )। अंत में, हम "<" और पॉप उपभोग करते हैं ।AABϵXBAC


क्षमा करें, मुझे समझने में परेशानी हो रही है - क्या आप आगे बता सकते हैं? ऑटोमेटन कहां से शुरू होता है और इसके संक्रमण क्या हैं? और क्या प्रत्येक स्टैक चिन्ह के लिए स्विच होता है? धन्यवाद! AA
यूएसुल

बहुत ही रोचक सुझाव। धन्यवाद। मैं इसे थोड़ा चबाऊंगा, इसे डूबने दूंगा।
हेंड्रिक

@usul, आपको स्वयं विवरण भरना होगा। स्विच (पहले चरण में) तब होना चाहिए जब ऑटोमेटन "चाहता है" पॉप लेकिन नहीं कर सकता है, और इसके बजाय यह धक्का देता है । आप इसे एक गैर-नियतात्मक कदम के रूप में सोच सकते हैं। AAAA
युवल फिल्मस

@Yuval: क्षमा करें, लेकिन मैं ऐसा नहीं कर सकता। जैसा कि मैंने आपके विचार को समझा है, नए ऑटोमेटन की शुरुआत भाग के अनुकरण से , चबूतरे को बदलने और धक्का देने से होती है। तब स्टैक पर जेनरेट करें , जहाँ पढ़ते समय ओरिजिनल ऑटोमेटन शुरू होता है । Waht मूल धक्का द्वारा शुरू होता है? तब nwe ऑटोमेटन को खाली स्टैक से पॉप करने की आवश्यकता होती है। मुझे अभी भी लगता है कि आपका अंतर्ज्ञान सार्थक है, लेकिन कुछ अतिरिक्त देखभाल की आवश्यकता है। yααy
हेंड्रिक जनवरी

@ हेंड्रिक, मुझे क्षमा करें, लेकिन मैं आपके प्रतिसाद का पालन नहीं कर सकता। आप किस बिंदु पर सोचते हैं कि नए ऑटोमेटन को खाली स्टैक से पॉप करने की आवश्यकता है?
युवल फिल्मस

4

ग्रीबाच सामान्य रूप पर विचार करें । एक शिफ्ट की गई भाषा के निर्माण के लिए आपको केवल प्रोडक्शंस से को और एक नया नॉन-टर्मिनल जोड़ना होगा जो समान व्यवहार करता है, कुछ के मामले में उत्पादन संदर्भित ।SαA1AnSA1AnαSSS


धन्यवाद, लेकिन यह एक पत्र द्वारा स्थानांतरित किया गया है। मुझे सामान्य रोटेशन में रुचि है, पत्रों की एक मनमानी संख्या से।
हेंड्रिक जनवरी

3
@HendrikJan, खैर, अगर संदर्भ मुक्त है, तो निश्चित रूप से मुक्त करने के रूप में अच्छी तरह संदर्भ होगा। आपको पद्धति लागू कर इसके लिए एक व्याकरण निर्माण कर सकते हैं मैं सुझाव बार। तुम भी निर्माण कर सकते हैं व्याकरण सीधे, "सपाट" दिया व्याकरण द्वारा उदाहरण के लिए यदि और व्याकरण में और , तो आप एक उत्पादन जोड़ेंगे और इसे घुमाएँगे। बेशक, आकार। आपका व्याकरण बहुत तेज़ी से बढ़ सकता है।shift1(L)shiftn(L)=shift1(shift1((L))nshiftn(L)n=2SαABAβCSαβCB
करोलिस जुओदेलो

1
नियत आप सही हैं। लेकिन यहाँ तय है और न ही बाउंडेड है। उदाहरण के लिए यदि तो हम । nnL={anbnn0}{akbnak+=n}{bkanbk+=n}
हेंड्रिक जनवरी

@ हेंड्रिकजान, मैं देख रहा हूं। मैंने गलत तरीके से मान लिया कि यह सवाल परिमित पारी के बारे में था। मैं अपने उत्तर पर पुनर्विचार करूँगा ...
करोलिस जुओदेलो

4

यह पुराने होपक्रॉफ्ट और ऑटोमन थ्योरी (1979) के उल्मन क्लासिक परिचय की जांच करने के लिए एक अच्छा विचार है । चक्र के तहत बंद व्यायाम 6.4c है और S ** चिह्नित है। दोहरे सितारों का मतलब है कि यह सबसे कठिन समस्याओं में से एक है (पुस्तक में)। सौभाग्य से एस इंगित करता है कि यह एक समाधान के साथ चयनित समस्याओं में से एक है।

समाधान इस प्रकार है। चॉम्स्की सामान्य रूप में एक सीएफजी लें। किसी भी व्युत्पन्न पेड़ पर विचार करें और मूल रूप से इसे उल्टा कर दें। मूल पेड़ में एक पथ पर विचार करें । बाईं ओर पेड़ का योगदान से दाईं ओर , जिसका अर्थ है कि स्ट्रिंग व्युत्पन्न । (वास्तव में जब व्याकरण CNF होता है जब पथ बाएं रहता है, तो योगदान दाईं ओर होगा और संबंधित खाली है, आदि)S=X1,X2,,Xnx1,x2,,xny1,y2,,ynx1x2xnyny2y1xi

पेड़ के ऊपर एक रास्ता है साथ योगदान बाईं ओर और दाईं ओर, इसलिए परिणाम लिए एक व्युत्पत्ति है । जैसी ज़रूरत।S,X^n,X^2,X^1yn,,y2y1xn,,x2x1yny2y1x1x2xn

निर्माण का पूरा विवरण पुस्तक में दिया गया है।

ध्यान दें कि यह युवल द्वारा कैसे (स्वीकृत) समाधान की याद दिलाता है। पॉप्टर के बजाय जो नॉनटर्मिनल धकेल दिए जाते हैं, वे स्टैक पर विपरीत क्रम में होते हैं। पेड़ में उल्टा होने के समान।

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