Mantıksal Programlama ve Prolog

Mantıksal Programlama ve Prolog

Mantıksal programlamayı Prolog üzerinden; olgular, kurallar, birleştirme, çözümleme, geri izleme, tablolama, kısıtlı mantıksal programlama, bilgi gösterimi, sembolik yapay zekâ ve nöro-sembolik yaklaşımlar bağlamında ele alan kapsamlı ders notu.

Mantıksal programlama, bir problemin çözümünü yalnızca işlem adımlarıyla değil; olgular, ilişkiler, kurallar ve sorgular üzerinden tanımlar. Prolog bu yaklaşımın en bilinen uygulamasıdır. Dilin ayırt edici yönü, program ile bilgi gösterimi arasındaki sınırı daraltmasıdır: aynı tanım hem mantıksal bir ifade hem de yürütülebilir bir hesaplama olabilir.

Bu yaklaşım, Ayrık Matematik içindeki önerme, yüklem, bağıntı ve çizge kavramlarıyla; Otomatlar Kuramı ve Biçimsel Diller içindeki dil, dilbilgisi ve hesaplama modeli kavramlarıyla doğrudan ilişkilidir. Yapay zekâ açısından ise Yapay Zeka: Felsefe, Kuram ve Uygulama dersindeki sembolik yaklaşımın programlama dili düzeyindeki karşılıklarından biridir.

Ünite 1: Mantıksal Programlamanın Yeri

1.1 Programlama paradigması olarak mantıksal programlama

Buyurgan programlamada programcı çoğunlukla durum değişikliklerini ve işlem sırasını yazar. İşlevsel programlamada hesaplama, işlevlerin bileşimi üzerinden kurulur. Mantıksal programlamada ise önce doğru kabul edilen ilişkiler ve bu ilişkilerden yeni sonuçların hangi koşullarda çıkarılabileceği tanımlanır.

Bu nedenle temel soru:

Nasıl yapılır?

yerine çoğu zaman:

Hangi ilişkiler doğrudur?
Bu ilişkilerden hangi sonuçlar çıkar?

biçimini alır.

Bu ayrım, denetimin tamamen ortadan kalktığı anlamına gelmez. Mantıksal tanım ile yürütme stratejisi farklı katmanlardır. Programın anlamı ile çözümün hangi sırayla arandığı birbirinden ayrılabilir.

1.2 Prolog'un tarihsel bağlamı

Prolog'un ilk sürümü 1972'de Alain Colmerauer ve çalışma arkadaşlarının Marsilya'daki çalışmalarıyla ortaya çıktı. Robert Kowalski'nin mantıksal programlamanın kuramsal temellerine yaptığı katkılar, Prolog'un hem programlama dili hem de çıkarım ortamı olarak gelişmesinde belirleyici oldu.

Prolog; doğal dil işleme, otomatik teorem ispatlama, uzman sistemler, bilgi gösterimi ve sembolik yapay zekâ ile birlikte gelişti. Daha sonra istatistiksel öğrenme ve yapay sinir ağları birçok yapay zekâ probleminde baskın hale gelse de açık bilgi gösterimi, kural tabanlı çıkarım, kısıt çözümü ve biçimsel doğrulama alanlarında mantıksal yaklaşım önemini korudu.

1.3 İlişkiler üzerinden hesaplama

Prolog'da temel yapı çoğunlukla işlev değil ilişkidir.

baglanti(a, b).
baglanti(b, c).
baglanti(c, d).

Bu satırlar bir işlem dizisini değil, bilinen olguları ifade eder.

Yeni bir ilişki bu olgulardan tanımlanabilir:

erisilebilir(X, Y) :-
    baglanti(X, Y).

erisilebilir(X, Y) :-
    baglanti(X, Z),
    erisilebilir(Z, Y).

Buradaki tanım, bir çizgede erişilebilirliğin hangi koşullarda doğru olduğunu söyler. Aynı tanım yürütüldüğünde Prolog olası yolları arar.

Ünite 2: Olgular, Kurallar ve Mantıksal Temel

2.1 Terimler, yüklemler ve atomik ifadeler

Prolog programları terimler ve yüklemler etrafında kurulur. Sabitler belirli nesneleri, değişkenler henüz belirlenmemiş değerleri, bileşik terimler ise yapısal veriyi temsil eder.

kisi(ali).
sehir(ankara).
yasiyor(ali, ankara).

