PENERAPAN ALGORITMA GENETIK PADA PERMAINAN CATUR JAWA

dokumen-dokumen yang mirip
ALGORITMA GENETIK SEBAGAI FUNGSI PRUNING ALGORITMA MINIMAX PADA PERMAINAN TRIPLE TRIAD CARD.

ALTERNATIF MODEL PEMAMPATAN MATRIKS JARANG DENGAN MENGGUNAKAN ALGORITMA GENETIK

MENGUKUR KINERJA ALGORITMA GENETIK PADA PEMAMPATAN MATRIKS JARANG

PERBANDINGAN KINERJA ALGORITMA GENETIK DAN ALGORITMA BRANCH AND BOUND PADA TRAVELLING SALESMAN PROBLEM

BAB 2 LANDASAN TEORI

BAB 3 ANALISIS DAN PERANCANGAN APLIKASI

PEMAKAIAN ALGORITMA GENETIK UNTUK PENJADWALAN JOB SHOP DINAMIS NON DETERMINISTIK

PENEMPATAN MAHASISWA PESERTA MATA KULIAH UMUM DENGAN ALGORITMA GENETIK DI UNIVERSITAS KATOLIK PARAHYANGAN

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

ERWIEN TJIPTA WIJAYA, ST.,M.KOM

KI Kecerdasan Buatan Materi 6: Pencarian dgn. Lihat Status Lawan (Adversarial Search)

Analisis Operator Crossover pada Permasalahan Permainan Puzzle

BAB 2 LANDASAN TEORI

APLIKASI GAME TIC TAC TOE 6X6 BERBASIS ANDROID MENGGUNAKAN ALGORITMA MINIMAX DAN HEURISTIC EVALUATION

ABSTRAK. Universitas Kristen Maranatha

BAB 2 DASAR TEORI. 2.1 Teka-Teki Silang

Bab II Konsep Algoritma Genetik

APLIKASI ALGORITMA GENETIKA DALAM MENENTUKAN SPESIFIKASI PC BERDASARKAN KEMAMPUAN FINANSIAL KONSUMEN

2 TINJAUAN PUSTAKA. 2.1 Peringkasan Teks

OPTIMASI PENJADWALAN KEGIATAN BELAJAR MENGAJAR DENGAN ALGORITMA GENETIK

Pendekatan Algoritma Genetika pada Peminimalan Fungsi Ackley menggunakan Representasi Biner

BAB 2 LANDASAN TEORI. 2.1 Algoritma Genetika

Optimasi Multi Travelling Salesman Problem (M-TSP) Menggunakan Algoritma Genetika

PENGENALAN ANGKA DENGAN MENGGUNAKAN ALGORITMA GENETIK. Fakultas Teknik dan Ilmu Komputer, Jurusan Teknik Informatika Universitas Komputer Indonesia

BAB 2 TINJAUAN PUSTAKA

BAB III. Metode Penelitian

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN 1.1 Latar Belakang

Lingkup Metode Optimasi

SIMULASI PENGENDALIAN KECEPATAN MOBIL OTOMATIS MENGGUNAKAN LOGIKA FUZZY DAN ALGORITMA GENETIKA

Optimasi Fungsi Tanpa Kendala Menggunakan Algoritma Genetika Dengan Kromosom Biner dan Perbaikan Kromosom Hill-Climbing

BAB 3 METODOLOGI 3.1. Analisis Kebutuhan dan Masalah Analisis Kebutuhan

BAB II TINJAUAN PUSTAKA

APLIKASI ALGORITMA GENETIKA DALAM PENENTUAN DOSEN PEMBIMBING SEMINAR HASIL PENELITIAN DAN DOSEN PENGUJI SKRIPSI

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Artificial Intelligence

PERANCANGAN PENERAPAN ALGORITMA NEGAMAX ALPHA BETA PRUNING PADA PERMAINAN OTHELLO NASKAH PUBLIKASI. diajukan oleh Bayu Trisna Pratama

BAB 2 LANDASAN TEORI

Combinatorial Game Theory, Game Tree, dan Intelegensia Buatan

MODIFIKASI METODE BACKTRACKING UNTUK MEMBANTU MENCARI PENYELESAIAN PERMAINAN PEG SOLITAIRE

BAB 2 LANDASAN TEORI. 2.1 Algoritma

PERANCANGAN ALGORITMA GENETIKA UNTUK MENENTUKAN JALUR TERPENDEK. Kata kunci: Algoritma Genetika, Shortest Path Problem, Jalur Terpendek

KNAPSACK PROBLEM DENGAN ALGORITMA GENETIKA

Keywords Algoritma, Genetika, Penjadwalan I. PENDAHULUAN

BAB II KAJIAN PUSTAKA. Pada bab kajian pustaka berikut ini akan dibahas beberapa materi yang meliputi

