Thursday, October 13, 2016

Pengenalan Logical Agents

Pentingnya Pengetahuan

  • Problem Solving Agent : Memilih solusi di antara kemungkinan yang ada. Apa yang ia “ketahui” tentang dunia tidak berkembang ! problem solution (initial state, successor function, goal test)
  • Knowledge-based Agent : Lebih “pintar”. Ia “mengetahui” hal-hal tentang dunia dan dapat melakukan reasoning (berpikir, bernalar) mengenai : Hal-hal yang tidak diketahui sebelumnya (imperfect/partial information), dan Tindakan yang paling baik untuk diambil
Knowledge-based Agent
Knowledge Base: apa yang “diketahui” oleh si agent. Pendekatan deklaratif membangun agent: “beritahu” informasi yang relevan, simpan dalam KB => (TELL). Agen dapat ditanya (atau bertanya diri sendiri) apa yang sebaiknya dilakukan berdasarkan KB => (ASK). Sebuah knowledge-based agent harus bisa :
   - Merepresentasikan world, state, action, dst.
   - Menerima informasi baru (dan meng-update representasinya)
   - Menyimpulkan pengetahuan lain yang tidak eksplisit (hidden property)
   - Menyimpulkan action apa yang perlu diambil

Knowledge Base :
   - Himpunan representasi fakta yang diketahui tentang lingkungannya
   - Tiap fakta disebut sentence.
   - Dinyatakan dalam bahasa formal ! bisa diolah
   - TELL: menambahkan sentence baru ke KB.

Inference Engine :
   - Menentukan fakta baru yang dapat diturunkan dari pengetahuan yang sudah ada dalam KB.
   - Menjawab pertanyaan (ASK) berdasarkan KB yang sudah.

Representasi
Agent dapat dipandang dari knowledge level: informasi apa yang diketahuinya? Mis: sebuah robot “mengetahui” bahwa gedung B ada di antara gedung A dan gedung C. Agent dapat dipandang dari implementation level : Bagaimana representasi informasi yang diketahuinya?
   - Logical sentence: di_antara(gdB,gdA,gdC)
   - Natural language: “Gedung B ada di antara gedung A dan gedung C”
   - Tabel posisi koordinat gedung-gedung
   - Gambar diagram peta Fasilkom (bitmap? vector?)
Pilihan representasi berpengaruh thd. apa yang bisa dilakukan oleh inference engine.

Pendekatan Deklaratif vs Pendekatan Prosedural
Programmer memberitahu (TELL) agent informasi tentang environment. Kalau informasi kurang, agent bisa melengkapinya sendiri. Bandingkan dengan pendekatan prosedural: Programmer secara eksplisit memrogram agent untuk bertindak. Kalau program tidak benar ... ? (error?) Ini adalah masalah knowledge representation: Bagaimana representasi yang tepat?
   - Expressive: bisa menyatakan fakta tentang environment
   - Tractable: bisa diolah/diproses inference engine (dg. cepat?)

Wumpus World


- Performance measure: emas +1000, mati -1000, gerak -1, panah -10
- Environment: Matriks 4x4 kamar. Initial state [1,1]. Ada gold, wumpus dan pit yang lokasinya dipilih secara acak.
- Percept
     * Breeze: kamar di samping lubang jebakan ada hembusan angin
     * Glitter: kamar di mana ada emas ada kilauan/sinar
     * Smell: kamar di samping Wumpus berbau busuk
- Action: maju, belok kiri 90
, kanan 90
, tembak panah (hanya 1!), ambil benda

Sifat Wumpus World :
   - (Fully) observable? Tidak, hanya bisa persepsi lokal
   - Deterministic? Ya, hasil tindakan jelas & pasti
   - Episodic? Tidak, tergantung action sequence
   - Static? Ya, gold, wumpus, pit tidak bergerak
   - Discrete? Ya
   - Single agent? Tidak

Menjelajahi Wumpus World


Logic in General
Knowledge representation language (KRL): bahasa yang digunakan untuk menyatakan fakta tentang
“dunia”.
Syntax: aturan yang mendefinisikan sentence yang sah dalam bahasa.
Semantics: aturan yang mendefinisikan “arti” sebuah sentence, mis: kebenaran sentence di dalam dunia

Contoh KRL bahasa aritmatika :
Syntax:
   x + 2 > y adalah kalimat sah.
   x2 + y bukan kalimat sah.

Semantics: x + 2 > y benar jika bilangan x + 2 tidak lebih kecil dari bilangan y:
   x + 2 > y benar dalam “dunia” di mana x = 7, y = 1
   x + 2 > y salah dalam “dunia” di mana x = 0, y = 6

Contoh KRL bahasa Indonesia :
Syntax:
   “Jakarta adalah ibukota Indonesia” adalah kalimat sah.
   “Ibu Indonesia kota Jakarta adalah” bukan kalimat sah.

Semantics: “X adalah ibukota Y” benar jika X adalah pusat pemerintahan negara Y.
   “Jakarta adalah ibukota Indonesia” benar dalam “dunia” kita sekarang.
   “Jakarta adalah ibukota Indonesia” salah dalam “dunia” th. 1948 (Yogya? Bukittinggi?).

Logic sebagai KRL
Logics: bahasa formal untuk merepresentasikan fakta sedemikian shg. kesimpulan (fakta baru, jawaban) dapat ditarik. Ada banyak metode inference yang diketahui. Kita bisa membangun agent Wumpus World dengan logika: memanfaatkan perkembangan logika oleh ahli matematika, filsafat selama ratusan tahun!

Entailment
Entailment berarti sesuatu fakta bisa disimpulkan dari (kumpulan) fakta lain.
KB |= : KB entails sentence jhj true dalam semua “dunia” di mana KB true.
Contoh:
   - KB mengandung sentence “Anto ganteng” dan “Ani cantik”.
   - KB |= 1: “Anto ganteng dan Ani cantik”
   - KB 2 2: “Anto pintar”
   - x + y = 4 |= 4 = x + y

Inference/Reasoning

  • Inference, atau reasoning: pembentukan fakta (sentence) baru yang meng-entail fakta-fakta lama.
  • Reasoning bukan dilakukan pada fakta di dunia (semantics), melainkan representasi fakta dalam KRL si agent (syntax).
  • Otak manusia melakukan proses reasoning dalam suatu bentuk syntax!

No comments:

Post a Comment