कैसे एक भाषा को साबित करने के लिए नियमित है?


48

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

उदाहरण के लिए, अगर मैं दिया गया है कि नियमित रूप से है, मैं कैसे साबित कर सकते हैं कि निम्नलिखित एल ' नियमित रूप से भी है?LL

L:={wL:uv=w for uΣL and vΣ+}

क्या मैं यह साबित करने के लिए एक nondeterministic परिमित ऑटोमेटन आकर्षित कर सकता हूं?


1
आपकी की परिभाषा लिखने में कोई गलती है , ठीक करने के लिए कृपया संपादित करें। L
रैन जी।

2
"ड्राइंग" कोई सबूत नहीं है; आपको एक NFA देना होगा और यह साबित करना होगा कि वह भाषा स्वीकार करता है।
राफेल

मुझे लगता है कि भाषा की परिभाषा अभी भी समझ में नहीं आती है ...
hugomg

2
वैसे भी, विशिष्ट भाषा अप्रासंगिक है यदि प्रश्न "क्या मैं एक NFA आकर्षित कर सकता हूं यह साबित करने के लिए कि वह नियमित है"। @कोरियम, क्या हम अधिक सामान्य प्रश्न को प्रतिबिंबित करने के लिए प्रश्न को संपादित कर सकते हैं: "कैसे साबित करें कि एक विशिष्ट नियमित है"? L
रैन जी।

जवाबों:


48

हां, यदि आप निम्नलिखित में से किसी एक के साथ आ सकते हैं:

कुछ भाषा , फिर L नियमित है। कर रहे हैं और अधिक बराबर मॉडल है, लेकिन इसके बाद के संस्करण सबसे आम हैं।LL

"कम्प्यूटेशनल" दुनिया के बाहर भी उपयोगी गुण हैं। भी अगर नियमित हैL

  • यह परिमित है,
  • आप इसका निर्माण नियमित भाषाओं पर कुछ संचालन करके कर सकते हैं, और ये संचालन नियमित भाषाओं के लिए बंद हैं , जैसे कि

    • चौराहे,
    • पूरक हैं,
    • समरूपता,
    • उलट,
    • बाएँ या दाएँ भागफल,
    • नियमित रूप से संक्रमण

    और अधिक , या

  • यदि Myhill-Nerode प्रमेय का उपयोग कर रहे हैं तो लिए समतुल्यता वर्गों की संख्या परिमित है।L

दिए गए उदाहरण में, हम कुछ (नियमित) langage है आधार के रूप में और एक भाषा के बारे में कुछ कहना चाहते एल ' से व्युत्पन्न। पहले दृष्टिकोण के बाद - के लिए एक उपयुक्त मॉडल का निर्माण एल ' - हम मान सकते हैं, जो भी के लिए बराबर मॉडल एल हम इतनी इच्छा; यह निश्चित ही रहेगा, क्योंकि L अज्ञात है। दूसरे दृष्टिकोण में, हम सीधे एल का उपयोग कर सकते हैं और एल ′ के विवरण के लिए आने के लिए इसमें क्लोजर गुण लागू कर सकते हैं ।LLLLLLL


4
यह भी ध्यान देने योग्य हो सकता है कि किसी भाषा को साबित करना नियमित है, यह दिखाने के लिए पर्याप्त है। यह उपयोगी हो सकता है, विशेष रूप से मामलों द्वारा गैर-रचनात्मक प्रमाण में।
पैट्रिक87

2
प्रोग्रामिंग भाषाओं में पाया जाने वाला regexp नियमित भाषाओं की तुलना में बहुत अधिक कर सकता है। आपको "शास्त्रीय" निर्माणों तक सीमित रखना होगा।
डेविड लेविस

4
@DavidLewis: इस साइट पर, आप मान सकते हैं कि "नियमित अभिव्यक्ति" से शास्त्रीय धारणा का मतलब है।
राफेल

@ डेविलेविस मैं सहमत हूं, किसी को भ्रम से बचने के लिए सिद्धांत के संदर्भ में "रेगेक्सपी" से बचना चाहिए।
राफेल

ध्यान दें कि पहली चार गोलियों में से किसी के लिए, आपको यह दिखाने के लिए प्रमाण की आवश्यकता होगी कि आपका प्रतिनिधित्व वास्तव में सही है।
राफेल

10

