First-order predicate logic၊ first-order logic (FOL) သည် သင်္ချာ၊ ဒဿနိကဗေဒ၊ ဘာသာဗေဒနှင့် ကွန်ပျူတာသိပ္ပံတို့တွင် အသုံးပြုသည့် တရားဝင်စနစ်တစ်ခုဖြစ်သည်။ ၎င်းသည် ကမ္ဘာနှင့်ပတ်သက်သော ကျယ်ပြန့်သောဖော်ပြချက်များစွာကို ကိုယ်စားပြုနိုင်သည့် ပိုမိုဖော်ပြနိုင်သည့် ဘာသာစကားကို ခွင့်ပြုပေးသည့် အရေအတွက်နှင့် ကြိုတင်ခန့်မှန်းချက်များကို ပေါင်းစပ်ခြင်းဖြင့် အဆိုပြုချက်ဆိုင်ရာ ယုတ္တိဗေဒကို ချဲ့ထွင်သည်။ ဤယုတ္တိဗေဒစနစ်သည် တွက်ချက်မှုဆိုင်ရာ ရှုပ်ထွေးမှုသီအိုရီနှင့် ဆိုက်ဘာလုံခြုံရေးအပါအဝင် နယ်ပယ်အသီးသီးတွင် အခြေခံအုတ်မြစ်ဖြစ်ပြီး ၎င်းသည် algorithms၊ စနစ်များနှင့် လုံခြုံရေးဂုဏ်သတ္တိများအကြောင်း ကျိုးကြောင်းဆင်ခြင်ရန် အရေးကြီးပါသည်။
ပရီဒီကိတ်လော့ဂျစ်တွင်၊ ပရီကိတ်သည် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော အကြောင်းပြချက်များကိုယူကာ အမှန်တရားတန်ဖိုးကို ပြန်ပေးသည့် လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ Predicates ကို အရာဝတ္ထုများ၏ ဂုဏ်သတ္တိများ သို့မဟုတ် အရာဝတ္ထုများကြား ဆက်ဆံရေးများကို ဖော်ပြရန်အတွက် အသုံးပြုသည်။ ဥပမာအားဖြင့်၊ လူများနှင့်ပတ်သက်သော ဟောပြောချက်တစ်ခု၏ နယ်ပယ်တစ်ခုတွင်၊ ငြင်းခုံမှုတစ်ခုသည် x တစ်ခုတည်းယူကာ x အရပ်ရှည်ပြီး အခြားမဟုတ်ပါက အမှားအမှန်ပြန်ဖြစ်သွားသည့် "isTall(x)" ဖြစ်နိုင်သည်။ အခြားဥပမာမှာ "isSibling(x၊ y)" ဖြစ်နိုင်သည်၊ ၎င်းသည် x နှင့် y သည် အငြင်းအခုံနှစ်ခုကိုယူကာ x နှင့် y သည် မောင်နှမများဖြစ်ပါက အမှန်ဖြစ်ပြီး အခြားမဟုတ်ပါက မှားသည်။
ပထမအစီအစဥ် ယုတ္တိဗေဒအထွက်နှုန်း အမှန်တရားတန်ဖိုးများကို အဘယ်ကြောင့် ကြိုတင်ခန့်မှန်းသည်ကို နားလည်ရန်၊ ဤယုတ္တိဗေဒစနစ်၏ တည်ဆောက်ပုံနှင့် အဓိပ္ပါယ်များကို ထည့်သွင်းစဉ်းစားရန် လိုအပ်ပါသည်။ ပထမအမှာစာ ယုတ္တိဗေဒတွင် အောက်ပါ အစိတ်အပိုင်းများ ပါဝင်သည်။
1. variables ကို: ဟောပြောချက်၏ ဒိုမိန်းရှိ ဒြပ်စင်များအတွက် ရပ်တည်သော သင်္ကေတများ။ ဥပမာများတွင် x၊ y၊ z ပါဝင်သည်။
2. အမြဲတမ်း: ဒိုမိန်းအတွင်းရှိ သီးခြားဒြပ်စင်များကို ရည်ညွှန်းသော သင်္ကေတများ။ ဥပမာများတွင် a၊ b၊ c တို့ ပါဝင်သည်။
3. ခန့်မှန်းချက်များ: ဂုဏ်သတ္တိများ သို့မဟုတ် ဆက်ဆံရေးကို ကိုယ်စားပြုသော သင်္ကေတများ။ ၎င်းတို့ကို P, Q, R ကဲ့သို့သော စာလုံးအကြီးများဖြင့် အဓိပ္ပါယ်ဖော်လေ့ရှိသည်။
4. functions များ: ဒိုမိန်း၏ဒြပ်စင်များကို အခြားဒြပ်စင်များနှင့် မြေပုံညွှန်းပေးသည့် သင်္ကေတများ။ ဥပမာ f၊ g၊ h တို့ ပါဝင်သည်။
5. Quantifiers များ: ဒိုမိန်းတစ်ခုအတွက် နိမိတ်ဖတ်သည့်အတိုင်းအတာကို ဖော်ပြသော သင်္ကေတများ။ ပင်မပမာဏနှစ်မျိုးမှာ universal quantifier (∀) နှင့် ဖြစ်တည်မှုဆိုင်ရာ quantifier (∃) ဖြစ်သည်။
6. Logical Connectives များ: ကြိုတင်ခန့်မှန်းချက်များနှင့် ဖော်ပြချက်များကို ပေါင်းစပ်ထားသော သင်္ကေတများ။ ၎င်းတို့တွင် ဆက်စပ်မှု (∧)၊ အဆက်ပြတ်ခြင်း (∨)၊ နှုတ်ထွက်ခြင်း (¬)၊ သက်ရောက်မှု (→) နှင့် biconditional (↔) တို့ ပါဝင်သည်။
ပထမအမှာစာ လော့ဂျစ်၏ syntax သည် ဤအစိတ်အပိုင်းများကို ကောင်းစွာဖွဲ့စည်းထားသော ဖော်မြူလာများ (WFFs) အဖြစ် မည်သို့ပေါင်းစပ်နိုင်သည်ကို သတ်မှတ်သည်။ WFF သည် ယုတ္တိဗေဒစနစ်၏ စည်းမျဉ်းများနှင့်အညီ သဒ္ဒါနည်းအတိုင်း မှန်ကန်သော သင်္ကေတများဖြစ်သည်။ ဥပမာအားဖြင့် P သည် predicate ဖြစ်ပြီး x သည် variable ဖြစ်ပါက P(x) သည် WFF ဖြစ်သည်။ အလားတူပင်၊ Q သည် အငြင်းအခုံနှစ်ခုပါသော အကြိုကိန်းတစ်ခုဖြစ်ပါက Q(x၊ y) သည်လည်း WFF တစ်ခုဖြစ်သည်။
ပထမအစီအစဥ် ယုတ္တိဗေဒ၏ အဓိပ္ပါယ်မှာ ဤဖော်မြူလာများ၏ အဓိပ္ပါယ်ကို ပေးသည်။ ပထမဆင့်ဘာသာစကား၏ အဓိပ္ပာယ်ဖွင့်ဆိုချက်တွင် အောက်ပါတို့ ပါဝင်သည်-
1. Domain of Discourse: variables များ အပိုင်းအခြားအလိုက် အလွတ်မဟုတ်သော ဒြပ်စင်အစုတစ်ခု။
2. စကားပြန်လုပ်ဆောင်ချက်− ဘာသာစကားတွင် ကိန်းသေများ၊ လုပ်ဆောင်ချက်များနှင့် ခန့်မှန်းချက်များကို အဓိပ္ပာယ်သတ်မှတ်ပေးသည့် မြေပုံတစ်ခု။ အထူးအားဖြင့်၊ ၎င်းသည် သတ်မှတ်ပေးသည်-
- ကိန်းသေတစ်ခုစီအတွက် ဒိုမိန်း၏ဒြပ်စင်တစ်ခု။
- လုပ်ဆောင်ချက်တစ်ခုစီအတွက် ဒိုမိန်းမှ ဒိုမိန်းသို့ လုပ်ဆောင်ချက်တစ်ခု။
- ကြိုတင်သတ်မှတ်သင်္ကေတတစ်ခုစီနှင့် ဒိုမိန်းအပေါ် ဆက်စပ်မှု။
ကိန်းရှင်များအတွက် အဓိပ္ပာယ်ဖွင့်ဆိုခြင်းနှင့် တန်ဖိုးများကို တာဝန်ပေးခြင်းဖြင့် WFF ၏ အမှန်တရားတန်ဖိုးကို ဆုံးဖြတ်နိုင်သည်။ ဥပမာအားဖြင့်၊ လူများ၏ domain တစ်ခုရှိ "isTall(x)" ကို ကြိုတင်စဉ်းစားပါ။ အကယ်၍ အဓိပ္ပာယ်ဖွင့်ဆိုချက်သည် အရပ်ရှည်ခြင်း၏ပိုင်ဆိုင်မှုကို "isTall" တွင် သတ်မှတ်ပေးမည်ဆိုပါက "isTall(x)" သည် အရပ်ရှည်ပြီး အခြားမဟုတ်ပါက မှားယွင်းပါက "isTall(x)" သည် မှန်ကန်မည်ဖြစ်သည်။
Quantifiers များသည် domain ၏ အစိတ်အပိုင်းအားလုံး သို့မဟုတ် အချို့သော အစိတ်အပိုင်းများအကြောင်း ဖော်ပြချက်များကို ခွင့်ပြုခြင်းဖြင့် first-order logic တွင် အရေးကြီးသောအခန်းကဏ္ဍမှ ပါဝင်ပါသည်။ universal quantifier (∀) သည် domain ရှိ ဒြပ်စင်အားလုံးအတွက် ကိန်းသေတစ်ခု ထားရှိသည်ကို ရည်ညွှန်းပြီး ဖြစ်တည်မှုဆိုင်ရာ ပမာဏသတ်မှတ်မှု (∃) သည် ကြိုတင်တွက်ဆထားသော ဒိုမိန်းတွင် အနည်းဆုံး ဒြပ်စင်တစ်ခု ရှိနေကြောင်း ဖော်ပြသည်။
ဥပမာ:
- "∀x isTall(x)" ဆိုသည်မှာ "လူတိုင်း အရပ်ရှည်သည်။"
- "∃x isTall(x)" ဆိုသည်မှာ "အရပ်ရှည်သူ အနည်းဆုံး တစ်ယောက်ရှိ၏" ဟု ဆိုလိုသည်။
ဤကိန်းဂဏန်းများသည် ကြိုတင်တွက်ဆမှုများနှင့် ပေါင်းစပ်ထားသော ရှုပ်ထွေးသော ယုတ္တိဖော်ပြချက်များအား အဓိပ္ပာယ်ဖွင့်ဆိုချက်အပေါ် အခြေခံ၍ အမှန် သို့မဟုတ် အမှားအဖြစ် အကဲဖြတ်နိုင်သည့် ရှုပ်ထွေးသော ယုတ္တိဖော်ပြချက်များကို တည်ဆောက်နိုင်စေပါသည်။
ယင်းကို ထပ်လောင်းသရုပ်ဖော်ရန်၊ အဲလစ်၊ ဘော့နှင့် ကာရိုလ်တို့ပါဝင်သော လူသုံးဦးပါဝင်သော ဒိုမိန်းတစ်ခုကို သုံးသပ်ကြည့်ပါ။ "isTall(x)" သည် Alice နှင့် Bob အရပ်ရှည်သည်ဟု အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သော်လည်း Carol မဟုတ်ပါ။ အနက်ဖွင့်ခြင်းလုပ်ဆောင်ချက်သည် အောက်ပါအမှန်တရားတန်ဖိုးများကို သတ်မှတ်ပေးသည်-
– isTall(Alice) = မှန်သည်။
– isTall(Bob) = မှန်သည်။
– isTall(Carol) = မှားသည်။
ယခု၊ အောက်ပါဖော်ပြချက်များကို သုံးသပ်ကြည့်ပါ။
1. "∀x isTall(x)" – ဒိုမိန်းရှိလူတိုင်းသည် အရပ်မရှည်သောကြောင့် (Carol သည် အရပ်မရှည်) ဖြစ်သောကြောင့် ဤဖော်ပြချက်သည် မှားယွင်းပါသည်။
2. "∃x isTall(x)" – ဒိုမိန်းတွင် အရပ်ရှည်သူများ (Alice နှင့် Bob) များ ရှိနေသောကြောင့် ဤဖော်ပြချက်သည် မှန်ပါသည်။
ဤဖော်ပြချက်များ၏ အမှန်တရားတန်ဖိုးများကို နိမိတ်ဖတ်ချက်၏ အဓိပ္ပါယ်ဖွင့်ဆိုချက်ဖြင့် ဆုံးဖြတ်သည်။
တွက်ချက်မှုဆိုင်ရာ ရှုပ်ထွေးမှုသီအိုရီနှင့် ဆိုက်ဘာလုံခြုံရေးတွင် အယ်လဂိုရီသမ်များ၊ ပရိုတိုကောများနှင့် စနစ်များ၏ ဂုဏ်သတ္တိများအကြောင်း ကျိုးကြောင်းဆင်ခြင်ရန် ပထမဆင့်ယုတ္တိကို အသုံးပြုသည်။ ဥပမာအားဖြင့်၊ တရားဝင်အတည်ပြုခြင်းတွင်၊ ဆော့ဖ်ဝဲလ်နှင့် ဟာ့ဒ်ဝဲစနစ်များ၏ မှန်ကန်မှုကို သတ်မှတ်အတည်ပြုရန် ပထမအမှာစာယုတ္တိကို အသုံးပြုနိုင်သည်။ အသုံးပြုသူသည် စစ်မှန်ကြောင်းအထောက်အထားပြပြီး အခြားနည်းဖြင့်မှားပါက အမှန်ပြန်ပေးသည့် "isAuthenticated(အသုံးပြုသူ)" ကဲ့သို့သော လုံခြုံရေးပိုင်ဆိုင်မှုကို ကိုယ်စားပြုနိုင်သည်။ ပထမမှာယူမှု ယုတ္တိဗေဒကို အသုံးပြုခြင်းဖြင့်၊ စနစ်တစ်ခုသည် ဖြစ်နိုင်သည့် အခြေအနေများအားလုံးတွင် အချို့သော လုံခြုံရေးဂုဏ်သတ္တိများကို ကျေနပ်မှုရှိမရှိ တရားဝင်သက်သေပြနိုင်သည်။
ထို့အပြင်၊ first-order logic သည် ဆုံးဖြတ်ချက်ချနိုင်မှုနှင့် တွက်ချက်မှုဆိုင်ရာ ရှုပ်ထွေးမှုများကို လေ့လာရာတွင် အခြေခံဖြစ်သည်။ David Hilbert ရေးသားသော Entscheidungsproblem သည် ပေးထားသည့် ပထမအမှာစာ ယုတ္တိဗေဒဆိုင်ရာ ကြေငြာချက်၏ အမှန်တရား သို့မဟုတ် အမှားများကို ဆုံးဖြတ်နိုင်သည့် အယ်လဂိုရီသမ်တစ်ခု ရှိမရှိ မေးမြန်းခဲ့သည်။ Alan Turing နှင့် Alonzo Church တို့သည် ထိုကဲ့သို့သော အယ်လဂိုရီသမ်မရှိကြောင်း သီးခြားသက်သေပြခဲ့ပြီး ပထမအလို့ငှာ ယုတ္တိဗေဒ၏ အဆုံးအဖြတ်မခံနိုင်မှုကို ဖော်ထုတ်ခဲ့သည်။ ဤရလဒ်သည် တွက်ချက်မှုကန့်သတ်ချက်များနှင့် ယုတ္တိဆင်ခြင်ခြင်း၏ ရှုပ်ထွေးမှုများအတွက် လေးနက်သောသက်ရောက်မှုရှိသည်။
လက်တွေ့အသုံးချမှုများတွင်၊ အလိုအလျောက် သီအိုရီသက်သေပြခြင်းနှင့် မော်ဒယ်စစ်ဆေးခြင်း ကိရိယာများသည် စနစ်များ၏ ဂုဏ်သတ္တိများကို စစ်ဆေးရန် ပထမအမှာစာ ယုတ္တိကို အသုံးပြုလေ့ရှိသည်။ ဤကိရိယာများသည် ထည့်သွင်းမှုအဖြစ် ယုတ္တိကျသောသတ်မှတ်ချက်များကို ယူဆောင်ပြီး သတ်မှတ်ထားသောဂုဏ်သတ္တိများကို ထိန်းသိမ်းထားခြင်းရှိမရှိ သက်သေပြရန် ကြိုးစားသည်။ ဥပမာအားဖြင့်၊ မော်ဒယ်စစ်ဆေးသူသည် ကွန်ရက်ပရိုတိုကောသည် အချို့သော လုံခြုံရေးဂုဏ်သတ္တိများကို ကျေနပ်မှုရှိမရှိ စစ်ဆေးနိုင်သည်၊ ပရိုတိုကော၏ ဖြစ်နိုင်ခြေရှိသော အခြေအနေအားလုံးကို စူးစမ်းလေ့လာခြင်းဖြင့် ဤဂုဏ်သတ္တိများကို ပထမအမှာစာ ယုတ္တိဖြင့် ဖော်ပြနိုင်သည်။
၎င်းတို့၏ အဓိပ္ပာယ်ဖွင့်ဆိုချက်နှင့် ဟောပြောချက်၏ နယ်ပယ်အပေါ် အခြေခံ၍ မှန်သည်ဖြစ်စေ၊ ဤဝိသေသလက္ခဏာသည် သင်္ချာ၊ ဒဿနိကဗေဒ၊ ဘာသာဗေဒ၊ ကွန်ပျူတာသိပ္ပံနှင့် ဆိုက်ဘာလုံခြုံရေးတို့အပါအဝင် နယ်ပယ်အသီးသီးရှိ ဂုဏ်သတ္တိများနှင့် ဆက်ဆံရေးများအကြောင်း ကျိုးကြောင်းဆင်ခြင်မှုအတွက် အားကောင်းပြီး ဖော်ပြနိုင်သော တရားဝင်စနစ်တစ်ခု ဖြစ်လာစေသည်။
အခြား လတ်တလောမေးခွန်းများနှင့် အဖြေများ EITC/IS/CCTF တွက်ချက်မှုဆိုင်ရာ ရှုပ်ထွေးမှုသီအိုရီ အခြေခံအချက်များ:
- palindromes ကိုဖတ်နိုင်သော PDA ကိုထည့်သွင်းစဉ်းစားခြင်းဖြင့်၊ ထည့်သွင်းမှုသည် ပထမ၊ palindrome နှင့် ဒုတိယ၊ palindrome မဟုတ်သည့်အခါ stack ၏ဆင့်ကဲဖြစ်စဉ်ကို အသေးစိတ်ပြောပြနိုင်မလား။
- အဆုံးအဖြတ်မရှိသော PDAs များကို ထည့်သွင်းစဉ်းစားခြင်းဖြင့် ပြည်နယ်များ၏ ထိပ်တန်းရာထူးကို အဓိပ္ပါယ်ဖွင့်ဆိုနိုင်သည်။ သို့သော်လည်း၊ သတ်မှတ်မသတ်မှတ်ထားသော PDA များသည် ပြည်နယ်များစွာတွင် တပြိုင်နက်တည်းမဖြစ်နိုင်သော stack တစ်ခုသာရှိသည်။ ဒါက ဘယ်လိုဖြစ်နိုင်မလဲ။
- ကွန်ရက်အသွားအလာကို ခွဲခြမ်းစိတ်ဖြာပြီး ဖြစ်နိုင်ချေရှိသော လုံခြုံရေးချိုးဖောက်မှုများကို ညွှန်ပြသည့် ပုံစံများကို ခွဲခြားသတ်မှတ်ရန် အသုံးပြုသည့် PDA ၏ ဥပမာကား အဘယ်နည်း။
- ဘာသာစကားတစ်ခုသည် အခြားဘာသာစကားတစ်ခုထက်ပို၍ အစွမ်းထက်သည်ဟု ဆိုလိုခြင်းဖြစ်သည်။
- Turing Machine မှ context-sensitive languages များကို မှတ်မိနိုင်ပါသလား။
- ဘာသာစကား U = 0^n1^n (n>=0) အဘယ်ကြောင့် ပုံမှန်မဟုတ်သနည်း။
- '1' သင်္ကေတများ ကိန်းဂဏန်းများနှင့်အတူ binary strings များကို အသိအမှတ်ပြုသည့် FSM ကို မည်ကဲ့သို့ အဓိပ္ပာယ်ဖွင့်ဆိုရန်နှင့် ထည့်သွင်းမှု string 1011 ကို လုပ်ဆောင်သည့်အခါ ၎င်းနှင့် မည်သို့ဖြစ်မည်ကို ပြသရန်။
- အဆုံးအဖြတ်မဟုတ်သောဝါဒသည် အကူးအပြောင်းလုပ်ဆောင်မှုကို မည်သို့အကျိုးသက်ရောက်သနည်း။
- ပုံမှန်ဘာသာစကားများသည် Finite State Machines များနှင့် တူညီပါသလား။
- PSPACE အတန်းသည် EXPSPACE အတန်းနှင့် မညီမျှပါသလား။