Problem Solving Game Playing Ref : Artificial Intelligence: A Modern Approach ch. 5 Senin, 18 Feb 2002
Review Problem dng. tugas 1 (tugas bab 3) ? Informed search Best-first search : Greedy search. A* search. Memory bounded search : Iterative Deepening A* search (IDA*). Simplified Memory-bounded A* search (SMA*). Iterative Improvement Algorithms : Hill Climbing. Simulated Annealing.
Review Heuristik Pemilihan fungsi heuristik ? Membuat fungsi heuristik Akurat. Efisien. Membuat fungsi heuristik Melemahkan permasalahan. Menggabungkan beberapa fungsi heuristik yg. admissable. Statistik. Memberikan bobot pada faktor-faktor yg. diperkirakan mempengaruhi tercapainya suatu goal (learning from observation).
Game Playing Permainan sederhana, spt. jenis simple puzzle (e.g. 8-puzzle), dapat diselesiakan dng. metode-metode search sebelumnya (blind & informed search). Permainan (game) yg. melibatkan minimal 2 org. pemain, berarti melibatkan pula unpredictable opponent contingency problem. Search space game besar & biasanya ada batas waktu Pemain harus menentukan langkah selanjutnya berdasarkan informasi yg. dimiliki saat ini (tdk. tahu pasti hasil tindakannya) lebih mendekati real world problem
Game Playing Game bisa dibagi menjadi : (src:slide buku Russell&Norvig) Beberapa metode search utk. game playing : Minimax. Alpha-Beta Pruning. Expectiminimax.
Minimax Utk. game yg. deterministic & memiliki perfect information. Terdiri atas level max & min Max : pemain node yg. di-expand berikut adalah yg. nilainya terbesar. Min : lawan (asumsi: lawan bermain semaksimal mungkin utk. meminimumkan nilai kita). node yg. di-expand berikut adalah yg. nilainya terkecil. Node di-expand sampai terminal states (states dimana game berakhir), pada terminal dilakukan penghitungan utility function-nya. Nilai ini kemudian dipropagasikan ke atas sampai root berdasarkan max/min. Yg. penting nilai relatif, bukan absolut.
Minimax Complete. Optimal (jk. lawan memilih yg. langkah yg.optimal juga). Dng. b : branching factor, m : max. depth : Time complexity : O(bm). Space complexity : O(bm). Contoh : Utk. catur : reasonable game jk. b 35, m 100. tdk. feasible jk. harus meng-explore semua. Solusi : Menentukan depth (cutting-off search). Pruning.
Minimaxing with Fixed-Depth Limit Sama dengan minimaxing, hanya saja node di-expand sampai batas depth tertentu, misal sampai level n (n ply). Biasa disebut n-move look-ahead. Nodes pada level n dianggap sebagai leaf (cutoff, minimax biasa : terminal) & penghitungan evaluation function (minimax biasa : utility function) dilakukan pada leaves tsb. Evaluation function : estimasi utility (heuristik). Jk. pemilihan n tidak tepat, dapat terjadi suatu langkah dipilih krn. berdasarkan penghitungan evaluation function akan menang, tapi ternyata akan mengakibatkan kekalahan.
Minimaxing with Fixed-Depth Limit Maslah : Cutoff test. Cutoff harus dilakukan pada posisi quiescent (funsi evaluasi tdk. menghslkan nilai yg. sangat berbeda dng. kenyataan nanti). Solusi : meng-expand posisi non-quiescent hingga diperoleh posisi quiescent. Pencarian ini disebut : quiescent search. Contoh : utk catur
Minimaxing with Fixed-Depth Limit Horizon problems : Jk. posisi yg. dihadapi dapat mengakibatkan kekalahan & posisi tsb. sukar utk. dihindari. Umumnya yg. dilakukan hanya menunda terjdinya posisi tsb. shg. melewati batas depth (over the horizon). Belum ada general solution utk. mengatasinya. Contoh : utk catur
Minimaxing with Fixed-Depth Limit Tidak complete (kecuali jk. depth limit = max level). Tidak optimal (kecuali jk. depth limit = max level). Dng. b : branching factor, d : depth : Time complexity : O(bd). Space complexity : O(bd). Branching factor (b) game, umumnya besar (e.g.: 35 utk. catur). Dng. minimax, jk. b sngt. besar, mk. depth yg. feasible utk. di-explore lebih sedikit, berarti look-ahead juga kecil. Contoh : utk. catur, mis. waktu utk. berpikir : 100 sec & waktu meng-explore node : 104 nodes/sec, mk. utk. tiap move, kita dapat meng-explore 106 nodes. bd = 106 35d = 106 d = 4 Jadi hanya bisa melihat 4 langkah ke depan (dlm. catur : novice).
Alpha-Beta Pruning Sebenarnya tdk. semua nodes perlu di-explore Alpha-beta pruning tidak meng-expand node-node yg. tidak mungkin dipilih. Expand dilakukan secara DFS. Sama seperti minimax, hanya saja nilai max (alpha) yg. ada hingga sekarang & nilai min (beta) yg. ada hingga sekarang disimpan, shg. : Jk. pd. level max, menjumpai node yg. value-nya < alpha, node tsb. tidak di-expand. Jk. pd. level min, menjumpai node yg. value-nya > beta, node tsb. tdk. di-expand. Utk. jelasnya : lihat contoh di papan.
Alpha-Beta Pruning Complete. Optimal (jk. lawan memilih yg. langkah yg.optimal juga). Dng. b : branching factor, d : depth : Time complexity : O(bd/2) rata-rata. Space complexity : O(bd) max. Umumnya, waktu yg. dibutuhkan alpha-beta pruning adalah 1/2 waktu yg. dibutuhkan minimax, mk. look-ahead yg. mungkin juga menjadi 2X lipat. Mis.: utk. contoh catur di slide 11, dng. alpha-beta pruning, ada 8 langkah yg. dapat dilihat (average player).
Expectiminimax Utk. game-game yg. non-deterministik (ada unsur kemungkinan/chance), misal jumlah langkah dibatasi oleh nilai dari dadu yg. dilempar (monopoli), mk. perlu ditambahkan chance nodes pada search tree-nya. Sama dng. minimax, hanya saja antara level max dng. min / min dng. max, terdapat chance nodes yg. menunjukkan probabilitas dapat dilakukannya suatu langkah (lihat contoh). Alpha-beta pruning ? pruning dapat juga dilakukan dng. memberikan batas pada utility/evaluation function, shg. jk. ada node yg. melebih/kurang dr. batas atas/batas bawah fungsi, dapat langsung di-ignore.
Expectiminimax Nilai absolut evaluasi/utility dpt. berpengaruh. Contoh : Time complexity : O(bmnm) atau O(bdnd), n : jumlah kemungkinan (misal hasil melempar 1 dadu, n = 6).
Game Playing (Accomplishment) Catur : 1997 : Deep Blue (IBM) mengalahkan juara dunia, Garry Kasparov. Deep Blue mampu melihat 40 langkah ke depan, elo rating sekitar 2600 yg. berarti termasuk 100 besar pecatur dunia. Checkers : 1994 : Chinook (buatan Jonathan Schaeffer & team, University of Alberta) menjadi juara dunia checkers.