Reasoning Engine zge Barbaros Baran Cem Barazi mit
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 (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 S 1 ve S 2 birer cümleyse, S 1 ∧ S 2 de bir cümledir. (kesişim) 4. Eğer S 1 ve S 2 birer cümleyse, S 1 ∨ S 2 de bir cümledir. (birleşim) 5. Eğer S 1 ve S 2 birer cümleyse, S 1 ⇒ S 2 de bir cümledir. (koşul sağlama) 6. Eğer S 1 ve S 2 birer cümleyse, S 1 ⇔ S 2 de bir cümledir. (çift taraflı koşul sağlama)
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 S 1 true ve S 2 true ise, S 1∧ S 2 true. (S 1 “ve” S 2 ) 3. Eğer S 1 true veya S 2 true ise S 1 ∨ S 2 true. (S 1 “veya” S 2 ) 4. Eğer S 1 false veya S 2 true, S 1 ⇒ S 2 true. (S 1 “içerir” S 2 ) • Örnek: S 1 true veya S 2 false ise S 1 ⇒ S 2 f alse. 5. Eğer S 1 ⇒ S 2 true ve S 2 ⇒ S 1 true S 1 ⇔ S 2 true. (S 1 “denktir” S 2 )
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. (Wumpus. Ahead ∧ Wumpus. Alive )⇒Shoot cümlesi ve (Wumpus. Ahead ∧ Wumpus. Alive ) 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 (Wumpus. Ahead ∧ Wumpus. Alive ) cümlesinden Wumpus. Alive çı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. – P 1: BA ⇒ ¬BP – P 2: ¬BA ⇒ BP ^ BM • Bilgisayar hem zeki hem de bir makine ise güçlüdür. - P 3: (BM ∨ ¬BP) ⇒ BG • Bilgisayar güçlüyse kullanışlıdır. - P 4: BG ⇒ BK
• Sonuç çıkarma; - P 1: BA ⇒ ¬BP - P 2: ¬BA ⇒ BP ^ BM - P 3: (BM ∨ ¬BP) ⇒ BG - P 4: BG ⇒ BK • P 1 ve P 2 den P 5: ¬BP ⇒ (BP ^ BM) • P 5 ve P 3 den P 6: BG • P 6 ve P 4 den P 7: 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: (~B 11 v. P 12 V P 21) Horn cümlesi değildir (~L 11 v ~ Rüzgar v B 11) böyle yazıla bilir : (L 11 ^ Rüzgar)=>B 11 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) (~W 11 v ~W 12 v W 13 ) aşağıdaki ifadeye eşittir: W 11 ^ W 12 => W 13 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. 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, L 11 ve Rüzgar belli ise ve (L 11 ^ Rüzgar)=>B 11 bigi tabanında var ise B 11 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ıpkanıtlanmadığını yoklamalı
- Slides: 44