1.1 Predikatlar
Predikat shunday funksiyaki uning o’zgarish sohasi {verum, falsum} to’plamidir. Lotinchadan verum = chin(true), falsum - yolg’on (false). Ozmi ko’pmi dasturlash bilan shug’ullangan kishilar va hatto elementar algebra asoslarini bilgan talaba uchun tanish bir necha predikatlarni misol qilib ko’rsatish mumkin:
X>Y chin agar X qiymat Y qiymatdan katta bo'lsa, aks holda yolg'on;
Infiksli ko’rinishda yozilgan bu predikatni prefiksli ko’rinishda katta(X,Y) deb yozish mumkin
X
X=Y (teng(X,Y)) chin agar X qiymat Y qiymatga teng bo'lsa, aks holda yolg'on;
…
Bir argumentli(o’zgaruvchili) predikat F(X) o’z argumenti-X ning xususiyati deb ham ataladi.Bunday predikatlarning funktori(funksiyaning nomi) odatda sifat so’z turkumiga tegishli bo’ladi va ma’nosi “X F mi?” bo’ladi :
oq(X) X- oqmi?
uzluksiz(X) X- uzluksizmi?
~X X-yolg’onmi? (C dasturlash tilida) positive(X) X-musbatmi? exists(X) X-fayl mavjudmi?
…
Misollardan ko’rinib turibdiki, predikar argumentlari qabul qiladigan qiymatlar to’plami turlicha(ixtiyoriy (natural, butun, haqiqiy, kompleks, ...) son, rang, funksiya, mantiqiy, fayl, ...) bo’lishi, ya’ni ixtiyoriy o’byektlar to’plami bo’lishi mumkin. Bunday to’plamni argument qabul qiladigan qiymatlar domeni (qisqacha - domen) deb ataladi.
Ko’p argumentli predikat bu argumentlar orasidagi ma’lum bir munosabatning mavjudligini (true) yoki mavjud emasligini (false) ko’rsatadi.
F(X1, X2,…, Xn) predikat X1, X2,…, Xn argumentlar qiymatlarining birgalikda F munosabatda yoki F munosabatda emasligini ko’rsatadi.
Masalan: ekub(X,Y,Z) predikati X va Y natural sonlarining eng katta umumiy bo’luvchisi Z bo’lganda true va boshqa hollarda false natija beradi. Bu predikat odatda funksiya ko’rinishida Z=ekub(X,Y) shaklida ishlatiladi, ya’ni bu yerda endi ekub predikat emas, balki natural qiymat qaytaruvchi funksiyadir, Z=ekub(X,Y) ifodani infiks shaklida yozilgan uch argumentli predikat deb qarasa bo’ladi.
Hayotiy uammolarni hal etishda na faqat kalkulyatorda va dasturlash tillarida ishlatiladigan kam sondagi predikatlar balki murakkabroq muosabati tavsiflovchi predikatlarga ehtiyoj tug’iladi.
Masalan:
rain(Temperature, Pressure, Humidity) predikati berilgan temperatira, bosim va namlik qiymatlarida agar yomg’it yog’ish ehtimoli bo’lsa true, aks holda false natuja qaytaradi.
invest(Rate, StandardDeviation, Risk) predikati berilgan foiz, standart cheklaish va risk qiymatlarida investitsiyai qabul qilish mumkin bo’lsa true, aks holda false natija qaytaradi.
Lesson(Teacher, Classroom, Subject) predikati agar ko’rsatilgan o’qituvchi ko’rsatilgan sinfxonada ko’rsatilgan fandan dars o’tsa true natija, aks holda false natija qaytaradi.
Product(Book, Writer) predikati
Shunga o’xshash hayotdan olingan predikatlardan dasturlash tillarida foydalana olish mantiqiy hisob jarayonini tashkil qilish uchun muhim imkoniyat hisoblanadi. Prolog dasturlash ytili ana shunday predikatlarni qo’llab quvvatlash uchun yaratilgan tildir.
Do'stlaringiz bilan baham: |