Negascout Analisis Dan Implementasi Kecerdasan Buatan Pada Permainan Checker Menggunakan Algoritma Minimax Dengan Negascout

kondisi terburuknya, kita akan mendapatkan nilai 6 sedangkan jika kita memilih jalur kiri, kita hanya akan mendapatkan nilai 3. Pada dasarnya, algoritma Minimax sangat handal untuk menyelesaikan segala masalah dalam pencarian langkah untuk permainan komputer dengan jumlah kemungkinan penyelesaian yang kecil. Tetapi, jika algoritma Minimax digunakan pada permainan dengan jumlah kemungkinan penyelesaian yang besar seperti pada permainan Checker, algoritma Minimax ini memerlukan waktu yang lama untuk membangun pohon penyelesaian. Oleh karena itu, beberapa metode lanjutan dari algoritma Minimax telah dikembangkan untuk membatasi melonjaknya jumlah simpul dalam pembangunan pohon penyelesaian. Berbagai jenis metode telah ditemukan untuk meningkatkan kinerja algoritma Minimax, salah satunya adalah Negascout. Dengan menggunakan metode ini maka diharapkan sistem dapat bekerja lebih baik.

2.6 Negascout

Negascout adalah salah satu metode pencarian minimax dengan berasumsi bahwa langkah pertama yang diambil merupakan langkah terbaik, sedangkan sisanya merupakan langkah terburuk. Namun jika ternyata ada langkah yang lebih baik dari langkah pertama, maka akan terjadi proses research atau proses pencarian ulang Aske Plaat, 1994. Dalam memperkecil jendela pencarian agar mendapat jendela pencarian dengan lebar nol. Negascout akan memotong hampir semua cabang-cabang dari pohon, untuk membuat suatu pencarian yang sangat cepat. Tetapi sayangnya, ia akan memotong semua cabang-cabang berguna bersamaan dengan yang tidak berguna. Hal ini tidak berlaku jika algoritma dimulai dengan hasil yang benar. Suatu jendela nol dapat dilihat sebagai sebuah uji coba. Uji coba dilakukan jika nilai sebenarnya sama dengan nilai yang ditebak Ian Milington, 2006. Universitas Sumatera Utara Algoritma Negascout cukup efisien, tetapi melakukan pemeriksaan posisi papan lebih dari yang diperlukan. Pemotongan cabang memungkinkan algoritma untuk mengabaikan bagian dari pohon yang tidak mungkin berisi langkah terbaik. ini menghasilkan dua jenis pemotongan yaitu pemotongan alpha dan pemotongan beta.

2.6.1 Pemotongan Alpha

Gambar 2.14 menunjukkan suatu pohon permainan sebelum proses dilakukan. Untuk lebih mudah melihat bagaimana nilai-nilai diproses, kita akan menggunakan algoritma Minimax untuk ilustrasi ini. Gambar 2.14 Pohon permainan dengan pemotongan alpha Ian Milington, 2006 Kita memulai proses dengan cara kerja algoritma Minimax. Jika seorang pemain memilih langkah A, maka lawannya akan memberikan tanggapan dengan langkah C, dan memberikan pemain nilai 5. Maka kita akan menaikkan nilai 5. Sekarang algoritma akan melihat nilai langkah pada B. Terlihat langkah pertama di B ialah E, yang memiliki nilai 4. Tidak peduli berapakah nilai dari F, karena lawan akan selalu memaksa pemain dengan nilai 4. Bahkan tanpa mengetahui nilai F, pemain dapat menyadari bahwa langkah B ialah salah, karena ia dapat memperoleh nilai 5 pada langkah A, dan pada langkah B akan mendapat nilai maksimum 4 atau bahkan lebih rendah. Untuk melakukan pemotongan dengan cara ini, kita perlu melacak nilai terbaik yang pasti dapat kita capai. Bahkan, nilai ini membentuk batas bawah pada nilai yang Universitas Sumatera Utara dapat kita capai. Kita mungkin menemukan urutan langkah yang lebih baik dalam pencarian, tapi kita tidak akan pernah menerima urutan langkah yang memberikan kita nilai yang lebih rendah. Batas bawah ini dinamakan nilai alpha dan pemotongannya dinamakan dengan pemotongan alpha.

