Pertemuan 9
Mid Term Discussions
Alpha Beta Pruning
Logical Agent
Algoritma Alpha Beta
(optimized MinMax)
• Beberapa cabang tidak perlu untuk dibuka jika
berhadapan dengan lawan yang cerdas
• Idenya adalah dengan memantau nilai pada
cabang setiap kali DFS dilakukan
• Yang dipantau adalah nilai alpha (jika MAX), dan
beta (jika MIN)
• Alpha = nilai terbesar sampai saat ini
• Beta = nilai terkecil sampai saat ini
• Jika Beta Alpha, stop percabangan
– Tidak ada nilai yang lebih menguntungkan MAX
– MIN tidak mengijinkan MAX untuk terus maju
More Detailed - Pruning Example
O W B N 4 F -5 G X E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 Aminimax(A,0)
max Call Stack A A A α=More Detailed - Pruning Example
O W -3 B N 4 F -5 G X -5 E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=minimax(B,1)
max Call Stack A B B β= B minMore Detailed - Pruning Example
O W B β= N 4 F -5 G X E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=minimax(F,2)
max Call Stack A F F α= B min max FMore Detailed - Pruning Example
O W -3 B β= N 4 F α= -5 G X -5 E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=minimax(N,3)
max Call Stack A N 4 B min max Fblue: terminal state
More Detailed - Pruning Example
O W B β= N 4 F α= -5 G X E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=minimax(F,2)
is returned to
max Stack Call
A
alpha = 4, maximum seen so far
B
min
max
F blue: terminal state
F
More Detailed - Pruning Example
O W -3 B β= N 4 F α=4 -5 G X -5 E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=minimax(O,3)
max Stack Call
A B
min
max
F blue: terminal state
O
More Detailed - Pruning Example
blue: terminal state
O β= W B β= N 4 F α=4 -5 G X E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(W,4)
max Call Stack A B min max F blue: terminal state (depth limit)O
W min
More Detailed - Pruning Example
blue: terminal state
O β= W -3 B β= N 4 F α=4 -5 G X -5 E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(O,3)
is returned to
max Call Stack Abeta = -3, minimum seen so far
B min max F O min β=-3 O
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β= N 4 F α=4 -5 G X E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(O,3)
is returned to
max Stack Call
A
O's beta F's alpha: stop expanding O (alpha cut-off)
B min max F O min X
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β= N 4 F α=4 -5 G X -5 E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
Why?
Smart opponent will choose W or worse, thus O's upper
bound is –3. So computer shouldn't choose O:-3 since N:4 is
better
max Stack Call
A B min max F O min
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β= N 4 F α=4 -5 G X E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
max Stack Call
A B min max F min X
alpha not changed (maximizing)
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β= N 4 F α=4 -5 G X -5 E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(B,1)
is returned to
max Stack Call
A B min max min X -5
beta = 4, minimum seen so far
B
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=4 N 4 F α=4 -5 G X E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(G,2)
max Stack Call
A B min max min X G G -5
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=4 N 4 F α=4 -5 G X -5 E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(B,1)
is returned to
max Stack Call
A B min max X -5
beta = -5, updated to minimum seen so far
B
β=-5
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(A,0,4)
is returned to
max Stack Call
A
min
max
X
alpha = -5, maximum seen so far A
α=-5
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=-5 N 4 F α=4 -5 G X -5 E D 0 C R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(C,1)
max Stack Call
A min max min X -5 A α=-5 C C C β=
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E D 0 C β= R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(H,2)
max Stack Call
A min max min X A α=-5 C H 3 H
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=-5 N 4 F α=4 -5 G X -5 E D 0 C β= R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(C,1)
is returned to
max Stack Call
A min max min X -5
beta = 3, minimum seen so far A
α=-5
C
C
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(I,2)
max Stack Call
A min max min X A α=-5 C I 8 I
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=-5 N 4 F α=4 -5 G X -5 E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(C,1)
is returned to
max Stack Call
A min max min X -5
beta not changed (minimizing)
A
α=-5
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I J L 2 A α=
minimax(J,2)
max Stack Call
A min max min X A α=-5 C J J J α=
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=-5 N 4 F α=4 -5 G X -5 E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I α= J L 2 A α=
minimax(P,3)
max Stack Call
A min max min X -5 A α=-5 C J P P 9
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I α= J L 2 A α=
minimax(J,2)
is returned to
max Stack Call
A min max min X alpha = 9 A α=-5 C J J α=9
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=-5 N 4 F α=4 -5 G X -5 E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I α=9 J L 2 A α=
minimax(J,2)
is returned to
max Stack Call
A min max min X -5
J's alpha C's beta: stop expanding J (beta cut-off) A α=-5 C J Q -6 R 0
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I α=9 J L 2 A α=
max Stack Call
A min max min X A α=-5 C J
Why?
Computer should choose P or better, thus J's lower
bound is 9; so smart opponent won't take J:9 since H:3 is
worse
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=-5 N 4 F α=4 -5 G X -5 E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I α=9 J L 2 A α=
minimax(C,1)
is returned to
max Stack Call
A min max min X -5
beta not changed (minimizing)
A
α=-5
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I α=9 J L 2 A α=
minimax(A,0)
is returned to
max Stack Call
A
min
max
min
X
alpha = 3, updated to maximum seen so far A
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=-5 N 4 F α=4 -5 G X -5 E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I α=9 J L 2 A α=
max Stack Call
A min max min X -5 A α=3 D D 0
minimax(D,1)
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I α=9 J L 2 A α=
minimax(A,0)
is returned to
max Stack Call
A
min
max
min
X
alpha not updated (maximizing) A
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=-5 N 4 F α=4 -5 G X -5 E D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K M H 3 8 I α=9 J L 2 A α=
How does the algorithm finish the search tree?
max Stack Call
A min max min X -5 A α=3
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E β=2 D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K α=5 M H 3 8 I α=9 J L 2 A α=
E's beta A's alpha:
stop expanding E (alpha cut-off)
max Stack Call
A min max min X A α=3
More Detailed - Pruning Example
blue: terminal state
O β=-3 W -3 B β=-5 N 4 F α=4 -5 G X -5 E β=2 D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K α=5 M H 3 8 I α=9 J L 2 A α=
max Stack Call
A min max min X -5 A α=3
Why?
Smart opponent will choose L or worse, thus E's upper
bound is 2; so computer shouldn't choose E:2 since C:3 is
better path
More Detailed - Pruning Example
blue: terminal state
O β=-3 W B β=-5 N 4 F α=4 -5 G X E β=2 D 0 C β=3 R 0 P 9 -6 Q S 3 T 5 -7 U -9 V K α=5 M H 3 8 I α=9 J L 2 A α=
Result: Computer chooses move to C
max Stack Call
A min max min X A α=3
Properti - Pruning
• Tidak mengubah hasil akhir
• Urutan simpul akan mempengaruhi
pemangkasan yang terjadi
– Kasus terbaik = O(bm/2)
– Kasus terburuk = O(bm) = DFS
• Fungsi evaluasi dapat digunakan untuk
mengatur susunan simpul
Logical Intelligent Agent
• Problem solving agent hanya bisa
menyelesaikan masalah yang lingkungannya
accessible
• Kita membutuhkan agen yang dapat
menambah pengetahuan dan menyimpulkan
keadaan
• Agent seperti ini kita beri nama knowledge
based agent
Knowledge based agent
• Representasi Pengetahuan yang bersifat
general.
• Kemampuan beradaptasi sesuai temuan fakta.
• Kemampuan menyimpulkan sesuatu dari
Knowledge based agent
E N V I R O N M E N T Mesin Inferensi (Inference Engine) percept aksi Basis Pengetahuan (Knowledge Base) pengetahuan Mula-mula berisi background knowledge Persepsi yang diterima Diubah menjadi pengetahuan Berdasarkan pengetahuan yang dimiliki Agen memilih aksi yang tepat Hasil dari aksi disimpan kembaliKnowledge Based Agent
• Komponen utama dari knowledge based agent adalah
knowledge basenya
• Knowledge base (KB) adalah kumpulan representasi fakta
tentang lingkungan atau dunia yang berhubungan atau
menjadi daerah bekerjanya agen
• Setiap representasi dalam KB disebut sebagai sebuah
sentence yang diekspresikan dalam sebuah bahasa yakni
knowledge representation language
Agent Control Architecture
• Control dipisahkan ke dalam lapisan-lapisan yang
merespons tingkah laku
Knowledge Based Agent
• Inferensi adalah proses menyimpulkan fakta
dari fakta fakta yang sudah ada di KB
• KB agent memiliki pengetahuan dasar yang
disebut sebagai background knowledge
KB agent layer
• Knowledge level / epistemological layer
• Logical level
Syarat Representasi KB
• Representational Adequacy
kemampuan merepresentasikan semua pengetahuan yang dibutuhkan dalam domainnya
• Inferential Adequacy
kemampuan memanipulasi struktur pengetahuan untuk membentuk struktur baru dalam menampung pengetahuan baru hasil inferensi
• Inferential Efficiency
kemampuan untuk manambahkan informasi untuk mempercepat pencarian dalam inferensi
• Acquisitional Efficiency
Wumpus world
• Environment sederhana, berguna untuk menguji dan
menjelaskan logical agent.
• Gua gelap dengan banyak ruangan yang dihubungkan dengan
lorong-lorong.
• Agent masuk ke gua untuk mengambil emas yang ada di salah
satu ruangan.
• Wumpus (monster) bersembunyi di salah satu ruangan. Jika
agent bertemu, ia akan menjadi santapannya.
• Terdapat ruang-ruang yang memiliki lubang jebakan yang
dapat membunuh agent.
• Agen hanya punya 1 panah yang bisa membunuh wumpus
dari jarak jauh.
• P
erformance Measure:
ketemu emas: +1000, mati: -1000
-1 untuk setiap langkah, -10 untuk memanah
• E
nvironment:
– Petak yang bersebelahan dengan wumpus berbau busuk (smelly) – Petak yang bersebelahan dengan pit (lubang) terasa angin (breezy) – Petak tempat emas berada bercahaya (Glitter)
– Agent dapat memanah mati wumpus jika berhadapan langsung – Memanah perlu 1 panah
• A
ctuators:
Left turn, Right turn, Forward, Grab, Release, Shoot
• S
ensors:
Breeze, Glitter, Smell,
Bump (jika agent menabrak tembok),
Scream (jika wumpus mati)
Background knowledge :
• Jika ada bau maka ada wumpus di petak tetangga
• Jika ada angin maka ada lubang di petak tetangga
• Jika tak ada bau maka tak ada wumpus di petak tetangga
• Jika tak ada angin maka tak ada lubang di petak tetangga
• Jika tak ada lubang dan Wumpus boleh maju
1. Tak ada angin dan bau di (1,1) maka tak ada Wumpus dan
lubang di (2,1) dan (1,2)
2. Maju ke (2,1)
3. Ada angin di (2,1) maka ada lubang di (2,2) atau (3,1)
4. Tak ada bau di (2,1) maka tak ada Wumpus di (2,2) dan (3,1)
5. Mundur ke (1,1)
6. Maju ke (1,2)
7. Ada bau di (1,2) maka ada Wumpus di (3,1)
(karena tidak ada Wumpus di (2,2))
Breeze di (1,2) dan (2,1)
tidak ada aksi yang aman
Jika distribusi peluang lubang seragam, maka kemungkinan lubang ada di (2,2) lebih besar daripada (1,3)/(3,1)
Smell di (1,1)
wumpus ada di (1,2) atau (2,1), agent tidak dapat bergerak.
bisa menggunakan strategi: panah lurus ke depan
ada wumpus wumpus mati aman tidak ada wumpus aman