yasiyor/2 iki argümanlı bir yüklemdir. Mantıksal açıdan bir bağıntıyı, programlama açısından ise sorgulanabilir bir tanımı temsil eder.

2.2 Olgu, kural ve sorgu

Bir olgu, doğrudan doğru kabul edilen bilgidir.

aktif(servis_a).

Bir kural, bir sonucun hangi koşullarda geçerli olduğunu tanımlar.

kullanilabilir(X) :-
    aktif(X),
    bagimliliklar_hazir(X).

Bir sorgu ise bilgi tabanından bir sonucun türetilip türetilemeyeceğini ister.

?- kullanilabilir(servis_a).

Bu üçlü yapı, mantıksal programlamanın temel bilgi akışını oluşturur:

olgu + kural + sorgu
          ↓
       çıkarım

2.3 Horn tümceleri

Klasik Prolog'un çekirdeği büyük ölçüde Horn tümcelerine dayanır. Bir kuralın baş kısmı sonucu, gövdesi ise sonucun doğru olması için gerekli alt hedefleri belirtir.

ata(X, Y) :-
    ebeveyn(X, Z),
    ata(Z, Y).

Bu tanımın mantıksal anlamı ile yürütme sırası aynı şey değildir. Mantıksal anlam hangi ilişkinin tanımlandığını, işlemsel anlam ise alt hedeflerin hangi sırayla çözüleceğini belirler.

2.4 Bildirimsel ve işlemsel anlam

Bir Prolog kuralı iki yönden okunabilir.

Bildirimsel okuma:

X etkin ve yetkiliyse X uygundur.

İşlemsel okuma:

X'in uygunluğunu sınamak için önce etkin(X),
sonra yetkili(X) hedefini çöz.

Bu ikilik önemlidir. Mantıksal olarak eşdeğer iki yazım, arama sırası nedeniyle farklı çalışma süresi veya sonlanma davranışı gösterebilir.

Ünite 3: Birleştirme, Çözümleme ve Geri İzleme

3.1 Mantıksal değişkenler

Prolog değişkenleri, buyurgan programlamadaki değişkenlerden farklıdır. Bir çözüm dalında bir terimle bağlanan mantıksal değişken o bağlam içinde başka bir değere yeniden atanmaz.

olay(X, kritik)
olay(sunucu_3, Y)

iki terimi şu bağlarla uyumlu hale gelebilir:

X = sunucu_3
Y = kritik

3.2 Birleştirme

Birleştirme (unification), iki terimi aynı yapının örnekleri haline getirecek değişken bağlarını bulma işlemidir. Basit örüntü eşleştirmenin ötesine geçer; iç içe terimler ve mantıksal değişkenler üzerinde çalışır.

kayit(kisi(Id), zaman(T))

ile:

kayit(kisi(42), zaman(1730))

birleştirildiğinde Id = 42, T = 1730 bağları oluşur.

Birleştirme, Prolog'un veri yapıları ve yüklemler arasında açık atama kullanmadan bilgi taşımasını sağlar.

3.3 Çözümleme ve SLD çözümlemesi

Prolog bir sorguyu yanıtlarken hedefi uygun kurallarla eşleştirir ve onu daha küçük alt hedeflere dönüştürür. Bu süreç mantıksal olarak çözümleme (resolution) düşüncesine dayanır.

Belirli tümceler için kullanılan hedef yönelimli yürütme modeli çoğunlukla SLD çözümlemesi ile açıklanır. Bir hedef seçilir, uygun bir tümceyle birleştirilir, yeni hedef listesi oluşturulur ve işlem başarıya veya başarısızlığa kadar sürer.

sorgu
↓
uygun kural
↓
alt hedefler
↓
yeni kurallar
↓
kanıt / başarısızlık

3.4 Geri izleme

Bir hedef birden fazla yolla çözülebiliyorsa Prolog bir seçim noktası oluşturur. İlk yol başarısız olduğunda önceki seçim noktasına dönüp başka bir olasılığı dener. Bu davranış geri izleme (backtracking) olarak adlandırılır.

Geri izleme aramayı dilin doğal parçası haline getirir. Ancak arama uzayı büyüdüğünde maliyet de büyür. Doğru program yalnız doğru sonucu üretmekle değil, gereksiz aramayı sınırlamakla da ilgilidir.

3.5 Hedef ve tümce sırası

