Oleh : Yusuf Nurrachman, ST .,MMSI Minimax Oleh : Yusuf Nurrachman, ST .,MMSI
Apakah Minimax Minimax adalah suatu teknik Games terkenal dengan menggunakan teknik Depth First Search dengan kedalaman terbatas. Pada Minimax dikenal istilah ply yaitu gerakan “saya” dan “lawan”.
Contoh Ply Saya (Max Ply) A 1 Ply (1 Ply search) Lawan (Min Ply) B C D 8 3 -2 A Saya (Max Ply) Lawan (Min Ply) B C D 2 Ply E F G H I J K Saya 9 -6 -2 -4 -3
Algoritma Minimax Minimax(StatusSaya, Kedalaman, Pemain) IF (Kedalaman==Max) RETURN static(StatusSaya,Pemain) Bangkitkan succesor S[1..n] IF (Pemain==Saya) RETURN max of Minimax(S[i],kedalaman+1,Lawan) Else RETURN min of Minimax(S[i],kedalaman+1,Saya)
Permainan Dalam Minimax Pada Minimax terdapat 2 prosedur yg dijalankan, yaitu : Maksimisasi(Dilakukan oleh “Saya”) & Minimasi dilakukan oleh “Lawan”). Maka hal ini diperlukan fungsi evaluasi Statis yang mungkin didapat oleh pemain (misalkan nilai tersebut antara -10 sampai +10)
Contoh : A B C D -4 -3 E F G H I J K -2 -6 9 Maksimasi Minimasi Pada Level pertama “Saya” melakukan maksimasi, sedangkan pada Level-2 “Lawan” melakukan minimasi. Lawan memilih nilai yang paling rendah yaitu -6, -2, -4 . Maka “Saya” akan memilih -2 (nilai terbesar diantara -6,-2, dan -4)
-Cutoff Pada MINIMAX, terdapat istilah pruning. Kita dapat menggunakan teknik branch and Bound untuk mengurangi jumlah keadaan yang harus diuji untuk menentukan nilai dari suatu pohon pelacakan. Disini dapat disimpan nilai batas bawah pada node yang melakukan maksimasi, dan tidak perlu menghiraukan cabang – cabang yang tidak akan memperbaiki batas tersebut (lebih tinggi). Demikian pula dapat juga disimpan batas atas dari node yang melakukan minimasi, dan tidak perlu menghiraukan cabang – cabang yang tidak akan memperbaiki batas tersebut (lebih rendah).
-Pruning Variabel alfa digunakan sebagai batas bawah node yang akan melakukan maksimasi. Variabel Beta digunakan sebagai batas atas bagi node yang akan melakukan minimasi. Pada node yang melakukan minimasi ,evaluasi akan dihentikan jika didapat node anak yang lebih kecil dibanding dengan batas bawah alfa. Pada node yang melakukan maksimasi ,evaluasi akan dihentikan jika didapat node anak yang lebih kecil dibanding dengan batas atas Beta.
Contoh -Cutoff A > 3 Maksimasi B 3 C <-5 Minimasi D E F G 3 5 Setelah menguji node F, maka akan diketahui bahwa dijamin ‘lawan’ akan mendapatkan nilai -5 atau yang lebih rendah(Sebab C akan melakukan minimasi). Namun juga diketahui bahwa ‘saya’ akan mendapatkan nilai 3 atau yang lebih besar (sebab A melakukan maksimasi). Semua gerakan yang yang bernilai lebih kecil dari 3 tidak akan berguna, sehingga langkah yang dipilih adalah melalui B Dengan demikian eksplore ke G tidak diperlukan.
A Maksimasi B C Minimasi D E F G H 3 5 4 Maksimasi I J M N 5 7 8 L 7 Pada Tree ini , andaikan bergerak pada subtree dengan akar B, maka akan mendapatkan nilai A minimum adalah 3(alfa=3). Jika nilai alfa ini disampaikan ke F, maka F harus mengeksplore dirinya. Diperoleh nilai I maksimum adalah 0, dengan demikian F minimum akan memperoleh nilai 0. dan nilai 0 lebih kecil dari 3 maka cabang yang lainnya akan dipotong (alfa prunning). Setelah mengekplorasi I, J diuji maka mendapatkan 5, ini berarti F minimum akan mendapatkan nilai 5, dan berati C maksimum akan mendapatkan nilai 5(beta=5). Eksplore G karena sebelum nya telah mendpatkan Beta=5. Dari sana G akan mendapatkan nilai 8, dengan demikian C maks akan mendapatkan nilai 8, milai ini jauh dari lebih bedar dari Beta 5 , sehingga tidak diperlukan mengexplore G lebih jauh lagi (Beta prunning)
A Alfa=3 4 Maksimasi B C Beta=5 3 4 Minimasi D E F G H 5 3 5 7 4 Maksimasi I J M N 5 7 8 Minimasi K L 7