BAB I PENDAHULUAN. 1.1 Latar Belakang

PENGGUNAAN ALGORITMA GENETIKA UNTUK MENENTUKAN LINTASAN TERPENDEK STUDI KASUS : LINTASAN BRT (BUS RAPID TRANSIT) MAKASSAR

BAB 2 TINJAUAN PUSTAKA

Algoritma Evolusi Dasar-Dasar Algoritma Genetika

Optimasi Metode Fuzzy Dengan Algoritma Genetika Pada Kontrol Motor Induksi

Genetic Algorithme. Perbedaan GA

PEMAMPATAN MATRIKS JARANG DENGAN METODE ALGORITMA GENETIKA MENGGUNAKAN PROGRAM PASCAL

HEURISTIC SEARCH UTHIE

OPTIMALISASI SOLUSI TERBAIK DENGAN PENERAPAN NON-DOMINATED SORTING II ALGORITHM

Tugas Mata Kuliah E-Bisnis REVIEW TESIS

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI. dalam bentuk model untuk dipelajari, diuji, dan sebagainya. Banyak ahli memberikan

Implementasi Algoritma Genetika dalam Pembuatan Jadwal Kuliah

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

BAB I PENDAHULUAN. O, yang bergiliran menandai ruang dalam kotak berukuran 3 3. Pemain yang

Bab II. Tinjauan Pustaka

PERANCANGAN TATA LETAK FASILITAS BAGIAN PRODUKSI MENGGUNAKAN METODE ALGORITMA GENETIK DI PT. PUTRA SEJAHTERA MANDIRI

TEKNIK PENJADWALAN KULIAH MENGGUNAKAN METODE ALGORITMA GENETIKA. Oleh Dian Sari Reski 1, Asrul Sani 2, Norma Muhtar 3 ABSTRACT

Aplikasi Algoritma Genetika Untuk Menyelesaikan Travelling Salesman Problem (TSP)

BAB I PENDAHULUAN. wisata budaya, wisata belanja, hingga wisata Alam. Untuk menarik minat

OPTIMASI PENJADWALAN CERDAS MENGGUNAKAN ALGORITMA MEMETIKA

Algoritma Greedy dalam Artificial Intelligence Permainan Tic Tac Toe

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

Pemaksimalan Papan Sirkuit Di Pandang Sebagai Masalah Planarisasi Graf 2-Layer Menggunakan Algoritma Genetika

Perbandingan Penerapan Algoritma Minimax Dengan Algoritma Alpha-Beta Pruning Pada Permainan Othello

GENERATOR TEKA TEKI SILANG MENGGUNAKAN ALGORITMA GENETIKA DAN MULTITHREADING UNTUK MENGHITUNG FITNESSNYA

PERBANDINGAN ALGORITMA EXHAUSTIVE, ALGORITMA GENETIKA DAN ALGORITMA JARINGAN SYARAF TIRUAN HOPFIELD UNTUK PENCARIAN RUTE TERPENDEK

ABSTRAK. Kata kunci : Algoritma Genetik, Penjadwalan. i Universitas Kristen Maranatha

ANALISIS ALGORITMA MINIMAX DENGAN OPTIMASI ALPHA BETA PRUNIGN PADA PERMAINAN FIVE IN ROW

8. Evaluasi Solusi dan Kriteria Berhenti Perumusan Masalah METODE PENELITIAN Studi Pustaka Pembentukan Data

R.Fitri 1, S.Novani 1, M.Siallagan 1

ALGORITMA GENETIKA PADA PEMROGRAMAN LINEAR DAN NONLINEAR

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM. analisis, desain/perancangan, kode, dan pengujian/implementasi. Tahap analisis

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

BAB II LANDASAN TEORI

Pengaplikasian Pohon dalam Algoritma Sebuah Game Catur

Implementasi Algoritma Negascout Untuk Permainan Checkers

Penjadwalan Job Shop pada Empat Mesin Identik dengan Menggunakan Metode Shortest Processing Time dan Genetic Algorithm

IMPLEMENTASI ALGORITMA GENETIKA UNTUK PENCARIAN RUTE PALING OPTIMUM

BAB III PERANCANGAN. Gambar 3.1 di bawah ini mengilustrasikan jalur pada TSP kurva terbuka jika jumlah node ada 10:

BAB 2 TINJAUAN PUSTAKA

Penerapan Algoritma Greedy dalam Permainan Othello

BAB III ALGORITMA MEMETIKA DALAM MEMPREDIKSI KURS VALUTA ASING. Untuk memberikan penjelasan mengenai prediksi valuta asing

PENGEMBANGAN APLIKASI PENJADWALAN KULIAH SEMESTER I MENGGUNAKAN ALGORITMA GENETIKA

BAB I PENDAHULUAN. hampir di seluruh dunia, termasuk Indonesia. Alat transportasi ini memiliki