Aşağıdaki iki gövde mantıksal olarak aynı koşulları ifade edebilir:

p(X) :-
    a(X),
    b(X).
p(X) :-
    b(X),
    a(X).

Fakat a/1 ve b/1 yüklemlerinin ürettiği aday sayısı farklıysa çalışma maliyeti önemli ölçüde değişebilir. Bazı özyinelemeli yapılarda sıralama, sonlanmayı da etkiler.

Bu nedenle mantıksal programlamada:

doğruluk
+
arama düzeni
+
sonlanma

birlikte değerlendirilir.

3.6 Kesme ve işlemsel denetim

Prolog'daki ! işleci kesme (cut) olarak bilinir. Kesme, belirli bir noktadan önce oluşturulan bazı seçim noktalarının yeniden denenmesini engeller.

sinifla(X, pozitif) :-
    X > 0, !.

sinifla(_, diger).

Kesme bazı programlarda aramayı daraltır ve gereksiz alternatifleri önler. Ancak mantıksal anlam ile işlemsel davranışı birbirine daha sıkı bağladığı için dikkatli kullanılmalıdır.

Ünite 4: Özyineleme, Kipler ve Tablolama

4.1 Özyinelemeli ilişkiler

Mantıksal programlamada döngülerin önemli bir bölümü özyineleme ile ifade edilir.

eleman(X, [X|_]).
eleman(X, [_|Kalan]) :-
    eleman(X, Kalan).

İlk tümce temel durumu, ikinci tümce özyinelemeli durumu tanımlar.

Listeler, ağaçlar ve çizgeler doğal olarak özyinelemeli yapılar olduğundan Prolog'da bu tür tanımlar kısa ve doğrudan kurulabilir.

4.2 Kipler ve tersinirlik

Bir yüklemin hangi argümanlarının çağrı sırasında bağlı olduğu, hangi argümanlarının sonuç olarak üretileceği kip (mode) kavramıyla açıklanabilir.

iliski(+A, -B)
iliski(-A, +B)

Aynı ilişki bir yönde hesaplama, başka bir yönde arama için kullanılabilir. Bu özellik mantıksal programlamadaki tersinirlik düşüncesinin temelidir.

Ancak her kip aynı ölçüde verimli değildir. Bir ilişkinin mantıksal olarak anlamlı olması, bütün çağrı biçimlerinde sonlanacağı anlamına gelmez.

4.3 Tablolama

Klasik derinlik öncelikli arama bazı özyinelemeli ilişkilerde aynı alt hedefi tekrar tekrar çözebilir veya çevrim nedeniyle sonsuz aramaya girebilir.

Tablolama (tabling), daha önce çözülen alt hedeflerin sonuçlarını saklayıp yeniden kullanır.

Bu yaklaşım özellikle:

  • çizge erişilebilirliği,
  • karşılıklı özyineleme,
  • tümdengelimsel veri tabanları,
  • kural tabanlı çıkarım

gibi alanlarda önemlidir.

Tablolama, mantıksal tanımı değiştirmeden yürütme stratejisini iyileştirebilir.

4.4 Üst-programlama

Prolog kodu Prolog terimleri biçiminde temsil edilebilir. Bu özellik, programların başka programları incelemesine veya yorumlamasına olanak verir.

Üst-yorumlayıcılar:

  • kanıt ağacı üretme,
  • kural izleme,
  • program dönüştürme,
  • açıklama üretme,
  • küçük yorumlayıcılar kurma

gibi amaçlarla kullanılabilir.

Bu yön, mantıksal programlamayı Otomatlar Kuramı ve Biçimsel Diller ile programlama dili kuramı arasında da ilginç bir konuma yerleştirir.

Ünite 5: Olumsuzlama, Eksik Bilgi ve Kısıtlar

5.1 Başarısızlıkla olumsuzlama

Klasik mantıktaki:

¬P

ile Prolog'daki başarısızlıkla olumsuzlama (negation as failure) aynı şey değildir.

Prolog'da tipik yaklaşım:

P kanıtlanamıyorsa, not(P) başarılı sayılır.

biçimindedir.

Bu davranış bilgi tabanındaki eksikliği doğrudan "dünyada yanlış" ile eşitlemeden önce dikkatle yorumlanmalıdır.

5.2 Kapalı dünya varsayımı

Birçok kural tabanlı sistem kapalı dünya varsayımı ile çalışır: bilgi tabanında doğrulanamayan bir olgu belirli bağlamlarda yanlış kabul edilir.

