Penerapan Algoritme Genetika Dalam Sistem

advertisement
3
munculnya gen yang tidak muncul pada
inisialisasi populasi.
Populasi
awal
Random Mutation: mengganti gen yang
akan dimutasi dengan nilai acak.
Shift Mutation: menggeser nilai gen yang
akan dimutasi sebesar nilai tertentu (ε).
Populasi
baru
Evaluasi
fitness
Reproduksi:
mutasi dan
pindah-silang
Seleksi
indvidu
 Pindah-silang: proses mengombinasikan dua
individu untuk memperoleh individuindividu baru yang diharapkan mempunyai
nilai fitness yang lebih baik.
Pindah-silang Satu Titik: posisi pindahsilang k (k = 1, 2, …, N-1) dengan N
(panjang kromosom) diseleksi secara acak.
Variable-variable ditukar antarkromosom
pada titik tersebut untuk menghasilkan anak.
Pindah-silang Banyak Titik: m posisi
penyilangan ki (k = 1, 2, …, N-1, i = 1, 2, …,
m) dengan N (panjang kromosom) diseleksi
secara acak dan tidak diperbolehkan ada
posisi yang sama, serta diurutkan naik
(Satriyanto 2009).
Gambar 2 Siklus algoritme genetika
(Goldberg 1989).
METODE PENELITIAN
Alur penelitian untuk mencari solusi efisien
pada permainan tebak angka dapat dilihat pada
Gambar 3.
Proses Algoritme Genetika
Setelah diberikan suatu masalah yang jelas
dan juga representasi string sebagai kandidat
dari solusi yang dicari, algoritme genetika yang
paling sederhana bekerja dengan cara berikut
(Gambar 2):
1 Populasi baru akan dibangkitkan secara
acak, yang di dalamnya terdiri atas n l-bit
buah kromosom yang merupakan kandidat
solusi dari problem yang ada.
2 Hitung nilai fitness dari setiap kromosom
yang ada di dalam populasi dengan
menggunakan fungsi fitness yang telah
ditentukan.
Pembangkitan deret angka target
oleh server
Pembangkitan deret angka tebakan
secara acak oleh client (komputer)
Algoritme genetika
Seleksi individu
Reproduksi: mutasi dan
pindah-silang
3 Pilih beberapa pasang kromosom untuk
dijadikan induk berdasarkan nilai fitnessnya.
4 Lakukan proses pindah-silang dan mutasi
pada kromosom induk tersebut hingga
populasi baru yang berpotensi memiliki nilai
fitness lebih tinggi tercipta.
5 Gantikan populasi yang ada dengan populasi
yang baru terbentuk tadi. Lakukan kembali
penghitungan nilai fitness dari setiap
kromosom dengan menggunakan fungsi
fitness yang telah ditentukan (langkah no.2)
hingga solusi optimal berhasil ditemukan
(Melanie 1996).
Deret angka
tebakan baru
Target belum
ditemukan
Evaluasi fitness
Target ditemukan
Evaluasi sistem
Gambar 3 Alur metode penelitian.
4
Fungsi fitness  xc + ym
Representasi
Sebelum proses pencarian solusi dilakukan,
kondisi yang ada pada permainan harus terlebih
dahulu direpresentasikan ke dalam algoritme
genetika. Hasil representasinya adalah:
 Setiap digit angka yang ada pada deret
angka tebakan dan deret angka target
dianggap sebagai sebuah gen yang bertipe
integer.
Contoh: 1234.
x: Jumlah variable c (x = 0, 1, 2, 3, 4)
y: Jumlah variable m (y = 0, 1, 2, 3, 4)
Setiap variable akan diberi bobot masingmasing untuk mendapatkan nilai real-nya. Jika
bobot c = 10, bobot m = 5, dan hasil penebakan
adalah 2c 1m, nilai fitness-nya:
x = 2; y = 1;
Nilai fitness = 2(10) + 1(5) = 20 + 5 = 25
 Kumpulan gen tersebut akan membentuk
suatu kromosom, yaitu kumpulan deret
angka tebakan yang akan dimanipulasi
sebelum dicocokkan dengan deret angka
target.
Jika nilai fitness belum mencapai jumlah 40
(4c 0m), yang berarti target belum berhasil
ditemukan, proses algoritme genetika pun
dilakukan berdasarkan hasil yang didapat dari
iterasi penebakan sebelumnya.
 Proses manipulasi sejumlah kromosom akan
menghasilkan sebuah individu, yaitu deret
angka tebakan yang siap dicocokkan dengan
deret angka target.
Seleksi Individu
 Setiap individu yang tercipta akan dianggap