2.6.2 Pemotongan Beta

Pemotongan beta bekerja dengan cara yang sama. Nilai beta terus melacak nilai batas tertinggi dari nilai apa yang kita harapkan. Kita memperbaharui nilai beta ketika kita menemukan suatu langkah yang dipaksakan oleh lawan. Pada posisi itu kita tahu tidak ada nilai yang lebih besar dari beta. Jika kita menemukan urutan langkah yang bernilai lebih besar dari nilai beta maka kita dapat abaikan saja, karena kita tahu bahwa kita tidak akan pernah diberi kesempatan untuk mendapatkannya.

2.6.3 Pemotongan Alpha Beta

Bersamaan nilai-nilai dari alpha dan beta memberikan suatu jendela kemungkinan langkah. Pemain tidak akan pernah memilih untuk melakukan langkah yang nilainya lebih kecil dari alpha, dan lawan kita tidak akan pernah membiarkan kita melakukan langkah yang lebih besar dari beta. Nilai pada akhirnya harus terletak antara alpha dan beta. Ketika pencarian mulai dilakukan pada pohon, nilai-nilai dari alpha dan beta diperbaharui. Jika cabang dari pohon yang ditemukan di luar dari nilai-nilai ini, maka akan dilakukan pemotongan pada cabang.

2.6.4 Zero-Width Test

Pemotongan jenis alpha dan beta telah kita ketahui sejauh ini ialah terkadang disebut jenis “fail-soft. Jika gagal, maka ia akan mengembalikan nilai terbaik yang Universitas Sumatera Utara diperolehnya sejauh ini. Pada dasarnya pemotongan alpha beta hanya akan mengembalikan baik nilai alpha ataupun nilai beta sebagai nilai jika gagal tergantung apakah itu gagal tinggi atau gagal rendah. Informasi tambahan dalam jenis fail-soft dapat membantu menemukan suatu solusi. Hal ini memungkinkan kita untuk menebak nilai awal dan mengulangi pencarian dengan jendela yang lebih masuk akal Zero- Width Test. Tanpa fail-soft, kita tidak akan tahu seberapa jauh gerakan yang kita tebak. Pada dasarnya algoritma Negascout menggabungkan pencarian Minimax dengan pemotongan alpha beta dan pemanggilan zero-width test. Negascout tidak selebar pencarian dengan algoritma Minimax. Negascout menggunakan algoritma pemotongan alpha dan beta untuk melakukan uji coba tersebut. Negascout bekerja dengan melakukan pemeriksaan secara menyeluruh pada langkah pertama dalam setiap posisi papan. Hal ini dilakukan pada suatu jendela pencarian luas, sehingga algoritma tidak gagal. Berturut-turut langkah diuji menggunakan suatu jalur berdasarkan nilai dari langkah pertama. Jika berhasil, maka akan diulangi pada jendela dengan lebar sebenarnya. Gambar 2.15 Pohon permainan dengan algoritma Negascout Ian Milington, 2006 Universitas Sumatera Utara BAB 3 ANALISIS DAN PERANCANGAN Kecerdasan buatan merupakan salah satu bidang ilmu yang penting pada ilmu komputer. Banyak permainan komputer yang memanfaatkan kecerdasan buatan untuk membuat permainan tersebut bertindak cerdas dengan memilih langkah terbaik pada permainan. Tetapi banyak orang yang memainkan permainan tersebut tidak mengerti cara kerja dari kecerdasan buatan itu sendiri. Oleh karena itu, penulis mencoba membuat suatu aplikasi permainan Checker yang memiliki kecerdasan buatan dan menjelaskan bagaimana cara kerja kecerdasan buatan pada permainan Checker.

3.1 Fungsi Evaluasi pada Checker