Buna karşılık açık dünya yaklaşımında:

bilinmiyor ≠ yanlış

ayrımı korunur.

Bu fark hukuk, güvenlik, tıp ve bilimsel çıkarım gibi eksik bilginin doğal olduğu alanlarda önemlidir.

5.3 Kısıtlı mantıksal programlama

Bir değişkeni hemen tek bir değere bağlamak yerine onun sağlayacağı koşulları tutmak mümkündür.

X > 0
Y < 20
X + Y = 15

Kısıtlı Mantıksal Programlama (Constraint Logic Programming, CLP), bu koşulları uygun bir alan çözücüsüyle birlikte değerlendirir.

Yaygın alanlar:

  • sonlu alanlar,
  • tamsayılar,
  • rasyonel sayılar,
  • gerçel sayılar,
  • Boole değerleri.

CLP; çizelgeleme, yapılandırma, kaynak tahsisi, doğrulama ve birleşimsel eniyileme gibi problemlerde mantıksal arama ile matematiksel kısıt çözümünü birleştirir.

5.4 Datalog ve genişletilmiş mantıksal sistemler

Datalog, karmaşık terimleri sınırlayan ve veri tabanı sorgularına yakın duran bir mantıksal programlama alt dilidir. Answer Set Programming ve s(CASP) gibi yaklaşımlar ise varsayılan kurallar, istisnalar, bütünlük kısıtları ve eksik bilgi üzerinde daha zengin akıl yürütme modelleri sunar.

Bu sistemler Prolog ile aynı değildir; ancak sembolik bilgi gösterimi ve mantıksal çıkarım ailesinin yakın üyeleridir.

Ünite 6: Dilbilgileri, Bilgi Gösterimi ve Çıkarım Türleri

6.1 Belirli tümcecik dilbilgileri

Prolog'un tarihsel gelişiminde doğal dil işleme önemli bir yer tutar. Belirli Tümcecik Dilbilgileri (Definite Clause Grammars, DCG), dilbilgisi kurallarını yürütülebilir yüklem tanımlarına dönüştürür.

cumle --> isim_grubu, fiil_grubu.

DCG yalnız doğal dil için değil; belirteç dizileri, protokoller, küçük alan dilleri ve yapısal metinler için de kullanılabilir.

6.2 Bilgi gösterimi

Prolog'u yalnızca bir programlama dili olarak görmek eksik kalabilir. Bir Prolog programı aynı zamanda yüksek düzeyli ilişkilerin daha temel ilişkiler üzerinden tanımlandığı bir bilgi gösterimi olabilir.

Örneğin:

riskli(X) :-
    kritik(X),
    dogrulanmamis(X).

kuralı, yalnızca çalıştırılabilir kod değil, alan bilgisinin açık bir ifadesidir.

Bu özellik, kuralların insan tarafından incelenebilmesini ve sonuçların hangi kurallardan türetildiğinin izlenebilmesini kolaylaştırır.

6.3 Tümdengelim

Tümdengelim, genel kurallar ve bilinen olgulardan zorunlu sonuç çıkarır.

A → B
A
∴ B

Prolog'un klasik kullanım biçimi büyük ölçüde bu yöndedir.

6.4 Kaçırımlı çıkarım

Kaçırımlı çıkarım (abduction), gözlemi açıklayabilecek olası nedenleri araştırır.

A → B
B gözlendi
A olası açıklama olabilir

Sonuç zorunlu değildir; aday bir açıklamadır.

Tanılama, bilimsel açıklama ve hipotez üretme gibi alanlarda önemlidir.

6.5 Tümevarım ve tümevarımsal mantıksal programlama

Tümevarım, tekil örneklerden daha genel kurallar elde etmeye çalışır.

Tümevarımsal Mantıksal Programlama, örnekleri ve ön bilgiyi kullanarak mantıksal kurallar öğrenmeyi amaçlar. Böylece mantıksal programlama ile makine öğrenmesi arasında doğrudan bir köprü kurulur.

Ünite 7: Sembolik Yapay Zekâ ve Mühendislik Kullanımı

7.1 Uzman sistemler ve sembolik yapay zekâ

Sembolik yapay zekâda bilgi çoğunlukla açık biçimde temsil edilir:

semboller
↓
olgular
↓
kurallar
↓
çıkarım

