• Tidak ada hasil yang ditemukan

Studi Pengembangan dan Evaluasi Engine Catur dengan Representasi Bitboard.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Studi Pengembangan dan Evaluasi Engine Catur dengan Representasi Bitboard."

Copied!
20
0
0

Teks penuh

(1)

iv

Universitas Kristen Maranatha

ABSTRAK

Engine catur telah menjadi medan riset banyak peneliti AI dunia, banyak

aspek dari sebuah engine catur dapat diimplementasi dengan berbagai

metode alternatif, namun terdapat algoritma yang umumnya diterapkan,

yaitu algoritma pencarian minmax dengan alpha beta pruning. Selain dari

algoritma pencarian, struktur data yang dipakai juga bermacam-macam,

salah satu struktur data yang menarik untuk dijadikan materi riset adalah

struktur data bitboard.

Untuk lebih mengerti secara lebih jelas mengenai sebuah engine catur,

penulis membuat sendiri engine catur, terutama engine catur yang

menggunakan bitboard sebagai representasi papan catur.

Dalam proses pengembangan engine catur, penulis mendapati bahwa

selain efektifitas suatu algoritma yang diterapkan dalam sebuah engine

catur, optimasi juga merupakan bagian yang penting, mengingat

banyaknya kemungkinan langkah yang dapat dihasilkan dari sebuah

posisi papan catur, oleh karena itu, optimasi juga menjadi bagian penting

dalam tulisan ini.

Hasil yang dicapai dari pengembangan engine catur ini adalah bahwa

hasil riset dan aplikasi yang diperoleh dari hasil riset ini dapat menjadi

dasar bagi pengembangan engine catur lain.

(2)

v

Universitas Kristen Maranatha

ABSTRACT

A chess engine has been a research ground for many AI researchers of

the world, many aspects of a chess engine can be implemented with

various methods, though there is a common algorithm applied, which is

minmax with alpha beta pruning. Beside searching algorithm, data

structure used is also varies, one of which is an interesting research

material is bitboard.

To understand better about chess engine, writer develops a chess

engine, especially a bitboard based chess engine.

During the developement of the chess engine, writer realises that besides

effectiveness of an algorithm, optimation also plays an important role,

considering the magnitude of possibilities of move of a chess board

position. That is why optimation is also an important part of this writing.

Result of this chess engine developement research is research note and

application produced that can underly other chess engine developement.

(3)

vi

Universitas Kristen Maranatha

DAFTAR ISI

KATA PENGANTAR ... i

Lembar Pernyataan Persetujuan Publikasi Karya Ilmiah ... ii

Surat Pernyataan Orisinalitas Karya ... iii

ABSTRAK ... iv

ABSTRACT ... v

DAFTAR ISI ... vi

DAFTAR GAMBAR ... x

DAFTAR PROGRAM ... xi

DAFTAR TABEL ... xii

BAB I. PERSYARATAN PRODUK ... 1

I.1. Pendahuluan ... 1

I.1.1. Tujuan ... 2

I.1.2. Ruang Lingkup Proyek ... 2

I.1.3. Definisi, Akronim, dan Singkatan ... 2

I.1.4. Sistematika Penulisan ... 4

I.2. Gambaran Keseluruhan ... 5

I.2.1. Prespektif Produk ... 5

I.2.2. Fungsi Produk ... 5

I.2.3. Karakteristik Pengguna ... 5

(4)

vii

Universitas Kristen Maranatha

I.2.5. Asumsi dan Ketergantungan ... 6

I.2.6. Penundaan Persyaratan ... 6

BAB II. SPESIFIKASI PRODUK ... 7

II.1. Persyaratan Antarmuka Eksternal ... 7

II.1.1. Antarmuka dengan Pengguna ... 7

II.1.2. Antarmuka Perangkat Keras ... 7

II.1.3. Antarmuka Perangkat Lunak ... 8

II.1.4. Antarmuka Komunikasi ... 8

II.2. Fitur Produk Perangkat Lunak ... 8

