Implementasi Algoritma Genetika Dalam Menyelesaikan Sebuah Persoalan Anagram Scrabble

dokumen-dokumen yang mirip
Penerapan Algoritma Genetika pada Permainan Rubik s Cube

PENERAPAN ALGORITMA GENETIKA PADA PERSOALAN PEDAGANG KELILING (TSP)

Kompresi Pohon dengan Kode Prüfer

PENGGUNAAN ALGORITMA GREEDY PADA PERMAINAN CAPSA SUSUN

Penerapan Algoritma Backtracking dalam Permainan Futoshiki Puzzle

APLIKASI ALGORITMA GENETIK UNTUK OPTIMASI PENJADWALAN KEGIATAN BELAJAR MENGAJAR

PENGGUNAAN ALGORITMA GREEDY DALAM PERMAINAN KARTU BLACK JACK

KONSEP ALGORITMA GENETIK BINER UNTUK OPTIMASI PERENCANAAN JADWAL KEGIATAN PERKULIAHAN

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Robby Kurniawan Budhi Fakultas Teknologi Informasi dan Komunikasi Universitas Semarang. Abstract

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

PENERAPAN ALGORITMA GREEDY DALAM PENCARIAN SOLUSI TERBAIK PADA PERMAINAN TETRIS

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

ALGORITMA RUNUT BALIK DALAM PENYELESAIAN PERMAINAN WORD DIAGRAM

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

BAB 1 PENDAHULUAN. ini akan semakin tinggi.apalagi pada tahun ini terjadi kenaikan harga bahan bakar

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

ANALISIS PENERAPAN ALGORITMA RUNUT-BALIK DALAM PENCARIAN SOLUSI PERSOALAN LOMPATAN KUDA

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

PENCARIAN SOLUSI DENGAN ALGORITMA BACKTRACKING UNTUK MENYELESAIKAN PUZZLE KAKURO

ISSN VOL. 12, NO. 2, OKTOBER 2011

Penerapan Algoritma Pencocokan String Knuth-Morris-Pratt Sebagai Algoritma Pencocokan DNA

Pemanfaatan Algoritma BFS pada Graf Tak Berbobot untuk Mencari Jalur Terpendek

Penerapan Algoritma Brute Force pada permainan Countdown Number

Penyelesaian Permainan 3 missionaries and 3 cannibals Dengan Algoritma Runut-Balik

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Studi Pohon Steiner dan Penggunaannya dalam Perancangan Chip dan Jaringan

Algoritma Greedy pada Board Game Saboteur

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

IMPLEMENTASI PROGRAM DINAMIS DENGAN ALGORITMA NEEDLEMAN-WUNSCH PADA PENSEJAJARAN DNA DAN PROTEIN

IMPLEMENTASI ALGORITMA BREADTH FIRST SEARCH DAN STRING MATCHING PADA SISTEM PAKAR

PERFORMANCE ALGORITMA GENETIKA (GA) PADA PENJADWALAN MATA PELAJARAN

Penggunaan Algoritma Greedy Dalam Perancangan Papan Teka Teki Silang

PENERAPAN ALGORITMA RUNUT-BALIK (BACKTRACKING) DALAM PENYELESAIAN PERMAINAN SUDOKU

Penerapan Algoritma Backtracking pada Pewarnaan Graf

Penerapan Algoritma Greedy pada Intelegensia Buatan untuk Transfer Pemain dalam Permainan Simulasi Sepakbola

Algoritma Brute Force (lanjutan)

BAB 2 LANDASAN TEORI

DESAIN FUZZY STATE MACHINE UNTUK MENGHASILKAN VARIASI RESPON NPC (NON-PLAYABLE CHARACTER) PADA SEBUAH GAME

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

Perbandinganan Penggunaan Algoritma Greedy dan Modifikasi Algoritma Brute Force pada Permainan Collapse XXL

Algoritma Backtracking Pada Permainan Peg Solitaire

Algoritma Penentuan Graf Bipartit

Algoritma Exhaustive Search Dalam Permainan Congklak

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

Block Cipher Menggunakan Permutasi Diagonal dan Feistel Berbasiskan AES-128

I. PENDAHULUAN II. DASAR TEORI. Contoh lainnya: Solusi: 0= V,1= I,2= O,3= R, 4= N,5= L,7= A,8= F,9= E.

Penerapan Algoritma Greedy dan Backtrackng Dalam Penyelesaian Masalah Rubik s Cube

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

BAB I PENDAHULUAN. telah diadopsi untuk mengurangi getaran pada gedung-gedung tinggi dan struktur

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

APLIKASI ALGORITMA GREEDY DALAM PERMAINAN JAWBREAKER

Pembentukan pohon pencarian solusi dan perbandingan masingmasing algoritma pembentuknya dalam simulasi N-Puzzle

Penggunaan Algoritma DFS dalam Pencarian Strategi Permainan Catur

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

Penerapan Algoritma Greedy Pada Game Tower Defense: Tower of Greece

Aplikasi Algoritma Pencarian String Dalam Sistem Pembayaran Parkir

Analisis Operator Crossover pada Permasalahan Permainan Puzzle

Algoritma Puzzle Pencarian Kata

Strategi Algoritma Penyelesaian Puzzle Hanjie

Pemanfaatan Pohon dalam Realisasi Algoritma Backtracking untuk Memecahkan N-Queens Problem

BAB 2 LANDASAN TEORI. Sejak komputer ditemukan, para peneliti telah berpikir adakah kemungkinan agar

Metode Path Finding pada Game 3D Menggunakan Algoritma A* dengan Navigation Mesh

Aplikasi Algoritma Greedy dalam Permainan Kartu Truf

Penerapan Algoritma Greedy pada Permainan Bubble Breaker

Penggunaaan Algoritma Greedy Dalam Aplikasi Vending Machine

Penerapan Algoritma Backtracking pada Knight s Tour Problem

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

Enkripsi Pesan pada dengan Menggunakan Chaos Theory

APLIKASI TEKNOLOGI GREEN COMPUTING MELALUI OPTIMALISASI KINERJA KOMPUTER

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

Penerapan Algoritma Greedy dalam Permainan Tradisional Congklak

APLIKASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT (KPM) DALAM PENGENALAN SIDIK JARI

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Penentuan Lokasi Pemasaran Produk dengan Media Periklanan Menggunakan Algoritma Greedy

Penerapan Algoritma Greedy untuk Permainan Halma

Pemecahan Masalah Knapsack dengan Menggunakan Algoritma Branch and Bound

Pendakian Bukit (Hill Climbing)

Algorima Greedy Pada Self Serve Gas Station

Penyempurnaan Intelegensa Buatan Mode AI ++ Ragnapolis dengan Langkah Penjualan Kota Berbasiskan Algoritma Greedy

Penyelesaian Permasalahan Nonogram dengan Algoritma Runut Balik

Pemanfaatan Algoritma Runut-Balik dalam Menyelesaikan Puzzle NeurOn dalam Permainan Logical Cell

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

Teknik Informatika S1

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENCARIAN KOEFISIEN ROOK POLYNOMIAL

Penyelesaian Permainan Sliding Puzzle 3x3 Menggunakan Algoritma Greedy Dengan Dua Fungsi Heuristik

ALGORITMA GENETIKA PADA PEMROGRAMAN LINEAR DAN NONLINEAR

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Transkripsi:

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.