Anda di halaman 1dari 56

Pendahuluan(1)

 GA masuk dalam kelompok Evolutionary Algorithm.


 GA didasarkan pada prinsip-prinsip genetika dan
seleksi alam
 Elemen dasar dari genetika alam adl reproduksi,
crossover, dan mutasi
 Elemen-elemen tsb dipakai dalam prosedur GA
Pendahuluan(2)
 GA banyak dipakai utk menyelesaikan masalah
kombinatorial seperti TSP, VRP, crew schedul utk
airline hingga permasalahan kontrol
 Dalam evolution based approach biasanya akan
dibangkitkan sejumlah populasi yg akan menjadi
solusi awal
 Dalam prosedur tertentu seperti mutasi, seleksi, dan
crossover akhirnya didapatkan solusi akhir dari
masalah optimasi yg dihadapi
 Dalam GA prosedur pencarian hanya didasarkan pada
nilai fungsi tujuan, tidak ada pemakaian gradient atau
teknik kalkulus
Beberapa Konsep(1)
1. Kromosom
Merupakan bagian penting dari algoritma.
Satu kromosom atau individu mewakili satu vektor
solusi.
Kadang bisa langsung menggunakan vektor solusi
dalam implementasi GA.
Kadang jg bisa dilakukan enkoding atau
pengkodean.
Pengkodean dilakukan utk mewakili suatu nilai
solusi dgn menggunakan bilangan biner.
Beberapa Konsep(2)
Dalam optimasi fungsi, sering kali nilai kontinyu akan
diwakili dgn bilangan biner.
Dgn bilangan biner langkah kawin silang atau mutasi
akan banyak variasinya.
Sebaliknya bisa jg dilakukan penghitungan tanpa
melalui proses enkoding.
Jadi solusi memang dalam bentuk kontinyu dan proses
seleksi, kawin silang dan mutasi dilakukan
menggunakan bilangan kontinyu.
Beberapa Konsep(3)
Pada akhir GA, jk dilakukan pengkodean maka akan
dilakukan pengembalian ke nilai kontinyunya, yg dsb
dekoding.
Dlm GA akan dibangkitkan populasi sbg kumpulan
kromosom.
Masing-masing kromosom mewakili suatu vektor solusi.
Setiap anggota kromosom disusun oleh gen-gen.
Masing-masing gen mewakili elemen dari vektor solusi.
Pembangkitan populasi akan menyediakan banyak
pilihan solusi
Beberapa Konsep(4)
2. Fitness
Fungsi fitness digunakan utk mengukur tingkat
kebaikan atau kesesuaian suatu solusi dgn solusi yg
dicari.
Fungsi fitness bisa berhubungan langsung dgn
fungsi tujuan atau modifikasi thd fungsi tujuan.
Sejumlah solusi yg dibangkitkan dalam populasi
akan dievaluasi menggunakan fungsi fitness.
Beberapa Konsep(5)
Fungsi fitness yg biasa digunakan adalah
dimana f(x) adl fungsi tujuan dari
masalah yg diselesaikan.
Utk kasus minimasi, jk didapatkan f(x) yg kecil maka
nilai fitnessnya besar.
Utk kasus maksimasi, fungsi fitness bisa
menggunakan nilai f(x) sendiri, jadi F(x) = f(x).
Setelah setiap solusi dievaluasi dgn fungsi fitness,
maka dilakukan seleksi thd kromosom.
Beberapa Konsep(5)
Proses seleksi utk memilih diantara kromosom, mana
yg bisa menjadi induk (parent).
Proses seleksi juga bisa digunakan utk
mengidentifikasi diantara populasi, mana kromosom
yg akan menjadi anggota populasi berikutnya.
Cara yg umum digunakan utk melakukan seleksi adl
melalui roulette wheel selection atau roda lotere.
Beberapa Konsep(6)
3. Elitisme
Konsep elitisme adl usaha utk mempertahankan
individu-individu terbaik yg diperoleh di suatu
generasi ke dalam generasi berikutnya.
Langkah konsep elitisme: melalui penyalinan
individu terbaik, atau melalui kombinasi solusi-
solusi turunan atau anak dgn induk.
Elitisme dimaksudkan untuk menjaga individu
terbaik untuk tetap muncul di dlm populasi di iterasi
berikutnya.
Beberapa Konsep(7)
4. Seleksi dgn roda lotere
Roda lotere adl lingkaran yg daerahnya dibagi-bagi
sebanyak individu atau solusi yg dibangkitkan.
Dalam roda lotere setiap individu punya kesempatan
utk dipilih.
Setiap area dlm lingkaran menunjukkan peluang
setiap solusi utk dipilih.
Utk setiap individu atau solusi akan dibangkitkan
bilangan random.
Beberapa Konsep(8)
Setiap kali roda diputar sampai berhenti, jarum
penunjuk akan tertuju pada individu tertentu.
Individu dgn nilai fitness paling besar mempunyai
kesempatan terbesar utk terpilih sebagai induk.
Proses seleksi induk akan diulang sejumlah yg
diinginkan.
Beberapa Konsep(9)
5. Crossover atau kawin silang
Ada bermacam-macam teknik crossover dalam GA.
Akan dibahas dua macam crossover, yaitu crossover
sederhana dan crossover aritmatik.
Dalam crossover sederhana, jk ada dua induk P1 dan
P2 akan menghasilkan dua keturunan C1 dan C2.
Misal anggota induk adl X = [x1,…,xn] dan Y =
[y1,…,yn] dan r adl bil random antara 1 sampai
banyaknya gen pada kromosom induk.
Beberapa Konsep(10)
Maka U dan V yg mewakili keturunan C1 dan C2
didefinisikan sbg

