Komputasi DNA, Kegalatan, dan Kekuasaan untuk Re-Nurturasi Alam
MAKALAH Komputasi Evolusioner
-
Upload
independent -
Category
Documents
-
view
6 -
download
0
Transcript of MAKALAH Komputasi Evolusioner
MAKALAH
KOMPUTASI EVOLUSIONER
“IMPLEMENTASI ALGORITMA GENETIKA DALAM
PENYUSUNAN TEKA-TEKI SILANG”
Disusun Oleh :
Muhammad Auliya (11523180)
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS ISLAM INDONESIA
BAB I
PENDAHULUAN
1.1. Latar Belakang
Teka-teki silang (TTS) merupakan sebuah permainan untuk mengasah otak.
TTS dapat dimanfaatkan dalam bidang pendidikan untuk menguji kemampuan anak
didik, sehingga pertanyaan-pertanyaan yang digunakan disesuaikan dengan
kebutuhan saja. Untuk membuat sebuah TTS dapat dikatakan mudah, mudah
karena kita hanya mengkombinasikan kata yang satu dengan yang lain. Tapi akan
sulit apabila jumlah pertanyaan yang digunakan banyak, karena untuk membuat
sebuah TTS dari sekumpulan pertanyaan, kita harus mencoba kombinasi yang
mungkin dari kata yang ada sampai terbentuk sebuah TTS. Semakin banyak jumlah
pertanyaan, maka semakin banyak kombinasi yang harus kita coba.
Penerapan algoritma genetika digunakan untuk mendapatkan suatu pola
penyusunan kata dalam ruang-ruang kosong yang paling optimal. Untuk mengetahui
optimal atau tidaknya pengisian ruang kosong tersebut, dilakukan dengan melihat
banyaknya kombinasi kata yang dapat dibuat serta banyaknya kata yang
berpotongan. Jadi, semakin banyak dan baik kombinasi kata yang dibuat untuk
mengisi ruang-ruang kosong, maka semakin optimal pengisian tersebut. Solusi ini
dapat diatasi apabila membuat TTS dilakukan secara otomatis dan dengan waktu
yang paling efisien menggunakan algoritma genetika.
1.2. Rumusan Masalah
1. Bagaimana membuat aplikasi untuk optimasi penyusunan teka-teki silang
menggunakan algoritma genetika.
1.3. Batasan Masalah
1. TTS yang dibuat adalah TTS dalam bentuk yang kita kenal sekarang ini.
Pertanyaan dibagi menjadi dua kategori yaitu mendatar dan menurun.
2. Jawaban pertanyaan mendatar tidak boleh tersusun bersambung dengan jawaban
pertanyaan mendatar lain, dan jawaban pertanyaan menurun tidak boleh
tersusun bersambung dengan jawaban pertanyaan menurun lain.
3. Apabila jawaban mengandung karakter selain huruf A..Z, maka karakter tersebut
diabaikan termasuk spasi. Misalnya terdapat jawaban dari sebuah pertanyaan
adalah kura-kura maka akan dianggap sebagai kurakura.
1.4. Tujuan
Membuat sebuah aplikasi yang dapat menyusun teka-teki silang dengan
pertanyaan yang ditentukan sendiri oleh pengguna dengan tujuan untuk membuat
TTS yang mengandung pertanyaan-pertanyaan yang lebih spesifik, misalnya
pertanyaan bidang pendidikan, komputer, pertanyaan yang berhubungan dengan
biologi dan sebagainya.
BAB II
PERANCANGAN
2.1. Representasi Kromosom
Pengkodean merupakan bagian yang penting dalam menyelesaikan suatu
permasalahan dengan algoritma genetika. Pengkodean adalah pengkorversian
masalah dalam dunia nyata menjadi bentuk yang dapat diolah dengan menggunakan
algoritma genetika. Pengkodean yang tepat sangat menentukan berhasil atau
tidaknya proses algoritma genetika dalam menyelesaikan sebuah permasalahan.
Pengkodean yang tepat juga akan menentukan tingkat efisiensi komputasi yang
digunakan.
Skenario pengkodean dalam penelitian ini adalah dengan membuat urutan
jawaban dan posisi jawaban (mendatar atau menurun) yang dikodekan menjadi
bentuk yang dapat diolah dengan algoritma genetika dalam bentuk sebuah
kromosom. Sebuah kromosom merupakan susunan dari beberapa gen. Panjang
sebuah kromosom adalah jumlah gen yang terdapat pada kromosom tersebut.
Sebuah gen berisi jawaban dari sebuah pertanyaan. Dengan demikian, panjang
kromosom sama dengan jumlah pertanyaan yang dimasukkan pengguna.
Pengkodean yang digunakan adalah pengkodean permutasi. Setiap gen
mempunyai dua atribut. Atribut yang pertama berisi id dari sebuah pertanyaan
yang akan digunakan dalam permainan TTS. Atribut yang lain berupa atribut
orientasi. Atribut orientasi menentukan apakah jawaban dari pertanyaan berada
pada posisi mendatar atau menurun pada papan matriks. Nilai dari atribut orientasi
adalah 0 atau 1. Jika nilai dari atribut orientasi 0, pertanyaan tersebut termasuk
dalam kategori menurun, sebaliknya apabila nilai atribut orientasi adalah 1, maka
pertanyaan tersebut masuk dalam kategori mendatar. Sebagai contoh akan dibentuk
sebuah TTS dari lima buah pertanyaan, dengan jawaban dari masing-masing
pertanyaannya disajikan pada Tabel 2.1.
Gen 1 Gen 2 Gen 3 Gen 4 Gen 5
2 0 4 1 3 0 0 1 1 1
Tabel 2.1. Representasi Kromosom
Panjang kromosom di atas adalah lima, sesuai dengan jumlah gen yang
terdapat pada kromosom. Dari kromosom tersebut dapat dilihat pertanyaan yang
Id Pertanyaan Orientasi
digunakan sebanyak lima. Jawaban dari pertanyaan-pertanyaan tersebut, satu demi
satu diletakkan pada papan matriks untuk dibentuk menjadi sebuah TTS.
2.2. Nilai fitness (nilai kelayakan) dan penalti
Setelah populasi terbentuk, pada tahap selanjutnya dilakukan penghitungan
nilai fitness masing-masing kromosom yang ada dalam populasi. Penghitungan nilai
fitness diperoleh berdasarkan poin-poin berikut :
1. Banyaknya jawaban yang dapat tersusun (semakin banyak maka
menghasilkan nilai fitness semakin besar).
2. Dimensi papan teka-teki silang yang terbentuk (semakin kecil dimensi
papan maka akan menghasilkan nilai fitness yang semakin besar).
3. Selisih panjang dan lebar papan yang terbentuk (semakin mendekati
persegi maka akan menghasilkan nilai fitness yang semakin besar).
Setelah didapat nilai dari setiap poin maka nilai fitness akan dihitung
menggunakan rumus dibawah berikut :
F = (3*w)+(w+dv)+(w+dd)
F : Nilai fitness w : Jumlah kata yang tersusun dv : Dimensi papan yang terbentuk dd : Selisih panjang dan lebar papan yang terbentuk
Setelah didapat nilai fitness diatas, maka perhitungan tidak berhenti sampai
disini, tapi masih ada perhitungan penalti. Penalti ini adalah pengurangan nilai fitness
secara signifikan yang bergantung pada banyaknya jawaban yang gagal disusun
dalam papan. Semakin banyak kata yang gagal disusun maka penalti yang dikenakan
semakin besar.
P = F / (fw*10)
P : Niai hasil penalti F : Nilai fitness fw : Jumlah kata yang gagal tersusun
Setelah didapat nilai penalti diatas, maka nilai tersebut yang menjadi nilai fitness untuk setiap kromosom.
2.3. Skema Seleksi
Proses seleksi akan memilih kromosom untuk dijadikan sebagai calon parent
pada proses crossover. Proses seleksi akan membentuk sebuah populasi baru yang
berisi kromosom calon parent. Metode seleksi yang digunakan adalah metoda roda
roullete.
Pada seleksi roda, kromosom akan dipilih secara acak ditentukan dengan
memperhitungkan nilai fitness masing-masing kromosom. Semakin besar nilai fitness
suatu kromosom, semakin besar pula peluang kromosom tersebut untuk terpilih
sebagai parent (kromosom induk). Pengkodean roulette wheel dapat dianalogikan
seperti permainan roda putar. Pada permainan roda putar, lingkaran roda dibagi
menjadi beberapa wilayah. Pada seleksi lebar suatu wilayah kromosom ditentukan
menurut nilai fitness-nya, semakin besar nilai fitness-nya maka akan semakin besar
wilayahnya, dan semakin besar pula peluang kromosom tersebut untuk terpilih.
2.4. Crossover (Penyilangan)
Pada kasus ini, metode penyilangan yang digunakan adalah penyilangan
berbasis posisi (position based crossover). Dalam metode ini dipilih sejumlah posisi
gen secara acak, kemudian gen-gen pada posisi terpilih pada induk yang pertama
diwariskan pada kromosom anak yang kedua, sedangkan gen-gen lainnya dari
kromosom anak yang kedua diambil daripada gen-gen induk yang kedua dengan
urutan yang sama, begitupun sebaliknya.
2.5. Mutation (Mutasi)
Pada kasus ini, metode mutasi yang digunakan adalah mutasi berbasis posisi
(position based mutation). Dalam metode ini, proses mutasi dilakukan dengan cara
memilih posisi sebuah gen secara acak, kemudian gen tersebut akan dipindahkan
pada posisi acak lainnya.
BAB III
HASIL DAN PEMBAHASAN
3.1. Hasil dan Pembahasan
Gambar 3.1. Tampilan awal
Pada saat aplikasi dijalankan maka akan ditampilkan dua form yaitu crossword
content dan parameter algoritma seperti tampil pada gambar 3.1. Form crossword content
berfungsi untuk mengisi daftar kata jawaban teka-teki silang yang akan disusun. Kemudian
form parameter algoritma adalah form yang berfungsi untuk mengisikan parameter
algoritma genetika yang terdiri dari ukuran populasi, jumlah generasi, probabilitas
crossover, dan probabilitas mutasi.
Gambar 3.2. Mengisi kata
Berikut adalah proses pengisian kata jawaban dari teka-teki silang yang akan
disusun. Sebelum mengisikan kata, terlebih dahulu harus diisikan jumlah kata yang akan
disusun, setelah itu tinggal diisikan kata sebanyak jumlah yang ditentukan. Kata tidak boleh
mengandung spasi ataupun karakter lain selain abjad a..z. Jika dituliskan karakter selain a..z
maka karakter tersebut akan diabaikan. Selain itu, kata yang diisikan tidak case sensitive
(semua huruf akan dianggap sebagai huruf kapital).
Gambar 3.3. Paramter algoritma
Setelah semua kata sudah diisikan, maka selanjutnya adalah pengaturan
parameter algoritma. Form ukuran populasi dan generasi bisa diisi sesuai keinginan
pengguna, semakin besar maka akan menghasilkan hasil yang semakin optimal, tetapi
tentunya memakan waktu yang lebih lama. Untuk probabilitas crossover dan probabilitas
mutasi hanya dapat diisi nilai dalam rentang 0 sampai 1. Pengguna dapat mengatur nilainya
dengan menggunakan ruler value seperti tampil pada gambar 3.3.
Gambar 3.4. Running
Setelah yakin dengan isi kata dan parameter algoritma yang sudah diatur, maka
selanjutnya tinggal diklik tombol Run. Maka terlihat seperti gambar 3.4. aplikasi akan
berjalan sebanyak jumlah generasi yang ditentukan. Pada gambar 3.4 dapat dilihat bahwa
saat algoritma berjalan, dapat dilihat bahwa aplikasi sedang menjalankan sampai di generasi
keberapa dan sudah menghasilkan nilai fitness berapa.
Gambar 3.5. Hasil
Berikut adalah hasil papan teka-teki silang yang berhasil tersusun berdasarkan
kata yang sudah di masukkan sendiri oleh pengguna dan dengan parameter algoritma yang
telah ditentukan oleh pengguna. Dari hasil pada gambar 3.5. dapat disimpulkan bahwa
algortima genetika berhasil menyusun 12 kata dengan sempurna menggunakan parameter
ukuran populasi 120 dan jumlah generasi 600.
BAB IV
PENUTUP
4.1. Kesimpulan dan Saran
Algortima genetika dapat digunakan untuk menyusun teka-teki silang dengan
masukan jawaban sesuai yang diinginkan oleh pengguna. Dengan menggunakan
algoritma genetika maka akan mengefisiensi waktu komputasi dan memori yang
dibutuhkan.
Saran kedepan untuk yang ingin mengembangkan aplikasi ini adalah agar bisa
diimplementasikan untuk game teka-teki silang. Jadi konsepnya pengguna bisa
berbagi pertanyan dengan pengguna lain dan bisa saling menjawab pertanyaan
lawan.
4.2. Daftar Pustaka
1. Sinaga, Edison. (2009). Skripsi: Implementasi Algoritma Genetika Dalam
Penyusunan Teka-Teki Silang. Medan : STMIK Mikroskil.
2. Zukhri, Zainuddin. (2014). Algoritma Genetika untuk Menyelesaikan Masalah
Optimasi. Yogyakarta : Andi.