II.2.1. Input Posisi Papan Catur ... 8

II.2.2. Kalkulasi Nilai Evaluasi ... 9

II.2.3. Menghasilkan Kemungkinan Langkah Berikut ... 9

II.2.4. Memilih Langkah Terbaik ... 10

II.3. Algoritma Inti ... 10

BAB III. DESAIN PERANGKAT LUNAK ... 13

III.1. Pendahuluan ... 13

III.1.1. Identifikasi ... 13

III.1.2. Overview Sistem... 13

III.2. Keputusan Desain Perangkat Lunak Secara Keseluruhan ... 14

III.2.1. Struktur Data yang Dipakai ... 14

III.2.2. Penerapan Algoritma Minmax ... 14

III.3. Desain Arsitektur Perangkat Lunak ... 15

III.3.1. Komponen Perangkat Lunak ... 15

III.3.2. Konsep Eksekusi ... 16

(5)

viii

Universitas Kristen Maranatha

BAB IV. Pengembangan Sistem ... 25

IV.1. Perencanaan Tahap Implementasi ... 25

IV.1.1. Pembagian Modul/Prosedur/Class Implementasi ... 25

IV.1.2. Keterkaitan antar Modul/Prosedur/Class ... 26

IV.2. Perjalanan Tahap Implementasi ... 27

IV.2.1. Top Down/ Bottom Up Implementasi ... 27

IV.2.2. Ulasan Source code ... 27

IV.2.3.2. Move Generation ... 44

IV.2.4. Ulasan Realisasi Fungsionalitas ... 45

BAB V. TESTING DAN EVALUASI SISTEM... 46

V.1. Rencana Pengujian Sistem Terimplementasi ... 46

V.1.1. TestCase ... 46

V.1.2. Uji Fungsionalitas Modul/Class ... 52

V.2. Perjalanan Metodologi Pengujian ... 52

V.2.1. BlackBox ... 52

V.2.1. WhiteBox ... 56

V.2.2. Optimasi ... 56

V.3. Ulasan Hasil Evaluasi ... 60

(6)

ix

Universitas Kristen Maranatha VI.2. Keterkaitan antara Kesimpulan dengan Hasil Evaluasi ... 61

VI.3. Keterkaitan antara Saran dengan Hasil Evaluasi ... 62

VI.4. Rencana Perbaikan/Implementasi terhadap Saran yang Diberikan ... 62

DAFTAR PUSTAKA ... 63

(7)

x

Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar II-1 Contoh Pohon Pencarian[7] ... 12

Gambar III-1 Class Diagram Komponen Perangkat Lunak ... 15

Gambar III-2 Use Case Sistem ... 17

Gambar III-3 Activity diagram kalkulasi nilai evaluasi ... 19

Gambar III-4 Activity Diagram generasi langkah ... 20

Gambar III-5 Activity diagram pemilihan langkah terbaik ... 21

Gambar III-6 Activity diagram input posisi papan catur ... 22

Gambar III-7 Sequence Diagram ... 22

Gambar III-8 Desain Antar Muka ... 24

Gambar IV-1 Ilustrasi Keterkaitan antar Modul ... 26

Gambar V-1 TestCase 1 ... 46

Gambar V-2 TestCase 2 ... 47

Gambar V-3 TestCase 3 ... 48

Gambar V-4 TestCase 4 ... 48

Gambar V-5 TestCase 5 ... 49

Gambar V-6 TestCase 6 ... 49

Gambar V-7 TestCase 7 ... 50

Gambar V-8 TestCase 8 ... 50

Gambar V-9 TestCase 9 ... 51

Gambar V-10 TestCase 10 ... 51

(8)

xi

Universitas Kristen Maranatha

DAFTAR PROGRAM

Program II-1 Pseudocode minmax[7] ... 11

Program IV-1 Cuplikan Program ClassPieceMove ... 27

Program IV-2 Cuplikan Program ClassBitboard ... 29