Nilai bil random r sering dsb dgn titik potong.


Jd mulai gen keberapa crossover akan dilakukan.
Beberapa Konsep(11)
Dalam crossover aritmatik, keturunan dihasilkan dgn
cara melakukan kombinasi linier dari vektor induk.
Secara matematis dituliskan sbg
C1 = λ1X + λ2Y
C2 = λ2X + λ1Y
dimana λ1 + λ2 = 1.
Crossover aritmatik cocok utk kasus dgn variabel
keputusan bernilai kontinyu.
Beberapa Konsep(12)
Crossover dilakukan utk mendapatkan kombinasi yg
lebih baik antara satu individu dgn individu yg lain
dalam satu populasi.
Parameter penting dalam crossover adl probabilitas
crossover.
Besarnya probabilitas crossover menunjukkan sedikit
banyaknya kromosom yg mengalami perkawinan
silang
Beberapa Konsep(13)
6. Mutasi
Mutasi memungkinkan munculnya individu baru yg
bukan berasal dari crossover.
Mutasi mengacu pada perubahan urutan atau
penggantian elemen dari vektor solusi(pd problem
TSP) dan pemunculan nilai baru (optimasi fungsi).
Elemen tsb dipilih secara random.
Beberapa Konsep(14)
Misalkan untuk vektor solusi X, utk elemen terpilik k

Paramater penting dalam mutasi adl probabilitas


mutasi.
Besarnya probabilitas mutasi menunjukkan sedikit
banyaknya kromosom yg mengalami mutasi
Mutasi dimaksudkan utk memunculkan individu baru
yg berbeda sama sekali dgn individu yg sdh ada.
Beberapa Konsep(15)
Dalam konteks optimasi adl utk memungkinkan
munculnya solusi baru utk bisa keluar dari optimal
lokal.
Algoritma GA(1)
 Secara garis besar GA dasar dpt dijelaskan sbg brk:
1. Bangkitkan populasi awal
Bangkitkan populasi awal /kromosom awal secara
random.
Evaluasi nilai setiap individu pd populasi awal
menggunakan fungsi fitness.
Tentukan ukuran populasi, probabilitas crossover,
dan probabilitas mutasi.
Algoritma GA(2)
2. Set iterasi t = 1
3. Pilih individu terbaik utk disalin sejumlah tertentu
utk mengganti individu lain(elitisme)
4. Lakukan seleksi kompetitif utk memilih anggota
populasi sbg induk utk dilakukan crossover.
5. Lakukan kawin silang antar induk yg terpilih
6. Tentukan beberapa individu dalam populasi utk
mengalami proses mutasi
Algoritma GA(3)
7. Jika belum mencapai konvergensi set itetasi t=t+1
8. Kembali ke langkah 3
Algoritma GA(4)
 Dalam implementasi GA sering digunakan bilangan
biner utk mewakili nilai var yg dicari.
 Umumnya akan ditentukan dulu berapa interval nilai
kontinyu yg dicari.
 Sesudah itu akan dicari berapa jumlah bilangan biner
