Implementasi Genetika Dalam Menyelesaikan Sebuah Persalan Anagram Scrabble Mhammad Gilang Kautzar HW Prgram Studi Teknik Infrmatika, Institut Teknlgi Bandung Jl. Ganesha 10, Bandung e-mail: if15101@students.if.itb.ac.id ABSTRAK Anagram merupakan suatu permainan kata di mana sebuah kata atau frase dihasilkan dengan mengacak urutan huruf-huruf dari suatu kata atau frase lain. Salah satu jenis permainan papan (bard game) puzzle yang paling umum dewasa ini adalah scrabble. Pada permainan Scrabble ini setiap huruf memiliki pin tertentu, sehingga ada susunan huruf anagram tertentu yang memiliki nilai terbesar. Pada permainan scrabble ini, pemain harus mencari susunan huruf (kata) yang paling ptimum dari huruf-huruf yang dimilikinya untuk menambah pinnya secara maksimum. Dalam menyelesaikan sebuah anagram scrabble ini dapat digunakan berbagai jenis algritma. Salah satu jenis algritma yang dapat diimplementasikan adalah algritma genetika. Dalam tulisan ini akan dibahas bagaimana menerapkan algritma genetika pada sebuah prgram untuk mencari susunan kata dari sebuah anagram. Kata kunci: Genetika, Puzzle, Scrabble, Anagram Slving. 1. Pendahuluan Anagram merupakan sebuah tipe permainan kata yang dahulu ppuler di Erpa pada abad pertengahan. Seni beranagram diciptakan leh serang penyair Yunani Lycphrn. Sebelum era kmputerisasi, anagram dibangun menggunakan pulpen dan kertas, dengan memainkan kmbinasi huruf dan bereksperimen dengan variasi. Dewasa ini, kmputer dapat menghasilkan sebuah metde baru dalam membuat anagram, disebut juga anagram server, anagram slver, atau anagrammer. Metdemetde tadi sering digunakan untuk mencari slusi dari permainan Crsswrds, Scrabble, Bggle, dan permainanpermainan kata lain. Ketika seserang memasukkan sebuah kata atau frase, prgram atau server akan menggunakan sebuah database raksasa berisi kata-kata untuk mengeluarkan sebuah daftar yang mengandung setiap kmbinasi kata atau frase yang mungkin dari kata atau frase masukan. Kebanyakan anagram server dapat mengatur hasil pencarian dengan memasukkan atau mengeluarkan kata tertentu, membatasi panjang kata, atau membatasi jumlah hasil pencarian. Salah satu permainan paling terkenal yang menggunakan anagram adalah scrabble. Scrabble merupakan permainan papan (bard game) di mana pemain harus mencari susunan paling ptimum dari hurufhuruf yang dimilikinya. Pada permainan ini setiap huruf memiliki pin masing-masing yang ditentukan berdasarkan frekuensi kemunculannya dalam suatu bahasa. 2. Genetika genetika adalah teknik pencarian yang digunakan dalam penghitungan untuk mencari slusi perkiraan maupun benar untuk ptimasi dan masalah pencarian. ini dikategrikan sebagai algritma glbal search heuristics. ini terinspirasi dari prinsip dari genetika dan seleksi alam (teri evlusi Darwin). ini ditemukan di Universitas Michigan, Amerika Serikat, leh Jhn Hlland (1975) melalui sebuah penelitian dan dippulerkan leh salah satu muridnya, David Gldberg. genetika diimplementasikan sebagai simulasi kmputer di mana sebuah ppulasi dari representasi abstrak (disebut krmsm, gentipe, atau genm) kandidat slusi (disebut individu, makhluk, atau fentipe). Biasanya, slusi direpresentasikan dalam biner sebagai string yang terdiri dari 0 dan 1, namun penggunaan metde encding lain juga mungkin dipakai. Berbeda dengan teknik pencarian knvensinal, algritma genetika bermula dari himpunan slusi yang dihasilkan secara acak. Krmsm-krmsm berevlusi dalam suatu prses iterasi yang berkelanjutan yang disebut generasi. Pada setiap generasi, krmsm dievaluasi berdasarkan suatu fungsi evaluasi. Setelah beberapa generasi maka algritma genetika akan knvergen pada krmsm terbaik, yang diharapkan merupakan slusi ptimal.
Pertama kali, sebelum algritma genetika dijalankan, maka perlu didefinisikan fungsi fitness sebagai masalah yang ingin diptimalkan. Jika nilai fitness semakin besar, maka sistem yang dihasilkan semakin baik. Fungsi fitness ditentukan dengan metde heuristik. genetika sangat tepat digunakan untuk penyelesaian masalah ptimasi yang kmpleks dan sukar diselesaikan dengan menggunakan metde knvensinal. Sebagaimana halnya prses evlusi di alam, suatu algritma genetika yang sederhana umumnya terdiri dari tiga perasi yaitu: perasi reprduksi, perasi persilangan (crssver), dan perasi mutasi. Struktur umum dari suatu algritma genetika dapat didefinisikan dengan langkahlangkah sebagai berikut: Membangkitkan ppulasi awal secara randm. Membentuk generasi baru dengan menggunakan tiga perasi diatas secara berulang-ulang sehingga diperleh krmsm yang cukup untuk membentuk generasi baru sebagai representasi dari slusi baru. Evlusi slusi yang akan mengevaluasi setiap ppulasi dengan menghitung nilai fitness setiap krmsm hingga kriteria berhenti terpenuhi. Bila kriteria berhenti belum terpenuhi maka akan dibentuk lagi generasi baru dengan mengulangi langkah 2. beberapa kriteria berhenti yang sering digunakan antara lain: 2.1. Pseud-cde berhenti pada generasi tertentu berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi/terendah (tergantung persalan) tidak berubah. berhenti bila dalam n generasi berikutnya tidak diperleh nilai fitness yang lebih tinggi/rendah. Berikut ini adalah fungsi umum (dasar) dari genetika: Functin GeneticAlgrithm (ppulasi, fitness-fn) individu {input berupa ppulasi, sebuah kumpulan individu dan kebuagaran-fn, sebuah fungsi yang mengukur suatu fitness individu} i,x,y : integer repeat new_ppulatin empty set fr i=1 t size(ppulatin) d x RandmSelectin(ppulasi,fitness -FN) y RandmSelectin(ppulasi,fitness- FN) child Reprduce(x,y) if(smallrandmprbability) then anak mutate(anak) add anak t new_ppulatin ppulasi new_ppulatin until (beberapa individu cukup fit) r (waktu habis) return individu terbaik dalam ppulasi (berdasarkan fitness-fn) Functin Reprduce(x,y : parent_indiviual s) individual n length(x) c randm angka dari 1 sampai n return Append(substring(x,1,c), substring(y,c +1,n)) 3. Persalan Anagram Slving dengan implementasi Brutefrce Cara termudah dalam menyelesaikan sebuah persalan anagram adalah dengan menggunakan algritma brutefrce. Hal yang dilakukan yaitu mencba semua kmbinasi huruf dari kata atau frase yang menjadi persalan. Tetapi hal tersebut memerlukan waktu yang sangat lama karena banyaknya jumlah kmbinasi yang ada. Sebagai cnth, jumlah kmbinasi huruf dari sebuah kata tequila yang berjumlah 7 huruf berarti: 7!=5040 Kemudian dari angka tersebut, dicari susunan mana yang paling besar nilainya. Namun, angka 5040 tersebut merupakan jumlah yang sangat besar untuk suatu algritma pencarian (tidak mangkus). 4. Persalan Anagram Slving dengan Implementasi Genetika Karena algritma brutefrce tidak mangkus untuk digunakan, maka prgram akan menggunakan implementasi algritma genetika. 4.1. Desain Anagram genm hanya terdiri dari satu buah set huruf. terdiri dari sebuah ppulasi dari satu set genm
scrabble. Kemudian genm-genm tersebut dimutasikan dan disilang (crssver) di setiap generasi sampai prgram menuelesaikan anagram dan genm memiliki fitness yang sempurna. Karena semua kemungkinan huruf pada genm telah diketahui, kita tidak perlu lagi memutasikan kata dengan menggunakan huruf-huruf baru. Kita cukup memutasikan psisi dari huruf pada setiap genm. Persilangan juga akan mengubah psisi dari hurufhuruf, namun hanya dalam satu genme tersebut, sehingga tidak ada huruf yang hilang atau terduplikasi. Prgram memiliki antarmuka. Ada tiga tmbl, satu buah ktak teks, dan tempat jawaban. Tmbl cari akan menjalankan prsedur cari yang mencari slusi anagram sampai menemukan jawaban yang sesuai dari sebuah database berisi kata-kata (first fund). Tmbl lanjutkan akan mencari slusi anagram seluruhnya (sampai habis). Sketsa antarmuka dari prgram Anagram Slver adalah sebagai berikut: Nilaifitness 0.01 endif return Nilaifitness Prgram menjalankan algritma dalam dua mde: cari (first find) dan lanjutkan (kntinu). Kedua algritma dijalankan dalam thread terpisah. Prsedur berikut adalah mde kntinu yang berjalan apabila tmbl kntinu ditekan. Prsedur BtnLanjutkan (input static) _stp = blean Thread = Thread ScrabbleGenm.HurufAwal=txtAnagram.txt _stp false Thread mulai prsedur GAKntinu Thread.Start() Prsedur GAKntinu (input static) fr i 0 t 100 d {ambil generasi berikut dari genm yang mendekati fitness yang diinginkan} ppulasi.nextgeneratin() Gambar 1. Desain Interface dengan 3 buah tmbl dan cnth 4.2. Pseud-cde implementasi Dalam implementasi algritma genetika terhadap penyelesaian anagram scrabble, fungsi fitness menjadi sederhana karena kita hanya menerima fitness sempurna (perfect fitness). Berikut ini akan dijelaskan fungsi dan prsedur yang digunakan dalam penyelesaian masalah tersebut. Fungsi berikut menghitung nilai fitness berdasar pada kebenaran pengejaan. Functin HitungGAScrabbleBard(input static) Nilaifitness Real: Nilaifitness String: wrd Nilaifitness 0 Wrd TString() if (_speller.testwrd(wrd)) then Nilaifitness TheArray.Cunt else {Tampilkan nilai teratas genm setiap 50 generasi} if (i md 50 = 0) then _answertext ppulasi.gettpgenme().tstring( ) _slved = true endif endfr {berhenti jika tmbl stp ditekan} if (_stp == true){ _stp false break } Sebagai cnth, kita ingin mencari seluruh anagram dari kata rse. Maka kita akan menjalankan mde kntinu ini dan mengambil gen dengan fitness terbaik yang telah dihasilkan. Hasil akan terlihat seperti berikut: Genm 1: rse = 4 Genm 2: rse = 4 Genm 3: sre = 4 Genm 4: res = 4 Genm 5: rse = 4 Genm 6: sre = 4
Genm 7: res = 4 Genm 8: rse = 4 Genm 9: rse = 4 5. Kesimpulan genetika ini sangat tepat untuk diimplementaskan pada prgram penyelesaian anagram, khususnya pada permainan scrabble. Karena tadi telah ditunjukkan bahwa algritma ini dapat menyelesaikan suatu persalan yang apabila dikerjakan secara manual (tak manusia) sangat lama. Jadi, algritma ini cukup mangkus untuk digunakan dibanding brute-frce. REFERENSI [1] Munir, Rinaldi. Diktat Kuliah IF2251 Strategi Algritmik, Prgram Studi Teknik Infrmatika ITB, 2005 [2] Haupt, Randy L and Sue Ellen Haupt. Practical Genetic Algrithms, 2nd editin, Jhn Wiley & Sns, Inc, Hbken, New jersey, 2004. [3] Wikipedia, Genetic Algrithm, http://en.wikipedia.rg/wiki/genetic_algrithm, diakses tanggal 21 Mei 2007 pukul 15.00 [4] AA Pardede, SA Halim, D Nugrahadi. Penerapan algritma genetika pada permainan Rubik s cube. Prgram Studi Teknik Infrmatika ITB, 2006
This dcument was created with Win2PDF available at http://www.daneprairie.cm. The unregistered versin f Win2PDF is fr evaluatin r nn-cmmercial use nly.