है {ww ’| HamDist (w, w ')> 1} संदर्भ-मुक्त?


13

हाल के प्रश्न को पढ़ने के बाद "के पूरक है {www∣...} विषय से मुक्त?" ; मुझे याद है कि मैं एक ऐसी ही समस्या को याद नहीं कर पा रहा था:

है L={ww′∣w,w′∈{0,1}∗∧|w|=|w′|∧HamDist(w,w′)>1} संदर्भ मुक्त?

यहां हमें यह आवश्यक है कि दो तार कम से कम दो स्थितियों में भिन्न हों (हेमिंग की दूरी 1 से अधिक होनी चाहिए )।

यह विषय से मुक्त करता है, तो हम चाहते हैं कि है HamDist(w,w′)≥1 (यानी दो तार बस अलग-अलग होना चाहिए)।

मुझे लगता है कि भाषा विषय से मुक्त नहीं है: अगर हम इसे नियमित रूप से साथ एक दूसरे को काटना 0∗10∗10∗10∗ हम जिन मामलों में एक पीडीए स्ट्रिंग के आधे तक पहुंचने के बाद "याद" चाहिए उलटे क्रम में दो स्थानों मिलता है।

अपडेट: अगर हम एक दूसरे को काटना L नियमित के साथ R={0∗10∗10∗10∗} के रूप में अपने जवाब में domotorp से पता चला है कि हम एक विषय से मुक्त भाषा मिलता है, एक से थोड़ा अधिक जटिल L∩R′ के साथ R′={0∗10∗10∗10∗10∗10∗} (एक और 1 "रखने के ट्रैक" के लिए) अभी भी सुझाव है कि L विषय से मुक्त नहीं होना चाहिए।


के रूप में यह वास्तव में शब्द उस रूप का नहीं हैं वास्तव में आसान है, डब्ल्यू डब्ल्यू (से परिच्छेदित आर ' )। L∩R′wwR′
— डोमोटर

@domotorp: सही है! बदलकर विषम निश्चित s (जब तक कि आपके उत्तर को { ( 0 ∗ 1 0 ∗ ) k } , किसी भी निश्चित विषम k के लिए अनुकूलित नहीं किया जा सकता )1{(0∗10∗)k}k
— Marzio De Biasi

एक अंतिम टिप्पणी: यह अग्रणी शून्य के साथ शुरू करने में मदद नहीं करता है, क्योंकि सभी प्रकार के चक्रीय बदलाव के लिए संदर्भ-मुक्त भाषाएं बंद हैं। आप उन्हें केवल स्टैक पर ले जा सकते हैं, आखिरी को एक विशेष प्रतीक के साथ चिह्नित कर सकते हैं, बाकी एल्गोरिथ्म यह दिखावा करते हैं कि स्टैक वहां शुरू होता है, और अंत में इसे खाली करें। (यह का उपयोग करता है -transitions, लेकिन यह भी आसान है कि इस तरह पीडीए के बिना लोगों के बराबर हैं।)ϵ
— domotorp

{0,1,2} वर्णमाला के बारे में सोचना और वास्तव में दो 1s और दो 2s के साथ तार पर विचार करना आसान हो सकता है। यह आपकी भाषा में नहीं है यदि 1s के बीच की दूरी और 2s के बीच की दूरी दोनों n है।
— केवह

जवाबों:


4

साथ चौराहे R={0∗10∗10∗10∗∣ भी लंबाई शब्द } क्योंकि एक पीडीए, विषय से मुक्त है सकते हैं दो स्थानों याद है, एक तरह से। किसी भी तरह, आइए पहले देखें कि यह भाषा L क्या है। इसके पूरक है R∖L={0a10b10c10d∣b=n/2∨c=n/2∨a+d=n/2} । इसलिए, L={0a10b10c10d∣b≠n/2∧c≠n/2∧a+d≠n/2} । हम के रूप में इस पुनर्लेखन कर सकते हैं L={0a10b10c10d∣b>n/2∨c>n/2∨a+d>n/2∨b,c,a+d<n/2} ।

पहले 3 मामलों को आसानी से सत्यापित किया जा सकता है, और इसलिए चौथा भी हो सकता है।

b>n/2 : पहले 1 तक स्टैक में रखना शुरू करें, फिर स्टैक से गैर-खाली होने तक पॉपिंग शुरू करें। खाली होने के बाद, फिर से स्टैक में डालना शुरू करें जब तक कि हम दूसरे तक न पहुंच जाएं। तब से स्टैक पॉप पर।

c>n/2 : समान।

a+d>n/2

b,c,a+d<n/2a+n/2


R∖L{0a10b10c′0c″10d∣ (n/2=a+b+c′=c″+d+1)∧[(a=c″)∨(c′=d)}b=n/2∨c=n/2∨a+d=n/2

R⊂L1b=n/2c=n/2b+c=n/2a+d=n/2±1

क्या यह पूर्ण प्रश्न का उत्तर देता है?
— माइकल कैडिलैक

L∩R={...b≠n/2∧c≠n/2...}L∩R={...b>n/2∨c>n/2∨b,c<n/2}L∩R={...(b<n/2∨b>n/2)∧(c<n/2∨c>n/2)}a+d

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