yg diperlukan utk mewakili (jumlah bit)
Algoritma GA(5)
 Setelah dibangkitkan sejumlah individu dgn nilai
biner, maka individu ini bisa dikembalikan nilainya ke
dalam nilai kontinyu(dekoding) dalam interval BB dan
BA dgn rumus brk
Algoritma GA(6)
 Variabel x dgn BA dan BB diketahui akan diwakili oleh
satu set nilai biner, maka digit yg diperlukan dapat
diketahui jk tingkat akurasi Δx diketahui.
Implementasi GA dgn Biner(1)
 Minimumkan fungsi

 Pencarian solusi optimal menggunakan GA dgn


akurasi sebesar 0,05, shg bit yg diperlukan adl 8.
 -5.12≤ x1 ≤ 5.12 dan -5.12≤ x2 ≤ 5.12
 Sehingga akan digunakan 8 bit utk masing-masing x1
dan x2.
Implementasi GA dgn Biner(2)
 Langkah-langkah implementasi GA:
1. Bangkitkan populasi
Misalkan dibangkitkan populasi berukuran 5.
Populasi ini berisikan sejumlah vektor solusi dgn 2
variabel (x1,x2).
Bangkitkan populasi dgn ukuran bit 16.
0010011001100000
1101111100101100
1001001010010001
1000001101110110
1011101110011111
Lakukan dekoding.
Implementasi GA dgn Biner(3)
2. Evaluasi setiap individu
Masing-masing solusi dlm populasi dievaluasi dgn
melihat nilai fitnessnya.
Pertama tentukan nilai f(x) utk masing-masing
solusi.
Tentukan nilai fitness dgn rumus F(x) = 1/(f(x) + 0.1)
Dgn nilai fitness maks 0.0367 dan min 0.0057
Implementasi GA dgn Biner(4)
3. Elitisme
Ciptakan populasi sementara utk menampung
individu terbaik hasil seleksi, crossover, dan mutasi.
Karena individu terbaik adl individu ke 5 maka
populasi sementara ini individu ke 1 diganti dgn
salinan individu ke 5.
Jk jumlah populasi genap mk salinan individu
terbaik bisa dibuat 2 atau 4 kali atau bil genap.
Atau salin sebanyak 1 atau 3 (atau sejumlah bil
ganjil) jk jumlah populasi ganjil.
Misal salinan dibuat sekali .
Implementasi GA dgn Biner(5)
TempPopulasi =
1011101110011111
1101111100101100
1001001010010001
1000001101110110
1011101110011111
Lakukan normalisasi dgn cara mengurangi setiap nilai
F dgn 0,0057.
Implementasi GA dgn Biner(6)
4. Seleksi
Jumlah total dari semua nilai fitness yang ternormalisasi
adl 0,0491.
Bangkitkan bilangan random, misal 0,2893.
Jika nilai kumulatif normalisasi/total fitness>bilangan
random, mk pilih individu tsb sbg induk.
Dihitung dgn mencari jumlah kumulatif secara bertahap.
Bagi jumlah kumulatif bertahap tsb dgn total fitness.
Bangkitkan bilangan random kedua, misal adl 0,8120
Implementasi GA dgn Biner(7)
5. Crossover
Probabilitas kawin silang ditetapkan, misal Ps = 0,8.
Jika dibangkitkan bilangan random dan lebih kecil
dari Ps mk bapak dan ibu terpilih adl individu ke 2
dan ke 5 akan dikawinkan dan keturunannya akan
menggantikan individu dalam populasi.
Jk tdk maka individu terpilih akan menggantikan
induk tanpa crossover.
Implementasi GA dgn Biner(8)
6. Mutasi
Dalam proses ini akan digunakan juga proses
stokastik dgn menggunakan bil random.
Lalu dibandingkan dgn probabilitas mutasi yg
nilainya ditetapkan cukup kecil, misal 0,05.
Utk setiap gen akan dicek apakah terjadi mutasi atau
tidak dgn cara membandingkan bilangan random yg
dibangkitkan dgn probabilitas mutasi.
Implementasi GA dgn Nilai
Kontinyu(1)
 Minimasi