Program IV-3 Cuplikan Program Properti dalam Class MoveGeneration 30 Program IV-3 Cuplikan Program Properti dalam Class MoveGeneration 31 Program IV-4 Cuplikan Program Utility Method dalam Class MoveGeneration ... 33

Program IV-5 Cuplikan Method bitToMove Versi Pertama ... 34

Program IV-6 Cuplikan Method bitToMove Versi Kedua ... 35

Program IV-7 Cuplikan Method bitToMove Versi Ketiga ... 36

Program IV-8 Cuplikan Method bitPosition ... 36

Program IV-9 Cuplikan method clearBB Versi Pertama ... 38

Program IV-10 Cuplikan method clearBB Versi Kedua ... 38

Program IV-11 Cuplikan method clearBB Versi Ketiga ... 39

Program IV-12 Cuplikan Program MoveGenerator dalam Class MoveGeneration ... 39

Program IV-13 Cuplikan Program Evaluation Function dalam Class MoveGeneration ... 41

(9)

xii

Universitas Kristen Maranatha

DAFTAR TABEL

Tabel III-1 Tabel penjelasan use case menghitung nilai evaluasi suatu

posisi ... 18

Tabel III-2 Tabel penjelasan use case menghasilkan kemungkinan langkah berikut ... 18

Tabel III-3 Tabel penjelasan use case memilih langkah terbaik ... 18

Tabel III-4 Tabel penjelaan use case input posisi papan catur ... 19

Tabel V-1 BlackBox ABHelper() ... 53

Tabel V-2 BlackBox positionEvaluation() ... 54

Tabel V-3 BlackBoxTesting Method generatePieceMove() ... 55

Tabel V-4 Tabel Waktu Eksekusi generatePieceMove() 1. ... 57

Tabel V-5 Tabel Waktu Eksekusi generatePieceMove() 2. ... 57

Tabel V-6 Waktu Eksekusi generatePieceMove() 3. ... 58

Tabel V-7 Tabel Pengujian Waktu Eksekusi Method positionEvaluation() 1. ... 58

(10)

xiii

(11)

14

(12)

1

Universitas Kristen Maranatha

BAB I. PERSYARATAN PRODUK

I.1. Pendahuluan

Permainan catur telah lama menjadi media untuk menguji-coba algoritma pencarian,

terutama dalam bidang intelegensia buatan. Permainan catur termasuk ke dalam

permainan dengan perfect information, maksudnya segala aspek dalam permainan

dapat diamati oleh pemain, dan tidak terdapat unsur acak, sehingga dalam permainan

catur, langkah-langkah yang terjadi dapat ditebak atau dikalkulasi.

Walaupun demikian, permainan catur menjadi kasus yang sangat menarik untuk

menguji-coba teknik-teknik dalam intelegensia buatan, hal tersebut dikarenakan, dalam

permainan catur yang memiliki papan permainan dengan 64 posisi dan 32 bidak

memiliki variasi posisi sebesar 10120 (Marshall Brain – HowStuffWorks) dan kelas

kompleksitas EXPTIME[1], sehingga penyelesaian dengan teknik brute-force tidaklah

efektif.

Permainan catur sebagai permainan yang bersifat turn-based, maka akan cocok

apabila menggunakan pendekatan algoritma minmax untuk menyelesaikan

permasalahan dalam catur. Namun mengingat besarnya pohon pencarian yang

mungkin dihasilkan, maka akan sangat memungkinkan untuk melakukan alpha beta

pruning pada pohon pencarian tersebut.

Selain algoritma yang diterapkan, struktur data untuk representasi papan catur juga

bervariasi. Dua struktur data yang umum digunakan adalah struktur data array dan

(13)

2

2

Universitas Kristen Maranatha

I.1.1. Tujuan

Tujuan pengembangan sistem cerdas ini adalah sebagai berikut :

1. Menerapkan algoritma pencarian minmax dengan kasus permainan catur.

Penerapan algoritma minmax akan disertai dengan alpha betapruning.

2. Memanfaatkan bitboard sebagai struktur data untuk merepresentasikan papan catur.