BAB II LANDASAN TEORI. Tahun 2001 pemilik CV. Tunas Jaya membuka usaha di bidang penjualan dan

BAB II LANDASAN TEORI

Perancangan Sistem Penjadwalan Asisten Dosen Menggunakan Algoritma Genetika (Studi Kasus: STIKOM Bali)

BAB 2 LANDASAN TEORI

ALGORITMA GREEDY DALAM PERMAINAN DOTS AND BOXES

PENERAPAN ALGORITMA GENETIKA UNTUK TRAVELING SALESMAN PROBLEM DENGAN MENGGUNAKAN METODE ORDER CROSSOVER DAN INSERTION MUTATION

Algoritma Evolusi Real-Coded GA (RCGA)

Transkripsi:

PENERAPAN ALGORITMA GENETIK PADA PERMAINAN CATUR JAWA Nico Saputro dan Erdo Dirgagautama Jurusan Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Katolik Parahyangan, Bandung Email : nico@home.unpar.ac.id, dirgagautama@yahoo.com Abstrak Pada permainan catur Jawa, ada 7 strategi berdasarkan kondisi papan permainan yang diusulkan untuk memilih langkah mana yang akan diambil. Setiap strategi mempunyai bobotnya masing-masing. Algoritma genetik dipakai untuk mencari bobot setiap strategi tersebut. Algoritma alpha-beta cutoff dipakai untuk melakukan proses evaluasi dan pemilihan langkah yang diambil komputer. Kata kunci : catur jawa, algoritma genetik, algoritma apha-beta cutoff Abstract In Jawa Chess game, there are seven proposed strategy based on the board situation to choosed which way the komputer should moved. Every strategy has their own weight. Genetic Algoritm is used to search the weight of each strategy. Alpha Beta Cutoff Algorithm used for certain the computer s movement in the game. Keyword : jawa chess game, genetic algorithm, apha-beta cutoff algorithm Diterima : 1 Agustus 2003 Disetujui untuk dipublikasikan : 9 September 2003 1. Pendahuluan Algoritma Genetik diciptakan berdasarkan inspirasi dari mekanisme seleksi alam dimana individu yang lebih kuat menjadi pemenang dari lingkungan yang berkompetisi. Konsep dasar Algoritma Genetik relatif mudah dipahami, karena komponen-komponen pembentuk algoritma ini mencerminkan kehidupan di alam, seperti contohnya mekanisme seleksi, pindah silang, mutasi, dan lain-lain. Algoritma Genetik memiliki sifat kokoh, memiliki keseimbangan antara efisiensi dan efektifitas dalam menyelesaikan kasus-kasus dari wilayah masalah yang berbeda. Hal ini akan berakibat pada penurunan biaya perancangan ulang sistem. Biaya perancangan ulang yang lebih rendah menunjukkan bahwa sistem tersebut memiliki daya adaptasi yang tinggi sehingga sistem ini dapat bertahan lebih lama dibandingkan dengan sistemsistem lainnya. Permainan Catur Jawa merupakan permainan yang sederhana namun mengandalkan kecepatan pikiran untuk menemukan langkah-langkah taktis agar dapat mengalahkan lawan. Agar dapat memenangkan permainan, seorang pemain harus dapat membuat langkahlangkah sebanyak lima petak mendahului lawan berupa sebuah garis datar (horisontal), tegak (vertikal) atau miring 17

