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ık Bilimi Neyle Uğraşır? Mantık, akıl yürütmenin bilimi olarak tanımlanabilir. ZİHİNSEL TEMSİL GÖZLEMAKIL YÜRÜTME DIŞ DÜNYA ALGIALGI REFLEKSREFLEKS ✓P✓P ✓Q✓Q ? P ise Q ✓ P ise Q ✓P✓P ? Q ? P ✓ Q TümevarımlıÇıkarımTümevarımlıÇıkarım TümdengelimliÇıkarımTümdengelimliÇıkarım AbductiveÇıkarımAbductiveÇıkarım
Mantıktan Programlamaya... (Genel) Modus Ponens: 4 Tümdengelimli programlama: Tümevarımlı programalama: P Q P Q P Q P Q ✓ ✓ ? P Q P Q ✓ ✓ ?
Matematikten Programlamaya... Her programı bir fonksiyon (F) olarak düşünelim: 5 Tümdengelimli programlama: IO F IO F Tümevarımlı programalama: IO F ? ✓ ✓ ✓ ✓ ?
Mantıktan Programlamaya... (Örnekler) Ali gelecek veya Ayşe gelecek. Ali gelmeyecek Ayşe gelecek. p q ¬p¬p q ? Ali gelir ise Ayşe gelecek. Ali gelecek Ayşe gelecek. p q p q 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
Prolog’un Temel Yapıları Temel Yapılar Terimler Önermeler Gerçekler Sorgular KurallarDeğişkenler Sabitler Bileşik Terimler Örn: ayşe öğrenci Örn: X _ Örn: öğrenci(ayşe) Örn: öğrenci(ayşe). Örn: gelecek(X):- öğrenci(X). Örn: ?- gelecek(ayşe).
Prolog’un Çıkarım Kuralları Çı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←B 1,B 2, …, B n ) 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 B 1,…, B n mantıksal sonuçlar ve A, G’nin örneği olduğu durumda A←B 1,B 2, …, B n, 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.