MANTIK VE MANTIK PROGRAMLAMA Yılmaz KILIÇASLAN
Sunu Planı Bir bilgisayım yöntemi olarak mantıksal çıkarım Prolog programlama dilinin temel yapıları Prolog programlama dilinde çıkarım kuralları
Mantıktan Programlamaya ... Ali gelecek veya Ayşe gelecek. Ali gelmeyecek. ------------------------------------------- Ayşe gelecek. p q ¬p -------- q ? p q p -------- q ? Ali gelir ise Ayşe gelecek. Ali gelecek. ------------------------------------------- Ayşe gelecek. Bütün öğrenciler gelecek. Ayşe bir öğrencidir. ------------------------------------ Ayşe gelecek. x[öğrenci(x) gelecek(x)] öğrenci(ayşe) -------------------- gelecek(ayşe) ?
Mantık Programlama (en genel haliyle) ÖNCÜL_1 ÖNCÜL_2 . ÖNCÜL_N ------------------------------------------- MANTIKSAL SONUÇ MANTIK PROGRAMI ---------------------------- MANTIK SORGUSU
Mantık Bilimi Neyle Uğraşır? Mantık, akıl yürütmenin bilimi olarak tanımlanabilir. ZİHİNSEL TEMSİL Tümevar ıml ı Çıkar ım ✓ P ise Q ? P ise Q Tümdeng e l iml i Çıkar ım Abduc t i ve Çıkar ım REFLEK S A L G I GÖZLEM AKIL YÜRÜTME ✓P ? P ✓P ? Q ✓ Q ✓Q DIŞ DÜNYA
Mantıktan Programlamaya ... (Örnekler) Ali gelecek veya Ayşe gelecek. Ali gelmeyecek. ------------------------------------------- Ayşe gelecek. p q ¬p -------- q ? p q p -------- q ? Ali gelir ise Ayşe gelecek. Ali gelecek. ------------------------------------------- Ayşe gelecek. Bütün öğrenciler gelecek. Ayşe bir öğrencidir. ------------------------------------ Ayşe gelecek. x[öğrenci(x) gelecek(x)] öğrenci(ayşe) -------------------- gelecek(ayşe) ?
Mantıktan Programlamaya ... (Genel) ÖNCÜL_1 . ÖNCÜL_N ------------------------------------------- MANTIKSAL SONUÇ PROGRAM ---------------------------- SORGU
Mantıktan Programlamaya ... (Genel) Modus Ponens: Tümdengelimli programlama: ✓ P Q P ---------- Q ✓ P Q P ---------- Q ? Tümevarımlı programalama: ? P Q P ---------- Q ✓ ✓
Matematikten Programlamaya ... Her programı bir fonksiyon (F) olarak düşünelim: Tümdengelimli programlama: ✓ ✓ I O ? F I O F Tümevarımlı programalama: ? ✓ I ✓ O F
Prolog’un Temel Yapıları Terimler Deyimler (Önermeler) Sabitler Değişkenler Gerçekler Kurallar Örn: ayşe öğrenci Örn: öğrenci(ayşe). Örn: gelecek(X):- öğrenci(X). Örn: X _ Bileşik Terimler Sorgular Örn: ?- gelecek(ayşe). Örn: öğrenci(ayşe)
Prolog’un Çıkarım Kuralları Özdeşlik (Identity) Genelleme (Generalization) Örnekleme (Instantiation) Modus Ponens Örn: öğrenci(ayşe). ------------------- ?- öğrenci(ayşe). Örn: öğrenci(ayşe). ------------------- ?- öğrenci(X). Örn: varlık(X). ------------------- ?- varlık(ayşe). Örn: öğrenci(ayşe). gelecek(X):- öğrenci(X). ------------------- ?- gelecek(ayşe).
Gerçeklerden oluşan bir Prolog Programı Eğer A = Bθ olan bir θ yer değiştirmesi varsa A, B’nin bir örneğidir.
Yer değiştirmeler Eğer A = Bθ olan bir θ yer değiştirmesi varsa A, B’nin bir örneğidir. C hem A’nın hem B’nin bir örneği ise A ve B’nin ortak örneğidir (common instance) denir. Diğer bir deyişle, C=Aθ1 olan θ1 ve θ2 yer değiştirmeleri varsa sözdizimsel olarak Bθ2’ye eştir.
Evrensel Modus Ponens Evrensel modus ponens yasası, R=(A←B1,B2, …, Bn) kuralından ve B’1. B’2. . B’n. gerçeklerinden (facts) eğer, A’ ← B’1,B’2, …, B’n R’nin bir örneği ise A’ sonucu çıkarılabilir.
Mantık Programının Tanımı Bir mantık programı sonlu kurallar kümesidir. Varoluş niceleyicisiyle nicelenmiş G hedefi (goal), eğer B1,…, Bn mantıksal sonuçlar ve A, G’nin örneği olduğu durumda A←B1,B2, …, Bn, n ≥ 0 değişkensiz örneği (ground instance) P içinde bir cümlecik (clause) ise bir P programının mantıksal sonucudur.