Bu yaklaşım, bir sonucun hangi kurallara dayandığını gösterebilmesi açısından güçlüdür.

Ancak büyük ve belirsiz gerçek dünya bilgisini elle kurallara dönüştürmek pahalıdır. Görüntü, ses ve doğal dil gibi yüksek boyutlu veriler için yalnız el yazımı kurallar genellikle yeterli değildir.

7.2 Biçimsel yöntemler ve ProB

Mantıksal programlamanın güncel mühendislik değerinin görüldüğü alanlardan biri biçimsel yöntemlerdir. Prolog tabanlı ProB; yüksek düzeyli biçimsel modeller için canlandırma, model denetleme ve kısıt çözümü sağlar.

Buradaki ana fikir, matematiksel bir belirtimin yalnız belge olarak kalmaması; çalıştırılabilir, sorgulanabilir ve doğrulanabilir bir yapıya dönüşebilmesidir.

7.3 Güncel yazılım ekosistemi

Prolog'un genel amaçlı uygulama geliştirmede Python, Java, JavaScript veya C# kadar yaygın olmaması yalnız dil özellikleriyle açıklanamaz. Kütüphane ekosistemi, geliştirme araçları, IDE desteği, insan kaynağı ve mevcut yazılım altyapısıyla bütünleşme belirleyicidir.

Bu nedenle güncel kullanım biçimlerinden biri Prolog'u tüm uygulamanın dili yapmak yerine belirli bir çıkarım bileşeni olarak kullanmaktır.

7.4 SWI-Prolog ve uygulama katmanı

SWI-Prolog; modüller, tablolama, kısıt kütüphaneleri ve yabancı dil arayüzleriyle yaygın uygulamalardan biridir.

Ancak araç ile paradigma ayrılmalıdır.

Taşınabilir temel:

ilişkiler
olgular ve kurallar
mantıksal değişkenler
birleştirme
çözümleme
geri izleme
özyineleme
bildirimsel anlam

Uygulamaya özgü kütüphaneler bu çekirdeği genişletir.

Ünite 8: Diğer Öğrenme Yaklaşımlarıyla İlişki

8.1 İstatistiksel öğrenme ile fark

İstatistiksel Öğrenme ve Makine Öğrenmesi, gözlenen veriden model, karar sınırı veya olasılıksal yapı kestirmeye odaklanır.

Mantıksal programlama ise çoğunlukla açık bilgi ve kurallardan sonuç türetir.

istatistiksel öğrenme:
veri → kestirim → genelleme

mantıksal programlama:
olgu + kural → çıkarım

Gerçek sistemlerde bu iki zincir birlikte bulunabilir. İstatistiksel model algısal veya belirsiz veriyi işlerken mantıksal katman iş kurallarını ve kısıtları uygulayabilir.

8.2 Yapay sinir ağları ile fark

Yapay Sinir Ağları ve Yapay Sinir Ağları ve Öğrenme Modelleri, bilgiyi veriden öğrenilen sayısal parametreler ve dağıtık temsiller üzerinden ele alır.

Mantıksal programlamada bilgi daha açık biçimdedir:

kural:
yetkili(X) :- rol(X, yonetici).

sinir ağı:
çok sayıda öğrenilmiş parametre üzerinden çıktı

Sinir ağları yüksek boyutlu örüntülerde güçlüdür; mantıksal sistemler açık kurallar, kısıtlar ve denetlenebilir çıkarım gerektiğinde avantaj sağlayabilir.

8.3 Bulanık mantık ile fark

Bulanık Mantık, keskin sınırı olmayan kavramları üyelik dereceleriyle modeller.

sıcak(x) = 0.8

Mantıksal programlama ise temel olarak ilişkiler ve çıkarım yapısı üzerinde durur.

kritik(X) :- sicak(X), basinc_yuksek(X).

Bulanıklık ile mantıksal çıkarım farklı sorunları çözer; uygun mimaride birlikte de kullanılabilirler.

8.4 Genetik algoritmalar ile fark

Genetik Algoritmalar ve Uygulamaları, çözüm uzayında popülasyon, seçilim, çaprazlama ve mutasyonla arama yapar.

Mantıksal programlama da arama içerir; ancak arama çoğunlukla kuralları sağlayan kanıt veya değişken bağlarını bulmaya yöneliktir.

genetik algoritma → sezgisel eniyileme
mantıksal programlama → koşulları sağlayan çıkarım / çözüm arama

