Anda di halaman 1dari 41

[AIMA] Russel, Stuart J., Peter Norvig, "Artificial Intelligence, A Modern Approach" 3rd Ed.

,
Prentice Hall, New Jersey, 2010

KI091322 Kecerdasan Buatan


Materi 6: Pencarian dgn. Lihat Status Lawan
(Adversarial Search)
Teknik Informatika, Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember Surabaya
2012
Pengembangan Bahan Ajar sebagai Pendukung Student Centered-Learning
(SCL) melalui e-Learning : Share ITS
Pencarian dengan Lihat Status Lawan
(Adversarial Search)
• Teknik pencarian terdahulu…
– uninformed, informed, local
…tidak memperhitungkan state dari pihak lawan
• Adversarial Search peduli pada state lawan
– contoh problem sering berupa permainan game
• orang lawan komputer pada game catur
• solusi dari Algoritma Adversarial Search menjadi
langkah komputer
• Misal: Algoritma Minimax, Algoritma Alpha Beta

2
Adversarial Search pada Problem Game
• Initial State: posisi board dan pemain
• Successor Function: mengembalikan daftar
kemungkinan langka pemain
• Terminal Test: penentuan syarat game
berakhir
• Utility function: nilai dari setiap state
• Game Tree: kemungkinan langkah pemain
(state) berdasarkan langkah sebelumnya
3
Contoh State pada Game Tic Tac Toe
0 1 2 Nilai state disamping adalah
3 4 5 [0, 1, 2, 3, 4, 5, 6, 7, 8]
6 7 8

X 0 X 2 Nilai state disamping adalah


3 4 5 [0, X, 2, 3, 4, 5, 6, 7, 8]
6 7 8

X 0 X 2 Nilai state disamping adalah


O 3 4 O [0, X, 2, 3, 4, O, 6, 7, 8]
6 7 8

4
Contoh Utility Function
• Istilah pada bahasan terdahulu,
– Nilai fitness (fitness function pada Algoritma
Genetika)
– Cost Function pada uninformed & informed search
• Fungsi: memberikan suatu nilai pada state
yang sedang diamati
– Tidak ada aturan baku, heuristik, sesuai dengan
definisi permasalahan

5
Contoh Utility Function Game Tic Tac Toe
X Nilai state untuk Pemain X disamping: 2 - 0
Ada 2 garis yang bisa dibuat Pemain X

X Nilai state untuk Pemain X disamping: 2 – 1 = 1


O Hanya ada 1 garis yang bisa dibuat Pemain X
karena Pemain O menghalangi garis lainnya

Nilai Utility Function =


banyaknya garis yang bisa dibuat seorang pemain tanpa
gangguan dari pemain lain.

6
Contoh Game Tree pada Tic Tac Toe
2 pemain berusaha membuat
garis pada papan n x n initial state : [0,1,2,3,4,5,6,7,8]

Posisi 0 Posisi 1
Daftar semua
kemungkinan
posisi X sebagai
Pemain 1

SUCCESSORS( [0,1,2,3,4,5,6,7,8] ) returns [


(0,[X,1,2,3,4,5,6,7,8]), Posisi 0
(1,[0,X,2,3,4,5,6,7,8]), Posisi 1
... ]

7
Algoritma Minimax
• Memberikan nilai paling maksimal atau nilai paling minimal
dari pemain
– Contoh berikut adalah game tree dari 2 pemain dengan
kemungkinan langkah sampai 3 level
• ruang kemungkinan terlalu banyak -> ada pembatasan kedalaman level
(DEPTH-LIMITED SEARCH)
• Nilai utility function untuk state langkah pemain di posisi level 3 telah
dihitung
• Tujuan Level 0 dan Level 2 -> mencari nilai state paling maksimal
• Tujuan Level 1 -> mencari nilai state paling minimal

8
Algoritma Minimax
• Buat 2 fungsi recursive :
– max-value mencari nilai maksimal successors
– min-value mencari nilai minimal successors
def value(state):
If terminal state: return the state’s utility
If MAX agent: return max-value(state)
If MIN agent: return min-value(state)
def max-value(state):
Initialize max = -∞
For each successor of state:
V ← value(successor)
max ← maximum(max, v)
Return max

9
Minimax dengan Depth-Limited Search
• Buat 2 fungsi recursive :
– max-value mencari nilai maksimal successors
– min-value mencari nilai minimal successors
def value(state, limit):
If terminal state: return the state’s utility
If limit = 0: return evaluation_function(state)
If MAX agent : return max-value(state, limit)
If MIN agent : return min-value(state, limit)
def max-value(state, limit):
Initialize max = -∞
For each successor of state:
V ← value(successor, limit-1)
max ← maximum(max, v)
Return max
10
Contoh Animasi Minimax
3 6 Langkah yang diambil
Max
komputer adalah state
dengan nilai utility
6 function = 6
Min 5 3

Max 1 3 6 0 7
5

5 2 1 3 6 2 0 7