tanpa terpotong langkah lawan. Permainan Catur Jawa menitikberatkan pada pencarian langkah yang paling sesuai agar pemain dapat memainkan permainan, sehingga Algoritma Genetik memiliki peran penting. 2. Konsep Dasar 2.1. Algoritma Genetik Algoritma Genetik memakai mekanisme seleksi alam dan ilmu genetik sehingga istilah-istilah pada Algoritma Genetik akan bersesuaian dengan istilah-istilah pada seleksi alam dan ilmu genetik. Pada ilmu genetik, kromosom terdiri dari susunan gen-gen. Tiap gen mengandung nilai atau sifat tertentu yang disebut allele, sedangkan posisi gen dalam kromosom disebut locus. Selanjutnya, satu atau beberapa kromosom bergabung membentuk paket genetik yang disebut genotif. Interaksi genotif dengan lingkungannya disebut fenotif (4). Pada Algoritma Genetik, kromosom bersesuaian dengan string yang dibentuk dari beberapa karakter. Setiap karakter mempunyai posisi (locus) dan mengandung nilai tertentu (allele). Satu atau beberapa string akan bergabung membentuk struktur (genotif). Bila struktur tersebut dikodekan, akan diperoleh satu titik yang merupakan salah satu alternatif solusi (fenotif) (4). Satu siklus iterasi algoritma genetik (sering disebut sebagai generasi) terdapat dua proses, yakni proses seleksi dan rekombinasi. Proses seleksi adalah proses evaluasi kualitas setiap string didalam populasi untuk memperoleh peringkat calon solusi. Berdasarkan hasil evaluasi, dipilih string-string yang akan mengalami proses rekombinasi. Proses pemilihan biasanya dilakukan secara acak, string dengan kualitas yang lebih baik akan memiliki peluang lebih besar untuk terpilih sebagai calon-calon string generasi berikutnya (4). Proses rekombinasi meliputi proses genetika untuk memperoleh string baru dari pertukaran karakter dari calon-calon string yang didapat pada tahap seleksi. String-string pada generasi baru dihasilkan dengan menggunakan operasi genetik secara acak pada calon string yang terpilih pada tahap seleksi. Proses rekombinasi akan menghasilkan stringstring baru yang berbeda dibandingkan induknya dan dengan demikian diperoleh domain pencarian yang baru (4). Cara kerja Algoritma Genetik sederhana, hanya mencakup proses penduplikasian string-string dan pertukaran bagianbagian dari string. Meskipun cukup sederhana, tetapi mempunyai kemampuan untuk menyelesaikan persoalan optimasi. Kemampuan ini didukung oleh tiga operator genetik, yaitu reproduksi, pindah silang dan mutasi. Pada reproduksi terjadi proses penduplikasian string berdasarkan nilai fungsi objektifnya. Nilai objektif ini dapat dilihat sebagai suatu keuntungan yang ingin dicapai atau dimaksimalkan. Sementara proses pertukaran bagianbagian string dilakukan oleh operator pindah silang dan mutasi (4). Disamping ketiga operator dasar (reproduksi, pindah silang, dan mutasi), parameter-parameter genetik (jumlah populasi, probabilitas pindah silang, probabilitas mutasi, dan lain-lain), serta asumsi-asumsi yang digunakan dalam pemodelannya juga mempunyai peran penting. 2.1.1. Representasi Kromosom Pada kasus catur jawa, string direpresentasikan dengan menggunakan konsep Value Encoding. Pada value encoding, karakter (allele) berbentuk suatu nilai yang berhubungan dengan masalah, misalnya bilangan bulat, desimal atau arah pergerakan. 18

String A 1.224 5.343 0.456 2.293 2.445 String B ABJEIFJDHDHERJDLDLEGT String C (back), (back), (right), (fwd), (left) Gambar 2.1 Contoh Value Encoding Pengkodean ini sangat baik untuk masalah spesifik dan rumit. Namun pengkodean ini sering memerlukan operator pindah silang dan mutasi yang dikembangkan sesuai dengan karakteristik masalahnya (2). 2.1.2. Siklus Algoritma Genetik Siklus secara umum sebagai berikut (4) : 1. Inisialisasi populasi awal (secara acak atau berdasarkan kriteria tertentu). 2. Evaluasi nilai fitness setiap string. 3. Reproduksi, diperoleh kumpulan string baru calon anggota populasi berikutnya. 4. Pindah silang, dihasilkan string baru kombinasi dari orang tuanya. 5. Mutasi, dilakukan dengan mengubah karakter-karakter dari string secara acak. 6. Ulangi langkah 2-5 sampai konvergen atau sejumlah iterasi telah dilakukan. 2.1.3 Reproduksi Menggunakan Elitism Secara sederhana, reproduksi merupakan proses penyalinan string (4). Setiap string pada suatu generasi akan diseleksi berdasarkan fungsi fitnessnya. Peluang terpilihnya string sebesar nilai fitness string dibagi jumlah nilai fitness seluruh string dalam populasi. Proses reproduksi yang dipergunakan adalah metode Elitism. Metode ini dipilih untuk menjamin agar string terbaik pada generasi sekarang terpilih masuk ke generasi berikutnya. 2.1.4 Pindah Silang Proses pindah silang bertujuan untuk menambah keanekaragaman string di generasi berikutnya berdasarkan stringstring dari generasi saat ini. String baru akan memiliki bagian dari struktur kedua orang tuanya. Ada beberapa jenis pindah silang, yaitu One Point Crossover, Multi Point Crossover dan Uniform Crossover (4). Berikut adalah langkahlangkah One Point Crossover : 1. Pasangkan secara acak string-string baru hasil reproduksi. 2. Pilih posisi pindah silang (titik pindah silang). 3. Lakukan pertukaran bagian string disebelah kiri atau disebelah kanan titik pindah silang dengan bagian dari string pasangannya yang telah dipartisi dengan cara yang sama. Induk A Abcdef ghi Induk B Jklmno pqr Anak C Abcdefpqr Anak D Jklmnoghi Gambar 2.2 Contoh Single Point Crossover Multi Point Crossover sama dengan One Point Crossover, perbedaannya terletak pada jumlah titik pindah silang. 2.1.5 Mutasi Operator mutasi memungkinkan pencarian dalam sembarang daerah dalam domain solusi, sehingga peluang untuk melakukan pencarian pada suatu daerah tidak akan pernah nol. Melalui mutasi, string baru dapat diciptakan dengan melakukan modifikasi terhadap satu atau lebih karakter pada string yang sama (4). Proses mutasi suatu string dapat dilakukan dengan cara mengubah nilai pada sebuah atau beberapa gen secara acak berdasarkan peluang mutasinya. Contoh dari proses mutasi dapat dilihat pada tabel berikut ini. Kromosom A 11001011 Hasil Mutasi 11000011 Gambar 2.3. Contoh Mutasi Kromosom A mengalami mutasi pada gen kelima, yakni nilai awal bit 1 menjadi 0. 19

