First-Order Logic

Чөлөөт нэвтэрхий толь — Википедиагаас
Jump to navigation Jump to search

First-Order Logic Логикийн анхны дараалал-FOL: Ямарч үед бид мэдлэгт үндэслэгдсэн agent-ийг байгуулахын тулд логикийг тодорхойлдог. First-order logic-ийг first-order predicate calculus ( тооцоолж батлах анхны дараалал ) гэж нэрлэдэг бөгөөд FOL эсвэл FOPC гэж товчилдог. Agent-д ямар ч үйлдлийг хийх, тэдгээрийн дүрс загварыг ашиглан ямар нэг action ( үйлдэл) гүйцэтгэхийг дүгнэж чадах орчинг илэрхийлж чаддаг байсан. Бүх чухал цэгүүдийн батладаг энгийн хэлүүдийн нэг нь учраас загварын хэл шиг пророрциональ логик хэрэглэдэг. Хамсалтай нь пропорциональ логик нь маш их ontology-ийн хягаарлагдмал байдлыг бүрдүүлдэг амлалтыг зөвхөн хийгддэг. Үүнийг хийсэн энгийн юм болгоныг дүрслэн үзүүлэхэд хэцүү байдаг. Энэ chapter-т бид First-order logic( логикийн анхны дараалал)-г авч үзэж ямар ч ontology-ийн амлалтын маш их тогтвортой нөхцөлд хийх болно. Эхэнд нь хэлэхэд бүх орчин обьектоос бүрдэх бөгөөд тэдгээр обьектууд нь бусдаас ялгарах онцлог шинж чанартай байдаг. Эдгээр обьектуудын хооронд өөр хоорондын ялгаатай харьцаанууд байдаг. Эдгээр харьцаануудын зөвхөн нэг “value” ( утга)-ыг “input” ( оролтонд ) зориулж өгдөг функцаар илэрхийлэгддэг. Энд обьектуудын шинж чанар, харьцаа, функцийн хялбар жишээтэй жагсаалтуудыг харуулав.  Обьектууд: Хүмүүс, байшингууд, тоонууд, теоремууд, Ronald McDonald, өнгөнүүд, бейсбол тоглоом, дайн, зуун зуун жил….  Харилцаа холбоо нь: Ах дүү, аль нэг обьектын хэсэг …  Шинж чанар: Улаан, дугариг, пирамид, олон …  Функцууд нь: Аавын сайн найз, нэг нь нөгөөгөөсөө олон … Үнэндээ ямар ч бодит байдал, обьект болон шинж чанар харьцааг илэрхийлж чаддаг. Зарим жишээг дурьдвал: – “ Нэг дээр нэмэх нь хоёр тэнцүү гурав ” Обьектууд нь: нэг, хоёр, гурав, нэг дээр нэмэх нь хоёр Харилцаа холбоо нь: тэнцүү Функц нь: нэмэх ( Нэг дээр нэмэх нь хоёр бол обьект юм. Ө.х “нэмэх” гэсэн функцийг ашиглан нэг болон хоёр обьектуудыг нийлүүлсэн обьект юм. Харин гурав бол өөр обьектын нэр юм ) – “Зэргээлдээх квадратуудын вакуум орчин нь бохир байдаг ” Обьектууд нь: wumpus, квадратууд Харилцаа холбоо нь: Бохир Функц нь: ойролцоо – “Английг 1200 онд Evil King John удирдаж байсан” Обьектууд нь: John, Англи, 1200 Харилцаа холбоо нь: удирдах Функц нь: Evil King

