Reasoning Engine Özge Barbaros Baran Cem Barazi Ümit Kırtıl
Reasoning Engine Nedir? Reasoning engine, kelime anlamı olarak muhakeme motorlarıdır denilebilir. Reasoning engine, semantic (anlamsal) reasoner, rules engine veya basitçe reasoner olarak adlandırılabilir. Bir reasoner, verilen bilgilerden veya aksiyomlardan mantıksal çıkarımlar yapabilen yazılım parçalarıdır. Reasonerlar, çıkarsama motorlarının (inference engine) genelleştirilmiş halidir ve çalışabilmek için daha çok mekanizma sunar. Çıkarsama kuralları bir ontoloji ve sıklıkla bir betimleme diliyle belirtilirler.
Bir çok reasoner, muhakeme işlemini gerçekleştirmek için ilk sıra doğrulama mantığını (first-order predicate logic) kullanır, bunu forward chaining ve backward chaining izler. Olasılıklı muhakeme (probabilistic reasoning) ve olasılıklı tanımlama mantığıyla muhakeme örnekleri de bulunmaktadır.
Logic Agents(Mantıksal Ajanlar) Şu ana kadar gördüğümüz ajanlar refleks tabanlı ajanlardı. Refleks tabanlılar,verilen bir problemin çözümlerini bulabilirken,mantıksal tabanlı ajanlar verilen bilgilerden yeni bilgiler ortaya çıkarabilir. Örnek: Yeni doğan bir çocuğun dil öğrenmesi Bilgi(knowledge) ve muhakeme(reasoning) kısmi belirli ortamlarda(partially observable) kritik rol oynar. Örnek: Hastalık teşhisleri
1-)Knowledge-Based Agents Knowledge base: Formal dildeki cümlelerin bir kümesi Knowledge based agentlar şu yaklaşımla oluşturulurlar: - Agent'a bilmesi gerekenler söylenir(TELL). - Agent verilen bilgi karşısında ne yapması gerektiğini sorgular (ASK) - Yapılacak haraketi bulduğunda dış dünyaya tepki verir(TELL). Kba'lar bilgi seviyesi (knowledge-level) ve gerçekleştirim seviyesinde (implementation level) gösterilebilirler.
Basit bir Knowledge-Based Agent yapısı
2.)Mantık Mantık (logic): “Varılan sonuç şudur...„ gibi bilgilerin gösteriminde kullanılan formal bir dildir. Sözdizimi (syntax): Dildeki cümleleri tanımlar. Semantic: Dildeki cümlelerin anlamını tanımlar. Örnekler: eğer x+2 sayısı y sayısından küçük değilse x+2 ≥ y doğrudur x = 0, y = 6 koşulunun sağlandığı dünyada x+2 ≥ y yanlıştır
Mantıksal Çıkarsama (Inference) Çıkarsama: Bir B cümlesinin, bazı çıkarsama algoritmalarıyla A cümlesinden üretmesine denir. Şu şekilde gösterilir: KB ├i α . Geçerlilik(Soundness): Bir çıkarsama algoritması gereken cümleyi üretiyorsa geçerlidir. Tamlık(Completeness): Bir çıkarsama algoritması bütün cümleleri gerektirdiği gibi üretiyorsa, algoritma tamdır denir.
3)Önermeler Mantığı Önermeler mantığı temel mantıksal fikirleri ifade eden en basit mantıktır. Önermeler mantığında her cümle bir önermedir. Önermeler genelde harflerle gösterilir. “Ali iyi öğrencidir”, “Fatma çok iyi öğrencidir”, “Mehmet’in babası Ahmet’tir” önermeleri uygun olarak, A,F, M gibi tanımlana bilir. Her bir önerme gerçek (doğru veya yanlış) değer alır. Önermeler mantığının ifade gücü zayıftır. Örneğin, ilk iki cümle anlamsal olarak çok yakındır. 3. cümle ise farklıdır. Önermeler mantığı bu farkı dikkate alamıyor.
Syntax(sözdizim): Önermeler mantığında neler cümledir? 1.Herhangi bir p önerme sembolü bir cümledir. (atomic sentence) 2. Eğer S bir cümleyse, ¬S de bir cümledir.(tümleyen) 3. Eğer S1 ve S2 birer cümleyse, S1 ∧ S2 de bir cümledir. (kesişim) 4. Eğer S1 ve S2 birer cümleyse, S1 ∨ S2 de bir cümledir. (birleşim) 5. Eğer S1 ve S2 birer cümleyse, S1 ⇒ S2 de bir cümledir. (koşul sağlama) 6. Eğer S1 ve S2 birer cümleyse, S1 ⇔ S2 de bir cümledir. (çift taraflı koşul sağlama)
Semantic: Cümlenin anlamı nedir Semantic: Cümlenin anlamı nedir? Bir m modeli önerme sembolleri ile {true,false} arasındaki ilişkiyi gösteren bir haritadır. Verilen bir m için; 1. Eğer S false ise, ¬S true. ( S'nin değili) 2. Eğer S1 true ve S2 true ise, S1∧ S2 true. (S1 “ve” S2 ) 3.Eğer S1 true veya S2 true ise S1 ∨ S2 true. (S1 “veya” S2 ) 4. Eğer S1 false veya S2 true, S1 ⇒ S2 true. (S1 “içerir” S2 ) • Örnek: S1 true veya S2 false ise S1 ⇒ S2 f alse. 5. Eğer S1 ⇒ S2 true ve S2 ⇒ S1 true S1 ⇔ S2 true. (S1 “denktir” S2 )
Denklik, Doğruluk, Doğrulanabilirlik Denklik (equivalence): α, β gibi iki cümle, ancak ve ancak aynı modelde ikisi de true ise denktir denir. α, β'yı gerektirir ve tersi de doğrudur. Doğruluk(validity): Bir cümle tüm modellerde doğruysa, o cümle doğrudur denir. Doğrulanabilirlik (satisfiability): Bir cümle bazı modellerde doğru ise doğrulanabilirdir denir. Doğru(valid) cümleler aynı zaman doğrulanabilirdir. Ancak her doğrulanabilir cümle doğru olmayabilir. Doğrulanamaz(unsatisfiability): Bir cümle hiçbir modelde doğru değilse, o cümle doğrulanamaz.
4)Önermeler Mantığında Muhakeme (reasoning) Kalıpları Verilen bir bilgi tabanından(KB) bir α cümlesini ispatlayabilir miyim? α cümlesi KB'de doğrulanabilir midir? KB |= α? KB ∧ ¬α doğrulanamaz mı? Burada çıkarsamanın standart kalıplarını anlatacağız. Bu kalıplar, hedefe ulaşmayı sağlayan türetim zincirine uygulanabilir.
Bu çıkarsama kalıplarına çıkarsama kuralları denir.(inference rules) En iyi bilinen kural Modus Ponens kuralıdır. Şu şekilde gösterilir: Bu kurala göre eğer a ⇒ b formunun herhangi bir cümlesi ve a cümlesi verilmişse b çıkarsanabilir. (WumpusAhead ∧ WumpusAlive )⇒Shoot cümlesi ve (WumpusAhead ∧ WumpusAlive ) cümlesi veriliyorsa, Shoot çıkarsanır.
Bir başka çıkarsama kuralı ise And-Elimination kuralıdır. Bu kurala göre bir bağdan başka bağlar çıkarsanabilir. Şu şekilde gösterilir: Örnek: Verilen (WumpusAhead ∧ WumpusAlive ) cümlesinden WumpusAlive çıkarsanabilir.
Diğer bir çıkarsama kuralı örnekleri:Factoring Logical equivalences
Bu tablodaki mantıksal denklikler çıkarsama kuralları olarak kullanılabilir .
Otomatik Muhakeme-1 Bir küme cümle verilmiş, bu cümlelerden ne sonuç çıkarabiliriz? - Önermeler mantığı şeklinde formülize et, - Sonuç çıkarmak için çıkarsama kuralları kullan.
Örnek:Bilgisayar vs. Agent Bilgi Tabanı: - Bir bilgisayar agent ise zekidir, eğer agent değilse aptal bir makinedir. - Bir bilgisayar hem zeki hem makine ise güçlüdür. - Bir bilgisayar güçlüyse, kullanışlıdır. Sonuç: -Bilgisayar agent mı? Güçlü mü? Kullanışlı mı?
Önermelerin formülasyonu: - BA: Bilgisayar bir agenttır. - BP: Bilgisayar aptaldır. - BM: Bilgisayar bir makinedir. - BK: Bilgisayar kullanışlıdır. - BG: Bilgisayar güçlüdür. Eğer bilgisayar bir agentsa, zekidir. Eğer bilgisayar bir agent değilse, aptal bir makinedir. P1: BA ⇒ ¬BP P2: ¬BA ⇒ BP ^ BM Bilgisayar hem zeki hem de bir makine ise güçlüdür. - P3:(BM ∨ ¬BP) ⇒ BG Bilgisayar güçlüyse kullanışlıdır. - P4: BG ⇒ BK
Sonuç çıkarma; - P1: BA ⇒ ¬BP - P2: ¬BA ⇒ BP ^ BM - P3: (BM ∨ ¬BP) ⇒ BG - P4: BG ⇒ BK P1 ve P2 den P5: ¬BP ⇒ (BP ^ BM) P5 ve P3 den P6: BG P6 ve P4 den P7: BK sunucu çıkarılır.
Ileri Zincirleme ve Geri Zincirleme Metodları Basit ve verimli çıkarsama metodlarıdır. KB formu üzerinde bir kısıtlamaya ihtiyaç duyar. KB=Horn cümlelerinin birleşimi Horn cümlesi: Bir önerme sembolü a veya şeklindedir. Gerçek uygulamalarda bilgi tabanlarının cümleleri genellikle horn cümlesi biçiminde ifade ediliyor.
Horn cümlesi en fazla biri artı olan simgelerin ayrılmış biçimidir. Örnek:(~B11 vP12 V P21) Horn cümlesi değildir (~L11 v ~ Rüzgar v B11) böyle yazıla bilir : (L11 ^ Rüzgar)=>B11 Bir artı simgesi bulunan Horn cümlesi belirlenmiş (defined) cümledir. Artı simgeye cümlenin başı(head) denir. Eksi simgeler metni (body) oluşturuyor. Eksisi olmayan cümle olgudur (fact) (~W11 v ~W12 v W13 ) aşağıdaki ifadeye eşittir: W11 ^ W12 => W13 Belirlenmiş Horn cümleleri Mantıksal Programlamanın temelini oluşturuyor İleri ve Geri zincirleme çıkarsama algoritmaları Horn cümleleri ile çalışıyor
İleri Zincirleme İleri zincirleme çıkarsama kuralları kullanılırken muhakeme (reasoning) işleminin iki temel işleminden bir tanesidir. Temel düşünce: bilgi tabanında her hangi kuralın tetiklenmesi (etkinleştirilmesi), Bunun sonucunun bilgi tabanına eklenmesi Sorgu gerçekleşene dek bu işlemlerin devam ettirilmesi
İleri zincirleme bilgi tabanındaki olgulardan (artı simgeler) başlar İleri zincirleme bilgi tabanındaki olgulardan (artı simgeler) başlar. Amaç sonuç önerinin (Q) Horn cümlelerinden oluşan bilgi tabanından çıkarılıp- çıkarılamayacağını belirlemektir. Eğer implikasyonda sol taraftaki tüm basit öneriler belli ise onun sağ tarafı bilgi tabanına olgu olarak ekleniyor Örneğin, L11 ve Rüzgar belli ise ve (L11 ^ Rüzgar)=>B11 bigi tabanında var ise B11 bilgi tabanına eklenecek Bu süreç Q ilave edilene dek veya yeni çıkarımların oluşturulması mümkün olmayana dek devam ettiriliyor
Sayılar her bir kuralda sol tarafta kaç değişkenin tetiklenmeli olduğunu gösteriyor.
Sayılar her bir kuralda sol tarafta kaç değişkenin tetiklenmeli olduğunu gösteriyor.
+
+ ++
+ ++
++ +
++
Geri zincirleme Temel düşünce: q sorgusundan başlayarak geriye –belli olgulara dek hareket etmek: Bilgi tabanında Q’yü çıkaran implikasyonlar bulunuyor.Bu implikasyonların sol taraflarının doğruluğu kanıtlanırsa o halde Q doğrudur. Döngülerden kaçınmalı: yeni altamacın artık amaç yığınında olup olmadığını kontrol etmeli Tekrarlamaları önlemeli: yeni alt amacın doğruluğunun artık kanıtlanıp kanıtlanmadığını, veya başarısızlığının kanıtlanıp- kanıtlanmadığını yoklamalı