3. Menganalisa efektifitas penerapan algoritma minmax.

4. Menganalisa efisiensi penerapan struktur data bitboard.

I.1.2. Ruang Lingkup Proyek

Ruang lingkup proyek akan mencakup penerapan algoritma minmax pada kasus

permainan catur dengan representasi papan berupa bitboard. Apabila dirinci, maka

proyek akan dititikberatkan pada :

1. Penerapan praktis algoritma minmax pada kasus permainan catur.

2. Penerapan bitboard guna merepresentasikan papan permainan.

3. Analisa performa bitboard, beserta kekurangan serta kelebihan bitboard.

I.1.3. Definisi, Akronim, dan Singkatan

No Istilah Definisi

1 AI Artificial Intelligence (kecerdasan buatan), cabang ilmu komputer yang mempelajari program yang dapat menyelesaikan suatu masalah secara kreatif dengan meniru langkah-langkah yang mungkin diambil oleh manusia

2 Bishop Bidak mentri

3 Capture Istilah dalam permainan catur, dimana seorang pemain memakan bidak pemain lain

4 castling Perpindahan bidak raja dan bidak benteng sekaligus dengan tujuan melindungi raja

(14)

3

Aturan dalam permainan catur, dimana pion yang baru saja maju 2 petak dapat dimakan oleh pion yang berada pada baris yang sama dan kolom yang bersebelahan

7 Engine

Catur

Program komputer yang dapat bermain permainan catur

8 Engine

Pintar

Program atau sistem yang menerapkan algoritma AI sehingga dapat bertindak seperti manusia namun tanpa adanya operator manusia

9 King Bidak raja

10 Knight Bidak kuda

11 Pawn Bidak pion

12 Ply Istilah dalam teori permainan, dimana satu ply merupakan satu langkah yang dilakukan oleh satu pemain, selain itu dalam pohon pencarian, satu ply merupakan satu tingkat dalam pohon pencarian

13 promotion Memajukan pion sampai baris kedelapan, dan mengubahnya menjadi bidak lain

14 Pruning Teknik optimasi dalam proses pencarian pohon pencarian, dimana tidak semua node anak akan dibuka

15 Queen Bidak ratu

16 Rekursif Fungsi pemrograman atau matematik dimana dalam definisi fungsi terdapat penerapan fungsi itu sendiri

17 Rook Bidak benteng

18 Scanning Proses menelusuri sesuatu secara sekuensial sampai menemukan informasi yang dicari

19 Stack Struktur data yang menerapkan prinsip last in first out, dimana data terakhir yang dimasukkan dalam struktur

stack akan dikeluarkan dahulu

20 UI User Interface, antarmuka pengguna, berfungsi sebagai media perantara dan interaksi antara pengguna dengan sistem.

I.1.4. Sistematika Penulisan

Sistematika pembahasan Tugas Akhir ini adalah sebagai berikut:

(15)

4

4

Universitas Kristen Maranatha

Bab ini berisi uraian mengenai latar belakang penulisan Tugas Akhir, rumusan

persoalan, tujuan, batasan yang diacu, sistematika pembahasan serta gambaran

keseluruhan mengenai perangkat lunak yang akan dibuat.

2. Bab II – Spesifikasi Produk

Bab ini berisi uraian mengenai spesifikasi untuk produk mulai dari persyaratan

antarmuka sampai kepada fitur dari produk yang akan dibuat.

3. Bab III – Desain Perangkat Lunak

Bab ini berisi uraian mengenai analisis terhadap deskripsi perangkat lunak.

4. Bab IV – Pengembangan Sistem

Bab ini berisi uraian mengenai lingkungan implementasi, batasan implementasi,

metode impelementasi serta tahapan implementasi.

5. Bab V –Testing dan Evaluasi Sistem

Bab ini berisi uraian mengenai proses pengujian terhadap hasil implementasi.

6. Bab VI - Kesimpulan dan Saran