2.1.6 Probabilitas Pindah Silang (P c ) Probabilitas pindah silang mengendalikan operator pindah silang. Jika n adalah banyaknya string pada populasi, sebanyak P c x n string akan mengalami pindah silang. Semakin besar nilai P c, semakin cepat string baru muncul dalam populasi. Jika Pc terlalu besar, string yang merupakan kandidat solusi terbaik mungkin dapat hilang lebih cepat pada generasi berikutnya (4). 2.1.7 Probabilitas Mutasi (P m ) Probabilitas mutasi mengendalikan operator mutasi. Di setiap generasi diperkirakan terjadi mutasi sebanyak P m x n x l, l adalah panjang string. Pada seleksi alam murni, mutasi jarang sekali muncul sehingga probabilitas mutasi yang digunakan umumnya kecil, lebih kecil daripada probabilitas pindah silang (4). 2.2. Algoritma Alpha-Beta Cutoff Algoritma Alpha Beta Cutoff adalah pengembangan algoritma Minimax. Algoritma ini akan mempercepat pencarian karena adanya pemotongan cabang jika diketahui cabang tersebut tidak perlu dievaluasi lebih lanjut (1). Proses pencarian secara depth first, satu jalur dievaluasi hingga batas yang ditentukan, kemudian setiap node dievaluasi untuk menghasilkan nilai. Dari nilai nilai tersebut, dapat diterapkan teknik branch and bound yaitu dengan menentukan dua buah batas yang disebut Alpha (batas atas) dan Beta (batas bawah). Jika nilai node pada jalur berikutnya yang akan diperiksa sudah lebih buruk dari nilai batas maka jalur tersebut tidak perlu diperiksa lagi sehingga waktu yang diperlukan menjadi berkurang (3). Gambar 2.4. Contoh penerapan algoritma Alpha-Beta Cutoff Pada Gambar 4, karena pencarian secara depth first maka setelah mengevaluasi sub-tree pertama akan didapat bahwa nilai betanya adalah 3. Kemudian saat melakukan pencarian pada sub-tree kedua level kedua, nilai node pertama yang ditemui adalah 1, maka cabang atau node yang lain tidak perlu diperiksa sebab level tersebut adalah minimasi dan telah diketahui nilai yang akan dipilih adalah 1 atau lebih kecil dari 1 (nilai tersebut lebih kecil dari nilai beta), sedangkan level di atasnya adalah maksimasi sehingga dapat dipastikan node dari sub-tree tersebut tidak akan terpilih. Cara ini juga diterapkan pada sub-tree yang lain. Algoritma Minimax dengan Alpha Beta Cutoff adalah sebagai berikut [3]: Algorithm : MINIMAX-A-B (Position, Depth,Player,Use-Thresh,Pass-Thresh) 1. If DEEP-ENOUGH(Position,Depth), then return the structure VALUE = STATIC(position,Player); PATH = nil 2. Otherwise, generate one more ply of the tree by calling the function MOVE-GEN(Position,Player) and setting SUCCESSORS to the list it returns. 3. If SUCCESSORS is empty,there are no moves to be made; return the same structure that would have been 20