1. Bangkitkan populasi
Masing-masing kromosom dibangkitkan
menggunakan rumus. -6≤x1≤6, -6≤x2≤6
x = BB + r(BA-BB)
Dihasilkan populasi awal:
Implementasi GA dgn Nilai
Kontinyu(2)
2. Evaluasi Populasi
Masing-masing solusi dievaluasi dgn memasukkan
ke fungsi tujuan. Shg didapatkan
Implementasi GA dgn Nilai
Kontinyu(3)
Nilai fitness F(x) =1/(1+f(x)) adalah

Minimum nilai fitness adl 0,0020. Lakukan


normalisasi dgn mengurangi setiap nilai F dgn 0,0020
shg didapatkan
Implementasi GA dgn Nilai
Kontinyu(4)
3. Elitisme
Pilih kromosom terbaik, yaitu kromosom ke 5 dgn
nilai fitness tertinggi utk disalin sebanyak dua kali
dan menggantikan kromosom ke 1 dan ke 2 dan
simpan pada populasi sementara Xs.
Implementasi GA dgn Nilai
Kontinyu(5)
4. Seleksi Kromosom
Tentukan kumulatif nilai Fn shg didapatkan

Selanjutnya dibagi dgn total kumulatif 0,0877 shg


didapatkan
Implementasi GA dgn Nilai
Kontinyu(6)
Selanjutnya dibangkitkan bilangan random r, misal r =
0,9123 yg terletak antara 0,4036 dan 1 shg kromosom 5
terpilih sebagai bapak.
Bangkitkan lagi bilangan random r, misal r = 0,3848 yg
terletak antara 0,3421 dan 0,4036 shg kromosom 4
terpilih sebagai ibu.
Implementasi GA dgn Nilai
Kontinyu(7)
5. Crossover
Setelah terpilih kromosom 5 dan 4 sebagai induk,
selanjutnya dilakukan crossover.
Dalam hal ini dilakukan aritmathic crossover.
Hasil crossover akan menggantikan kromosom awal
yg tdk termasuk kromosom elite.
Jika r < Ps maka kromosom 3 dan 4 akan digantikan
hasil crossover, jk tdk bapak dan ibu akan
menggantikan secara langsung.
Implementasi GA dgn Nilai
Kontinyu(8)
Misal dipilih Ps = 0,8 dan bilangan random yg
dibangkitkan adalah r = 0,0357 shg akan dilakukan
crossover.
Misal dibangkitkan r = 0,7921 maka didapat
Xs3 = 0,7921[-1,9916 2,9003]
+ (1-0,7921)[1,1342 -0,2932]
Xs4 = (1-0,7921)[-1,9916 2,9003]
+ 0,7921[1,1342 -0,2932]
Shg didapatkan Xs3 = [-1,3417 2,2364]
Xs4 = [ 0,4843 0,3707]
Implementasi GA dgn Nilai
Kontinyu(9)
Sehingga didapatkan

Lalu dilakukan crossover lagi utk menggantikan


kromosom ke 5 dan 6. Shg didapatkan populasi sbg brk:
6. Mutasi
Dilakukan dgn memilih satu atau lebih kromosom yg
akan mengalami mutasi secara acak.
Misal probabilitas mutasi adl 0,1 shg ada 0,1.6 yg
dibulatkan maka ada 1 kromosom yg mengalami mutasi,
misal kromosom ke 4.
Implementasi GA dgn Nilai
Kontinyu(10)
Setelah itu dibangkitkan bilangan random utk
mengganti kromosom ke 4 misal didapatkan

Shg didapatkan populasi sementara


GA untuk TSP(1)
 Langkah-langkah GA untuk menyelesaikan TSP:
1. Inisialisasi
Jumlah gen dalam satu kromosom, yaitu sebanyak
kota. Tentukan ukuran populasi. Tentukan
probabilitas crosover. Tentukan probabilitas mutasi.
2. Bangkitkan populasi awal
Dibangkitkan sejumlah rute sebanyak ukuran
populasi secara random
GA untuk TSP(2)
3. Lakukan penghitungan nilai fitness
Dilakukan dgn menghitung jarak total dari rute yg
dihasilkan. Pilih individu terbaik dgn memilih rute
terpendek.
4. Salin individu terbaik
Dilakukan utk disimpan dalam populasi berikutnya
tanpa mengalami crosover atau mutasi
GA untuk TSP(3)
5. Lakukan crosover
Pertama lakukan pemilihan individu yg menjadi
induk. Lalu lakukan crosover antar induk.
6. Mutasi
Lakukan proses mutasi dgn menukar urutan kota
dlm satu individu.
Contoh GA untuk TSP(1)
 Misal seorang salesman ingin mengunjungi 5 kota.
