game playing ( metode minimax ) - E

advertisement
1.
2.
3.
4.
5.
RATNA OKTAVIANI
NURANI SEPTIWULAN
MUHAMMAD ABBAS Z.A
MISBACHUL MUNIR U.
TAUFAN CHRISWANTO
(0834010059)
(0834010083)
(0834010168)
(0834010170)
(0834010192)
1
Pada teori game playing ini berisi mengenai metodemetode pencarian minimax. Pencarian minimax merupakan
pencarian nilai terbaik dari nilai-nilai evaluasi yang didapat
dari berbagai macam cara untuk menghitung nilai evaluasi
tersebut. Pencarian ini bekerja dengan cara menelusuri
segala kemungkinan yang terjadi pada papan dengan
melakukan pencarian untuk beberapa langkah ke depan.
2
Beberapa karakteristik dan batasan game untuk Game Playing :
 Dimainkan oleh 2 pemain : manusia dan komputer. Para pemain
saling bergantian melangkah.
 Kedua pemain sama-sama memiliki akses pada informasi yang
lengkap tentang keadaan permainan, sehingga tidak ada informasi
yang tertutup bagi lawan mainnya.
 Tidak melibatkan faktor probabilitas, misalnya dengan menggunakan
dadu.
 Tidak melibatkan faktor psikologi, seperti "gertakan“
 Lawan diasumsikan pintar juga, jadi jangan mengharap lawan khilaf,
sehingga terjadi salah langkah.
Beberapa contoh permainan yang biasa digunakan sebagai contoh
kasus Game Playing pada AI :
1. Checkers
2. Othello
3. Tic-Tac-Toe
4. Chess
3
Program AI game playing umumnya dapat dibedakan
menjadi tiga bagian utama :
1. move generator : digunakan untuk men-generate atau
membuat semua daftar langkah yang bisa dijalankan
suatu pemain
2. fungsi evaluasi : digunakan untuk mengevaluasi
seberapa baik/buruk sebuah posisi dari sudut pandang
pemain tertentu (mengevaluasi semua daftar langkah
yang telah dibuat sebelumnya)
3. algoritma search atau minimax tree : cara kerja dalam
menulusuri semua kemungkinan langkah sampai
kedalaman tertentu.
4
 Digunakan untuk menilai "seberapa baik" konfigurasi suatu game.
 Pada game playing fungsi evaluasinya memberikan estimasi tentang
kualitas papan permainan dalam mengarahkan seorang pemain untuk
memenangkan permainan, biasa disebut static board evaluator, f(n)
 Pada setiap node akar :
 Jika f(n) bilangan positif besar, artinya konfigurasi papan dengan
pemilihan node n "baik untuk saya dan buruk untukmu“
 Jika f(n) bilangan negatif besar, artinya konfigurasi papan dengan
pemilihan node n "buruk untuk saya dan baik untukmu“
 Jika f(n) dekat dengan 0, artinya papan dalam keadaan netral
 Pada node daun :
 Jika f(n) = + "tak terhingga", artinya kondisi saya memenangkan
pertandingan.
 Jika f(n) = - "tak terhingga", artinya kondisi kamu memenangkan
pertandingan.
 Contoh static evaluation function untuk Tic-Tac-Toe: f(n) = [jumlah 3-length
yang terbuka untuk saya] - [jumlah 3-length yang terbuka untukmu].
5
 Minimax adalah sebuah prosedur pencarian yang
melihat ke depan -- memperhatikan apa yang akan
terjadi kemudian -- yang digunakan untuk memilih
langkah berikutnya.
 Asumsikan bahwa kita telah memiliki sebuah Static
Board Evaluator yang akan mengembalikan sebuah
bilangan yang menunjukkan "seberapa baiknya" sebuah
konfigurasi papan.
6
 Anggaplah static board evaluator untuk konfigurasi papan