प्राथमिक विधियाँ

  1. परिमित ऑटोमेटा (संभवतः रिक्त स्थान के साथ nondeterministic)।
  2. नियमित अभिव्यक्ति।
  3. दाएं (या बाएं, लेकिन दोनों नहीं) रैखिक समीकरण, जैसे जहां के और एल नियमित हैं।X=KX+LKL
  4. नियमित (टाइप 3) व्याकरण।
  5. नियमित भाषा (बूलियन संचालन, उत्पाद, स्टार, फेरबदल, आकारिकी, आकृति विज्ञान के व्युत्क्रम, उलटफेर, आदि) के संचालन का संचालन।
  6. एक परिमित मोनॉयड द्वारा मान्यता प्राप्त है।

तार्किक तरीके (अक्सर औपचारिक सत्यापन में उपयोग किए जाते हैं)

  1. मोनाडिक दूसरा क्रम तर्क (बुची का प्रमेय)।
  2. रैखिक लौकिक तर्क (कम्पास का प्रमेय)।
  3. राबिन का पेड़ प्रमेय (दो उत्तराधिकारियों के साथ मोनडिक दूसरा क्रम तर्क)। बहुत शक्तिशाली।

उन्नत तरीके

  1. परिष्कृत पंपिंग नींबू। उदाहरण के लिए देखें
    [१] जे। जैफ़ , नियमित भाषाओं के लिए एक आवश्यक और पर्याप्त पम्पिंग लेम्मा, सिगैक्ट न्यूज़ - १० (१ ९ IGIG ) 10-४९
    [२] ए। इरेनेफ़ुच, आर। पारिख, और जी। रोज़ेनबर्ग, नियमित सेट के लिए पम्पिंग नींबू, सियाम जे। कॉम्पुट। 10 (1981), 536-541।
    [३] एस। वेरिकचियो, नियमित सेटों के लिए एक पंपिंग स्थिति, सियाम जे। कॉम्पुट। 26 (1997) 764-771।

  2. अच्छी तरह से अर्ध आदेश। देखें
    [४] डब्लू बुचर, ए। इरेनफ्यूच, डी। हॉसस्लर, कुल संबंधों पर व्युत्पन्न संबंधों से उत्पन्न नियामक, थोर। कंप्यूटर। विज्ञान। 40 (1985) 131–148।
    [५] एम। कुंज, भाषा असमानताओं और अच्छी तरह से अर्ध-आदेशों के नियमित समाधान

  3. धारावाहिक श्रृंखला का समर्थन ।N

  4. पारगमन के आधार पर बीजगणितीय विधियां ( नियमित भाषाओं को संरक्षित करने वाले संचालन भी देखें )।


4

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

प्रश्न पर पुनर्विचार करते हुए, यह 'उदाहरण के लिए ' जोड़ता है । साधन तो हमें एक वैध देना है कि निर्माण कि, ऊपर मॉडल के किसी भी हम भाषा निर्दिष्ट मान एल , बदल जाता है कि के लिए एक में मॉडल एल ' । यह आम तौर पर एक ही प्रकार का मॉडल होगा, लेकिन इसकी आवश्यकता नहीं है: हम उदाहरण के लिए एल के लिए एक नियतकालिक एफएसए के साथ शुरू कर सकते हैं और एल ′ के लिए एक nondeterminitic के साथ अंत कर सकते हैं ।LLLL

उदाहरण में स्पष्ट रूप से दिए गए आपरेशन में हमने: इस प्रयोग को बंद करने के संचालन की संभावना भी शामिल है L=(ΣL)Σ

तो, मेरा कहना है कि उत्तर बहुत अच्छा है, लेकिन हमें " से एल " निर्माण "में जोड़ना चाहिए , जब खरोंच से एक विशिष्ट भाषा का निर्माण नहीं होता है।LL


1
मुझे पूरा यकीन नहीं है कि आपको क्या मिल रहा है। अगर मेरे पास लिए कुछ मॉडल है , तो मैं इसे किसी भी अन्य समकक्ष के रूप में बदल सकता हूं। L
राफेल

@ राफेल क्षमा करें मैंने अपनी बात रखी। पहले के उत्तर हमें यह समझाते हैं कि हम भाषा का विवरण (जैसे ऑटोमेटन, संचालन, आदि) का निर्माण कर सकते हैं। मैं सहमत हूँ। हालाँकि, यह प्रश्न क्लोजर प्रॉपर्टीज़ के बारे में है, दिए गए उदाहरण को देखें। वह बिंदु मुझे अन्य उत्तरों में याद आ रहा है: एक बंद संपत्ति साबित करने के लिए आप मान लें कि आपके पास एक विवरण है, और एक नया निर्माण करें।
हेंड्रीक जन

