Algoritma Genetika
Download
Report
Transcript Algoritma Genetika
Algoritma Genetika adalah algoritma
yang memanfaatkan proses seleksi
alamiah yang dikenal dengan proses
evolusi
Dalam proses evolusi, individu secara
terus-menerus mengalami perubahan
gen untuk menyesuaikan dengan
lingkungan hidupnya
Hanya individu-individu yang kuat
yang mampu bertahan
Genotype (Gen), bagian dari kromosom
yang mewakili satu variabel (nilai biner,
float, integer, karakter, dll)
Allele, nilai dari gen
Kromosom/individu, gabungan gen-gen yang
menyatakan salah satu solusi yang
mungkin
Populasi, sekumpulan individu yang
akan diproses bersama dalam satu
siklus proses evolusi
Generasi, satuan siklus proses
evolusi
Nilai Fitness, seberapa baik nilai
dari suatu individu/solusi
Populasi
Awal
Evaluasi
Fitness
Seleksi
Individu
Populasi
Baru
Reproduksi :
Cross-Over &
Mutasi
8
A
3
4
7
D
B
5
6
C
Kriteria berhenti : jika
setelah
beberapa generasi
berturut-turut
diperoleh nilai fitness yang
terendah
tidak berubah
Membangkitkan populasi awal
adalah proses membangkitkan
sejumlah individu secara acak
atau melalui prosedur tertentu
Misal dalam sebuah populasi terdapat
4 individu:
Kromosom[1] = [A B C D]
Kromosom[2] = [B C D A]
Kromosom[3] = [C D A B]
Kromosom[4] = [D A B C]
Menghitung nilai fitness dari tiap
kromosom yang telah dibangkitkan
Fitness[1] = 8 + 5 + 6 = 19
Fitness[2] = 5 + 6 + 7 = 18
Fitness[3] = 6 + 7 + 8 = 21
Fitness[4] = 7 + 8 + 5 = 20
Seleksi dilakukan untuk mendapatkan
calon induk yang baik
Induk yang baik akan menghasilkan
keturunan yang baik
Semakin tinggi nilai fitness suatu
suatu individu semakin besar
kemungkinannya terpilih
Metode seleksi yang paling umum
adalah roulette wheel
Karena pada TSP yang diinginkan adalah
kromosom dengan fitness yang lebih
kecil yang memiliki probabilitas terpilih
kembali lebih besar, maka digunakan
inverse :
Q[i] = 1/Fitness[i]
Q[1] = 1/19 = 0,053
Q[2] = 1/18 = 0,056
Q[3] = 1/21 = 0,048
Q[4] = 1/20 = 0,05
Total = 0,207
Menghitung probabilitas/fitness relatif
tiap individu :
P[i] = Q[i]/Total
P[1] = 0,053/0,207 = 0,256
P[2] = 0,056/0,207 = 0,27
P[3] = 0,048/0,207 = 0,232
P[4] = 0,05/0,207 = 0,242
Kromosom ke-2 dengan nilai
fitness terkecil memiliki
probabilitas terpilih terbesar
Menghitung fitness kumulatif/nilai
kumulatif dari probabilitas :
C[1] = 0,256
C[2] = 0,256 + 0,27 = 0,526
C[3] = 0,526 + 0,232 = 0,758
C[4] = 0,758 + 0,242 = 1
Memilih induk yang akan menjadi
kandidat untuk di-crossover :
• Bangkitkan bilangan acak R
R[1] = 0,314
R[2] = 0,743
R[3] = 0,418
R[4] = 0,203
• Pilih induk, C[k-1] < R < C[k]
Induk terpilih :
Kromosom[2]
Kromosom[3]
Kromosom[1]
Order crossover
Menentukan posisi crossover dilakukan
dengan membangkitkan bilangan acak
antara 1 sampai pjgKrom – 1
Bilangan acak untuk 3 kromosom
induk yang akan di-crossover :
C[2] = 2
C[3] = 1
C[1] = 2
Proses crossover :
Kromosom[2] = Kromosom[2] X Kromosom[3]
= [B C D A] X [C D A B]
= [B C A D]
Kromosom[3] = Kromosom[3] X Kromosom[1]
= [C D A B] X [A B C D]
= [C B A D]
Kromosom[1] = Kromosom[1] X Kromosom[2]
= [A B C D] X [B C D A]
= [A B D C]
Populasi setelah di-crossover :
Kromosom[1] = [A B D C]
Kromosom[2] = [B C A D]
Kromosom[3] = [C B A D]
Kromosom[4] = [D A B C]
Swapping mutation
Jumlah kromosom yang dimutasi dalam
satu populasi ditentukan oleh parameter
mutation rate (ρm)
Proses mutasi dilakukan dengan
cara menukar gen yang dipilih
secara acak dengan gen sesudahnya.
Jika gen berada di akhir kromosom,
maka ditukar dengan gen yang
pertama
Hitung panjang total gen pada satu
populasi :
Panjang total gen
= jumlah gen dalam 1 kromosom *
jumlah kromosom
= 4 * 4 = 16
Untuk memilih posisi gen yang
dimutasi dilakukan dengan
membangkitkan bilangan acak antara
1 sampai panjang total gen, yaitu
1 - 16
Misal ditentukan ρm = 20%. Maka jumlah
gen yang akan dimutasi :
0,2 * 16 = 3,2 = 3
3 buah posisi gen yang akan dimutasi
setelah diacak adalah 3, 7, 14
Proses mutasi :
Kromosom[1] = [A B D C]
Kromosom[2] = [B C A D]
Kromosom[3] = [C B A D]
Kromosom[4] = [D A B C]
Kromosom[1]
Kromosom[2]
Kromosom[3]
Kromosom[4]
= [A B C D]
= [B C D A]
= [C B A D]
= [D B A C]
Proses AG untuk 1 generasi telah selesai.
Maka nilai fitness setelah 1 generasi :
Fitness[1] = 8 + 5 + 6 = 19
Fitness[2] = 5 + 6 + 7 = 18
Fitness[3] = 5 + 8 + 7 = 20
Fitness[4] = 4 + 8 + 3 = 15