Yöntem aileleri birbirini dışlamaz. Genetik algoritma bir parametre veya kural alt kümesini ararken mantıksal katman geçerlilik kısıtlarını uygulayabilir.

Ünite 9: Büyük Dil Modelleri ve Nöro-Sembolik Yaklaşım

9.1 Büyük dil modellerinde bilgi

Büyük dil modellerindeki bilgi, Prolog bilgi tabanındaki gibi okunabilir olgular ve kurallar listesi değildir. Model, büyük veri kümelerinden öğrenilmiş çok sayıdaki parametre üzerinden sonraki belirteç dağılımlarını ve bağlamsal temsilleri üretir.

Bu nedenle:

akıcı çıktı ≠ mantıksal ispat

ayrımı korunmalıdır.

9.2 Üretim ve doğrulama ayrımı

Bir büyük dil modeli aday cevap, yapı veya kural üretebilir. Mantıksal katman ise belirli bir bilgi tabanı ve kısıt kümesi altında bu adayın tutarlı olup olmadığını sınayabilir.

Örnek mimari:

doğal dil / görüntü / ses
↓
öğrenilmiş model
↓
yapılandırılmış olgular
↓
mantıksal kurallar ve kısıtlar
↓
doğrulanmış sonuç

Bu yapı her problemi çözmez; ancak öğrenme ile açık doğrulama gereksiniminin aynı sistemde bulunduğu durumlar için anlamlıdır.

9.3 Nöro-sembolik sistemler

Nöro-sembolik yaklaşım, sinirsel öğrenme ile sembolik çıkarımı birleştirmeye çalışır.

Sinirsel bileşen:

  • algı,
  • örüntü tanıma,
  • dil işleme,
  • temsil öğrenme

gibi işlerde güçlü olabilir.

Sembolik bileşen:

  • açık kural,
  • bütünlük kısıtı,
  • kanıt izi,
  • biçimsel doğrulama,
  • alan bilgisi

gerektiren kısımlarda kullanılabilir.

9.4 Sınırlar

Mantıksal programlama büyük dil modellerindeki halüsinasyon sorununu tek başına çözmez. Sembolik doğrulama yapılabilmesi için güvenilir olguların, doğru kuralların ve uygun bir temsilin bulunması gerekir.

Benzer biçimde mantıksal kuralların açıklanabilir olması, kuralların doğru olduğu anlamına gelmez. Yanlış bilgi tabanı açık ve izlenebilir biçimde yanlış sonuç üretebilir.

Ünite 10: Kavramsal Ayrımlar ve Bütünlük

10.1 Temel ayrımlar

Olgu ≠ kural. Olgu doğrudan bilgi, kural koşullu ilişkidir.

Değişken ≠ buyurgan değişken. Mantıksal değişken bir çözüm dalında bağlanır; sıradan atama değişkeni gibi sürekli değer değiştirmez.

Birleştirme ≠ atama. Birleştirme iki terimi yapısal olarak uyumlu hale getirecek bağları arar.

Çözümleme ≠ geri izleme. Çözümleme mantıksal çıkarım adımı, geri izleme alternatif çözüm yollarının araştırılmasıdır.

Bildirimsel anlam ≠ işlemsel davranış. Aynı mantıksal ilişki farklı yürütme maliyetleriyle gerçekleştirilebilir.

Başarısızlıkla olumsuzlama ≠ klasik olumsuzlama. Bir şeyin kanıtlanamaması, her bağlamda onun yanlış olduğunun kanıtı değildir.

Tablolama ≠ önbellekleme benzetmesinden ibaret değildir. Amaç yalnız hız değil; bazı özyinelemeli ilişkilerde sonlanma davranışını da değiştirebilmektir.

Kısıt ≠ hemen değer atama. Kısıt, değişkenler arasındaki kabul edilebilir ilişkiyi korur.

Sembolik çıkarım ≠ istatistiksel tahmin. Biri açık öncüllerden sonuç türetir, diğeri veriden kestirim ve genelleme yapar.

Açıklanabilirlik ≠ doğruluk. Kural zincirinin görünür olması, bilginin veya kuralın doğru olduğunu garanti etmez.

Prolog ≠ bütün mantıksal programlama. Prolog önemli bir uygulamadır; Datalog, ASP, CLP ve başka mantıksal sistemler aynı ailenin farklı noktalarında yer alır.