1
L

1
LLLLLLLLL

1
ओह ठीक। वास्तव में, मैं प्रश्न को संपादित करता हूं, और "उदाहरण के लिए" भाग को हटाता हूं, इस प्रकार प्रश्न को अधिक सामान्य बनाता है, और भविष्य के समान प्रश्नों के लिए एक संदर्भ .. (:
Ran G.


4

L1SL2={x1y1xnynΣ:x1xnL1,y1ynL2}
Ai=Σ,Qi,Fi,δi,q0iLii=1,2Σ,Q,F,δ,q0
  • Q1×Q2×{1,2}xiyi
  • q0=q01,q02,1
  • F=F1×F2×{1}
  • δ(q1,q2,1,σ)=δ1(q1,σ),q2,2δ(q1,q2,2,σ)=q1,δ2(q2,σ),1

LR={wR:wΣ}.
(w1wn)R=wnw1LΣ,Q,F,δ,q0Σ,Q,F,δ,q0
  • Q=Q{q0}
  • q0
  • q0
  • δ(q0,ϵ)=FqQσΣδ(q,σ)={q:δ(q,σ)=q}

q0


R(L)={yxΣ:xyL}.
LΣ,Q,F,δ,q0Σ,Q,F,δ,q0q=δ(q0,x)δ(q,y)Fδ(q0,x)=qyx
  • Q={q0}Q×Q×{1,2}q0q,qcurr,sqqcurrsyx
  • F={q,q,2:qQ}δ(q0,x)=q
  • δ(q0,ϵ)={q,q,1:qQ}q
  • δ(q,qcurr,s,σ)=q,δ(qcurr,σ),sq,qcurrQs{1,2}
  • δ(q,qf,1,ϵ)=q,q0,2qQqfFyxy

Ek(L)={xΣ: there exists yL whose edit distance from x is at most k}.
Σ,Q,F,δ,q0LΣ,Q,F,δ,q0Ek(L)
  • Q=Q×{0,,k}
  • q0=q0,0
  • F=F×{0,,k}
  • q,σ,iδ(q,σ),iδ(q,i,σ)
  • q,i+1δ(q,i,σ)q,σ,ii<k
  • δ(q,σ),i+1δ(q,i,ϵ)q,σ,ii<k
  • δ(q,σ),i+1δ(q,i,τ)q,σ,τ,ii<k

3

एक भाषा नियमित रूप से iff है, तो आप एक स्कैनर लिख सकते हैं जो मनमाने तार पर निर्णय लेता है कि वे एक निश्चित मात्रा से अधिक मेमोरी का उपयोग करके भाषा से संबंधित हैं या नहीं - अर्थात मान्यता O (1) स्पेस में की जा सकती है ।


O (1) स्पेस, आपका मतलब है? किसी भी मामले में, यह इस तथ्य से ढंका है कि डीएफए पर्याप्त है; प्रोग्रामिंग के संदर्भ में इस समानता को स्पष्ट रूप से नोट करना सार्थक हो सकता है।
राफेल

हां, यह सिर्फ एक अलग दृष्टिकोण है।
रीयरियरपोस्ट

3

नियमित अभिव्यक्ति परिवर्तन एक निश्चित संचालन के तहत बंद साबित करने का एक तरीका है। दो सरलतम उदाहरण उत्क्रमण के तहत बंद हो रहे हैं और समरूपता के तहत बंद हो रहे हैं ।

rLLRL

  • ϵR=ϵσR=σR=
  • (r1+r2)R=(r1R+r2R)(r)R=(rR)(r1r2)R=r2Rr1R

(r1r2)R=r2Rr1R(01)R=10rRLR

h:ΣΔrLh(L)σrh(σ)


0

एक और तरीका यह है कि संचालन के उपयोग से भाषा का निर्माण किया जाए जिसके तहत आप जानते हैं कि वे बंद हैं। यह एक नियमित अभिव्यक्ति को प्रदर्शित करने के लिए एक विस्तार है, क्योंकि आपके पास कई और ऑपरेशन उपलब्ध हैं (स्ट्रिंग को पीछे ले जाएं, पूरक, चौराहे, एक टुकड़ा बाहर काट लें, बस एक हिस्सा, समरूपता और उलटा समरूपता, ...) रखें


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