11
-: Pruning di Depth-Limited Search
• Pruning = pemotongan cabang pada game tree
– Mengurangi waktu pembuatan dan penelusuran
tree
• Algoritma Alpha Beta (-)
– Minimax pada DepthLimited Search + pruning
– Syarat pruning: nilai variabel alpha dan variabel
beta
• Alpha = nilai paling maksimal di semua level max
• Beta = nilai paling minimal di semua level min

12
Algoritma Alpha Beta

13
State Awal Contoh Alpha-Beta
Maximum-α

Minimum-β

Maximum-α

Minimum-β

Maximum-α

Minimum-β

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
14
State Akhir Contoh Alpha-Beta
Maximum-α 1

Minimum-β 0 1

Maximum-α
0 2 1 2

Minimum-β
0 2 1 -5 2

Maximum-α 0 3 2 1 -5 2

Minimum-β 0 -3 3 2 1 -3 -5 2

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
15
Alpha-Beta Example
Maximum-α

Minimum-β

Maximum-α

Minimum-β

Maximum-α

Minimum-β

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β

Maximum-α

Minimum-β

Maximum-α

Minimum-β 0

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β

Maximum-α

Minimum-β

Maximum-α 0

Minimum-β 0

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β

Maximum-α

Minimum-β

Maximum-α 0

Minimum-β 0 -3

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β

Maximum-α

Minimum-β

Maximum-α 0

Minimum-β 0 -3

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β

Maximum-α

Minimum-β
0

Maximum-α 0

Minimum-β 0 -3

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β

Maximum-α

Minimum-β
0

Maximum-α 0 3

Minimum-β 0 -3 3

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β

Maximum-α

Minimum-β
0

Maximum-α 0 3

Minimum-β 0 -3 3

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β 0

Maximum-α
0

Minimum-β
0

Maximum-α 0 3

Minimum-β 0 -3 3

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β 0

Maximum-α
0

Minimum-β
0

Maximum-α 0 3

Minimum-β 0 -3 3 5

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β 0

Maximum-α
0

Minimum-β
0

Maximum-α 0 3 2

Minimum-β 0 -3 3 2

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β 0

Maximum-α
0

Minimum-β
0

Maximum-α 0 3 2

Minimum-β 0 -3 3 2

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β 0

Maximum-α
0 2

Minimum-β
0 2

Maximum-α 0 3 2

Minimum-β 0 -3 3 2

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α

Minimum-β 0

Maximum-α
0 2

Minimum-β
0 2

Maximum-α 0 3 2

Minimum-β 0 -3 3 2

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 0

Minimum-β 0

Maximum-α
0 2

Minimum-β
0 2

Maximum-α 0 3 2

Minimum-β 0 -3 3 2

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 0

Minimum-β 0

Maximum-α
0 2

Minimum-β
0 2

Maximum-α 0 3 2

Minimum-β 0 -3 3 2 5

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 0

Minimum-β 0

Maximum-α
0 2

Minimum-β
0 2

Maximum-α 0 3 2 1

Minimum-β 0 -3 3 2 1

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 0

Minimum-β 0

Maximum-α
0 2

Minimum-β
0 2

Maximum-α 0 3 2 1

Minimum-β 0 -3 3 2 1 -3

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 0

Minimum-β 0

Maximum-α
0 2

Minimum-β
0 2

Maximum-α 0 3 2 1

Minimum-β 0 -3 3 2 1 -3

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 0

Minimum-β 0

Maximum-α
0 2 1

Minimum-β
0 2 1

Maximum-α 0 3 2 1

Minimum-β 0 -3 3 2 1 -3

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 0

Minimum-β 0

Maximum-α
0 2 1

Minimum-β
0 2 1

Maximum-α 0 3 2 1

Minimum-β 0 -3 3 2 1 -3 -5

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 0

Minimum-β 0

Maximum-α
0 2 1

Minimum-β
0 2 1

Maximum-α 0 3 2 1

Minimum-β 0 -3 3 2 1 -3 -5

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 0

Minimum-β 0

Maximum-α
0 2 1

Minimum-β
0 2 1 -5

Maximum-α 0 3 2 1 -5

Minimum-β 0 -3 3 2 1 -3 -5

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 1

Minimum-β 0

Maximum-α
0 2 1

Minimum-β
0 2 1 -5

Maximum-α 0 3 2 1 -5

Minimum-β 0 -3 3 2 1 -3 -5

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 1

Minimum-β 0 1

Maximum-α
0 2 1

Minimum-β
0 2 1 -5

Maximum-α 0 3 2 1 -5

Minimum-β 0 -3 3 2 1 -3 -5

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17
Alpha-Beta Example
Maximum-α 1

Minimum-β 0 1

Maximum-α
0 2 1 2

Minimum-β
0 2 1 -5 2

Maximum-α 0 3 2 1 -5 2

Minimum-β 0 -3 3 2 1 -3 -5 2

0 5 -3 3 3 -3 0 2 -2 3 5 2 5 -5 0 1 5 1 -3 0 -5 5 -3 3 2
17

Anda mungkin juga menyukai