Knowledge Representation and Reasoning – Fariz Dariri


Saya coba lanjutkan lagi sharing materi workshop AI yang diadakan Fasilkom UI. Kali ini bagian ketiga dari presentasi Fariz dariri tentang sistem cerdas. Knowledge based agent adalah sebuah intelligent agent yang mengetahui benda dan dapat melakukan penalaran. Knowledge (pengetahuan) dan reasoning (penalaran) adalah bagian penting ketika berinteraksi dengan lingkungan yang partially observable. Dua tugas utama tell dan ask. Agent harus dapat mengambil kesimpulan yaitu pengetahuan baru diturunkan dari sesuatu yang sudah diketahui.

Komponen dari Knowledge based agent:

  • inference engine: domain independent algoritma
  • knowledge base: domain-specific content

Contoh klasik penalaran:

Tell:

  • Socrates adalah manusia
  • Semua manusia akan mati

Ask:

  • Apakah Socrates akan mati? Ya

Contoh lain:

Tell: 

  • Kalau hujan, rumput akan basah
  • Hari ini hujan

Ask:

  • apakah rumput basah? ya

Domain-independent reasoining: Modus Ponens

Tell:

  • Jika A maka B
  • A

Ask:

  • B? ya

Tipe-tipe penalaran:

  • Deduktif: Aturan umum –> kesimpulan spesifik
  • Induktif: Observasi tertentu –> Kesimpulan umum
  • Abductif: Observasi yang tidak komplot –> Prediksi terbaik

Contoh penalaran pada kasus Angsa:

  • Deduktif:
    • Semua angsa berwarna putih 
    • Daisy adalah sebuah angsa 
    • maka Daisy berwarna putih
  • Induktif:
    • Daisy adalah angsa, dan daisy berwarna putih
    • Danny adalah angsa dan danny berwarna putih
    • Dante adalah angsa dan dante berwarna putih
    • Maka semua angsa berwrna putih
  • Abduction:
    • Semua angsa berwarna putih
    • Daisy berwarna putih
    • maka Daisy adalah seekor angsa

Kemudian diceritakan contoh kasus wumpus world. Wumpus world ini sebuah game sederhana yang sering dijadikan contoh dalam knowledge representation dan logical reasoning. 

Logical Language

2 logical languge:

  • Propositional Logic (PL)
  • First Order Logic (FOL)

Bagian logical language

  • Syntax: menentukan statement (pernyataan) sesuai dengan format
  • Semantic: Makna dari statement

Proposional Logic (PL)

  • Statement di PL direpresentasikan dengan simbol seperti P,Q,R,ItRains dll
  • Pernyataan yang kompleks bisa menggunakan konektor logika seperti: not (¬), and (∧), or (∨), implies (⇒), if and only if (⇔)
  • Semantik bisa ditentukan dengan sebuah model. kemudian dilakukan pengujian nilai kebenarannya.

Contoh:

  • pernyataan P: Bob adalah seorang guru;
  • Pernyataan Q: Nina adalah seorang bos
  • ¬P ∧ Q : Bob bukan guru  dan Nina seorang bos
  • Bila ditanyakan apakah ¬P ∧ Q true (benar)? 
  • Jawabannya tergantung apakah P benar, apakah Q benar
  • Dalam model dimana P adalah salah, dan Q adalah benar, pernyataan ¬P ∧ Q adalah benar
  • Namun pada model dimana P adalah benar dan Q adalah benar, maka pernyataan P ∧ Q adalah false

 

KB entailment:

  • Tujuan dari pernyataan logil adalah untuk mengambil kesimpulan, (making explicit from what is implicit)
  • entailment KB ⊨ α berarti pernyataan α secara logis mengikuti statements KB
  • Maksudnya pada model apapun yang menghasilkan KB true, maka model tersebut juga menghasilkan  α true

Contoh:

  • A adalah pernyataan ” Socrates adalah manusia”, B adalah “Socrates pasti mati”
  • Bila pernyataan KB terdiri dari A ; A⇒B
  • Apakah KB ⊨ B? ya

First Order Logic (FOL)

  •  Propositional Logic (PL) memiliki keterbatasan ekspresi
  • Contoh sebuah knowledge base (KB) terdiri dari: “Budi is a friend of Ani” dan “All friends of Budi are nice” dengan PL
  • FOL dapat merepresentasikan KB tersebut
  • FOL mendukung
  • Objects, relations, and functions
  • Universal and existential quantifiers
  • Equality

Contoh representasi FOL:

“Budi is a friend of Ani”
• “All friends of Budi are nice”

Friend(Budi, Ani)
∀x Friend(Budi, x) ⇒ Nice(x)

FOL Reasoning:

Universal instantiation: A statement with universal quantifier entailing all its instantiations, so the following holds for any variable v and any object g:

page30image10887504

Diketahui KB berikut:

• “Budi is a friend of Ani”: Friend(Budi, Ani)
• “All friends of Budi are nice”: ∀x Friend(Budi, x) ⇒ Nice(x)

Dapatkah kita menyimpulkan bawha “Ani is nice”, Nice(Ani)?

Jawaban:

Kita bisa melakukan universal instantiation. Substitusu x dengan Ani for ∀x Friend(Budi, x) ⇒ Nice(x) menghasilkan: Friend(Budi, Ani) ⇒ Nice(Ani)

Maka dengan Modus Ponens, dari Friend(Budi, Ani) dan Friend(Budi, Ani) ⇒ Nice(Ani), kita mendapatkan: Nice(ani)

Sampai disini dulu, besok insyaallah saya lanjutkan materi berikutnya tentang Probabilistic reasoning. Semoga Bermanfaat!

Silahkan tuliskan tanggapan, kritik maupun saran