D, E, F, G, masing-masing adalah 4, 7, 2, dan 8. Nilai
konfigurasi B adalah 4 (karena jika saya memilih B, lawan
akan memilih D – langkah terbaik untuk dia). Hal yang
sama akan terjadi bila saya melangkah ke C yang nilai
konfigurasinya 2.
 Dengan demikian nilai konfigurasi A adalah 4 (artinya
melangkah ke konfigurasi B=4 lebih baik bagi saya
dibanding C=2).
7
Fungsi minimax telah dilakukan secara lengkap untuk node
B, jadi kita akan mulai menerapkan fungsi yang sama untuk C.
Pertama kita melihat F dan mendapatkan nilainya = 2. Saat ini
sesungguhnya tidak perlu memeriksa node G, karena apapun
nilainya tidak akan mengubah keputusan saya untuk memilih
langkah B. Perhatikan bahwa saat ini current maximum adalah 4 :
Jika G>2, misalnya G=8 seperti pada contoh, maka lawan
akan memilih F jika saya (komputer) memilih C. Dalam hal ini
max(B,C) = max(min(4,7),min(2,8)) = max(4,2), jadi saya memilih
B=4.
Jika G<2, misalnya G=1, maka lawan akan memilih G jika saya
memilih C. Dalam hal ini max(B,C) = max(min(4,7),min(2,1)) =
max(4,1), jadi saya tetap memilih B=4.
Kenyataan ini selanjutnya dapat digunakan untuk
memangkas (pruning) seluruh game subtree di bawah node G.
8
Gambar pohon yang
dibangun dengan algoritma
Minimax. Disini MAX
diwakili aras genap,
sedangkan MIN diwakili
aras ganjil.
Langkah-langkah membuat algoritma Minimax adalah sbb :
1. Misalkan ada 2 pemain yang terlibat, kita namakan MAX dan MIN.
2. Lalu sebuah pohon pencarian dibangkitkan secara depth-first-search dari
posisi awal permainan hingga akhir permainan.
3. Dari sudut pandang MAX, akan dicari posisi terakhir yang paling
menguntungkan bagi MAX. MAX akan mengambil nilai maksimum dari
pohon pencarian yang dibangkitkan pada simpul terakhir. Sebaliknya, MIN
akan menangkis serangan MAX dengan mengambil nilai minimum pada
posisi akhir permainan, yang akan meminimalisasi serangan MAX.
9
Game tic tac toe
Tic tac toe adalah salah satu game klasik yang
hanya bisa dimainkan oleh dua orang pemain. Kedua orang
pemain itu bergiliran mengisikan tanda yang berbeda
(biasanya silang dan lingkaran) di dalam kotak sebesar
3x3. Pemain yang berhasil memposisikan tandanya secara
horisontal, vertikal, atau diagonal sebagai baris yang penuh
akan memenangkan pertandingan.
10
Contoh ilustrasinya sebagai berikut :
Ilustrasi game diatas dimenangkan oleh pemain yang menggunakan
tanda X.
Permainan di atas berakhir seri. Jika seorang pemain sadar
bahwa dirinya tidak bisa menang maka hasil seri lah yang paling baik
baginya.
Karena itu strategi salah satu pemain di atas adalah berusaha
bertahan (defense) dengan cara menghalangi pemain lainnya untuk
membentuk sebuah garis lurus.
11
Untuk menang atau mencegah kekalahan dalam game ini.
Komputer harus secara konsisten melakukan langkah-langkah
sesuai prioritas di bawah ini dengan mendahulukan langkah
dengan prioritas tertinggi.
1. menyempurnakan 3 buah baris diagonal, vertikal, atau
horizontal.
2. menahan lawan agar tidak membentuk tiga baris yang
sempurna (horisontal, vertikal, maupun diagonal)
3. menciptakan strategi dengan melakukan langkah yang
membuat kita mempunyai dua kemungkinan penyempurnaan
baris. Beberapa pola tersebut antara lain :
12
4.
5.
6.
Mencegah posisi lawan mempunyai pola yang bisa
membuatnya menang (contoh : seperti pola di atas).
memperbesar kemungkinan kemenangan dengan membuat
dua tanda yang berdampingan.
mencegah lawan membuat dua tanda yang berdampingan.
Salah satu cara untuk menciptakan Artificial Intelligence yang
sesuai adalah dengan menganalisa seluruh game tree. Namun,
sebuah game tree tic tac toe yang lengkap mempunyai 1040
nodes.
13
14
 Andaikan sebuah permainan antara 2 pemain : MAX (agent)
dan MIN
 MAX jalan dulu, lalu MIN, dst. sampai game selesai
 1 langkah = 2 pemain (MAX jalan, MIN jalan)
 Kelemahan algoritma Minimax yaitu tidak mampu memroses
data dengan ukuran masukan yang besar, karena proses untuk
membangun pohon pencarian dangan algoritma ini memiliki
kompleksitas algoritma eksponensial. Maka dari itu, diperlukan
optimasi dalam algoritma ini agar tidak semua simpul
dibangkitkan.
15
Download