10.2 Problem seçimi

Bir problemde aşağıdaki özellikler baskınsa mantıksal programlama doğal bir adaydır:

açık ilişkiler
+
kurallar
+
çoklu çözüm arama
+
kısıtlar
+
kanıt / açıklama gereksinimi

Aşağıdaki özellikler baskınsa istatistiksel veya sinirsel yöntemler genellikle daha uygundur:

yüksek boyutlu ham veri
+
gürültü
+
örüntü öğrenme
+
kesin kurala dönüştürülmesi zor ilişkiler

İki grubun birlikte bulunması hibrit tasarım gerektirebilir.

10.3 Dersler arası kavramsal harita

Ayrık Matematik, mantık, bağıntı ve çizge temelini sağlar.

Otomatlar Kuramı ve Biçimsel Diller, biçimsel dil, dilbilgisi ve hesaplama modeli yönünü tamamlar.

Yapay Zeka: Felsefe, Kuram ve Uygulama, sembolik ve veri güdümlü yapay zekâyı daha geniş tarihsel çerçeveye yerleştirir.

Yapay Sinir Ağları ve Öğrenme Modelleri, dağıtık sayısal temsili ve örneklerden öğrenmeyi ele alır.

İstatistiksel Öğrenme ve Makine Öğrenmesi, kestirim, genelleme ve veriden model çıkarma tarafını kurar.

Bulanık Mantık, dereceli üyelik ve yaklaşık çıkarımın farklı bir boyutunu gösterir.

Genetik Algoritmalar ve Uygulamaları, evrimsel arama ve eniyileme yaklaşımını ekler.

Mantıksal programlamanın bu bütün içindeki temel sorusu şudur:

Bilgi açık ilişkiler ve kurallar halinde temsil edildiğinde, bilgisayar bu bilgiden nasıl yeni sonuçlar türetebilir?

10.4 Sonuç

Prolog öğrenmenin temel amacı başka bir programlama dilinin sözdizimini ezberlemek değildir. Asıl değer, hesaplamaya farklı bir gözle bakabilmektir.

buyurgan programlama → durum ve işlem sırası
işlevsel programlama → işlev ve dönüşüm
istatistiksel öğrenme → veri ve genelleme
sinir ağları → öğrenilmiş dağıtık temsil
mantıksal programlama → açık ilişki, kural ve çıkarım

Yapay zekânın ağırlık merkezi zaman içinde sembolik sistemlerden istatistiksel ve sinirsel yöntemlere doğru kaymıştır. Büyük dil modelleri bu dönüşümün güncel ve görünür örneklerinden biridir. Buna rağmen açık bilgi gösterimi, kısıtlar, biçimsel doğrulama ve denetlenebilir çıkarım ortadan kalkmamıştır.

Bu nedenle mantıksal programlama geçmişte kalmış bir yapay zekâ tekniği değil; temsil, çıkarım, arama ve doğrulama arasındaki ayrımı anlamak için temel bir bilgisayar bilimi paradigmasıdır.

Kaynakça

  • David S. Warren; Veronica Dahl; Thomas Eiter; Manuel V. Hermenegildo; Robert Kowalski; Francesca Rossi (eds.). Prolog: The Next 50 Years. Lecture Notes in Artificial Intelligence, vol. 13900. Springer, 2023. https://doi.org/10.1007/978-3-031-35254-6
  • David S. Warren. “Introduction to Prolog.” In Prolog: The Next 50 Years. Springer, 2023.
  • Michael Genesereth. “Prolog as a Knowledge Representation Language: The Nature and Importance of Prolog.” In Prolog: The Next 50 Years. Springer, 2023.
  • Manuel V. Hermenegildo; José F. Morales; Pedro López-García. “Some Thoughts on How to Teach Prolog.” In Prolog: The Next 50 Years. Springer, 2023.
  • Michael Leuschel. “ProB: Harnessing the Power of Prolog to Bring Formal Models and Mathematics to Life.” In Prolog: The Next 50 Years. Springer, 2023.
  • Gopal Gupta et al. “Logic-Based Explainable and Incremental Machine Learning.” In Prolog: The Next 50 Years. Springer, 2023.
  • Paul Tarau. “Reflections on Automation, Learnability and Expressiveness in Logic-Based Programming Languages.” In Prolog: The Next 50 Years. Springer, 2023.
İçindekiler
Bu sayfanın QR kodu