ဘာသာစကား ရှိမရှိ မေးခွန်းထုတ်သည်။ ပုံမှန် သို့မဟုတ် မဟုတ်သည် ဆိုသည်မှာ ကွန်ပြူတာဆိုင်ရာ ရှုပ်ထွေးမှုသီအိုရီနယ်ပယ်တွင် အထူးသဖြင့် တရားဝင်ဘာသာစကားများနှင့် အလိုအလျောက်မာတာသီအိုရီများကို လေ့လာခြင်းတွင် အခြေခံအကြောင်းအရာဖြစ်သည်။ ဤသဘောတရားကို နားလည်ရန် ပုံမှန်ဘာသာစကားများ၏ အဓိပ္ပါယ်ဖွင့်ဆိုချက်များနှင့် ဂုဏ်သတ္တိများနှင့် ၎င်းတို့ကို အသိအမှတ်ပြုသည့် တွက်ချက်မှုပုံစံများကို ခိုင်မာစွာဆုပ်ကိုင်ထားရန် လိုအပ်သည်။
ပုံမှန်ဘာသာစကားများနှင့် Finite Automata
ပုံမှန်ဘာသာစကားများသည် ပြည်နယ်အရေအတွက် အကန့်အသတ်ရှိသော abstract machines များဖြစ်သည့် အကန့်အသတ်ရှိသော အော်တိုမာတာဖြင့် အသိအမှတ်ပြုနိုင်သော ဘာသာစကားအမျိုးအစားတစ်ခုဖြစ်သည်။ ဤဘာသာစကားများကို ပုံမှန်အသုံးအနှုန်းများဖြင့် ဖော်ပြနိုင်ပြီး ပုံမှန်သဒ္ဒါများဖြင့် ဖန်တီးနိုင်သည်။ ပုံမှန်ဘာသာစကားများ၏ သော့ချက်လက္ခဏာမှာ ၎င်းတို့အား အဆုံးအဖြတ်ပေးသော အဆုံးအဖြတ်ပေးသော အော်တိုမာတာ (DFA) သို့မဟုတ် အဆုံးအဖြတ်မရှိသော အဆုံးစွန်သော အလိုအလျောက်မာတာ (NFA) ဖြင့် အသိအမှတ်ပြုနိုင်ခြင်းဖြစ်သည်။ DFA တွင် အကန့်အသတ်ရှိသော ပြည်နယ်များ၊ ထည့်သွင်းသင်္ကေတများအစုအဝေး၊ ပြည်နယ်-သင်္ကေတအတွဲများကို ပြည်နယ်များသို့ မြေပုံညွှန်းပေးသည့် အသွင်ကူးပြောင်းမှုလုပ်ဆောင်ချက်၊ ကနဦးအခြေအနေနှင့် လက်ခံသည့်ပြည်နယ်အစုအဝေးတို့ ပါဝင်သည်။
အကန့်အသတ်ရှိသော အော်တိုမာတာ၏ စွမ်းအားကို ၎င်းတို့၏ အကန့်အသတ်မှတ်ဉာဏ်ဖြင့် ကန့်သတ်ထားသည်။ ၎င်းတို့သည် သတ်မှတ်ထားသော နံပါတ်ထက် ကျော်လွန်၍ မရေတွက်နိုင်ပါ၊ ဆိုလိုသည်မှာ နံပါတ်သည် automaton ရှိ ပြည်နယ်အရေအတွက်နှင့် ကန့်သတ်မထားပါက ၎င်းတို့သည် သတ်မှတ်ထားသော သင်္ကေတတစ်ခု၏ မထင်မှတ်သော အရေအတွက်ကို ခြေရာခံနိုင်မည်မဟုတ်ပေ။ ကဲ့သို့သော ဘာသာစကားများကို ထည့်သွင်းစဉ်းစားသည့်အခါ ဤကန့်သတ်ချက်သည် အရေးကြီးပါသည်။ .
ပုံမှန်မဟုတ်သော
ဘာသာစကားတစ်ခု ပုံမှန်ဟုတ်မဟုတ် ဆုံးဖြတ်ရန်၊ ပုံမှန်ဘာသာစကားများအတွက် Pumping Lemma ကို အသုံးပြုနိုင်သည်။ Pumping Lemma သည် ပုံမှန်ဘာသာစကားများအားလုံး စိတ်ကျေနပ်မှုရစေမည့် ပိုင်ဆိုင်မှုတစ်ခုကို ပေးဆောင်ပြီး အချို့သောဘာသာစကားများသည် ဤပိုင်ဆိုင်မှုကို မကျေနပ်ကြောင်း သရုပ်ပြခြင်းဖြင့် ၎င်းကို ပုံမှန်မဟုတ်ကြောင်း ပြသရန် ၎င်းကို အသုံးပြုလေ့ရှိသည်။
Pumping Lemma သည် မည်သည့်ပုံမှန်ဘာသာစကားအတွက်မဆို ဖော်ပြသည်။ ၊ စုပ်ယူမှုအရှည်ရှိတယ်။
ကြိုးတစ်ချောင်း၊
in
အရှည်နှင့်အတူ
သုံးပိုင်းခွဲနိုင်တယ်၊
အောက်ပါအခြေအနေများကို ကျေနပ်စေသည်-
1. ,
2. နှင့်
3. အားလုံးအတွက် , ညာဘက်လက်
၌တည်ရှိ၏
.
၎င်းကိုပြသရန် Pumping Lemma ကိုအသုံးပြုရန် ပုံမှန်မဟုတ်ပါ၊ ဆန့်ကျင်ဘက်ဖြစ်မည်ဟု ယူဆပါ။
ပုံမှန်ဖြစ်သည်။ ထို့နောက် စုပ်ထုတ်သည့် အရှည်တစ်ခု ရှိလာသည်။
ကြိုးတစ်ချောင်း၊
in
နှင့်
အပိုင်းများ ခွဲခြားနိုင်သည်။
Pumping Lemma ၏ အခြေအနေများကို ကျေနပ်စေသည်။
ကြိုးတစ်ချောင်းကို ဆင်ခြင်ပါ။ in
. Pumping Lemma အရ၊
ဆိုပြီး ခွဲလို့ရပါတယ်။
ထိုကဲ့သို့သော
နှင့်
။ မှစ.
၊ စာကြောင်းခွဲ
0s သာ ပါဝင်ပါသည်။ အရှင်၊
,
နှင့်
ဘယ်မှာ
.
ယခု ကြိုးတန်းကို စဉ်းစားပါ။ . 0s သည် နံပါတ်ဖြစ်သည်။
ထက်ကြီးသော၊
1s အရေအတွက် ကျန်နေချိန်တွင်၊
။ ထို့ကြောင့်
0s နှင့် 1s တို့၏ နံပါတ်များသည် မညီသောကြောင့် ဖြစ်သည်။ ဤယူဆချက်သည် ကွဲလွဲကြောင်းပြသသည်။
ပုံမှန်သည် မှားသည်။ ထို့ကြောင့်၊
ပုံမှန်ဘာသာစကားမဟုတ်ပါ။
ဆက်စပ်မှုမရှိသော ဘာသာစကားများနှင့် Pushdown Automata
ဘာသာစကား သို့သော်၊ သည် ဆက်စပ်မှုမရှိသောဘာသာစကား (CFL) ဖြစ်သည်။ အကန့်အသတ်မဲ့ automata ထက် ပိုအားကောင်းသည့် pushdown automata (PDA) မှ စာသားမပါသော ဘာသာစကားများကို ကန့်သတ်ထားသော အချက်အလက်ပမာဏကို သိမ်းဆည်းရန်အတွက် stack တစ်ခုကို အသုံးပြုထားသောကြောင့် ၎င်းတို့သည် အကန့်အသတ်မရှိသော automata ကိုအသုံးပြုနိုင်ပါသည်။ ဤအပိုမှတ်ဉာဏ်သည် PDA များကို ဘာသာစကားတွင် 0s နှင့် 1s အရေအတွက်ကို ခြေရာခံနိုင်စေပါသည်။
.
PDA အတွက် အောက်ပါအတိုင်းလုပ်ဆောင်သည်
1. ၎င်းသည် ကနဦးအခြေအနေတွင် စတင်ပြီး input မှ 0s ကိုဖတ်ပြီး 0 တစ်ခုစီကို stack ပေါ်သို့ တွန်းပို့သည်။
2. ပထမ 1 ကိုဖတ်ပြီးနောက်၊ ၎င်းသည် အခြေအနေအသစ်သို့ကူးပြောင်းပြီး ထည့်သွင်းမှုမှဖတ်ရှုသည့် 0 တစ်ခုစီအတွက် stack မှ 1s စတင်သည်။
3. ထည့်သွင်းမှုကုန်သွားသောအခါ stack သည် ဗလာဖြစ်နေပါက၊ PDA သည် input ကိုလက်ခံပြီး 0s အရေအတွက်သည် 1s အရေအတွက်နှင့် ကိုက်ညီကြောင်း ညွှန်ပြပါသည်။
0s နှင့် 1s အရေအတွက်နှင့် ကိုက်ညီရန် stack တစ်ခုကို အသုံးပြုခြင်း၏ ဤယန္တရားသည် ပုံမှန်မဟုတ်သော်လည်း ဆက်စပ်မှုမရှိသော ဘာသာစကားများကို အသိအမှတ်ပြုရန် PDA များ၏ စွမ်းရည်ကို ပြသသည်။
ဥပမာများနှင့် နောက်ထပ်သက်ရောက်မှုများ
ဥပမာ စာကြောင်းကို သုံးသပ်ကြည့်ပါ။ ဘာသာစကားမှ
. PDA သည် 0 တစ်ခုစီကို စတက်ခ်ပေါ်သို့ တွန်းခြင်းဖြင့် ၎င်းတို့ကို ဖတ်ပြခြင်းဖြင့် ဤစာကြောင်းကို လုပ်ဆောင်မည်ဖြစ်သည်။ 0s သုံးခုကို ဖတ်ပြီးနောက်၊ stack တွင် 0 တစ်ခုစီကို ကိုယ်စားပြုသည့် သင်္ကေတ သုံးခုပါရှိသည်။ PDA သည် နောက်ဆက်တွဲ 1s ကိုဖတ်သည့်အခါ၊ 1 တစ်ခုစီအတွက် stack မှ သင်္ကေတတစ်ခု ပေါ်လာပါမည်။ ထည့်သွင်းမှုကို အပြည့်အဝဖတ်သောအခါ၊ stack သည် ဗလာဖြစ်ကြောင်း ညွှန်ပြနေပါသည်။ ထည့်သွင်းမှုကို လက်ခံသည်။
ဆန့်ကျင်ဘက်အားဖြင့်၊ အကန့်အသတ်ရှိသော automaton သည် stack ယန္တရားမရှိသောကြောင့် 0s နှင့် 1s ၏ အရေအတွက်ကို ခြေရာခံနိုင်မည်မဟုတ်ပေ။ အကန့်အသတ်မရှိသော သင်္ကေတအရေအတွက်ကို သိမ်းဆည်းပြီး ထုတ်ယူနိုင်ခြင်းမရှိပါက၊ အကန့်အသတ်ရှိသော automaton သည် 0s အရေအတွက်နှင့် 1s အရေအတွက်နှင့် ညီမျှကြောင်း သေချာစေပြီး ၎င်း၏ဘာသာစကားကို မှတ်မိနိုင်စွမ်းမရှိစေပါ။ .
ပုံမှန်နှင့် ဆက်စပ်မှုမရှိသော ဘာသာစကားများကြား ခြားနားချက်သည် သီအိုရီဆိုင်ရာ ကွန်ပျူတာသိပ္ပံတွင် အရေးကြီးပြီး ပရိုဂရမ်းမင်းဘာသာစကား ဒီဇိုင်းနှင့် ပိုင်းခြားစိတ်ဖြာခြင်းကဲ့သို့သော နယ်ပယ်များတွင် လက်တွေ့ကျသောသက်ရောက်မှုများရှိသည်။ ဆက်စပ်မှုမရှိသော ဘာသာစကားများကို ထုတ်လုပ်ပေးသည့် ဆက်စပ်မှုမရှိသော သဒ္ဒါများကို ပရိုဂရမ်းမင်းဘာသာစကားများ၏ အထားအသိုအဓိပ္ပာယ်ဖွင့်ဆိုချက်တွင် ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုကြသည်။ PDA များကို အသုံးပြု၍ ဆက်စပ်မှုမရှိသော ဘာသာစကားများကို ထိရောက်စွာ အသိအမှတ်ပြုနိုင်မှုသည် စုစည်းသူများနှင့် စကားပြန်များအတွက် အခြေခံကျသော parser များ၏ ဖွံ့ဖြိုးတိုးတက်မှုကို အလေးပေးသည်။
ပုံမှန်မဟုတ်သော အကန့်အသတ်ရှိသော အော်တိုမာတာ၏ ကန့်သတ်ချက်များကို အလေးပေးကာ ပိုမိုကျယ်ပြန့်သော ဘာသာစကားများကို အသိအမှတ်ပြုရန် pushdown automata ကဲ့သို့သော ပိုမိုအားကောင်းသော ကွန်ပျူတာပုံစံများ လိုအပ်မှုကို မီးမောင်းထိုးပြသည်။ ဤထူးခြားချက်သည် သီအိုရီမျှသာမဟုတ်သော်လည်း ပရိုဂရမ်းမင်းဘာသာစကားများ၏ လက်တွေ့ဒီဇိုင်းနှင့် အကောင်အထည်ဖော်မှုနှင့် ၎င်းတို့ကို လုပ်ဆောင်သည့်ကိရိယာများတွင် လေးနက်သောသက်ရောက်မှုများရှိသည်။
အခြား လတ်တလောမေးခွန်းများနှင့် အဖြေများ EITC/IS/CCTF တွက်ချက်မှုဆိုင်ရာ ရှုပ်ထွေးမှုသီအိုရီ အခြေခံအချက်များ:
- ATM ၏ အဆုံးအဖြတ်မခံနိုင်မှုကို သရုပ်ပြရာတွင် ပြန်ကောက်ချက် သီအိုရီ၏ အခန်းကဏ္ဍက အဘယ်နည်း။
- palindromes ကိုဖတ်နိုင်သော PDA ကိုထည့်သွင်းစဉ်းစားခြင်းဖြင့်၊ ထည့်သွင်းမှုသည် ပထမ၊ palindrome နှင့် ဒုတိယ၊ palindrome မဟုတ်သည့်အခါ stack ၏ဆင့်ကဲဖြစ်စဉ်ကို အသေးစိတ်ပြောပြနိုင်မလား။
- အဆုံးအဖြတ်မရှိသော PDAs များကို ထည့်သွင်းစဉ်းစားခြင်းဖြင့် ပြည်နယ်များ၏ ထိပ်တန်းရာထူးကို အဓိပ္ပါယ်ဖွင့်ဆိုနိုင်သည်။ သို့သော်လည်း၊ သတ်မှတ်မသတ်မှတ်ထားသော PDA များသည် ပြည်နယ်များစွာတွင် တပြိုင်နက်တည်းမဖြစ်နိုင်သော stack တစ်ခုသာရှိသည်။ ဒါက ဘယ်လိုဖြစ်နိုင်မလဲ။
- ကွန်ရက်အသွားအလာကို ခွဲခြမ်းစိတ်ဖြာပြီး ဖြစ်နိုင်ချေရှိသော လုံခြုံရေးချိုးဖောက်မှုများကို ညွှန်ပြသည့် ပုံစံများကို ခွဲခြားသတ်မှတ်ရန် အသုံးပြုသည့် PDA ၏ ဥပမာကား အဘယ်နည်း။
- ဘာသာစကားတစ်ခုသည် အခြားဘာသာစကားတစ်ခုထက်ပို၍ အစွမ်းထက်သည်ဟု ဆိုလိုခြင်းဖြစ်သည်။
- Turing Machine မှ context-sensitive languages များကို မှတ်မိနိုင်ပါသလား။
- '1' သင်္ကေတများ ကိန်းဂဏန်းများနှင့်အတူ binary strings များကို အသိအမှတ်ပြုသည့် FSM ကို မည်ကဲ့သို့ အဓိပ္ပာယ်ဖွင့်ဆိုရန်နှင့် ထည့်သွင်းမှု string 1011 ကို လုပ်ဆောင်သည့်အခါ ၎င်းနှင့် မည်သို့ဖြစ်မည်ကို ပြသရန်။
- အဆုံးအဖြတ်မဟုတ်သောဝါဒသည် အကူးအပြောင်းလုပ်ဆောင်မှုကို မည်သို့အကျိုးသက်ရောက်သနည်း။
- ပုံမှန်ဘာသာစကားများသည် Finite State Machines များနှင့် တူညီပါသလား။
- PSPACE အတန်းသည် EXPSPACE အတန်းနှင့် မညီမျှပါသလား။