Bab ini berisi uraian mengenai kesimpulan yang dapat diambil dari pelaksanaan

(16)

5

langkah terbaik berikutnya yang diambil oleh seorang pemain catur dengan kondisi

papan permainan tertentu.

I.2.2. Fungsi Produk

Fungsi produk adalah sebagai alat riset algoritma AI pencarian, dalam hal ini algoritma

minmax dan penerapan bitboard. Produk akan menganalisa langkah – langkah yang

diambil oleh engine dalam mengambil keputusan tertentu, dan dengan demikian akan

memperdalam pemahaman akan metode pencarian minmax.

I.2.3. Karakteristik Pengguna

Pengguna program dapat berupa pihak – pihak yang tertarik dengan bidang ilmu AI,

peneliti, cendekiawan statistika.

I.2.4. Batasan – Batasan

Batasan dalam pengembangan sistem ini adalah sebagai berikut :

1. Batasan Perangkat Lunak

Sistem Operasi : Microsoft Windows XP SP2 atau Linux Mint 5

Bahasa Pemrograman : Java

Editor : Netbeans 6.1, editplus, notepad++, dan gedit

2. Batasan Perangkat Keras

Processor : Intel Pentium Dual Core T2390 1.86GHz

RAM : 2 GB DDR2

(17)

6

6

Universitas Kristen Maranatha

3. Batasan Aplikasi

Tidak terdapat basis data langkah-langkah opening.

Tidak menggunakan end-gametable.

Penerapan algoritma diutamakan pada bagian mid-game.

Generasi langkah dilakukan hanya pada langkah-langkah semi legal, dan tidak

mendukung generasi langkah khusus seperti castling, en passant, dan

promotion.

I.2.5. Asumsi dan Ketergantungan

Beberapa asumsi dalam pengembangan aplikasi ini adalah :

1. Input diberikan oleh pengguna dengan format yang benar.

2. Langkah terbaik yang ditawarkan oleh sistem dihasilkan dari perhitungan

algoritmik minmax dan tidak berarti merupakan langkah terbaik riil.

3. Pemrosesan dilakukan dalam batasan perangkat keras yang ada sebagai acuan

uji kasus.

I.2.6. Penundaan Persyaratan

Penundaan persyaratan dalam proyek ini adalah optimasi selain alpha beta pruning

(18)

61

Universitas Kristen Maranatha

BAB VI. KESIMPULAN DAN SARAN

VI.2. Keterkaitan antara Kesimpulan dengan Hasil Evaluasi

Dari ketiga metode evaluasi yang diterapkan, dapat ditarik kesimpulan sebagai berikut :

1. Penerapan algoritma minmax yang disertai dengan alpha beta pruning telah

tercapai.

2. Penerapan bitboard sebagai struktur data untuk merepresentasikan papan catur

telah diimplementasikan dalam engine catur yang dikembangkan.

3. Efektifitas algoritma pencarian minmax sangat dipengaruhi kedalaman

pencarian, dan ketepatan fungsi evaluasi. Dengan optimasi yang dilakukan

menggunakan hanya alpha beta pruning dan parameter yang dikalkulasi dalam

fungsi evaluasi, bersama dengan hasi; evaluasi pada bagian V.2.1.1, maka

dapat disimpulkan algoritma yang diterapkan dalam engine catur telah efektif.

4. Efisiensi sebuah engine catur yang memanfaatkan struktur data bitboard sangat

dipengaruhi oleh jumlah looping yang dibutuhkan untuk mengolah struktur data

tersebut, sehingga penting melakukan optimasi yang dapat meminimalisasi

jumlah looping yang terjadi. Optimasi - optimasi telah dilakukan dalam engine

catur ini, seperti yang dibahas dalam cuplikan program 5 sampai program

(19)

62

Universitas Kristen Maranatha

VI.3. Keterkaitan antara Saran dengan Hasil Evaluasi

Sebuah engine catur merupakan sistem yang kompleks dan terdiri dari banyak bagian,

sehingga penerapan sebagian dari aspek-aspek yang terdapat dalam sebuah engine

