Основы искусственного интеллекта: учебное пособие
Download 428.17 Kb.
|
Основы искусственного интеллекта учебное пособие
- Bu sahifa navigatsiya:
- Prolod tilidagi dasturning tuzilishi
maqsadlar (doa1) deb ataladi . Maqsad qo'shma gap bo'lsa, unga kiruvchi faktlarning (tuzilmalarning) har biri pastki maqsad (submaqsad) deb ataladi. Maqsadning to'g'riligini isbotlash uchun xulosa chiqarish jarayoni ma'lumotlar bazasida maqsadni ma'lumotlar bazasidagi bir yoki bir nechta boshqa faktlar bilan bog'laydigan xulosa chiqarish qoidalari va/yoki faktlar zanjirini topishi kerak [5].
Subgolning isboti bayonotlar orasidagi moslikni qidirish orqali amalga oshirilganligi sababli, u ba'zan moslashish deb ataladi. Quyidagi so'rovni ko'rib chiqing: qopqoq (bob). Bu maqsad eng oddiy shaklga ega. Rezolyutsiya uchun bayonotning to'g'ri yoki noto'g'riligini aniqlash nisbatan oddiy: bu maqsadning namunasi ma'lumotlar bazasidagi faktlar va qoidalar bilan taqqoslanadi. Agar haqiqat teging (bob). ma'lumotlar bazasida mavjud bo'lsa, unda dalil ahamiyatsiz bo'ladi. Biroq, ma'lumotlar bazasida quyidagi fakt va xulosa qoidasi mavjud deb faraz qiling: ra^her (bob). mn(X) n ^ er(X). Keyin Prolog tili tizimidan ushbu ikkita bayonotni topib , maqsadning haqiqatini aniqlash uchun foydalanishni talab qilish mumkin. Bu X o'zgaruvchisini bob qiymati bilan vaqtincha instantsiyalash uchun birlashtirishni amalga oshirish zaruratiga olib kelishi mumkin . Endi maqsadni ko'rib chiqing (X) ga teging. Bunda Prologue til tizimi berilgan maqsadni ma'lumotlar bazasida saqlangan bayonotlar bilan solishtirishi kerak. Har qanday ob'ekt parametr sifatida belgilangan maqsad ko'rinishidagi birinchi bayonot X o'zgaruvchisini ushbu ob'ektning qiymati bilan instantiatsiya qilishga olib keladi . Agar ma'lumotlar bazasida belgilangan maqsad shakliga ega bo'lgan bayonotlar bo'lmasa, tizim "N 0 " javobi bilan maqsadga erishish mumkin emasligini ta'kidlaydi. Ma'lumotlar bazasida berilgan maqsad va faktni solishtirishda ikkita qarama-qarshi yondashuv mavjud. Tizim ma'lumotlar bazasida saqlangan faktlar va qoidalar bilan qidirishni boshlashi va maqsadga olib keladigan o'yinlar ketma-ketligini topishga harakat qilishi mumkin. Ushbu yondashuv pastdan yuqoriga o'lchamlari yoki to'g'ridan-to'g'ri xulosa chiqarish (/yoki bosqichma-bosqich) deb ataladi. Muqobil yondashuv shundan iboratki, tizim, aksincha, maqsaddan qidirishni boshlaydi va ma'lumotlar bazasida saqlanadigan ba'zi bir dastlabki faktlar to'plamiga olib keladigan tegishli bayonotlar ketma-ketligini topishga harakat qiladi . Ushbu yondashuv yuqoridan pastga rezolyutsiya yoki orqaga qarab xulosa chiqarish deb ataladi. Mumkin bo'lgan javoblarning kichik to'plami mavjud bo'lganda, teskari xulosa yaxshi ishlaydi . To'g'ridan-to'g'ri xulosa qilish mumkin bo'lgan to'g'ri javoblar soni ko'p bo'lganda yaxshiroq ishlaydi; bu holatda, teskari xulosa chiqarishda, javob olish uchun juda ko'p sonli taqqoslashlar talab qilinishi mumkin. Prologue tilining mavjud ilovalari hal qilish uchun orqaga qarab xulosa chiqarishdan foydalanadi, chunki ularning ishlab chiquvchilari to'g'ridan-to'g'ri xulosa chiqarishdan ko'ra kengroq muammolar sinfi uchun orqaga qarab xulosa chiqarish mos keladi deb o'ylashgan. Xuddi shu so'rov misolini yana ko'rib chiqing: qopqoq (bob). Aytaylik, ma'lumotlar bazasida quyidagi fakt va xulosa qoidasi mavjud: Ga^beg (bob). mn(X) n ^ er(X). To'g'ridan-to'g'ri xulosa chiqarishda tizim birinchi bayonotni topishi kerak. Keyin maqsadning xulosasi quyidagicha amalga oshiriladi: X o'zgaruvchisi bob qiymati bilan instantiatsiya qilinadi , birinchi taklif ikkinchi qoidaning o'ng tomoniga mos keladi Gadeg (X) , keyin esa ikkinchi taklifning chap tomoni. golga mos keladi. Qarama-qarshi xulosa bo'lsa, birinchi navbatda maqsadni ikkinchi taklifning chap tomoni bilan solishtirish kerak mn(X) , X o'zgaruvchisini bob qiymati bilan konkretlashtirish . Keyin, oxirgi bosqichda, tizim ikkinchi Gadeg (bob) so'zining o'ng tomoniga birinchi so'z bilan mos kelishi kerak. Til dizayni bilan bog'liq yana bir murakkablik , maqsad bir nechta tuzilmalarga ega bo'lganda paydo bo'ladi (yuqoridagi misolda bo'lgani kabi). Bunday holda, savol aniq qanday qilib qidiruvni amalga oshirish kerak, birinchi navbatda chuqurlikmi yoki kenglikmi? Birinchi chuqur qidiruvda (depK - dmzb seagK) tizim qolgan pastki maqsadlar ustida ishlashni boshlashdan oldin birinchi pastki maqsad uchun to'liq takliflar zanjirini ( dalil ) topadi. Kenglikda birinchi bo'lib qidirishda ( breaibH- ^bzb zeark) tizim barcha pastki maqsadlarda parallel ravishda ishlaydi. Prologue tilini ishlab chiquvchilar asosiy usul sifatida chuqurlikdan birinchi qidirishni tanladilar, chunki u kamroq kompyuter resurslarini talab qiladi, kenglikdan birinchi qidirish esa parallel hisoblashni amalga oshirishni talab qiladi va katta hajmdagi xotirani talab qilishi mumkin. Biz muhokama qilishimiz kerak bo'lgan Protodning rezolyutsiya mexanizmining oxirgi xususiyati bu orqaga qaytish (bacchirasetd). Maqsadni bir nechta kichik maqsadlar bilan qayta ishlashda, agar tizim pastki maqsadlardan birining haqiqatini isbotlashga qodir bo'lmasa, u isbotlab bo'lmaydigan ushbu kichik maqsadni qayta ishlashni rad etadi. Buning o'rniga, tizim oldingi pastki maqsadni qayta ko'rib chiqadi (agar u yagona bo'lsa) va uning muqobil echimini topishga harakat qiladi. Oldin isbotlangan pastki maqsadni qayta ko'rib chiqish uchun maqsadning oldingi holatini tiklash "orqaga qaytish" ("orqaga qaytarish") deb ataladi. Ushbu kichik maqsad uchun oldingi qidiruv to'xtatilgan joydan olib borilgan qidiruv natijasida yangi yechim topiladi. uchun echimlarning ko'pligi uning o'zgaruvchilarining turli xil konkretlashuvlari mavjudligi natijasidir. Shuni ta'kidlash kerakki, orqaga qaytish vaqt va xotirani talab qiladi, chunki u har bir kichik maqsad uchun barcha mumkin bo'lgan echimlarni topishi mumkin. Bundan tashqari, ushbu sub-maqsadli dalillar yakuniy yechimni topish uchun zarur bo'lgan vaqtni minimallashtirish uchun etarli darajada tashkil etilmagan bo'lishi mumkin va bu muammoni yanada kuchaytiradi. Orqaga qaytish haqidagi tushunchamizni mustahkamlash uchun quyidagi misolni ko'rib chiqing. Ma'lumotlar bazasida faktlar va qoidalar to'plami bo'lsin va Proto tili tizimida quyidagi murakkab maqsad ifodalansin: malay(X), parepk(X, "Szelley"). X o'zgaruvchining X ning Shelley ( Szelley ) ning erkak (erkak ) va ota-onasi ( parenk ) ekanligini ko'rsatadigan har qanday namunasi mavjudligini so'raydi . Prolog tili tizimi avval matel funktori bilan ma'lumotlar bazasida birinchi faktni topishi kerak . Keyin topilgan fakt parametri (aytaylik, Mlke parametri) bilan X o'zgaruvchisini belgilaydi va keyin parenk("Mlke", "Stelley") taklifining to'g'ri ekanligini isbotlashga harakat qiladi . Agar bu bajarilmasa, u birinchi pastki maqsad mai(X) ga qaytadi va uni X oʻzgaruvchisining baʼzi bir muqobil namunasi bilan qondirishga yana urinib koʻradi. Maʼlum boʻlishi mumkinki, rezolyutsiya jarayonini amalga oshirishda tizim har bir narsani qidirishi kerak boʻladi. u Shelley ota-onasi bo'lgan ulardan birini topish oldin ma'lumotlar bazasida odam . Bundan tashqari, tizim maqsadga erishish mumkin emasligini isbotlash uchun ma'lumotlar bazasidagi barcha erkaklarni ko'rib chiqishi kerak . Ammo shuni yodda tutingki, agar ikkita pastki maqsadning tartibi teskari bo'lsa, bizning misol maqsadimizni samaraliroq hal qilish mumkin: faqat tizim Shelleyning ota-onasini qaror bilan topgandan so'ng, ma1e pastki maqsadi bilan yuzni topishga harakat qiling . Shelly ma'lumotlar bazasidagi erkaklarnikiga qaraganda kamroq ota-onalarga ega bo'lsa, bu usul samarali bo'ladi, bu, albatta, juda maqbuldir. Shuni ham yodda tutingki, Prologue til tizimi har doim ma'lumotlar bazasini birinchi elementdan oxirgisigacha bo'lgan yo'nalishda qidiradi. Quyidagi bo'limlar prologdagi misollarni hal qilish jarayonini tasvirlaydi. Prolod tilidagi dasturning tuzilishi Prolog tilida yozilgan dastur quyidagi bo'limlardan iborat: domenlar tavsifi, ma'lumotlar bazasi, predikatlar tavsifi, maqsad tavsifi va tasdiqlar tavsifi [4]. Ushbu bo'limlarning boshlanishi Dora1n3 , DAABAZ , FIAAAAAAAAAAAAAAAaaaaaaaaaaaaaa ushbu bo'limlarning kalit so'zlari bilan ajralib turadi . Ushbu bo'limlarning maqsadi: linux bo'limida dasturda foydalaniladigan ob'ektlarning turli sinflarini tavsiflovchi domen ta'riflari mavjud ; bo'limi dinamik ma'lumotlar bazasi predikatlari bo'lgan ma'lumotlar bazasi tasdiqlarini o'z ichiga oladi ; agar dastur bunday ma'lumotlar bazasini talab qilmasa, u holda ushbu bo'limni o'tkazib yuborish mumkin ( dinamik ma'lumotlar bazasidan foydalanish imkoniyatlari keyinroq muhokama qilinadi); preikasklar bo'limi dastur tomonidan qo'llaniladigan predikatlarni tavsiflash uchun ishlatiladi; doa1 bo'limida yaratilgan dasturning maqsadi shakllantirilgan; bu holda, ba'zi kichik maqsadlar komponentlar bo'lishi mumkin , ulardan dasturning yagona maqsadi shakllanadi; bo'lim bandlari apriori ma'lum bo'lgan faktlar va qoidalarni o'z ichiga oladi ; ushbu bo'limning mazmuni haqida dasturning ishlashi uchun zarur bo'lgan ma'lumotlar haqida gapirish mumkin. E'tibor bering, ko'pgina dasturlar ushbu bo'limlarning beshtasini ham o'z ichiga olmaydi. Prolog tili, shuningdek, / * va */ belgilar bilan tuzilgan sharhlarni dasturga kiritish imkoniyatini beradi . Domenlar va predikatlar tavsifiga misol keltiramiz. Ikki ob'ekt o'rtasidagi "sevadi" munosabatini ko'rib chiqing (bu odamning nomi va bu odam sevadigan narsaning nomi bo'lsin). allaqachon nx3 predikatidan foydalanishning bir nechta misollarini keltirdik , masalan, 11ss("Magy",olma) . Bu erda Ukes - predikat (predikat termini), Magy va olma esa bu predikatning ob'ektidir. dasturdagi har bir predikat uchun ob'ekt turlarini ko'rsatishni talab qiladi . Ushbu ob'ektlarning ba'zilari raqamli ma'lumotlar bo'lishi mumkin, boshqalari esa belgilar qatori bo'lishi mumkin. Shuning uchun, rgencaIs bo'limida har bir predikatlar uchun ob'ektlar turini ko'rsatishingiz kerak : Download 428.17 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling