Anda di halaman 1dari 39

Algoritma Genetika

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:

Individu dinyatakan dalam 8 gen biner, dengan batas 0


sampai dengan 1, berarti 1 bit setara dengan 2-8.
Sebagaicontoh:
10001001 = (128+8+1)/256 = 0.5352
00110100 = (4+16+32)/256 = 0.2031
01010010 = (2+16+64)/256 = 0.3203
Membangkitkan Populasi Awal
Membangkitkan sejumlah individu, misalkan satu populasi
terdiri dari 10 individu, maka dibangkitkan 10 individu
dengan 8 gen biner yang dibangkitkan secara acak.
Fungsi Evaluasi
Ada 2 hal yang harus dilakukan dalam melakukan
evaluasi kromosom, yaitu: evaluasi fungsi objektif
(fungsi tujuan) dan konversi fungsi objektif ke dalam
fungsi fitness.
Secara umum, fungsi fitness diturunkan dari fungsi
objective dengan nilai yang tidak negatif.
Apabila ternyata fungsi objective memiliki nilai negatif,
maka perlu ditambahkan suatu konstanta C agar nilai
fitness yang terbentuk menjadi tidak negatif.
Seleksi
Seleksi adalah proses pemilihan calon induk,
dalamproses seleksi ini terdapat beberapa metode
yang bisa digunakan antara lain: MesinRoulette
(Roulette Wheel), Competition danTournament.
Dalam contoh ini digunakan Mesin Roullete yang
memang metode paling dasar dan model acaknya
uniform.
Seleksi dilakukan dengan
menggunakan prosentasi
fitness setiap individu, dimana
setiap individu mendapatkan
luas bagian sesuai dengan
prosentase nilai fitnessnya.
Seleksi
Seleksi ini bertujuan untuk memberikan kesempatan
reproduksi yang lebih besar bagi anggota populasi yang
paling fit.
Ada beberapa metode seleksi dari induk, antara lain:
 Roulette wheel selection.
 Rank-based fitness assigment.
 Stochastic universal sampling.
 Local selection.
 Truncation selection.
 Tournament selection.
Cross-Over
Cross-Over (Perkawinan Silang) merupakan proses
mengkombinasikan dua individu untuk memperoleh
individu-individu baru yang diharapkan mempunyai fitness
lebih baik. Tidak semua pasangan induk mengalami proses
cross-over, banyaknya pasangan induk yang mengalami cross-
over ditentukan dengan nilai probabilitas cross-over.
Mutasi Gen
Mutasi gen adalah proses penggantian gen dengan
nilai inversinya, gen 0 menjadi 1 dan gen 1 menjadi 0.
Proses ini dilakukan secara acak pada posisi gen
tertentu pada individu-individu yang terpilih untuk
dimutasikan. Banyaknya individu yang mengalami
mutasi ditentukan oleh besarnya probabilitas mutasi.
Algoritma Genetika
Representasi Kromosom

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

Total Fitness: 100


Bangkitkan 7 bilangan random:
0,53 0,32 0,68 0,91 0,40 0,43 0,57

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:

PopBaru Kromosom Asal


V1” 1 0 1 0 1 0 anak1 crossover V1’ & V3’
V2’ 1 1 0 0 1 0 V2
V3” 0 0 0 1 0 0 anak2 crossover V1’ & V3’
V4’ 1 1 0 1 0 0 V7
V5” 1 1 0 0 0 1 anak1 crossover V5’ & V6’
V6” 0 1 1 0 1 0 anak2 crossover V5’ & V6’
V7’ 1 0 0 1 0 0 V4
Mutasi (binary mutation)
 Tetapkan probabilitas mutasi (pm), misal: pm=0,01.
 Bangkitkan (popsize x panjang kromosom) 7x6=42 bilangan
random:
0,031 0,342 0,563 0,711 0,053 0,424
0,025 0,453 0,664 0,098 0,008 0,333
0,743 0,231 0,557 0,087 0,112 0,342
0,298 0,002 0,498 0,765 0,007 0,287
0,651 0,688 0,409 0,122 0,652 0,897
0,532 0,980 0,321 0,543 0,075 0,003
0,754 0,132 0,906 0,465 0,508 0,397
 Cari bilangan random yang lebih kecil dari pm.
 Bit-bit pada kromosom yang mengalami mutasi:
 Kromosom ke-2, bit ke-5;
 Kromosom ke-4, bit ke-2 & bit ke-5;
 Kromosom ke-6, bit ke-6.
Kromosom baru:
V2’ : 1 1 0 0 1 0  V2* : 110000
V4’ : 1 1 0 1 0 0  V4 * : 100110
V6’ : 0 1 1 0 1 0  V6* : 011011
Populasi baru setelah mutasi
 Setelah dilakukan mutasi, akan terbentuk populasi baru yang juga
berjumlah 7 buah kromosom:

PopBaru Kromosom Asal


V 1” 1 0 1 0 1 0 anak1 crossover V1’ & V3’
V2* 1 1 0 0 0 0 V2’ yang kena mutasi
V3” 0 0 0 1 0 0 anak2 crossover V1’ & V3’
V 4* 1 0 0 1 1 0 V4’ yang kena mutasi
V5” 1 1 0 0 0 1 anak1 crossover V5’ & V6’
V 6* 0 1 1 0 1 1 V6* yang kena mutasi
V 7’ 1 0 0 1 0 0 V 4

 Kromosom-kromosom pada populasi ini, nantinya akan menjadi


populasi awal pada Generasi kedua.
 Proses seleksi, rekombinasi (crossover), dan mutasi ini dilakukan lagi
sampai pada generasi terakhir (MaxGen).
Aplikasi Algoritma Genetika
Aplikasi GA untuk mencari nilai maksimal dari
suatu fungsi
Aplikasi GA untuk penyelesaian TSP
Aplikasi GA untuk optimasi Radio Base Station
Aplikasi GA pada peramalan Data Time Series
Aplikasi GA untuk mencari kata
Aplikasi Algoritma Genetika untuk Mencari Nilai
Maksimal dari Fungsi f(x)=1+e-xsin(4x)

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

Seleksi roulette whell untuk Jfitness = 0


memilih induk dilakukan dengan For i = 1 To 8
Jfitness = Jfitness + fitness(i)
menggunakan prosentasi fitness
Next i
setiap individu, dimana setiap
individu mendapatkan luas
bagian sesuai dengan prosentase Menghitung prosentase
nilai fitnessnya. fitness dan penentuan
bidang

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

Anda mungkin juga menyukai