,
Prentice Hall, New Jersey, 2010
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
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
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
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