Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Pendahuluan
Cabang dari algoritma evolusi
Metode adaptive dalam pencarian nilai dalam permasalahan
optimasi
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”.
Pendahuluan
Proses seleksi alamiah ini melibatkan perubahan gen yang
terjadi pada individu melalui proses perkembang-biakan.
Dalam algoritma genetika ini, proses perkembang-biakan
ini menjadi proses dasar yang menjadi perhatian utama,
dengan dasar berpikir: “Bagaimana mendapatkan
keturunan yang lebih baik”.
Algoritma genetika ini ditemukan oleh John Holland dan
dikembangkan oleh muridnya David Goldberg.
Siklus Algoritma Genetika
Struktur Umum GA
Teknik pencarian dilakukan sekaligus atas sejumlah solusi
yang mungkin yang dikenal dengan istilah populasi.
Individu yang terdapat dalam satu populasi disebut dengan
istilah kromosom. Kromosom ini merupakan suatu solusi
yang masih berbentuk simbol.
Populasi awal dibangun secara acak, sedangkan populasi
berikutnya merupakan hasil evolusi kromosom-kromosom
melalui iterasi yang disebut dengan istilah generasi.
Pada setiap generasi, kromosom akan melalui proses evaluasi
dengan menggunakan alat ukur yang disebut dengan fungsi
fitness. Nilai fitness dari suatu kromosom akan
menunjukkan kualitas kromosom dalam populasi tersebut.
Generasi berikutnya dikenal dengan istilah anak
(offspring) terbentuk dari gabungan 2 kromosom
generasi sekarang yang bertindak sebagai induk (parent)
dengan menggunakan operator penyilangan (crossover).
Selain operator penyilangan, suatu kromosom dapat juga
dimodifikasi dengan menggunakan operator mutasi.
Populasi generasi yang baru dibentuk dengan cara
menyeleksi nilai fitness dari kromosom induk (parent) dan
nilai fitness dari kromosom anak (offspring), serta
menolak kromosom-kromosom yang lainnya sehingga
ukuran populasi (jumlah kromosom dalam suatu populasi)
konstan. Setelah melalui beberapa generasi, maka
algoritma ini akan konvergen ke kromosom terbaik.
Komponen-komponen Utama GA
Teknik Penyandian
String bit : 10011, 01101,11101, dst.
Pohon (tree) : (*(-(ab))(+(*(CD))(/(EF))))
Bilangan real : 65.65, -67.98, 562.88, dst.
Elemen permutasi : E2, E10, E5, dst.
Daftar aturan : R1, R2, R3, dst.
Elemen program : pemrograman genetika
Struktur lainnya.
Prosedur Inisialisasi
Ukuran populasi tergantung pada masalah yang akan
dipecahkan dan jenis operator genetika yang akan
diimplementasikan.
Setelah ukuran populasi ditentukan, kemudian harus
dilakukan inisialisasi terhadap kromosom yang terdapat
pada populasi tersebut.
Inisialisasi kromosom dilakukan secara acak, namun
demikian harus tetap memperhatikan domain solusi
dan kendala permasalahan yang ada.
Definisi Individu
Dari gambar diatas terlihat bahwa penyelesaian berada
pada nilai 0<x<1. Jadi dengan menggunakan 8 bit biner
didefinisikan:
Membangkitkan Populasi
Awal
Hitung Fitness
Seleksi
Perkawinan Silang
Mutasi
Individu Baru
Tidak Ya
Optimal ? Solusi Optimal
Contoh 1
Misalkan pada populasi awal, kita memiliki 7 kromosom
yang direpresentasikan secara biner dengan nilai fitness
tertentu:
Kromosom Fitness
1. 1 0 1 0 0 1 20
2. 1 1 0 0 1 0 22
3. 0 1 1 0 0 1 8
4. 1 0 0 1 0 0 15
5. 0 0 1 0 1 0 5
6. 0 1 1 1 0 0 12
7. 1 1 0 1 0 0 18
Algoritma Seleksi Roda Roulette
Hitung total fitness (F):
TotFitness = Fk; k=1,2,…,popsize.
Hitung fitness relatif tiap individu:
pk = Fk /TotFitness
Hitung fitness komulatif:
q1 = p1
qk = qk-1 + pk; k=2,3,...,popsize
Pilih induk yang akan menjadi kandidat untuk di-
crossover dengan cara:
Bangkitkan bilangan random r.
Jika qk r dan qk+1 > r, maka pilih kromosom ke (k+1) sebagai
kandidat induk.
Seleksi dengan Roda Roulette:
Kromosom Fitness pk qk
V1. 1 0 1 0 0 1 20 20/100=0,20 0,20
V2. 1 1 0 0 1 0 22 22/100=0,22 0,20+0,22=0,42
V3. 0 1 1 0 0 1 8 8/100=0,08 0,42+0,08=0,50
V4. 1 0 0 1 0 0 15 15/100=0,15 0,50+0,15=0,65
V5. 0 0 1 0 1 0 5 5/100=0,05 0,65+0,05=0,70
V6. 0 1 1 1 0 0 12 12/100=0,12 0,70+0,12=0,82
V7. 1 1 0 1 0 0 18 18/100=0,18 0,82+0,18=1
qk Kromosom terseleksi
V1. 0,20 V1’ = V4
V2. 0,42 V2’ = V2
V3. 0,50 V3’ = V5
V4. 0,65 V4’ = V7
V5. 0,70 V5’ = V2
V6. 0,82 V 6’ = V 3
V7. 1 V7’ = V4
Pilih Induk yang akan di-crossover
Tetapkan probabilitas crossover (pc), misal: pc=0,25.
Bangkitkan 7 bilangan random:
0,13 0,67 0,03 0,77 0,05 0,22 0,16
Induk yang terseleksi untuk dicrossover:
V1’, V3’, V5’, V6’, dan V7’
Karena jumlah induk ganjil (=5), maka salah satu
harus dibuang (misal yang ke-5).
Binary Crossover (satu titik)
Penyilangan dilakukan sepasang-sepasang (misal: V ’ & V ’, V ’ & V ’).
1 3 5 6
Pada penyilangan V ’ & V ’, bangkitkan bilangan random antara 1
1 3
sampai panjang kromosom (=6), misal: 2. Berarti posisi crossover
ada di bit ke-2.
V1’ = 1 0 0 1 0 0
V’=
3
Hasil crossover:
0 0 1 0 1 0
V1” = 1 0 1 0 1 0
V3 ” = 0 0 0 1 0 0
Pada penyilangan V5’ & V6’, bangkitkan bilangan random
antara 1 sampai panjang kromosom (=6), misal: 4. Berarti
posisi crossover ada di bit ke-4.
V 5’ = 1 1 0 0 1 0
V6’ = 0 1 1 0 0 1
Hasil crossover:
V 5” = 1 1 0 0 0 1
V6” = 0 1 1 0 1 0
Populasi baru setelah crossover
Setelah dilakukan crossover, akan terbentuk populasi
baru yang juga berjumlah 7 buah:
Definisi Individu
Nilai Fitness
Seleksi roulette whell
Two point crossover
Mutasi gen
Definisi Individu
Individu menyatakan solusi yaitu nilai x.
Nilai x sebagai individu dinyatakan dalam nilai biner.
Individu dinyatakan dalam 8 gen biner dengan batas 0
sampai dengan 1 yang berarti sat bit setara dengan 2-8
Sebagai contoh:
10001001 = (128+8+1)/256 = 0.5352
01010010 = (2+16+64)/256 = 0.3203
Fungsi Fitness
• Fungsi fitness dinyatakan sebagai fungsi f(x),
karena yang dicari adalah nilai maksimum.
Membangkitkan Populasi Awal
Membangkitkan sejumlah For i = 1 To 8
individu, misalkan satu populasi For j = 1 To 8
terdiri dari 8 individu, maka individu(i, j) = Int(2 * Rnd)
dibangkitkan 8 individu dengan Next j
8 gen biner yang dibangkitkan Next i
secara acak.
Hitung
Fitness
For i = 1 To 8
d=0
For j = 8 To 1 Step -1
k=8-j
d = d + individu(i, j) * 2 ^ k
Next j
X(i) = d / 255
fitness(i) = 1 + Exp(-X(i)) * Sin(4 * X(i))
Next i
Seleksi (1) Hitung Total Fitness
k=0
For i = 1 To 8
prosen = Int(100 * fitness(i) /
Jfitness)
Text3(i - 1) = prosen
For j = 1 To prosen
k=k+1
rolet(k) = i
Next j
Next i
Seleksi (2) For i = 1 To 8
r = Int(k * Rnd) + 1
pilih = rolet(r)
Text4(i - 1) = pilih
For j = 1 To 8
Pemutaran Roulette induk(i, j) = individu(pilih, j)
Next j
Next i
Perkawinan Silang
Cross-Over (Perkawinan Silang) dilakukan dengan menentukan 2 posisi awal
dan akhir gen pada individu yang akan dikawinkan secara acak. Kemudian
dilakukan penukaran nilai gen induk 1 dan induk 2 dari posisi awal sampai
dengan posisi akhir untuk diperoleh anak 1 dan anak 2.
For i = 1 To 4
p = Rnd
If p < probCO Then
r1 = Int(8 * Rnd) + 1
r2 = Int((8 - r1) * Rnd) + r1
For j = r1 To r2
anak(2 * i - 1, j) = induk(2 * i, j)
anak(2 * i, j) = induk(2 * i - 1, j)
Next j
End If
Next i
Mutasi
Mutasi dilakukan dengan cara mengganti gen dengan nilai
inversinya, gen 0 menjadi 1 dan gen 1 menjadi 0 pada posisi
gen yang ditentukan secara acak.
For i = 1 To 8
p = Rnd
If p < probMut Then
r = Int(8 * Rnd) + 1
anak(i, r) = 1 - anak(i, r)
End If
Next i
Membentuk Individu Baru
For i = 1 To 8
Anak hasil perkawinan silang dan
For j = 1 To 8
mutasi menjadi generasi baru individu(i, j) = anak(i, j)
untuk dilakukan proses regenerasi Next j
Next i
Pada generasi berikutnya,
individu terbaik (nilai fitness
terbesar) dapat dipertahankan
kmin = 1
dengan proses elitism
fitnessmin = fitness(1)
For i = 2 To 8
If fitness(i) < fitnessmin Then
kmin = i
fitnessmin = fitness(i)
End If
Next i
fitness(kmin) = fitnessmaks
For i = 1 To 8
individu(kmin, i) = individumaks(i)
Next i
Contoh Hasil Algoritma Genetika
Generasi 1 Generasi 2
Contoh Hasil Algoritma Genetika
Generasi 3 Generasi 4