returned if DEEP-ENOUGH had returned TRUE. 4. If SUCCESSORS is not empty, then go through it, examining each element and keeping track of the best one. This is done as follows. For each element SUCC of SUCCESSORS: a) Set RESULT-SUCC to MINIMAX-A-B(SUCC, Depth+1, OPPOSITE(Player), - Pass-Thresh, -Use-Thresh). b) Set NEW-VALUE to - VALUE(RESULT-SUCC). c) If NEW-VALUE > Pass-Thresh, then we have found a successor that is better than any that have been examined so far. Record this by doing the following. i. Set Pass-Thresh to NEW- VALUE. ii. The best known path is now from CURRENT to SUCC and then on to the appropriate path from SUCC as determined by the recursive call to MINIMAX- A-B. So set BEST-PATH to the result of attaching SUCC to the front of PATH(RESULT-SUCC). d) If Pass-Thresh (reflecting the current best value) is not better than Use-Thresh, then we should stop examining this branch. But both thresholds and values have been inverted. So if Pass-Thresh >= Use-Thresh, then return immediately with the value VALUE = Pass-Thresh PATH = BEST-PATH 5. Return the structure VALUE = Pass-Thresh PATH = BEST-PATH 2.3. Permainan Catur Jawa Pada dasarnya permainan Catur Jawa sama seperti Tic Tac Toe, pemain harus membuat suatu garis tanpa putus dalam arah vertikal, diagonal, maupun horizontal. Bedanya, pemain dikatakan menang jika berhasil membentuk satu garis lurus tanpa putus sebanyak lima kotak. Catur Jawa memerlukan papan permainan, dua tanda untuk mewakili kedua pemain, dan dua pemain. Papan permainan, dapat berbentuk bujur sangkar atau persegi panjang, terdiri dari sekumpulan bujur sangkar kecil yang tersusun berdampingan (seperti papan catur). Jumlah bujur sangkar kecil dalam arah mendatar maupun vertikal minimal lima, sehingga luas papan minimal adalah dua puluh lima bujur sangkar kecil. Setiap pemain berjalan bergiliran, mengisi salah satu bujur sangkar kecil yang kosong dengan tanda miliknya. Permainan berakhir jika semua bujur sangkar kecil telah habis ditandai atau salah satu pemain telah berhasil membentuk satu garis lurus tanpa putus sebanyak lima kotak, boleh vertikal, horizontal maupun diagonal. 3. Pemodelan Ada tujuh parameter yang dipakai berdasarkan kondisi papan permainan. Penjelasan ketujuh parameter mengacu pada gambar 3.1. H O O O G X O F X X X X X O E X D X X X X O C O O O O O 3 4 5 6 7 8 9 Gambar 3.1 Contoh kondisi papan 10 X 10 1. Untuk setiap kotak pada papan yang terisi oleh suatu tanda (kita sebut kotak A), lihat jika ada setidaknya satu tanda yang sama di sekelilingnya (terpisah satu kotak) dimana jika disejajarkan dengan kotak A, maka minimal terdapat lima 21

kotak berjajar yang tidak mengandung tanda lawan. Hitung ada berapa. Tanda O : <H7> + <H8> + <H9> + <G9> + <F9> + <D8> + <C5> + <C6> + <C7> + <C8> = 10 Tanda X : <F4> + <F5> + <F6> + <F7> + <F8> + <E5> + <D4> + <D5> + <D6> + <D7> = 10 2. Terdapat tiga kotak berderetan dengan tanda yang sama dan kedua ujungnya bebas tidak terhalang. Hitung ada berapa. Tanda O : {<H7> + <H8> + <H9>} + {<H9> + <G9> + <F9>} = 2 Tanda X : Nol (tidak ada). 3. Terdapat empat kotak berderetan dengan tanda sama dan salah satu ujungnya bebas tidak terhalang, sedangkan ujung lainnya terhalang oleh tanda lawan. Hitung ada berapa. Tanda O : Nol (tidak ada). Tanda X : {<D4> + <D5> + <D6>+ <D7>} = 1 4. Terdapat empat kotak berderetan dengan tanda yang sama dan kedua ujungnya bebas tidak terhalang. Hitung ada berapa. Tanda O : {<C5> + <C6> + <C7> + <C8>} = 1 Tanda X : Nol (tidak ada). 5. Terdapat lima kotak berderetan dengan tanda sama dan kedua ujungnya tidak diperhatikan, (boleh kosong, boleh tanda lawan, boleh tanda yang sama). Hitung ada berapa. Tanda O : Nol (tidak ada). Tanda X : {<F4> + <F5> + <F6> + <F7> + <F8>} = 1 6. Terdapat tiga kotak berderetan dengan tanda lawan dan satu ujungnya tertutup oleh tanda milik sendiri. Hitung ada berapa. Tanda O : {<F5> + <E5>+ <D5>} + {<F4> + <E5>+ <D6>} = 2 Tanda X : Nol (tidak ada). 7. Terdapat empat kotak berderetan dengan tanda lawan dan kedua ujungnya tertutup oleh tanda milik sendiri. Hitung ada berapa. Tanda O : {<G7> + <F6> + <E5> + <D4>} = 1 Tanda X : Nol (tidak ada). 3.1. Representasi ke bentuk String Setiap parameter kondisi papan seperti diuraikan diatas adalah sebuah gen. Karena ada 7 parameter maka kromosom terdiri dari 7 buah gen. Posisi setiap gen pada kromosom (locus), mewakili urutan parameter. Gen paling kiri mewakili parameter pertama, gen paling kanan mewakili parameter ketujuh. Nilai gen (allele) adalah bobot parameter tersebut yang mewakili seberapa penting parameter tersebut. 10 20 50 70 100 50 50 Gambar 3.2 Contoh kromosom dengan 7 gen Pada gambar 3.8 terlihat parameter pertama mempunyai bobot 10, parameter kedua 20, parameter ketiga 50, dst. Sedangkan fungsi fitness-nya adalah : F x1, x2,..., x7 = a1 x1 + a2 x2 +... + a7 x ( ) 7 Dengan : F(x) = fungsi fitness a i = alelle pada locus ke-i dari string x i = nilai parameter ke-i Misalkan kondisi papan permainan seperti pada gambar 3.1. Untuk tanda O, tujuh parameternya bernilai masingmasing : 10, 2, 0, 1, 0, 2, dan 1 sehingga nilai fitness : F x1, x2,..., x7 = a1 x1 + a2 x2 +... + a7 x F(10, 20, 50, 70, 100, 50, 50) = 10 x 10 + 20 x 2 + 50 x 0 + 70 x 1 + 100 x 0 + 50 x 2 + 50 x 1= 360. ( ) 7 22

