Algoritma pada permainan Othello
GAME OTHELLO
AI
dalam game ini memiliki kecepatan dalam taktik bermain sehingga mengharuskan
pemain untuk berfikir lebih cepat untuk menyusun strategi terbaik agar dapat
mendapatkan skor yang maksimal. Kecerdasan buatan merupakan kecerdasan yang
ditujukan oleh suatu entitas buatan, yang diciptakan dan diterapkan kedalam
sebuah mesin (computer) sehingga dapat melakukan perbuatan seperti manusia.
Dalam permainan ini, pemain diharuskan berfikir agar setiap langkahnya
memperoleh hasil solusi optimum. Kecerdasan pada computer mengarah pada
perhitungan atau komputasi, mereka tidak menggunakan intuisi yang menggunakan
perasaan. Namun, dalam hal komputasi, mereka lebih baik dibandingkan manusia.
Sama seperti manusia ketika computer diberikan papan reversy, mereka akan
melakukan perhitungan simulasi permainan untuk valid moves yang tersedia. Disinilah daya perhitungan yang besar sangat diperlukan. Pada dasarnya
ketika diberikan sebuah susunan posisi papan tertentu, komputer menghitung
nilai posisi tersebut menggunakan fitur-fitur yang dijelaskan pada artikel
Strategi bermain reversy, seperti
jumlah pin, penguasaan
sudut/x-quare/c-square, jumlah pin
stabil, mobility, jumlah pin tepi,
parity, dan pola sisi/sudut.
●
Algoritma Minimax
Dalam
permainan ini, perhitungan setiap langkahnya menggunakan algoritma standar
dibidang kecerdasan buatan yang sudah dikembangkan sejak lama yaitu Game Theory
yaitu yang disebut dengan Algoritma Minimax. Sesuai dengan namanya, algoritma
ini bergerak meminimalisasi kekalahan dan memaksimalkan kesempatan untuk
menang.
Pada
kedalaman 1 dan kedalaman ganjil lainnya, posisi papan akan menentukan nilai
untuk pemain yang akan melangkah saat ini. Sehingga di kedalaman ganjil ini
algoritma minimax memilih langkah bernilai maksimal sebagai langkah terbaik.
Namun sebaliknya, dikedalaman kedua dan kedalaman genap lainnya, posisi papan
akan menentukan nilai untuk pemain lawan yang akan main berikutnya, sehingga
dikedalaman genap ini algoritma minimax ini mencari langkah paling minimal
untuk langkah terbaik.
B memilih B1
|
B memilih B2
|
B memilih B3
|
|
A memilih A1
|
+3
|
−2
|
+2
|
A memilih A2
|
−1
|
0
|
+4
|
A memilih A3
|
−4
|
−3
|
+1
|
Ketika A memilih
langkah A1 dilanjutkan dengan B memilih langkah B1, posisi papan yang terbentuk
bernilai +3. Demikian pula untuk A1 → B2 nilainya -2,
A1 → B3 nilainya +2 dst. Sekarang mari kita coba aplikasikan
algoritma minimax untuk menghitung langkah terbaik bagi pemain A.
Terhadap langkah A1
(kedalaman 1) misalnya valid moves pemain
B adalah B1, B2 dan B3 (kedalaman 2), dan langkah terbaik menurut algoritma
minimax didapat dengan mencari langkah bernilai minimal (karena di kedalaman
2), yaitu B2 (bernilai -2). Demikian pula terhadap langkah A2 yang terbaik bagi
B adalah B1 (bernilai -1), dan terhadap A3 adalah B1 juga (bernilai
-4). Selanjutnya, nilai untuk langkah pemain A (kedalaman 1) adalah nilai
yang 'dikembalikan' dari pemain B di kedalaman 2, yaitu A1 adalah -2, A2 adalah
-1, dan A3 adalah -4. Kemudian untuk kedalaman 1 ini algoritma minimax mencari
nilai maksimal sebagai langkah terbaik, yaitu A2 (bernilai-1).
Untuk kedalaman
lebih dari dua, cara 'berpikir' algoritma minimax dapat digambarkan sebagai
pohon permainan (game tree)
seperti pada gambar di atas. Di lokasi paling dalam (disebut lokasi node
daun atau leaf node), dalam
hal ini kedalaman 4, dilakukanlah perhitungan nilai posisi papan yang
selanjutnya 'dikembalikan' ke node pada kedalaman di atasnya terus hingga
sampai lokasi paling atas (di sebut akar atau root). Panah merah menunjukkan nilai yang dikembalikan dari
langkah terbaik pilihan algoritma minimax ke kedalaman di atasnya. Demikianlah,
kita dapat melihat algoritma minimax bergantian memilih langkah dengan nilai
minimal dan maksimal sebagai langkah terbaik sesuai dengan kedalamannya. Dengan
algoritma ini komputer dapat 'berpikir' sampai kedalaman tertentu untuk
menentukan langkah terbaik untuk memenangkan permainan.
Namun dalam penerapannya,
algoritma minimax kini sudah jarang digunakan. Karena algoritma minimax
memperhitungkan setiap valid moves yang ada sehingga akan memakan waktu yang
lebih lama, kini terdapat algoritma yang dapat berfikir lebih cepat yang di
kembangkan dari algoritma minimax yaitu algoritma AlphaBeta, Nagascout dll.