Adversarial Search adalah salah satu teknik pencarian node di dalam tree yang
digunakan untuk Artificial Intelligence. Adversarial Search akan mencari solusi dari
langkah yang akan digunakan oleh komputer berdasarkan data di dalam setiap node.
Gambar di atas merupakan salah satu contoh dari penggunaan adversarial search
minimax untuk menentukan langkah terbaik yang harus digunakan untuk
memenangkan game Tic-Tac-Toe
algoritma minimax ini bekerja secara rekursif dengan mencari langkah yang akan
membuat lawan mengalami kerugian minimum.Algoritma minimax mendeskripsikan
kondisi apabila terdapat pemain yang mengalami keuntungan, pemain lain akan
mengalami kerugian senilai dengan keuntungan yang diperoleh lawan dan
sebaliknya.
Algoritma minimax akan melakukan pengecekan pada seluruh kemungkinan yang
ada, sehingga akan menghasilkan pohon permainan yang berisi semua
kemungkinan permainan tersebut (Jannah, 2010). Dengan pohon permainan ini
setiap pemain mengetahui langkah-langkah yang mungkin diberikan pada situasi
permainan saat ini. Sehingga untuk setiap langkah dan semua langkah selanjutnya
dapat diketahui. Dalam repersentasi pohon pada algoritmaminimax, terdapat dua
jenis simpul, yaitu simpul min dan simpul max. Max akan memilih langkah dengan
nilai tertinggi dan min akan memilih langkah dengan nilai terendah (Kusumadewi,
2003).Dalam penentuan keputusan max/min tersebut dibutuhkan suatu nilai yang
merepresentasikan kerugian atau keuntungan yang akan diperoleh jika langkah
tersebut dipilih. Untuk itulah disini digunakan sebuah fungsi heuristik.
Fungsi heuristik yang digunakan algoritma ini adalah fungsi heuristik statis
(Kusumadewi, 2003). Fungsi heuristik digunakan untuk mengevaluasi nilai sebagai
nilai yang merepresentasikan hasil permainan yang akan terjadi jika langkah
tersebut dipilih. Dari nilai-nilai heuristik inilah komputer akan
menentukan simpul mana dari pohon permainan yang akan dipilih,
tentunya simpul yang akan dipilih tersebut adalahsimpul dengan nilai heuristik yang
akan menuntun permainan ke hasil akhir yang menguntungkan
bagi komputer (Akbar, 2007).Untuk proses dan cara kerja algoritma yang lebih
jelasnya lagi, dapat dilihat pada Gambar 2.10 yang merepresentasikan cara kerja
algoritma Minimax.
3 akan disimpan sebagai nilai maksimum sementara di level paling atas karena
merupakan level max. Lalu penelusuran jalur kanan akan dilakukan dengan cara
yang sama seperti penelusuran jalur kiri sehingga diperoleh nilai 6. Karena nilai
maksimum sementara pada level paling atas adalah nilai 3, maka nilai 3 akan
digantikan dengan nilai 6 karena nilai 6 lebih besar daripada nilai 3. Dengan
demikian, jalur yang akan dipilih menggunakan algoritma minimax adalah jalur
sebelah kanan, karena level atas merupakan level max sehingga didapat nilai 6
sedangkan jika memilih jalur kiri, hanya akan didapat nilai 3.
Alpha-Beta Pruning
Dalam algoritma Minimax, pencarian dilakukan pada seluruh bagian pohon,
sementara sebagian pohon tidak seharusnya diperiksa. Alpha-Beta Pruning
merupakan modifikasi dari algoritma Minimax, yang akan mengurangi jumlah node
yang dievaluasi oleh pohon pencarian. Pencarian untuk node berikutnya akan
dipikirkan terlebih dahulu. Algoritma ini akan berhenti mengevaluasi langkah ketika
terdapat paling tidak satu kemungkinan yang ditemukan dan membuktikan bahwa
langkah tersebut lebih buruk jika dibandingkan dengan langkah yang diperiksa
sebelumnya. Sehingga, langkah berikutnya tidak perlu dievaluasi lebih jauh.
Dengan algoritma ini hasil optimasi dari suatu algoritma tidak akan berubah.
Gambar 2-8 merupakan pohon dengan algoritma Alpha-Beta Pruning.
yang diatur, yaitu Alpha dan Beta, yang merepresentasikan nilai minimum dari max
yang diyakini dan nilai maksimum dari min yang diyakini. Nilai awal alpha adalah
tak hingga negatif dan nilai awal beta adalah tak hingga positif. Sebagai hasil dari
proses rekursif, area pencarian akan semakin kecil. Ketika beta menjadi lebih kecil
dari alpha, akan berarti posisi saat itu tidak dapat menjadi hasil terbaik permainan
untuk kedua pemain dan pencarian tidak perlu dilakukan lebih jauh.
Kinerja Minimax dapat diperbaiki dengan Pruning (memangkas) game tree.
Prinsipnya: node (subtree) yang tidak mungkin mempengaruhi hasil akhir tidak
perlu ditelusuri. Pruning demikian dilakukan oleh algoritma Alpha-Beta Pruning.
Alpha-Beta Pruning tidak akan mempengaruhi hasil akhir dari algoritma Minimax.
1. Pengertian Alpha Beta Pruning
Alpha Beta Pruning adalah cara untuk mengurangi jumlah simpul yang dieksplorasi
dalam algoritma MinMax. Dengan alpha-beta, waktu yang diperlukan dalam
pencarian akan berkurang dengan cara membatasi waktu yang terbuang percuma
pada saat mengevaluasi pohon permainan. Implementasi alpha-beta akan
memberikan jalur terbaik dalam setiap kemungkinan permainan dalam pohon
permainan yang terbentuk.
Dalam algoritma alpha-beta, urutan jalannya algoritma akan dimulai sama seperti
algoritma minmax. Untuk simpul MIN, nilai yang dihitung dimulai dengan +infinity
dan akan menurun seiring jalannya permainan. Untuk simpul MAX, nilai akan
dihitung mulai dengan infinity dan akan menaik seiring berjalannya waktu.
Efisiensi prosedur alpha beta akan sangat tergantung pada urutan simpul
berikutnya dari sebuah simpul yang sedang dieksplorasi. Jika beruntung, maka
sebuah simpul MIN akan dianggap sebagai simpul dengan urutan nilai dari rendah
ke tinggi, dan simpul MAX dari tinggi ke rendah. Secara umum, dapat diperlihatkan
bahwa dalam kondisi yang terbaik, alpha-beta akan membuka jumlah terminal
nodes yang sama dengan MInMax dalam pohon permainan, dengan dua kali lipat
tingkat kedalaman pohon.
Algoritma
1. Hampiri node pertama pada leaf dengan nilai 5, naik ke parent pada level 2
masukkan nilai 5, hampiri 8, karena 8>5 maka ganti parent dengan 8,
hampiri 3.
2. Setelah ketiga leaf pertama terhampiri, naik lebih tinggi lagi ke level 1
masukkan nilai 8.
3. Hampiri node keempat pada leaf dengan nilai 9, naik ke parent pada level 2
masukkan nilai 9. Jika kita menghampiri leaf berikutnya, kita mencari yang
lebih tinggi dari 9, sementara pada level 1 kita mencari yang lebih kecil dari
8, maka leaf 3 dan 1 kita potong (tidak kita hampiri).
4. Begitu seterusnya hingga kita dapatkan hasil akhir dari tree di atas adalah
seperti gambar 4.2
Pencarian CutOf
Minimax Cutof adalah identik terhadap MinimaxValue kecuali
1. Terminal? digantikan oleh Cutof?
2. Utility digantikan oleh Eval
Apakah bekerja pada penerapan?
bm = 106, b=35 m=4
Hanya melihat 4-ply ke depan adalah seorang pemain catur tanpa harapan!