Nilai sebesar 360 inilah yang merupakan hasil pemetaan dari kondisi papan permainan. 3.2 Penggunaan Algoritma Alpha-Beta Cutoff Algoritma Alpha-Beta Cutoff dipakai untuk menentukan langkah yang akan diambil oleh komputer. Dari setiap kondisi papan, komputer akan mendapatkan suatu nilai fitness tertentu (lihat bagian 3.1). Nilai fitness ini akan menjadi node pada Algoritma Alpha-Beta Cutoff. Dengan mengevaluasi segala kemungkinan pergerakan lawan berdasarkan kondisi papan saat ini, akan diperoleh node-node baru sehingga membentuk struktur tree. Berdasarkan nilai-nilai node yang telah terbentuk pada tree, Algoritma Alpha-Beta Cutoff dapat memilih langkah terbaik yang harus diambil. 3.3. Pencarian Bobot Terbaik Pencarian bobot terbaik dilakukan dengan melakukan simulasi pertandingan antara komputer melawan komputer. Siklus algoritma genetik yang dipakai adalah : 1. Buat populasi awal, dapat ditentukan oleh user. Jumlah string minimal dua dan tidak boleh ada dua atau lebih string yang sama. 2. Tandingkan antar anggota populasi dengan sistem setengah kompetisi, setiap string pernah bertanding dengan string lain sebanyak satu kali. 3. Buat peringkat berdasarkan nilai hasil pertandingan. Sistem penilaiannya adalah menang bernilai dua, kalah bernilai nol, dan seri bernilai satu. 4. Lakukan seleksi, pilih setengah string terbaik untuk masuk ke generasi berikut (elitism) 5. Lakukan operasi genetik seperti one point crossover atau multi point crossover (ditentukan oleh user) atau mutasi pada anggota populasi sehingga didapatkan string-string baru. Jumlah string baru yang perlu dihasilkan melalui operasi genetik sama dengan setengah populasi. 5.1 Pilih sepasang string. 5.2 Beri nilai acak untuk pasangan string tersebut. 5.3 Jika nilai acaknya lebih kecil dari probabilitas crossover, lakukan crossover. 5.4 Ulangi langkah 5.1 hingga 5.3 sampai seluruh string pernah dipasangkan atau hasil crossover telah berhasil mengenapi jumlah anggota populasi. 5.5 Jika setelah semua proses crossover, anggota populasi belum penuh, lakukan proses mutasi sampai terpenuhi anggota populasi. 6. Ulangi langkah 2 hingga 5 hingga dicapai jumlah generasi yang diinginkan. 4. Pengujian Pengujian yang dilakukan bersifat black box dan lebih ditekankan untuk memeriksa seberapa baik peran dan kinerja Algoritma Genetik dan Algoritma Alpha-Beta Cutoff pada Perangkat Lunak Permainan Catur Jawa. Lingkungan perangkat keras saat pengujian adalah prosesor AMD Duron 800 MHz dan memori DDRAM 256 MB. 4.1. Uji Simulasi Uji simulasi merupakan pengujian terhadap Perangkat Lunak Permainan Catur Jawa (komputer melawan komputer). Untuk uji simulasi ini, dimensi papan yang dipakai adalah 10 x 10. 4.1.1. Uji Simulasi 1 Pada uji simulasi ini, ingin dicari bobot terbaik dengan memberikan variasi terhadap probabilitas crossover dan probabilitas mutasi. 23