Синтакс болон семантик FOL хэл нь өөрийн гэсэн тогтсон хэлбэртэй бөгөөд объектыг дүрсэлдэг нэр томъёотой байдаг. Тогтмол тэмдэгтүүд, хувьсагчид функцын тэмдэгтүүд нэр томъёог тодорхойлход ашигладаг. FOL-ын хувьд бичигдэх ерөнхий хэлбэр дараалал нь дараах бүтэцтэй байна. Өгүүлбэр → атом өгүүлбэр өгүүлбэр холбоос өгүүлбэр тодорхойлогч хувьсагчид,. . . . . өгүүлбэр ¬өгүүлбэр өгүүлбэр Атом өгүүлбэр → предикат ( терм, . . . . ) / терм=терм терм → функц ( терм, . . . ) / Тогтмол / Хувьсагч Ийм өгүүлбэрийн загвар ба тайлбар нь үнэн байдаг. Объектын хамаарал дотор энэ загвар агуулагдаж байдаг. Тайлбар нь тодорхой зааж илгээдэг учир нь: – Тогтмолууд: А, В, С, Батаа . . . Хөрвүүлэгч нь тогтмол бүрд ямар объект харгалзаж байгааг гаргадаг байна. Тогтмол бүр нь яг нэг объектыг заах боловч бүх объектууд нэртэй байх албаггүй. Мөн зарим объектууд нь олон нэртэй байж болдог. – Предикатууд : дугираг, ах . . . . Өгүүлбэр дэх тодорхой холбоосыг харуулдаг. Жишээ нь : ах гэдэг нь хос объектын хувьд яригдах учраас хоёртын предикат болно. Ямар ч өгөгдсөн загварт предикат нь уг нөхцлийг хангадаг бүлэг объектуудын олонлог байдаг. Тэд нарыг <> хаалтанд бичдэг. Тухайлбал ах дүүгийн предикатаар холбогдсон объектуудын æишээ нь : {<Бат, Энхээ>, <Энхээ, Номин>} – Функцууд : авга, ийн аав, ийн зүүн гар . . . . . Зарим холбоос нь нэг өгөгдсөн объектын хувьд яг нэг өөр объекттой холбодог учраас функцлэг шинж чанартай байдаг. Тухайлбал ямар ч хүн нэг төрсөн эхтэй гэх мэт. Тогтмол, функцууд, предикатыг хэрхэн сонгох нь хэрэглэгчээс өөрөөс нь хамаарна. Термүүд Терм бол объектод хамаатай логик дүрслэл юм. Èймээс тîгтмолууд терм байж болно. Заримдаа объектыг тодорхойлох илүү тохиромжтой хэлбэрүүд байдаг. Термийг ашиглан тогтмол хэрэглэснээс ЗүүнГар(Энхээ) гэж хэрэглэж болно. Ерөнхийдөө бол бүрэн термийн бүтэц нь : функцийн тэмдэг түүний араас бүлэг объектууд байдаг. Атом өгүүлбэрүүд Дээрх зүйлсийг нэгтгээд атом өгүүлбэр зохиож болно. Хэрэв P(x,y) байвал түүнийг x бол у-н Р гэж унших болно. Иймээс Ах(Бат, Энхээ) гэвэл Бат бол Энхээгийн ах гэж хөрвүүлнэ. Гэрлэсэн( Эцэг(Бат), Эх(Энхээ) ) Эндээс атом өгүүлбэр нь илүү нарийн аргументтай байж болохыг харж байна. Бүрэн өгүүлбэрүүд Бид логик холбоосуудыг ашиглан илүү нарийн өгүүлбэрүүдийг үүсгэж чадна. Жишээ нь : – Ах (Бат, Энхээ ) ∧ Дүү(Энхээ, Бат) өгүүлбэр нь Бат Энхээгийн ах ба Энхээ батын дүү үед л үнэн байна. – Илүү_настай (Бат, 30) ∨ Илүү_залуу(Бат, 30) өгүүлбэр нь Бат 30-аас илүү настай эсвэл бага настай үед үнэн байна. – Илүү_настай(Бат, 30) ⇒¬Илүү_залуу(Бат, 30) гэдэг нь Бат 30-аас илүү настай юм чинь 30-с бага настай биш гэж байна. Тодорхойлогчид FOL хэл нь Универсаль болон оршихуйн гэсэн 2 төрлийн тодорхойлогчтой. 1. Универсаль тодорхойлогч (∀) Propositional logic-т гарч байсан хүндрэл гшэвэл ерөнхий дүрмийг дүрслэхэд олон дүрэм шаардаж байсан. FOL хэлд бол <Бүх муурнууд хөхтөн амьтан > гэсэн өгүүлбэр нь амархан топдорхойлогддог. Тодорхой тохиолдол Кери бол муур гэхийг Муур(Кери), Кери бол хөхтөн амьтан гэхийг Хөхтөн(Кери) гэж илэрхийлдэг. Дээрх өгүүлбэрийг <хэрэв Х нь муур бол Х хөхтөн> гэж хэлж болно. FOL хэлэнд түүнийг дүрслэхдээ : ∀х Муур(х) ⇒Хөхтөн(х) ∀ нь ямар ч, бүх гэх мэт утгыг агуулна. Бүх хувьсагчидыг жижиг үсгээр, предикат болон тогтмолуудыг том үсгээр эхэлсэн үгээр тэмдэглэнэ. Хэрэв хийн оронд Энхээ байсан бол ⇒ нь худалаас худал үед үнэн байдаг учраас энэ өгүүлбэр нь нийтдээ үнэн болж байна. Тэгэхээр энэ өгүүлбэрийг сул илэрхийлсэн гэсэн үг. Дээрх өгүүлбэрийн оронд дараах өгүүлбэрийг авч болно. ∀ х Муур(х) ∧Хөхтөн(х) Энэ өгү¿лбэрийн хувьд саяын хүндрэл алга болж байна. Өөрөөр хэлбэл Энхээ нь муур биш учраас дээрх өгүүлбэр худлаа болно. Хувьсагч нь өөрөө объектыг зааж болдог тухайлбал Хүүхэд(х), хэрэв термийн аргументуудад хувьсагч оролцоогүй бол түүнийг ground term гэдэг. 2. Оршихуйн тодорхойлогч (∃) Универсаль тодорхойлогч нь бүх объектуудын талаар өгүүлбэр бичихэд хэрэглэгдэж байсан. Зарим объектын талаар тэднийг нэрлэлгүйгээр өгүүлбэр бичиж чадна. Жишээ нь Кери нь нэг эгч мууртай байсан бол үүнийг бичихдээ : ∃ х Эгч(х,Кэри) ∧ Муур(х) гэж илэрхийдэг. Энд ∃ нь оршино, олдоно гэдэг утгыг илэрхийлж байна. Ýнэ өгүүлбэрийг мөн ⇒ ашиглан бичвэл дахин сулрал үүснэ. ∃ х Эгч(x, Кэри) ⇒Муур(х) Эгч (Энхээ, Кэри) ⇒Муур(Энхээ) нь үнэн өгүүлбэр ( худлаас худал нь үнэн ) Кэри муур эгчгүй байсан ч уг хэллэг үнэн болүж байна. бид олон тодорхойогчидыг ашиглаад илүү нарийн өгүүлбэрүүдийг бичиж чадна. Ямар ч х болон у-н хувьд хэрэв х нь у-н эцэг нь бол у нь х-ийн хүү байна гэсэн өгүүлбэрийг бичихдээ : ∀ х, у Эцэг(х,у) ⇒ Хүү (у,х) ∀ х, у нь ∀ х ∀ у-тэй ижил байна. Ямар ч хүн хэн нэгнийг хайрладаг гэсэн өгүүлбэрийг : ∀ х ∃у Хайрладаг(х,у) Хүн бүхэн хайрладаг тийм хүн бий гэсэн өгүүлбэрийг : ∃у ∀ х Хайрладаг(х,у) Иймээс тодорхойлогчдын дараалал маш чухал юм. Хэрэв бид хаалт ашиглавал илүү тодорхой болж ирнэ. ∀ х ( ∃у Хайрладаг(х,у) ) Хэрэв ижил нэртэй тодорхойлогчид байвал хүндрэл үүсдэг. Үүнийг авч үзье. ∀ х [Муур(х) ∨ (∃х Ах ( Ричард, х ))] Энд хувьсагчид хамгийн ойр багаа тодорхойлогчид нь үйлчилнэ. Хэрэв дараах байдалтайгаар бичвэл яг ижил утгыг заана. ∀ х [Муур(х) ∨ (∃ z Ах ( Ричард, z ))] Ижил нэр нь будлианы эх үүсвэр болж байдаг учраас үргэлж өөр өөр хувьсагчийг ашиглах хэрэгтэй. Шинэ хувьсагч бүр ашиглагдахаасаа өмнө тодорхойлогчоор тодорхойлогдох хэрэгтэй. Иймд дараах өгүүлбэр буруу өгүүлбэр юм. ∀ х Р(y) Дараах өгүүлбэрүүд нь ижил утгатай байна. ∀х ¬Дуртай (х, мөхөөлдөс) ¬∃x Дуртай (х, мөхөөлдөс) Де. Морганы дүрмүүд : • ∀х¬P ⇔¬∃x P • ¬∀x P ⇔ ∃ x ¬P • ∀x P ⇔¬ ∃ x ¬P • ∃x P ⇔¬∀x ¬P • ¬P ∧¬Q ⇔ ¬(P∨Q) • P∧Q ⇔ ¬(¬P ∨¬Q) • P∨Q ⇔ ¬(¬P∧¬Q) Иймээс бидэнд үнэндээ ∃, ∀ нь хоёулаа байх шаардлаггүйн адил ∧, ∨ нь мөн хоёулаа байх шаардлаггүй байна. харин хиймэл оюуны программуудад уншигдам байдал нь чухал юм. Иймээс дээрх тэмдэглэгээнүүдийг бүгдийг нь ашиглах болно. Тэнцүү байдал FOL-д атом өгүүлбэрийг өмнө дурдсан аргуудаас өөрөөр дүрслэх хэдэн аргатай байдаг. Бид тэнцүүгийн тэмдгийг ашиглан 2 объект ижил болохыг харуулж чадна. Жишээлбэл : Аав (Жон)=Генри Энд Жоны аав ба Генри 2 бол нэг ижил хүн гэдгийг харуулж байна. Энэ өгүүлбэрийн үнэн эсэхийг < тодорхойлолтын холбоог > ашиглан шалгадаг. Энэ нь хос объектуудаас бүрдэх бөгөөд хос бүр нь ижил объектууд байх юм. Тухайлбал : { <Кэри, Кэри>, <Энхээ, Энхээ>, <Жон, Жон>. . . . . . . . } ∃ ! Тодорхойлогч ∃ тодорхойлогч нь ямар нэг объект оршин байхыг хлж чадах боловч яг ганц объект оршин байна гэдгийг илэрхийлэх товч өгүүлбэр байдаггүй. Энэ тохиолдолд ∃ ! тодорхойлогчийг хэрэглэдэг. ∃ ! х Хаан (х) Энэ нь нэг л хаан байна гэсэн утгыг илэрхийлнэ. Гэрдээ энэ нь шинэ тодорхойлогч биш үүнийг дараах байдлаар илэрхийлж болно. ∃ х Хаан(х)∧∀ у Хаан(у) ⇒ x=y Логикийн анхны дараалал ( FOL ) бол математик философи болон хиймэл оюун ухаанд чухал байр суурь эзлэх бөгөөд тодорхой хэлэхэд энэ салбар нь хүмүүсийн өдөр тутмын аж амьдралыг обьект, тэдгээр хоорондын харьцаатай нь уялдуулан холбосон ойлголт юм. Бид орчны обьект болон тэдгээрийн харьцаануудаас тогтох эсэхийг шаардахгүй орчинг нь хувааж өгөх замаар багасгаж үндэслэлээр өөрсөддөө тусалдаг. FOL орчлон ертөнц дээр байгаа бүх обьектуудын талаарх бодит байдлыг илэрхийлж чаддагаараа онцлогтой. Энэ нь пропорциональ логиктой холбогдож хамтрал оролцохоос гадна үндэс, дүрэм журмыг дүрслэн үзүүлдэг. Тухайлбал: “ Squares neighboring the wumpus are smelly ” хэдийгээр FOL нь харилцаа холбоонууд болон обьектуудын шаардлаганд existence хийж үйлддэг хэдий ч энэ нь үйл ажиллагаа баримтуудыг үзүүлэхэд үзэгдлүүд ба цаг хугацаа, category-уудын юмсуудыг ontology commitment (таамаглалыг) өгч чаддаггүй. Хамгийн чухал нь эдгээр зүйлс нь олон олон ялгаатай замаар тэдгээр ( хугацаа, үзэгдэл г.м )-тэй зохицуулагдан хягаарлагдмал хүсэлтийг агуулсан ганцхан хандлагыг гарган ирдэг. Neutral үлдээснээр First-order logic( логикийн анхны дараалал) нь domain-д зохистой арга замд эдгээр зүйлүүдийг тодорхойлоход хэрэглэгчмдэд эрх чөлөөг өгдөг. Энэ сонгогдсон эрх чөлөө FOL-ийн үндсэн характеристик юм. Өмнөх жишээн дээр бид “ King ”-г хүмүүсийн шинж чанар болгон авч байсан бөгөөд “ King ” бол хүмүүс болон улсын холбоо болж байгаа эсвэл хүмүүсээс улс хүртлэх функц болж байгааг харж болно. ( Ертөнц дээр улс болгон зөвхөн нэг хаантай байна ) Энд бид ялгаатай хэд хэдэн схем дүрслэлийг AI-д ашиглах болно. Бусдыг нь дараагийн бүлэгт авч үзэх болно. Онолын хувьд First-order logic( логикийн анхны дараалал )-той эквивалент харин зарим зүйл нь ялгаатай байдаг. Бас FOL нь агууллагаараа олон талтай бөгөөд энэ нь юуг ч илэрхийлж, програмчилж чаддаг. Бид мэдлэгийн загварыг суралцаж, FOL-г ашиглан үндэс сууриа тавьсан нь суралцахад ойр сайн ойлгож боловсруулдаг болохоор нь сонгосон юм. FOL-ын дэд хэсэг болох бусад санал төлөвлөгөө нь зөвхөн хязгаарлагдмал domain-уудад хэрэгтэй. Иймээс энэ нь хязгаарлагдмал байдал нь FOL-г удаан хугацаанд оршиход нөлөөлсөн. First-Order Logic (FOL or FOPC) өгүүлбэр зүй: Хэрэглэгч дараах үндсэн элементүүдийг тодорхойлно o Тогтмол тэмдэгтүүд(дэлхий дээрх “гишүүд”) Мари, 3 г.м. o Функц тэмдэгтүүд(гишүүдийг гишүүдтэй холбох)(Мари)-ийн эцэг = Жон г.м. o Өгүүлэхүүн тэмдэгтүүд(гишүүдээс бодит утгад холбох) арай их(5, 3), ногоон(Зүлэг), өнгө(Зүлэг, Ногоон) FOL дараах үндсэн элементүүдийг тодорхойлно o Хувьсагч тэмдэгтүүд. x, y г.м. o Холбогч тэмдэгтүүд. PL-тэй адил; үгүй(~), ба(^), үндэслэн(=>), хэрвээ мөн зөвхөн хэрэв(<=>) Тодорхойлогчид: Нийтлэг(A), Эксистенциал(E)  Нийтлэг тодорхойлогчид нь (“ба”) холбогчтой харгалздаг ба (Ax) P (x) гэсэн нь олонлог дахь х-тэй холбоотой бүхий л гишүүдийн хувьд үнэн гэсэн үг юм.Жишээ: (Ax) далайн гахай(х)=>хөхтөн амьтан(x)  Эксистенциал тодорхойлогчид нь (“эсвэл”) холбогчтой харгалздаг ба (Ex) P(x)гэсэн нь олонлог дахь х-тэй холбоотой зарим гишүүдийн хувьд үнэн гэсэн үг юм.  Нийтлэг тодорхойлогчид нь ихэнхи тохиолдолд “хэрэв тийм –бол дүрэмүүдийг ” бүтээх зорилготойгоор ашиглагддаг. Жишээ нь: (Ax) cs540-сурагч(x) =>ухаалаг(x) гэсэн нь “Бүхий л cs540 сурагчид ухаантай” гэсэн үг юм.Та тун цөөн удаа л нийтлэг тодорхойлогчидыг ашиглан дэлхий дээрх бүхий л гишүүдийн талаар дэлгэрэнгүй мэдэгдэл хийхэд ашиглах болно: cs540-сурагч(x)^ухаалаг(x) нь энэ дэлхий дэх бүхий л хүн cs540-ын сурагч ба ухаантай гэсэн утгатай.  Эксистенциал тодорхойлогчид нь голдуу “ба” холбогчтой харгалздаг ба ямар нэгэн гишүүний талаарх баримт болон шинж чанаруудыг тоочиход ашиглагддаг. Жишээ нь: (Ex) cs5402 – сурагч(x)^ухаалаг(x) гэсэн нь “cs540-д нэг ухаантай сурагч бий” гэсэн утгатай. Англи өгүүлбэрийг FOL өгүүлбэрээр илэрхийлэхэд гардаг түгээмэл алдааны жишээ нь: cs540 – сурагч(x)=>ухаалаг(x) юм. cs540-д харъяалагддаггүй нэг хүн байхад юу болохыг тооцох хэрэгтэй.  Нийтлэг тодорхойлогчидын байрлалыг солих нь утгад өөрчлөлт оруулахгүй. Логик үүднээс авч үзвэл (Ax) (Ay) P(x, y) ба (Ay) (Ax) P(x, y) нь ижил юм. Үүнтэй адилаар та эксистенциал тодорхойлогчидын байрыг солих боломжтой.  Нийтлэгүүд болон эксистенциалуудын байрыг солих нь утгад өөрчлөлт оруулах болно:  Бүгд л хэн нэгэнд талтай: (Ax) (Ey) талтай(х, у) Хэн нэгэн бүгдэд таалагддаг: (Ey) (Ax) талтай(x, y)  Өгүүлбэрүүд нь болзолууд болон цөмүүдээс бүтдэг.  Болзол нь(бодит дэлхий дээрх хүнийг илэрхийлж буй)ямар нэгэн тогтмол, хувьсагч тэмдэгт эсвэл N ширхэг болзолын ямар нэгэн байрлал байж болно. Жишээ нь: х болон f(x1,…, xn) нь болзолууд бөгөөд xi бүр нь болзол юм.  Цөм нь(үнэн эсвэл худал гэсэн утга авна) ямар нэгэн N болзлын өгүүлэхүүн байж болох бөгөөд эсвэл хэрэв P болон Q нь цөм бол ~P, P V Q, P => Q, P (Q зэрэгүүд нь атом юм.  Өгүүлбэр нь нэг цөм байж болно эсвэл хэрэв P нь өгүүлбэр, х - нь хувьсагч бол (Ax) P болон (Ex) P нь өгүүлбэрүүд юм. Зөв зохиогдсон хэллэг(wff) нь “чөлөөт” хувьсагчидгүй бөгөөд бүхий л хувьсагчид нь нийтлэг эсвэл эксистенциал тодорхойлогчидоор “хязгаарлагдсан” өгүүлбэр юм. Жишээ нь: (Ax) P(x, y)-ийн х-нь нийтлэг тодорхойлогчоор тодорхойлогдсон бол у-нь чөлөөтэй байна. Natural language-аас FOL-руу хөрвүүлэх • Every gardener likes the sun.

(Ax) gardener(x) => likes(x, Sun)

• You can fool some of the people all the time. (Ex) (person(x) ^ (At) (time(t) => can-fool(x, t))) • You can fool all of the people all the time. (Ax) (person(x) => (Et) (time(t) ^ can-fool(x, t))) • All purple mushrooms are poisonous. (Ax) (mushroom(x) ^ purple(x)) => poisonous(x) • No purple mushroom is poisonous. ~(Ex) purple(x) ^ mushroom(x) ^ poisonous(x) эсвэл үүнтэй адилаар, (Ax) (mushroom(x) ^ purple(x)) => ~poisonous(x) • There are exactly two purple mushrooms. (Ex) (Ey) mushroom(x) ^ purple(x) ^ mushroom(y) ^ mushroom(y) ^ ~(x=y) ^ (Az) (mushroom(z) ^ (Az) (mushroom(z) ^ purple(z)) => ((x=z) v (y=z)) • Deb is not tall. ~tall(deb) • X is above Y if X is directly on top of Y or else there is a pile of one or more other objects directly on top of one another starting with X and ending with Y. (Ax) (Ay) above(x, y) ( (on(x, y) v (Ez) (on(x, z) ^ above(z, y)))

FOL-оос дүгнэлт хийх дүрэмүүд PL-ээс дүгнэлт хийх Ponens-ийн арга, Ба- Нэвтрүүлэлт, Ба – Хасалт зэрэг аргууд нь FOL-д мөн хэрэгдлэгддэг.Тодорхойлогчидод хэрэглэгдэх шинэ дүрэмүүд o Нийтлэг хасалт Хэрэв (Ax) P(x) нь үнэн бөгөөд c-нь х-ийн утгын муж дахь тогтмол бол P(c) нь бас үнэн. Жишээлбэл, (Ax) eats(Ziggy, x) гэдгээс бид eats(Ziggy, Icecream) гэж болно. Хувьсагч тэмдэгтүүдийг нь дурын жижиг нөхцөл, тогтмол тэмдэгт, болон жижиг нөхцөлд ашиглагдсан функц тэмдэгтүүдээр сольж болно. o Эксистенциал нэвтрүүлэлт Хэрэв P(c) үнэн бол (Ex) P(x)-ийг гарган авч болно. Жишээ нь бид (Ex) eats(Ziggy, Icecream) гэдгээс eats(Ziggy, x) гэж болно. Бүхий л тогтмол тэмдэгтүүд шинэ хувьсагч тэмдэгтүүдээр орлуулагдах болно. Гэхдээ илэрхийлэлд анх хувьсагч тэмдэгтүүд байх ёсгүй. o Эксистенциал Хасалт (Ex)P(x)-ээс P(c) гаргаж болно. Жишээ нь (Ex)eats(Ziggy, x)-ээс eats(Ziggy, Cheese)-ийг гаргана.Хувьсагч тэмдэгтийг тогтмол тэмдэгтээр солих болвол цоо шинээр солих хэрэгтэй ба уг тогтмол тэмдэгт нь Мэдлэгийн Сан дахь ямар ч өгүүлбэрт байгаагүй байх ёстой. Өөрөөр хэлбэл бид алдаатайгаар тогтмолыг нь ашиглах замаар буруу дүгнэлтэд хүрэхийг хүсэхгүй. Бидний мэдэж байгаагаар бол үүнийг үнэн байлгах хэдэн тогтмол үргэлжид байх тул бид цоо шинэ нэгэн тэмдэгтийг уг тогтмолын(үл мэдэгдэх) оронд тавьж болно. o Paramodulation Бүх Pi, Qi нь утга ил Жишээ нь: P(a) ба а=b гэдгээс Р(b) гарна. o Ерөнхий Ponens-ийн арга(GMP) – Ба-Нэвтрүүлэлт, Нийтлэг-Хасалт, Ponens-ийн Аргын хослол – Жишээ нь: P(c), Q(c) болон (Ax)(P(x) ^ Q(x)) => R(x) гэдгээс R(c)-г гарган авна. – P1, P2, …, PN цөм өгүүлбэрүүд, үндэслэгээний өгүүлбэр (Q1 ^ Q2 ^ … ^ QN) => R(Q1, Q2, …, QN болон R нь цөм өгүүлбэрүүд) өгөгдсөн байхад subst(Theta, Pi) = subst(Theta, Qi) i=1…N; subst(Theta, R)-ыг гарган авж болно. – subst(Theta, alpha) нь alpha өгүүлбэрт Theta-гаар тодорхойлогдох олонлогыг орлуулахад үүсэх үр дүнг илэрхийлж байгаа. – Орлуулах жагсаалт Theta = {v1/t1, v2/t2, …, vn/tn} нь бүхий л vi-уудыг харгалзах ti-уудаар нь солино гэсэн үг юм. Орлуулалтыг зүүнээс баруун тийш хийдэг. Жишээ нь: subst({x/IceCream, y/Ziggy}, eats(y, x)) = eats(Ziggy, IceCream) FOL –оос автоматаар дүгнэлт гаргах • Хувьсагчид нь өөрсдийн утгын мужаас хязгааргүй олон шийдийг авж болох тул FOL-оос автомат дүгнэлт гаргах нь PL-ээс гаргахаас хүнд байдаг. Иймд дүгнэлт гаргахын тул Нийтлэг-Хасалтын аргыг хязгааргүй олон янзаар ашиглах боломжтой. • Годелын Бүтэн Байдлын Теоромоор бол FOL-ын шаардлагын тодорхой хэсэг нь л шийдтэй аж. Уг онол ёсоор өгөгдсөн өгүүлбэр нь тодорхой хэдэн аксиомын хувьд үнэн бол түүнийг шийдэж чадах процедур олдох болно. Хэрэв өгөгдсөн өгүүлбэр худлаа бол процедур уг асуудлыг шийдэх эсэх нь эргэлзээтэй. Өөрөөр хэлбэл энэ тохиолдолд процедур маань мөнх ажиллаж болно. • Дүгнэлт хийх Үнэн Хүснэгтийн арга нь хүснэгтийн хэмжээ нь хязгааргүй болж болох тул FOL-ыг бүрэн шийдэж чадахүй. • Natural Deduction нь FOL дээр ажиллах хэдий ч бид өгөгдсөн өгүүлбэрүүдийн олонлог дээр бараг бүх дүгнэлтийн аргыг бүхий л боломжит байдлаар шалгах шаардлагатай байдгаас үүдэн “салаалалтын нөхцөл” нь хэт өндөр болдог тул тийм ч тохиромжтой биш. o Ерөнхийлсөн Ponens-ын арга нь FOL-ыг бүрэн шийдэж чадахгүй. Ерөнхийлсөн Ponens-ын арга нь зөвхөн Horn өгүүлбэр агуулсан KB-д бүрэн ажиллана. o Horn өгүүлбэр нь доорхи бүтэцтэй: o (Ax) (P1(x) ^ P2(x) ^ … ^ Pn(x)) => Q(x), 0 буюу түүнээс их ширхэг Pi байгаа ба Pi болон Q нь эерэг утгатай байх ёстой.  Horn өгүүлбэрүүд нь FOL-оор илэрхийлэгдэх өгүүлбэрүүдийн олонлогийн дэд олонлог юм. Жишээ нь P(a) v Q(a) нь FOL хэлбэрт байгаа хэдий ч Horn өгүүлбэр биш юм. GMP ашиглах Natural Deduction арга нь зөвхөн Horn өгүүлбэрүүд агуулах KB-нүүдэд хүчинтэй. Баталгаа нь KB-дэх аксиомуудын хамтаар GMP-г ашиглах замаар зорилгодоо хүртэл шинэ өгүүлбэрүүдийг үүсгэх замаар хэрэгждэг. Энэхүү арга нь KB-гээс зорилго хүртлээ “урагшилдаг” тул урагш хөврөх(forward chaining) гэгддэг. Жишээ: KB = All cats like fish, cats eat everything they like, and Ziggy is a cat. FOL хэлбэрт KB = 1. (Ax) cat(x) => likes(x, Fish) 2. (Ax) (Ay) (cat(x) ^ likes(x, y)) => eats(x, y) 3. cat(Ziggy) Дарааллын зорилт: Does Ziggy eat fish? Баталгаа: 4. болон(3) дээр GMP ашиглан 4. likes(Ziggy, Fish)-ыг гарган авна. 5. (3), (4) болон (2) дээр GMP ашиглан eats(Ziggy, Fish)-ыг гарган авна. 6. Иймээс хариулт нь: Yes, Ziggy eats fish. GMP ашиглах Урвуу хөрвөх(backward chaining) арга нь зөвхөн Horn өгүүлбэрүүд агуулах KB-д хүчинтэй. Баталгаа нь дарааллын зорилтоос эхлэх бөгөөд үүнийг биелүүлж чадах үндэслэгээг олон түүнийхээ баталгаа үнэлгээг олох зэргээр ухран явсаар анхны аксиомууддаа хүрдэг. Жишээ нь: Does Ziggy eat fish. Eats(Ziggy, fish)-ийг батлахын тулд энэ нь ямар нэгэн аксиомоос шууд үндэслэсэн эсэхийг шалгах хэрэгтэй. Илэрхий биш байгаа тул энд зорилттой холбоотой Horn өгүүлбэр байгаа эсэхийг шалгана. Энд: Баталгаа: 1. 2-р Horn өгүүлбэрийн RHS нь зорилттой тохирч байгаа тул 2-р RHS-тэй холбоотой cat(Ziggy) болон likes(Ziggy, Fish) гэсэн 2 дэд зорилтыг батлах хэрэгтэй. 2. Cat(Ziggy) нь 3-р аксиомтой адил байгаа тул бид нэг дэд зорилтыг “шийдлээ”. 3. Likes(Ziggy, Fish) нь 1-р RHS –тэй тохирсон тул cat(Ziggy)-г батлах хэрэгтэй. 4. Cat(Ziggy) нь 3-р аксиомтой адил(өмнө үзсэнээр) тул бид энэ дэд зорилтыг баталлаа. 5. Бүх дэд зорилт биелэгдсэн тул бид баталж дууслаа. Yes, Ziggy eats fish. Resolution Refutation аргачлал(Нягтаршилын аргачлал) • Нягтаршилын аргачлал нь FOL-д ашиглагдах боломжийн, бүрэн ажиллах арга юм. • Нягтаршилын аргачлал нь дүгнэлтэнд нэг л дүрмийг ашигладаг ба тэрхүү нягтаршилын дүрэм(RR) нь PL – д ашиглагддаг ижил дүрмийн ерөнхий хэлбэр нь юм. • PL-дэх Нягтаршилын дүрэм: P1, P2, …, PN болон ~P1 v Q2 v … v Qm 2 өгүүлбэрээс P2 v … v PN v Q2 v … v Q задлах өгүүлбэр(resolvent sentence)үүснэ. Жишээ:  P болон ~P v Q –ээс Q гарна.(Ponens-ийн дүрэм)  (~P v Q) болон (~Q v R) – ээс ~P v R гарна.  P болон ~P – ээс Худал гарах болно.  (P v Q) ба (~P v ~Q)-ээс Үнэн гарна.


FOL хэлний хэрэглээ Мэдлэгийг дүрслэхэд домэйн гэдэг нэр томъёогоор гадаад орчны ямар хэсгийн талаар илэрхийлэх гэж байгааг хэлэхэд хэргэлдэг. Жишээ болгоод гэр бүл гэсэн домэйнийг авч үзье. Энэ домэйнд <Цэцэг бол Болдын эх>, <Дорж бол Нарангийн эцэг > гэх мэт баримтууд, <хэрэв х нь у-н эх, у нь z-ын parent бол х нь z-ын эмээ байна. > гэх мэт дүрмүүд байдаг. Энэ домэйны объектууд нь хүмүүс байна. тэд нар хүйс гэсэн шинж чанартай байх бөгөөд хоорондоо эцэг эхийн, ах дүүгийн, гэрлэсэн гэх мэт холбоосоор холбогдоно. Иймээс бид нар эр, эм гэсэн 2 унар предикат ашиглана. Parent гэдэг нь эцэг, эх нь гэсэн утга санааг илэрхийлдэг функц юм. ихэнх холбоос нь 2-тын Эцэг, эх , ах, хүү, ач, эхнэр, нөхөр гэх мэт холбоосууд байна. бид бас Эцэг() Эх() гэсэн функцуудыг ашиглана. Жишээлбэл : ∀ m,c Эх(с) ⇔ Эмэгтэй (m) ∧ Parent (m,c) нь тухайн хүний ээж нь уг хүний Parent байх ба эмэгтэй хүн байна. эр ба эм нь эсрэг гэдгийг харуулахдаа : ∀ х Эр(х) ⇔ ¬ Эм(х) Parent ба хүүгийн холбоо нь : ∀ р,с Parent(p, c) ⇔ Хүү(с, р) ∀ g,c Grandparent (g, c ) ⇔ ∃ p Parent(g, p)∧Parent(p,c) Олонлогуудын домэйн Мэдлэгийг дүрслэхэд олонлог гэсэн ойлголт нь чухал үүрэгтэй. Бид хоосон олонлогоос эхлүүлээд олонлогууд дээр гүйцэтгэх үйлдлүүдийг авч үзнэ. Дараах 8-н аксиом байдаг. Энд Нэмэх гэдэг функц нь олонлогт шинэ элмент нэмнэ. 1. ∀s Олонлог(s)⇔(s=ХоосонОлонлог)∨(∃x, s2 Олонлог(s2)∧s=Нэмэх(х, s2)) 2. ¬∃x, s Нэмэх(х, s) =ХоосонОлонлог 3. ∀ x, s Гишүүн(x, s) ⇔ s = Нэмэх (х, s) 4. ∀ x, s Гишүүн(x, s) ⇔ ∃ y, s2 (s=Нэмэх(y, s2) ∧ (x=y ∨ Гишүүн(x, s2))) 5. ∀ s1, s2 ДэдОлонлог(s1, s2)⇔(∀x Гишүүн(x, s1)⇒ Гишүүн(x, s2)) 6. ∀ s1, s2 (s1= s2)⇔( ДэдОлонлог(s1, s2)∧ ДэдОлонлог(s2, s1) 7. ∀ x, s1, s2 Гишүүн(x, Огтлолцол(s1, s2)) ⇔Гишүүн(x s1)∧ Гишүүн(x s2) 8. ∀ x, s1, s2 Гишүүн(x, Нэгдэл(s1, s2)) ⇔Гишүүн(x s1)∨ Гишүүн(x s2) Бас дараах стандарт тэмдэглэгээнүүдийг ашигладаг. Олонлогын хувьд : = Хоосон олонлог {x}=Нэмэх(x, ХоосонОлонлог) {x,y}= Нэмэх(x, Нэмэх(y, ХоосонОлонлог)) {x,y|s}=Нэмэх(x, Нэмэх(y, s)) x∪y = Нэгдэл ( x, y ) x∩y=Огтлолцол ( x,y ) x∈y=Гишүүн ( x, s ) x⊆y=ДэдОлонлог( x, y ) Жагсаалтын хувьд : []=nil [x]=Cons(x,nil) [x, y]=Cons(x, Cons(y, nil)) [x, y| l]=Cons(x, Cons(y, l)) Хэрэв мэдээлэлийн баазад өгүүлбэр нэмэх болвол : TELL(Мэдээлэлийн бааз, (∀ m, c Эх(c)⇔Эмэгтэй(m)∧Parent(m,c))) гэх мэтээр оруулна. Одоо TELL(Мэдээлэлийн бааз, (Эмэгтэй(Дулмаа) ∧Parent(Дулмаа, Дорж)∧Parent (Дорж, Долгор))) гэсэн өгүүлбэрийг оруулж өгөөд дараах маягын асуултын мэдээлэлийн баазаас асууж болно. ASK(Мэдээлэлийн бааз, ∃х Хүү(х, Дорж)) Энэ тохиолдолд Долгор нь Доржийн хүүхэд гэсэн хариулалтыг буцаах болно. Орчны өөрчлөлтийг дүрслэх нь Агентад гадаад орчноос мэдээлэл ирэх бүрт түүнийг мэдээлэлийн санд нэмж өгч байгаа бөгөөд энэ нь уг агентын гадаад орчны талаарх бүх л мэдэж байгаа зүйл нь болох юм. орчны өөрчлөлтийг илэрхийлдэг дүрмүүдийг diachronic дүрмүүд гэдэг. Өөрчлөлтийг дүрслэх хялбар арга бол жишээ нь агент [1.1] өрөөнд байна гэсэн мэдээлэлийг устгаад оронд нь [1.2] өрөөнд байна гэдэг өгүүлбэрийг оронд нь бичиж болно. Хэрэв уг агентаас зөвхөн сүүлийн төлвүүдийн талаар асуух бол энэ агент нь сай ажиллах бөгөөд харин өнгөрсний талаарх мэдээлэлүүд нь хаягдсан байх болно. Үүнээс зайлсхийсэн өөр нэг арга бол агент нь өнгөрсөн болон боломжит ирээдүйн мэдээлэлүүдэд тусд нь мэдээлэлийн бааз үүсгээд энэ хооронд ажиллах явдал юм. ийм агент нь хэрэв би урагшаа явбал яах бол гэдгийг тааварлаж чадна. Орчны тухай мэдээлэлийг төлвүүдийн дараалал байдлаар хүлээн авдаг. Төлөв бүр нь өмнөх төлвөөсөө ямар нэг үйлдлээр үүсэн бий болсон. Төлвийн тогтмолыг S1 хэлбэртэй гэж үзье. Тэгвэл дараах байдлаар эхний 2 байрлалыг илэрхийлж болно. At (Agent, [1.1], S0) ∧ At (Agent, [1.2], S1) Нэг төлвөөс нөгөөд шилжих үйл явцыг ҮрДүн(үйлдэл, төлөв) байдлаар илэрхийлдэг. ҮрДүн(Урагшаа, S0)=S1 ҮрДүн(Эргэ(баруун), S1)=S2 ҮрДүн(Урагшаа, S2)=S3 Доорх байрлалуудыг харууллаа.


S0 S1 S2 S3 Тухайлбал алт авах болон хаях процессыг доор харууллаа. ∀ s AtGold(s) ⇒Present(Gold, s) ∀ x,s Present(x,s) ∧Portable(x) ⇒ Агуулна(x, ҮрДүн(Авах, s)) Хэрэв алтаа юу ч үгүй болно. ∀ x,s ¬Агуулна(x, ҮрДүн(Хаях, s)) Гэвч эдгээр нь агентийн алт агуулж байгаа эсэхийг илэрхийлэхэд хангалтгүй юм. Бас агент нь ямар нэгэн зүйл агуулж байгаа ба түүнийгээ хаяхгүй дараагийн төлөвтөө хадгалсаар л байна гэдгийг хэлэх хэрэгтэй. Мөн ижлээр хэрэв агент нь алтгүй, ямар ч зүйл аваагүй бол дараагийн төлөвтөө мөн л алтгүй байна. ∀ a,x,s Агуулна(x,s)∧(a≠Хаях)⇒Агуулна(x, ҮрДүн(a, s)) ∀ a,x,s ¬Агуулна(x,s)∧(a≠Хаях∨¬ (Present(x,s)∧Portable(x)) ⇒¬Агуулна(x, ҮрДүн(a, s)) Төлвийн аксиом нь дараах бүтэцтэй байна. Ямар нэг үйлдлийн дараа Үнэн байна гэдэг нь Үнэн байх үйлдэл хийсэн эсвэл аль хэдийн үнэн байсан бөгөөд түүнийг худал болгох үйлдэл хийгээгүй. Алт агуулах тухайд бол дараах аксиом гарч ирнэ. ∀a,x,sАгуулна(x,ҮрДүн(a,s))⇔((a=Авах∧Present(x,s) ∧Portable(x))∨(агуулна(x,s)∧a≠хаях))