Kelima kota hanya dikunjungi sekali. Dia ingin
meminimalkan jarak total yang ditempuh. Berikut
jarak antara kotanya.
Kota 1 Kota 2 Kota 3 Kota 4 Kota 5
Kota 1 0 132 217 164 58
Kota 2 132 0 290 201 79
Kota 3 217 290 0 113 303
Kota 4 164 210 113 0 196
Kota 5 58 79 303 196 0
Contoh GA untuk TSP(2)
1. Inisialisasi Populasi
Gunakan random permutasi untuk membangkitkan
individu yg mewakili rute antara 1 dan 5.
Populasi=
3 1 2 4 5
1 4 5 3 2
4 5 2 3 1
1 2 5 3 4
4 1 5 3 2
2 3 5 4 1
Contoh GA untuk TSP(3)
Hitung jarak total setiap individu dalam populasi.
Didapatkan jarak total (f) masing-masing:
f=
1049
1085
946
791
1016
1085
Contoh GA untuk TSP(4)
 Tentukan nilai fitnes dgn rumus
F(x) = 1/(1+f(x)), yaitu:
F=
0,000952
0,000921
0,001056
0,001263
0,000983
0,000921
Contoh GA untuk TSP(5)
2. Temukan individu terbaik
Individu terbaik adalah individu dgn nilai fitnes
tertinggi, yaitu individu ke 4.
Individu ke 4 disalin dua kali menggantikan individu ke 1
dan ke 2. Shg didapatkan populasi sementara:
Populasi_s =
1 2 5 3 4
1 2 5 3 4
4 5 2 3 1
1 2 5 3 4
4 1 5 3 2
2 3 5 4 1
Contoh GA untuk TSP(6)
3. Crosover
Gunakan roulette wheel selection utk menentukan
individu mana yg akan terpilih sebagai induk. Pilih
dua induk utk dikawinkan dari populasi asli.
Misalkan terpilih dua induk dari populasi asli adl
individu 3 dan 4 sebagai bapak dan ibu.
Bapak : 4 5 2 3 1
Ibu : 1 2 5 3 4
Contoh GA untuk TSP(7)
Dgn bilangan random didapat titik potong pada gen ke
2, maka anak yg dihasilkan adl
Anak 1 : 4 5 | 5 3 4
Anak 2 : 1 2 | 2 3 1
Pada anak 1 kota 4 dan 5 muncul 2 kali, maka
dilakukan perubahan pd rute ini, dua kota awal 4 – 5
diganti dgn 2 – 1 yg diambil dari 3 kota yg
dipertukarkan dari induk 1.
Contoh GA untuk TSP(8)
Pada anak 2, dua kota awal 1 – 2 diganti dgn 5 – 4 yg didapat dari 5
– 3 – 4 (3 kota terakhir dari ibu) yg belum ada pada anak ke 2.
Crossover yg kedua, ternyata bil.random yg didapatkan lebih besar
dari Prob. Crossover, shg induk yang terpilih langsung menggantikan
individu 5 dan 6. Misal terpilih sbg induk adalah individu 3 dan 4.
Shg populasi sementara setelah crossover adl
Populasi_s=
1 2 5 3 4
1 2 5 3 4
2 1 5 3 4
5 4 2 3 1
4 5 2 3 1
1 2 5 3 4
Contoh GA untuk TSP(9)
4. Mutasi
Tentukan probabilitas mutasi.
Tentukan jumlah kromosom yang mengalami mutasi.
Tentukan kromosom keberapa saja yang mengalami
mutasi.
Bangkitkan bil.random lalu bandingkan dgn prob.
mutasi, jk lebih kecil dari prob. mutasi, mk kromosom yg
bersangkutan mengalami mutasi.
Mutasi dilakukan dgn menukar urutan rute dalam
kromosom.
Misal kromosom ke 6 yg terpilih mengalami mutasi,
maka dilakukan penukaran urutan rute pada kromosom
ke 6.
Contoh GA untuk TSP(10)
Sehingga populasi sementara setelah mutasi adl:
Populasi_s=
1 2 5 3 4
1 2 5 3 4
2 1 5 3 4
5 4 2 3 1
4 5 2 3 1
1 5 2 3 4