sebagai satu generasi, yang berarti juga satu
iterasi penebakan.
Deret Angka Target
Berdasarkan Gambar 3, langkah pertama
yang harus dilakukan dalam penelitian ini
adalah pembangkitan deret angka target yang
akan menjadi acuan berhasil atau tidaknya
sebuah penebakan yang dihasilkan dari
algoritme genetika. Deret angka yang terdiri
dari empat digit angka dan mengacu pada aturan
permainan tersebut akan disimpan oleh
codemaker dan nantinya akan dicocokkan
dengan deret angka tebakan dari codebreaker.
Deret Angka Tebakan
Proses penebakan pun dilakukan. Pada
iterasi pertama, komputer selaku codebreaker
akan membangkitkan deret angka tebakan
secara acak. Hal ini dilakukan karena tidak
tersedianya informasi apapun yang bisa
membedakan besar/kecilnya nilai fitness antara
sekumpulan deret angka yang mungkin
dibangkitkan.
Proses algoritme genetika itu sendiri akan
mulai dijalankan pada iterasi penebakan kedua
dan seterusnya.
Evaluasi Fitness
Deret angka tebakan yang dibangkitkan
secara acak tersebut dicocokkan dengan deret
angka target yang disimpan oleh codemaker.
Output yang dihasilkan direpresentasikan
melalui variable c (correct) dan m (misplace).
Tahap selanjutnya pada algoritme genetika
adalah seleksi individu. Proses tersebut
dilakukan dengan cara memilih sejumlah deret
angka yang ada di dalam variable history, yang
didapatkan dari iterasi penebakan sebelumnya
berdasarkan besar/kecilnya nilai fitness.
Metode seleksi yang digunakan pada
penelitian ini adalah metode Mesin Roulette,
yang melibatkan nilai fitness dan probabilitas.
Setelah dihitung nilai fitness masing-masing
individu dan total keseluruhannya, didapatkan
probabilitas dan jatah per individu (Gambar 4).
Contoh:
Probabilitas: Individu 1 = 10%
Individu 2 = 20%
Individu 3 = 30%
Individu 4 = 40%
Jatah per individu: Individu 1  1 – 10
Individu 2  11 – 30
Individu 3  31 – 60
Individu 4  61 – 100
Individu 2
11 – 30
Individu 3
31 – 60
20%
30%
10%
Individu 1
1 – 10
40%
Individu 4
61 – 100
Gambar 4 Probabilitas nilai fitness.
5
Selanjutnya, bangkitkan bilangan acak
antara 1 – 100. Jika didapatkan bilangan seperti
berikut: 69, 18, 86, dan 41, individu yang
terpilih adalah individu 4, individu 2, dan
individu 3.
69  Individu 4 (61 – 100)
18  Individu 2 (11 – 30)
86  Individu 4 (61 – 100)
41  Individu 3 (31 – 60)
Mutasi
Deret angka yang terpilih tadi akan diproses
lebih lanjut dengan operator-operator pada
algoritme genetika hingga didapatkan sebuah
deret angka baru yang siap untuk dicocokkan
kembali dengan deret angka target.
Operator algoritme genetika yang pertama
yaitu mutasi. Gen-gen pada individu terpilih
akan diubah nilainya dengan bilangan acak
(Random Mutation).
Deret angka induk:
1
2
3
4
Deret angka anak:
1
6
3
4
Jika deret angka baru keluar dari ruang
solusi (memiliki angka yang sama), dibutuhkan
teknik mutasi lainnya (Basuki 2003).
Contoh:
1
3
3
4
Proses ini dilakukan berdasarkan peluang
mutasi yang ditetapkan sebelumnya. Jika
peluang acak yang dibangkitkan oleh sistem
berjumlah lebih kecil dari peluang mutasi,
proses mutasi pun dilakukan.
Pindah-Silang
Operator algoritme genetika yang kedua
yaitu pindah-silang. Gen-gen yang bersesuaian
pada individu terpilih (induk) akan saling
ditukar pada satu digit tertentu (pindah-silang
satu titik) untuk mendapatkan individu baru
(anak).
Deret angka induk:
1
2
3
4
5
6
7
8
Deret angka anak:
1
2
7
4
5
6
3
8
Proses ini dilakukan berdasarkan peluang
pindah-silang yang ditetapkan sebelumnya. Jika
peluang acak yang dibangkitkan oleh sistem
berjumlah lebih kecil dari peluang pindahsilang, proses pindah-silang pun dilakukan.
Rule
Beberapa rule dibangun untuk menunjang
kinerja dari algoritme genetika. Rule-rule
tersebut akan berfungsi pada setiap perubahan
yang terjadi dari deret-deret yang ada pada
history dan berusaha memprediksi angka-angka
mana saja yang telah tepat letaknya ataupun
yang tidak ada dalam deret target sehingga
angka-angka tersebut dapat dihilangkan dan
memperkecil ruang pencarian.
Beberapa rule yang dibangun, yaitu:
 Jika hasil penebakan adalah 0c 0m, seluruh
angka pada deret tebakan tersebut tidak
terdapat pada deret target dan harus
dihilangkan dari ruang pencarian.
 Jika nilai fitness deret anak sama dengan
induk dan m bernilai 0, hilangkan angka
sebelum dan sesudah perubahan dari ruang
pencarian karena kedua angka tersebut tidak
memberikan pengaruh apapun pada deret.
 Jika c bertambah 1 dari tebakan sebelumnya,
hilangkan angka sebelum perubahan dari
ruang pencarian dan tandai digit letak angka
tersebut.
 Jika c berkurang 1 dan m tetap, hilangkan
angka sesudah perubahan dari ruang
pencarian dan tandai digit letak angka
tersebut.
 Jika c berkurang 1 dan m bertambah 1,
tandai digit letak angka tersebut.
 Jika c tetap dan m berkurang 1, hilangkan
angka sesudah perubahan dari ruang
pencarian.
Kondisi Stop
Program akan berhenti jika kondisi 4c 0m
telah tercapai atau iterasi penebakan telah
mencapai 50 kali.
Evaluasi Sistem
Setelah terbentuk, sistem pun lalu dievaluasi
menggunakan satu buah soal yang dibangkitkan
secara acak. Kinerjanya
akan dinilai
berdasarkan pengaruh nilai fitness (jumlah
variable c dan m) dari deret tebakan awal dan
juga dibandingkan dengan worst case dari
jumlah penebakan.
Download