catur tidak cukup untuk menyokong efektifitas dan efisiensi engine catur, sehingga perlu

diterapkan beberapa hal lain, seperti yang disebutkan dibawah ini :

1. Generator langkah legal.

2. Transposition table.

3. Move ordering.

4. Quiescence search.

5. Rotated bitboard.

VI.4. Rencana Perbaikan/Implementasi terhadap Saran yang Diberikan

Guna menerapkan saran yang disebutkan dalam bagian sebelumnya, maka hal yang

sebaiknya diterapkan terlebih dahulu adalah generator langkah legal dan rotated

bitboard.

Dengan adanya generator langkah legal, diharapkan efektifitas dari engine catur dapat

meningkat, karena fitur generator langkan legal akan menambah kemampuan engine

catur untuk mendeteksi langkah – langkah yang mengarah pada checkmate maupun

draw . Dengan menggunakan rotated bitboard, maka kecepatan generasi langkah dan

(20)

63

Universitas Kristen Maranatha

DAFTAR PUSTAKA

[1] Fraenkel, A.S(1981). Computing a Perfect Strategy for nxn Chess Requires Time Exponential in N. Berlin : Springer

[2] Fierz,M(2005). Strategy Game Programming. Diakses: April 2009, http://fierz.ch

[3] Hyatt,R(1999).Chess program board representations. Diakses 3 Oktober 2009,

http://www.cis.uab.edu/hyatt/boardrep.html

[4] Laramee, F(2000). Chess Programming. Diakses: 21 April 2009,

http://gamedev.net/reference/programming/features/chess6

[5] Pettersson, J(2006). Quiescent search and the horizon effect. Diakses: 21 April

2009, http://mediocrechess.blogspot/2006/12/guide-quiescent-search-and-horizon.html

[6] Pinto,P(2002). Minimax Explained. Diakses: 21 April 2009,

http://ai-depot.com/articles/minimax-explained

[7] Russel, S.J & Norvig, P. (1995). Artificial Intelligence : A Modern Approach (2nd ed).

New Jersey : Pearson Hall.

[8] Schroder,E(2009). Programmer Stuff: Chess Programming. Diakses: 21 April 2009,

http://members.home.nl/matador/chess840.htm

[9] Verhelst,P(2004). Computer Chess Programming. Diakses: 21 April 2009,

Referensi

Dokumen terkait

Dari penelitian yang telah dilakukan, menunjukkan bahwa nilaiundrained shear strength untuk tanah di Jakarta dan sekitarnya sesuai dengan korelasi antara Cu(Su) dengan N-SPT dari

Berdasarkan hasil analisis data yang telah dilakukan, maka dapat disimpulkan bahwa terdapat hubungan negatif dan signifikan antara kecerdasan emosional dengan

peraturan, menyerahkan surat ijin tidak mengikuti perkuliahan dari Program studi kepada dosen atau Bagian akademik, penanggung jawab mata kuliah selambat-lambatnya

Dari permasalahan di atas dapat disimpulkan bahwa klasifikasi tingkat keganasan kanker payudara dapat diselesaikan menggunakan teknik data mining, yaitu

Penelitian ini bertujuan untuk mengkaji kondisi musiman karakter ekosistem (suhu perairan, salinitas, arus dan kedalaman) hasil pengukuran satelit MODIS dan data TRITON buoy

Penelitian ini bertujuan untuk mengetahui gambaran biaya satuan dan kualitas hidup penderita gagal ginjal kronik yang menggunakan tindakan hemodialisis di Rumah Sakit Tebet

Berdasarkan argumen tersebut, implikasi penelitian ini adalah bahwa perancang organisasi perlu mempertimbangkan kondisi ketidakpastian (seperti intensitas kompetisi pasar) untuk

Kedua, saling memberi ketenangan antar pasangan.238 Sehingga, hubungan antara suami dengan istrinya adalah partner dalam menyalurkan hasrat seksualnya.239 Pandangan Husein