Tabiiy tillarni qo’llab quvvatlash

2.2 Tabiiy tillarni qo’llab quvvatlash.
Intellekt - bu insonning tafakkur yuritish qobiliyatidir. «Intellekt» so‘zi lotincha «intellectus» so‘zidan kelib chiqqan bo‘lib, u bilish (aniqlash), tushunish yoki faxmlash (akl) ma’nosini beradi.Agar o‘rtacha aqliy qobiliyat 100 ball deb qabul qilinsa, u holda o‘ta kobiliyatli insonlarda bu ko‘rsatkich 150, 180, hattoki 200 ballga etishi mumkin. Amerikalik shaxmatchi, jahon eks-chempioni Robert Fisherning bu kursatkichi 187 ball bo‘lgan, XIX asr yarmida yashagan angliyalik mantiqchi Djon Styuart Mill uch yoshidayoq qadimgi yunon tilida gapira olgan va uning ko‘rsatkichi 190 ballgacha borgan.
Sun’iy intellekt -bu inson intelektining ba’zi vazifalarini o‘zida mujassamlashtirgan avtomatik va avtomatlashtirilgan tizimlar xususiyatidir.Kompyuterda hal qilinayotgan masalalarning ko‘pchiligi intellektual hisoblanmaydi. Lekin qo‘yilgan masala murakkab bo‘lib, agar uni echishning aniq uslubi (algoritmi) topilgan va unga mos dastur ishlab chiqilgan bo‘lsa, u ishni intellektual yoki haqiqatdan ijodiy hal qilingan deb hisoblasa bo‘ladi. Demak, intellektual tizimning asosiy vazifasiga to‘plangan bilimlar bazasini tadbiq etish va undan foydalangan holda murakkab masalalarni echishning optimal yo‘llarini izlash, hamda uning echimini topish ham kiradi.
Haqiqiy voqelikni to‘la bilish, axborotlar bilan chiqish, qayta ishlangan axborotlarni saqlash va ulardan foydalanish imkoniga ega bo‘lgan tizimlarga bilimlar bazasi deyiladi. Ular tarkibiga ma’lumotlar bazasi va dasturiy vositalar kiradi. Bilimlar bazasini unga qo‘lllaniladigan interfeysiga ko‘ra shartli ravishda uchga ajratish mumkin.
Birinchisi -intellektual axborot izlash tizimlari. Bu tizim orqali ish joyidan turib bilimlar bazasidan kerakli axborotni izlash va tarmoq kutubxonasidan foydalanish mumkin.
Ikkinchisi -hisoblash mantiqiy tizimlari. Ular yordamida modellarning murakkabligiga qaramasdan boshlang‘ich ma’lumotlar asosida boshqarishning ilmiy masalalarini rejalashtirish va loyihalashtirish masalalarini hal qilish mumkin.Mantiqiy dasturlash,mantiqiy hisob jarayoni,predikatlar algebrasi va bularni qo’llab quvvatlovchi formallatasiya- Prolog dasturlash tili haqida so’z yuritiladi. Prolog dasturlash tilining asosiy funksional imkoniyatlari misollar orqali ko’rsatiladi.Prolog dasturlash tili quyidagi xususiyatlarni o’z ichiga oladi.
Masalan:
1.Prolog tili deklarativ dasturlashni kuchli rivojlantirgan ilk qadam - mantiqiy dasturlash tilidir.
2. Prolog deklarativ til, yani prolog dastur aniq hisoblash usuli bilan bog’liq bo’lmasdan, static hisoblanadi.
3. Prolog tilida fikr yuritish va dasturlash traditsion fikrlash va traditsion dasturlashdan juda katta farq qiladi.Avval bu ish bilan qiziqgan olimlar juda ko’p bo’lgan.Shular jumlasidan Elenu Efimovu (Elena Efimova),Marka Safronova (Mark Safronov),Tomasa de Bura (Thomas W.de Boer),Styuarta Kamminga (Stuart Cumming), Rouz SHapiro (Rose Shapiro),YUriya Ilina (Yuri Ilyin), Reni Kari (Reny Cury), Filippa Apolinariya(Philippos Apolinarius),Tomasa Lindera Pulsa (Thomas Linder Puls) i Elizavetu Safro (Elizabeth Safro).
Hozirgi vaqtga kelib Mantiqiy dasturlash tiliga juda katta ahamiyat berilmoqda.Shu qatorda Visual Prolog dasturi ham bizning informatika, kompyuter sohamizda juda katta o’rin egallaydi.Visual Prolog dasturini ishlatish,tekshirish,bu dasturlarni qanday ishlashi,nimalardan tashkil topgani desertatsiyada ko’rsartib o’tilgan.Prolog tilida lingvistik ifodaning manosi ifodalanadi, ya’ni fakt (klauz)lar formal tilda yoziladi. Prolog mantiqiy dasturlash tili – ifoda ma’nosini faktlar orqali yozish formal tili hisoblanadi. Bu til vositasida tabiiy tillarni qayta ishlash tizimlarning asosiy komponentlari amalga oshirilishi mumkin. Prolog tili asosida mantiqiy va lingvistik dasturlash asosiy komponentlarni tushunish va ular bilan ishlash ko’pgina adabiyotlarda keltirilgan.
Simvolli mantiq yaratishning bosh maqsadlaridan biri mantiqiy kelib chiqarish tushunchasiga formal, mexanik mano berishidir. Agar biror bir masalallar sinfiga tegishli shartlar mos mantiqda oldshartlar to’plami sifatida formal tasvirlansa va agar yechilishi talab qilinadigan masala ham ushbu mantiqda formal gap sifatida tasvirlansa, u holda bu masalaning yechimini old shartlardan kelib chiquvchi formal isbot sifatida qurish mumkin.
Misol uchun lingvistika sohasida oldshartlar til ifodalari sinfining grammatika qoidalari shartlarini bajarilishini ko’rsatib, masalaning yechimi ”Shunday A mavjudki qaysiki A – bu u garamatik ifodaning tahlili(interpretatsiyasi)” umumiy gap ko’rinishida bo’ladi. Bu gapning konstruktiv isboti nafaqat A tahlil(interpretatsiya)ning mavjudligini ko’rsatadi, balki A ning joriy qiymatini ham topadi.
Konstruktiv isbot protsedurasi nafaqat isbotni quradi, balki gapdagi noma’lumlarning qiymatlarini aniqlaydi. Shunday qilib konstruktiv isbotni shu noma’lumlarning qiymatlarini aniqlovchi hisoblash qurilmasi sifatida ham qarash mumkin. Shu nuqtai nazardan oldshartlarni dastur sifatida, masala ko’rsatilgan gapni - ushbu dasturni ma’lum kiritish parametrlari va noma’lumni qiymatlarini chaqiruvchi chaqirish sifatida va isbotni esa dasturning bajarilishi sifatida qarash mumkin. Bu mantiqiy dasturlashning asosiy alifbosidir.
Mantiqiy dasturlash tizimini yasash uchun qoidalarning ishonchli, to’la to’plami va sistematik qo’llaniladigan proseduralargina yetarli emas. Hisoblash qurilmasi yetarli bo’lishi uchun isbot prosedurasi tomonidan hali tekshirilmagan isbot imkonlari(yo’llari)ning birortasi ham tashlab ketilishi mumkin emas.Ya’ni prosedura isbotsiz o’z ishini faqatgina isbotning o’zi mavjud bo’lmasagina tugatishi mumkin. Agar javob mavjud bo’lsa biz dasturning albatta javob bilan yakunlanishini kutamiz (mashina xatolari, xotirani to’lishi va shunga o’xshash holatlar hisobga olmaganda). Old shartlardan kerakli natijadan tashqari, bu natijaga mos kelmaydigan (bu natijadan farqli bo’lgan) bir necha natijalar kelib chiqishi mumkin. Isbot protsedurasi maqsadga yo’naltirilgan holda faoliyat ko’rsatishi va barcha mos kelmaydigan natijalarni, umuman daxli bo’lmagan hisoblashlarni bajarilisihi kutmaymiz.
Aslida to’liqlik va maqsadga yo’naltirilganlikni to’la qo’lga kiritish mushkul, ammo bu qiyinchilikni mantiqiy dasturlash osonlashtiradi. Bu holda muommo mantiqiy dasturlashning ifodalanuvchanligi va ishonchli, effektiv hisoblash orasida kompramis(kelishuv) asosida hal etiladi. Mantiqiy dasturlash ana shu kompromisni ochish ifodalash va prolog tilida amalga oshirilishiga qaratilgan.
Eng avvalo prolog deklarativ til, yani prolog dastur aniq hisoblash usuli bilan bog’liq bo’lmasdan, static hisoblanadi. Darhaqiqat prolog protsedurali interpetatsiyaga ham ega. Prolog pragrammada e’lon qilingan munosabatlarni hisoblashning maxsus metodlari ishlatiladi. Shunday qilib, prolog tili deklarativ dasturlashni kuchli rivojlantirgan ilk qadam - mantiqiy dasturlash tilidir.
Ikkinchidan prolog dasturi munosabatlar tuzilmasidan iborat bo’lsa, traditsion tillardagi dastur funksiyalar tuzilmasidan iborat. Biron bir qiymat qaytaruvchi funksiyani chaqirish va shunga o’xshagan tushinchalar prolog uchun begona. Buning o’rniga prolog borliqlar orasidagi munosabatlarni ifodalaydi. Funksiani chaqirish tushinchasi prolog tilida borliqlar orasida ma’lum shartlarni bajaruvchi ma’lum munosabatlar mavjud yoki yo’qligi haqidagi so’roviga o’tkaziladi. Bu farq bazi bir xususiyatlarga ega. Masalan prologda o’zgaruvchi tushinchasi traditsion tillardagi o’zgaruvchi tushinchasidan tomoman farq qiladi.
Prolog tilining strukturali tuzilmasidan uning nodeterminal ekanligi, yani ma’lum bir elementlar berilgan elemenlar bilan ma’lum bir munosabatlarga bo’lishi kelib chiqadi. Traditsion tillarda funksional yondoshuv mavjud, qaysiki bitta element(funksiya qiymati) qolgan elementlar (funksiya argumentlari – aktual parametrlar) orqali bir qiymatli aniqlanadi va funksiyaning qiymatini hisoblash uchun hisoblash funksiya argumentlari ustida determinal tarzda amalga oshirilishni taqozo etiladi. Shu uch xususiyat tufayli prolog tili boshqa traditsion tillardan juda katta farq qiladi. Bundan kelib chiqadiki, prolog tilida fikr yuritish va dasturlash traditsion fikrlash va traditsion dasturlashdan juda katta farq qiladi. Odatda yangi dasturlash tilini o’rganishda oldingi o’rganilgan tillar yordam beradi. Lekin prolog tilini oldin o’rganilgan tillar tajribasini va ko’nikmalarni chetga surib qo’yib o’rganish oson kechadi. Afsuski tilni bunday o’rganish dasturlash borasida ko’p ilyustarativ misollar keltirishni, ularni chuqur tahlil qilishni {qanday ishlaydi, qanday yasaladi} talab qiladi.
|