pertemuan 9 · 2011. 12. 3. · f α=4 g -5 x -5 d e 0 c β=3 r 0 p 9 q -6 s 3 t 5 u -7 v -9 h k m...
TRANSCRIPT
Pertemuan 9
Mid Term Discussions Alpha Beta Pruning
Logical Agent (intro to proportional logic)
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
Minimax Revisited
- Pruning Example
- Pruning Example
- Pruning Example
- Pruning Example
- Pruning Example
- Pruning Algorithm
- Pruning The “Heuristic”
More Detailed - Pruning Example
O
W -3
B
N 4
F G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A
minimax(A,0)
max Call
Stack
A
A A α=
More Detailed - Pruning Example
O
W -3
B
N 4
F G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(B,1)
max Call
Stack
A
B B β=
B
min
More Detailed - Pruning Example
O
W -3
B β=
N 4
F G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(F,2)
max Call
Stack
A
F F α=
B
min
max
F
More Detailed - Pruning Example
O
W -3
B β=
N 4
F α=
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(N,3)
max Call
Stack
A
N 4
B
min
max
F
blue: terminal state
N
More Detailed - Pruning Example
O
W -3
B β=
N 4
F α=
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(F,2) is returned to
max Call
Stack
A
alpha = 4, maximum seen so far
B
min
max
F
blue: terminal state
F α=4
More Detailed - Pruning Example
O
W -3
B β=
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(O,3)
max Call
Stack
A
B
min
max
F
blue: terminal state
O
min O O β=
More Detailed - Pruning Example
blue: terminal state
O β=
W -3
B β=
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(W,4)
max Call
Stack
A
B
min
max
F
blue: terminal state (depth limit)
O
W -3
min
W
More Detailed - Pruning Example
blue: terminal state
O β=
W -3
B β=
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(O,3) is returned to
max Call
Stack
A
beta = -3, minimum seen so far
B
min
max
F
O
min O β=-3
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(O,3) is returned to
max Call
Stack
A
O's beta F's alpha: stop expanding O (alpha cut-off)
B
min
max
F
O
min
X -5
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
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 Call
Stack
A
B
min
max
F
O
min
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α= max
Call
Stack
A
B
min
max
F min
X -5
alpha not changed (maximizing)
minimax(F,2) is returned to
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(B,1) is returned to
max Call
Stack
A
B
min
max
min
X -5
beta = 4, minimum seen so far
B β=4
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=4
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(G,2)
max Call
Stack
A
B
min
max
min
X -5
G
G -5
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=4
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(B,1) is returned to
max Call
Stack
A
B
min
max
X -5
beta = -5, updated to minimum seen so far
B β=-5
min
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(A,0,4) is returned to
max Call
Stack
A
min
max
X -5
alpha = -5, maximum seen so far
A α=-5
min
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(C,1)
max Call
Stack
A
min
max
min
X -5
A α=-5
C
C C β=
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(H,2)
max Call
Stack
A
min
max
min
X -5
A α=-5
C
H 3
H
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(C,1) is returned to
max Call
Stack
A
min
max
min
X -5
beta = 3, minimum seen so far
A α=-5
C
C β=3
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(I,2)
max Call
Stack
A
min
max
min
X -5
A α=-5
C
I 8
I
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(C,1) is returned to
max Call
Stack
A
min
max
min
X -5
beta not changed (minimizing)
A α=-5
C
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J L 2
A α=
minimax(J,2)
max Call
Stack
A
min
max
min
X -5
A α=-5
C
J
J J α=
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J α=
L 2
A α=
minimax(P,3)
max Call
Stack
A
min
max
min
X -5
A α=-5
C
J
P P 9
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J α=
L 2
A α=
minimax(J,2) is returned to
max Call
Stack
A
min
max
min
X -5
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
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J α=9
L 2
A α=
minimax(J,2) is returned to
max Call
Stack
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 -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J α=9
L 2
A α= max
Call
Stack
A
min
max
min
X -5
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
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J α=9
L 2
A α=
minimax(C,1) is returned to
max Call
Stack
A
min
max
min
X -5
beta not changed (minimizing)
A α=-5
C
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J α=9
L 2
A α=
minimax(A,0) is returned to
max Call
Stack
A
min
max
min
X -5
alpha = 3, updated to maximum seen so far
A α=-5 A α=3
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J α=9
L 2
A α= max
Call
Stack
A
min
max
min
X -5
A α=3
D
D 0
minimax(D,1)
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J α=9
L 2
A α=
minimax(A,0) is returned to
max Call
Stack
A
min
max
min
X -5
alpha not updated (maximizing)
A α=3
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K M H 3
I 8
J α=9
L 2
A α=
How does the algorithm finish the search tree?
max Call
Stack
A
min
max
min
X -5
A α=3
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E β=2
D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K α=5
M H 3
I 8
J α=9
L 2
A α=
E's beta A's alpha: stop expanding E (alpha cut-off)
max Call
Stack
A
min
max
min
X -5
A α=3
More Detailed - Pruning Example
blue: terminal state
O β=-3
W -3
B β=-5
N 4
F α=4
G -5
X -5
E β=2
D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K α=5
M H 3
I 8
J α=9
L 2
A α= max
Call
Stack
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 -3
B β=-5
N 4
F α=4
G -5
X -5
E β=2
D 0
C β=3
R 0
P 9
Q -6
S 3
T 5
U -7
V -9
K α=5
M H 3
I 8
J α=9
L 2
A α=
Result: Computer chooses move to C
max Call
Stack
A
min
max
min
X -5
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 pengetahuan yang sudah ada.
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
(inferensi)
Hasil dari aksi disimpan kembali
dalam bentuk pengetahuan
Knowledge 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
Robot Sonar
Agent Control Architecture
• Control dipisahkan ke dalam lapisan-lapisan yang merespons tingkah laku
Contoh Control Architecture
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
Generic KB-Agent
KB agent layer
• Knowledge level / epistemological layer
• Logical level
• Implementation 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
kemampuan untuk menambah informasi baru secara mudah
The Wumpus World
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.
• Performance Measure:
ketemu emas: +1000, mati: -1000
-1 untuk setiap langkah, -10 untuk memanah
• Environment:
– 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
– Agent bisa mengambil emas jika berada di petak emas tersebut ada
• Actuators:
Left turn, Right turn, Forward, Grab, Release, Shoot
• Sensors:
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
• dst.
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
Soal Latihan Pruning
A
B
F E G H I J K
C D
L M N O P Q R S T U V W X Y
7 6 8 5 2 3 0 -2 6 2 5 8 9 2
max
min
max
min