Data genetik yang digunakan adalah jumlah generasi=2, kedalaman Alpha- Beta Cutoff =1, operasi two point crossover dengan titik crossover 2 dan 4, operasi two point mutasi dengan titik mutasi 3 dan 7, serta jumlah string = 6, dengan rincian : String 1 : 1.30.33.35.200.31.34 String 2 : 1.25.35.50.200.30.40 String 3 : 80.25.27.45.95.30.123 String 4 : 1.25.27.45.95.30.123 String 5 : 80.25.35.50.200.30.40 String 6 : 44.25.90.50.33.30.100 Gambar 4.1 Hasil generasi 1 untuk Pc = 30% dan Pm = 50% Gambar 4.2 Hasil akhir untuk Pc = 30% dan Pm=50% Pada gambar 4.2 terlihat bahwa string keempat merupakan hasil crossover string kedua dan ketiga. String kelima dan keenam merupakan hasil mutasi. String terbaik = 1.30.33.35.200.31.34. Waktu simulasi + 54 detik Gambar 4.3Hasil generasi 1 untuk Pc = 100% dan Pm=100% Pada gambar 4.4 terlihat bahwa string keempat, kelima dan keenam merupakan hasil crossover masing-masing dari string pertama dan kedua, string pertama dan ketiga, dan string kedua dan ketiga. String terbaik = 1.30.33.35.200.31.34. Waktu simulasi : + 50 detik 4.1.2. Uji Simulasi 2 Pada uji simulasi ini, ingin dicari bobot terbaik dengan memberikan variasi terhadap kedalaman Alpha Beta Cuttof. Data genetik yang dipergunakan adalah jumlah generasi 1, posisi titik crossover : 1 dan 6, probabilitas crossover 100%, posisi titik mutasi : 4 dan 5, probabilitas mutasi 100%. Kedalaman Alpha Beta Cutoff= 1, jumlah string ada 6, dengan rincian seperti pada uji simulasi 1. Diperoleh waktu simulasi : + 14 detik dengan peringkat akhir seperti gambar 4.5. Terlihat string terbaik tetap 1.30.33.35.200.31.34. Gambar 4.5 Hasil untuk depth=1 Kedalaman Alpha Beta Cutoff = 2, string yang dipakai adalah 3 string terbaik yang diperoleh dari 4.1.2.1. Kedalaman alpha beta cutoff berpengaruh signifikan terhadap waktu simulasi menjadi + 22 menit 34 detik dan peringkat akhir seperti gambar 4.6. Gambar 4.6 peringkat akhir untuk depth=2 Gambar 4.4 Hasil generasi 2 untuk Pc=100% dan Pm=100% 4.2. Uji Permainan Uji permainan dilakukan antara komputer melawan manusia (metode satu pemain), komputer memakai tanda X, dimensi 24

papan 15 x 15 dan bobot merupakan bobot terbaik yang diperoleh dari pengujian sebelumnya yaitu 1.25.35.50.200.30.40. Gambar 4.8 dan gambar 4.9 merupakan langkah yang diambil komputer untuk kedalaman alpha beta cutoff tertentu dan posisi awal seperti gambar 4.7. Gambar 4.10 Kondisi awal papan Gambar 4.7 Kondisi awal permainan Gambar 4.11 Langkah Komputer bila kedalaman alpha beta cutoff = 3 Gambar 4.8 Langkah komputer bila kedalaman alpha-beta cutoff=2. Gambar 4.9 Langkah Komputer bila kedalaman alpha-beta cutoff=1 Terlihat langkah komputer dengan kedalaman 1 ternyata lebih baik daripada langkah komputer dengan kedalaman 2. Gambar 4.11 dan gambar 4.12 merupakan langkah yang diambil komputer bila dipergunakan kedalaman tertentu berdasarkan kondisi awal papan pada gambar 4.10. Gambar 4.12 Langkah Komputer bila kedalaman alpha-beta cutoff =1 Terlihat bahwa langkah komputer dengan kedalaman 1 lebih baik daripada langkah komputer dengan kedalaman 3. 5. Kesimpulan 1. Algoritma Genetik dapat dipakai pada permainan Catur Jawa. 2. Berdasarkan pengujian, waktu simulasi lebih bergantung pada kedalaman level Alpha-Beta Cutoff daripada jumlah individu. 3. Untuk 7 strategi yang diusulkan pada permainan catur jawa, Algoritma Alpha-Beta Cutoff sebagai algoritma untuk menentukan langkah yang akan diambil kurang memberikan hasil maksimal. 6. Daftar Pustaka 1. Faybish, Itamar, Applying The Genetic Algorithm To The Game of Othello, Computer Science Department Vrije Universiteit Brussel, 1998. 25

2. Koza, John, Operators of Genetic Algorithm [online]. www.cs.felk.cvut.cz/ ~xobitko/ga/operators.html. [8 Nopember 2001]. 3. Rich, Elaine & Kevin Knight, Artificial Intellegence, Second Edition, McGraw-Hill Inc., 1991. 4. Saputro, Nico, Diktat Kuliah Algoritma Genetik, Fakultas Matematika dan Ilmu Pengetahuan Alam Universtas Katolik Parahyangan Bandung, 2000. 5. Pressman, Roger S., Software Engineering : A Practitioner s Approach, Fourth Edition, McGraw- Hill Inc., 1997. 26