SlideShare a Scribd company logo
1 of 63
Algoritma Genetika
Algoritma Genetika
Representasi Kromosom
Membangkitkan Populasi
Awal
Hitung Fitness
Seleksi
Perkawinan Silang
Mutasi
Individu Baru
Optimal ?
Tidak
Solusi Optimal
Ya
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 individu,
misalkan satu populasi terdiri dari 8
individu, maka dibangkitkan 8
individu dengan 8 gen biner yang
dibangkitkan secara acak.
For i = 1 To 8
For j = 1 To 8
individu(i, j) = Int(2 * Rnd)
Next j
Next i
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
Hitung Fitness
Seleksi (1)
Seleksi roulette whell untuk memilih
induk dilakukan dengan
menggunakan prosentasi fitness
setiap individu, dimana setiap
individu mendapatkan luas bagian
sesuai dengan prosentase nilai
fitnessnya.
Jfitness = 0
For i = 1 To 8
Jfitness = Jfitness + fitness(i)
Next i
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
Menghitung prosentase
fitness dan penentuan
bidang
Seleksi (2) For i = 1 To 8
r = Int(k * Rnd) + 1
pilih = rolet(r)
Text4(i - 1) = pilih
For j = 1 To 8
induk(i, j) = individu(pilih, j)
Next j
Next i
Pemutaran Roulette
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
Anak hasil perkawinan silang dan
mutasi menjadi generasi baru untuk
dilakukan proses regenerasi
Pada generasi berikutnya, individu
terbaik (nilai fitness terbesar) dapat
dipertahankan dengan proses elitism
kmin = 1
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
For i = 1 To 8
For j = 1 To 8
individu(i, j) = anak(i, j)
Next j
Next i
Contoh Hasil Algoritma Genetika
Generasi 1 Generasi 2
Contoh Hasil Algoritma Genetika
Generasi 3 Generasi 4
Aplikasi Algoritma Genetika untuk Penyelesaian
Permasalahan Traveling Salesman Problem
Permasalahan pada TSP adalah bagaimana seorang sales dapat
mengunjungi setiap kota dengan jarak yang paling pendek.
Pada contoh aplikasi GA untuk TSP, ditentukan 8 kota dengan
posisi koordinat (x, y).
Definisi Individu
• Individu menyatakan urutan kota yang dinyatakan dalam nilai
integer 1 sampai dengan 8 sebanyak 9 gen (8 gen urutan kota
dan 1 gen terakhir merupakan duplikat dari gen pertama)
• Sebagai contoh:
7 1 8 3 5 4 6 2 7
3 8 4 2 6 5 1 7 3
Fungsi Fitness
• Fungsi fitness dinyatakan sebagai kebalikan dari nilai kuadrat
jarak dari urutan kota.



 




9
2
2
1
2
1 )
(
)
(
1000
i
i
i
i
i y
y
x
x
Fitness
Membangkitkan sejumlah individu,
misalkan satu populasi terdiri dari 8
individu, maka dibangkitkan 8
individu dengan 9 gen integer yang
dibangkitkan secara acak (nilai 1
sampai dengan 8)
Hitung Fitness
For i = 1 To 8
jumlah = 0
For j = 1 To 7
sw = 0
While sw = 0
r = Int(Rnd * 8) + 1
sw = 1
For k = 1 To j - 1
If r = individu(i, k) Then sw = 0
Next k
Wend
individu(i, j) = r
jumlah = jumlah + r
Next j
individu(i, 8) = 36 - jumlah
individu(i, 9) = individu(i, 1)
Next i
Membangkitkan Populasi Awal (1)
For i = 1 To 8
Z = 0
For j = 2 To 9
r1 = individu(i, j)
r2 = individu(i, j - 1)
d = ((xkota(r1) - xkota(r2)) ^ 2 + (ykota(r1) - ykota(r2)) ^ 2) ^ 0.5
Z = Z + d
Next j
fitness(i) = 1000 - Int(Z)
Next i
Membangkitkan Populasi Awal (2)
Individu maksimum yang diperoleh
mempunyai urutan 3 8 4 2 6 5 1 7
dengan nilai fitness terbesar yaitu 648
Seleksi (1)
Seleksi roulette whell untuk memilih
induk dilakukan dengan
menggunakan prosentasi fitness
setiap individu, dimana setiap
individu mendapatkan luas bagian
sesuai dengan prosentase nilai
fitnessnya.
Jfitness = 0
For i = 1 To 8
Jfitness = Jfitness + fitness(i)
Next i
Hitung Total Fitness
k = 0
For i = 1 To 8
prosen = Int(100 * fitness(i) /
Jfitness)
Text2(i - 1) = prosen
For j = 1 To prosen
k = k + 1
rolet(k) = i
Next j
Next i
Menghitung prosentase
fitness dan penentuan
bidang
Seleksi (2) For i = 1 To 8
r = Int(k * Rnd) + 1
pilih = rolet(r)
Text3(i - 1) = pilih
For j = 1 To 9
induk(i, j) = individu(pilih, j)
m = (i - 1) * 9 + j - 1
Text4(m) = induk(i, j)
Next j
Next i
Pemutaran Roulette
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 8
p = Rnd
If p < probCO Then
r1 = Int(Rnd * 8) + 1
r2 = Int(Rnd * (8 - r1)) + r1
For r = r1 To r2
anak(i, r) = induk(i, r2 + r1 - r)
Next r
End If
anak(i, 9) = anak(i, 1)
k = (i - 1) * 9 + 8
Next i
Mutasi Mutasi dilakukan dengan cara menentukan
dua posisi gen secara acak (posisi 1 sampai
dengan 8) dan melakukan pertukaran nilai
gen pada kedua posisi tersebut, nilai gen ke
1 diduplikasi ke nilai gen ke 9
Contoh :
Sebelum mutasi : 6 8 7 1 5 3 4 2 6
Posisi terpilih adalah 1 dan 8
Sesudah mutasi : 2 8 7 1 5 3 4 6 2
For i = 1 To 8
p = Rnd
If p <= probMut Then
r1 = Int(8 * Rnd) + 1
r2 = Int(8 * Rnd) + 1
a = anak(i, r1)
anak(i, r1) = anak(i, r2)
anak(i, r2) = a
End If
anak(i, 9) = anak(i, 1)
Next i
Membentuk Individu Baru
Anak hasil perkawinan silang dan
mutasi menjadi generasi baru untuk
dilakukan proses regenerasi
Pada generasi berikutnya, individu
terbaik (nilai fitness terbesar) dapat
dipertahankan dengan proses elitism
For i = 1 To 8
For j = 1 To 9
individu(i, j) = anak(i, j)
Next j
Next i
Contoh Hasil Algoritma Genetika
Generasi 1 Generasi 2
Contoh Hasil Algoritma Genetika
Generasi 3 Generasi 4
Aplikasi Algoritma Genetika untuk Optimasi
Penempatan Radio Based Station
• Definisi Individu
• Nilai Fitness
• Seleksi roulette wheel
• Crossover aritmatik
• Mutasi gen
Definisi Individu
• RBS dibatasi sebanyak 5.
• Setiap individu menyatakan lokasi dari kelima RBS.
• Setiap individu terdiri dari 10 gen yang menyatakan posisi x
dan y dari tiap RBS.
• Nilai dari gen dinyatakan dengan bilangan integer yang
dibatasi sesuai dengan ukuran wilayah yang disediakan.
• Ukuran wilayah yang disediakan adalah 60 untuk posisi x &
40 untuk posisi y.
Fungsi Fitness
• Fungsi fitness dinyatakan sebagai invers dari fungsi
yang menghitung jumlah blank area paling sedikit.
Membangkitkan Populasi Awal
Membangkitkan sejumlah individu,
misalkan satu populasi terdiri dari 8
individu, maka dibangkitkan 8
individu dengan 10 gen (maks. 60
untuk x dan 40 untuk y) yang
dibangkitkan secara acak.
For i = 1 To 8
For k = 1 To 5
xr = Int(59 * Rnd) + 2
yr = Int(39 * Rnd) + 2
individu(i, k * 2 - 1) = xr
individu(i, k * 2) = yr
Next k
Next i
Hitung Fitness
Membangkitkan Populasi Awal
For i = 1 To 8
For xp = 1 To 60
For yp = 1 To 40
s(xp, yp) = 0
For j = 1 To 5
xr = individu(i, j * 2 - 1)
yr = individu(i, j * 2)
d = ((xp - xr) ^ 2 + (yp - yr) ^ 2) ^ 0.5
If d < radius + 1 Then s(xp, yp) = 1
Next j
Next yp
Next xp
Jcover = 0
For xp = 1 To 60
For yp = 1 To 40
Jcover = Jcover + s(xp, yp)
Next yp
Next xp
fitness(i) = Jcover
Next i
Hitung Fitness
Seleksi (1)
Seleksi roulette wheel untuk
memilih induk dilakukan dengan
menggunakan prosentasi fitness
setiap individu, dimana setiap
individu mendapatkan luas bagian
sesuai dengan prosentase nilai
fitnessnya.
Jfitness = 0
For i = 1 To 8
Jfitness = Jfitness + fitness(i)
Next i
Hitung Total Fitness
k = 0
For i = 1 To 8
prosen = Int(100 * fitness(i) /
Jfitness)
Text2(i - 1) = prosen
For j = 1 To prosen
k = k + 1
rolet(k) = i
Next j
Next i
Menghitung prosentase
fitness dan penentuan
bidang
Seleksi (2) For i = 1 To 8
r = Int(k * Rnd) + 1
pilih = rolet(r)
Text4(i - 1) = pilih
For j = 1 To 10
induk(i, j) = individu(pilih, j)
Next j
Next i
Pemutaran Roulette
Perkawinan Silang
Cross-Over (Perkawinan Silang) dilakukan dengan menentukan 2 posisi awal dan
akhir gen pada individu yang akan dikawinkan secara acak. Kemudian pada posisi
tersebut dilakukan cross-over aritmetik.
For i = 1 To 4
p = Rnd
If p < probCO Then
r1 = Int(10 * Rnd) + 1
r2 = Int((10 - r1) * Rnd) + r1
For r = r1 To r2
a = 0.5 + 0.5 * Rnd
anak(2 * i - 1, r) = Int(a * induk(2 * i - 1,
r) + (1 - a) * induk(2 * i, r))
anak(2 * i, r) = Int(a * induk(2 * i, r) + (1
- a) * induk(2 * i - 1, r))
k = (2 * i - 2) * 10 + r - 1
Next r
Next i
Mutasi
Mutasi dilakukan dengan cara menggeser posisi gen yang
dimutasi. Penggeseran ini dilakukan dengan melakukan
penambahan atau pengurangan pada posisi tersebut.
For i = 1 To 8
p = Rnd
If p < probMut Then
r1 = Int(10 * Rnd) + 1
r2 = Int((10 - r1) * Rnd) + 1
For r = 1 To r2
If r Mod 2 = 0 Then bt = 40 Else bt = 60
a = Int(10 * Rnd) - 4
If a < 1 Then a = a - 1
anak(i, r) = anak(i, r) + a
If anak(i, r) < 1 Or anak(i, r) > bt Then
anak(i, r) = anak(i, r) - 2 * a
k = (i - 1) * 10 + r - 1
Next r
End If
Next i
Membentuk Individu Baru
Anak hasil perkawinan silang dan
mutasi menjadi generasi baru untuk
dilakukan proses regenerasi
Pada generasi berikutnya, individu
terbaik (nilai fitness terbesar) dapat
dipertahankan dengan proses elitism
kmin = 1
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
For i = 1 To 8
For j = 1 To 8
individu(i, j) = anak(i, j)
Next j
Next i
Contoh Hasil Algoritma Genetika
Generasi 1
Contoh Hasil Algoritma Genetika
Generasi 2
Contoh Hasil Algoritma Genetika
Generasi 3
Contoh Hasil Algoritma Genetika
Generasi 4
Aplikasi Algoritma Genetika untuk Peramalan
Time Series
Permasalahan pada
peramalan time series
adalah bagaimana
mempelajari perilaku data
time series yang
direpresentasikan pada
model linier untuk
menghasilkan nilai
peramalan
Training dengan
algoritma genetika
untuk mendapatkan
nilai koefisien model
linier
Hasil
Peramalan
Data Input
Koefisien model linier
Data Test
(Forecast)

Model Sistem
Data Model
Data input (time lag) Data test
Data prediksi
Input(1) Target(1)
Input(2) Target(2)
Input(3) Target(3)
Input(k) Target(k)
Data untuk learning/training
x(k)
Model peramalan algoritma genetika menggunakan model matematika
untuk merepresentasikan pola data time series sebagai berikut :
)
(
)
(
...
)
(
)
(
)
1
( 2
2
1
1
0 k
e
k
x
a
k
x
a
k
x
a
a
k
y n
n 






x1(k)  xn(k) : data input prediksi pada step ke k
y(k+1) : nilai prediksi pada step ke k+1
e(k) : error pada step ke k
Data Time Series
Data time series sunspot dengan jumlah data 30 yang dibagi
dalam periode input (time lag) 14 dan periode training
algoritma genetika 5
Periode Input
Periode Training Periode Peramalan
Membangkitkan sejumlah individu,
misalkan satu populasi terdiri dari 8
individu, maka dibangkitkan 8 individu
dengan 10 gen float yang dibangkitkan
secara acak (nilai antara 0-1) sebagai
representasi koefisien model linier
Hitung Fitness
ncrom = m - pga + 1
For i = 1 To 8
For k = 1 To 10
a(i, k) = Rnd / ncrom
Next k
Next i
Membangkitkan Populasi Awal
pGA1 = m - pga
pGA2 = pGA1 + pga
For i = 1 To 8
e = 0
ndata = 0
For k = pGA1 + 1 To pGA2
zp = a(i, 1)
For j = 2 To ncrom
zp = zp + a(i, j) * aktual(k + 1 - j)
Next j
e = e + (aktual(k) - zp) ^ 2
ndata = ndata + 1
Next k
er = e / ndata
fitness(i) = ncrom / (er + 0.01)
Next i
Seleksi
Seleksi roulette whell untuk memilih induk dilakukan dengan
menggunakan prosentasi fitness setiap individu, dimana setiap
individu mendapatkan luas bagian sesuai dengan prosentase
nilai fitnessnya.
Perkawinan Silang
Cross-Over (Perkawinan Silang) dilakukan dengan menentukan 2 posisi
awal dan akhir gen pada individu yang akan dikawinkan secara acak.
Digunakan arithmetic crossover untuk perkawinan silang
c1(k) = r.p1(k) + (1-r).p2(k)
c2(k) = (1-r).p1(k) + r.p2(k)
Mutasi
Mutasi untuk algoritma genetika dilakukan dengan metode
shift yaitu menentukan satu posisi gen pada kromosom
secara random. Kemudian nilai gen tersebut ditambahkan
dengan bilangan kecil antara -0.1 sampai dengan 0.1
sebagai nilai gen yang baru tetapi tetap pada jangkauan nilai
gen awal.
Membentuk Individu Baru
Anak hasil perkawinan silang dan mutasi menjadi generasi baru
untuk dilakukan proses regenerasi.
Pada generasi berikutnya, individu terbaik (nilai fitness terbesar)
dapat dipertahankan dengan proses elitism
Contoh Hasil Algoritma Genetika
Generasi 1
Contoh Hasil Algoritma Genetika
Generasi 2
Contoh Hasil Algoritma Genetika
Generasi 3
Contoh Hasil Algoritma Genetika
Generasi 4
Aplikasi Algoritma Genetika untuk Pencarian
Kata secara Acak
• Definisi Individu
• Nilai Fitness
• Seleksi roulette wheel
• Two point crossover
• Mutasi gen
Definisi Individu
• Kata yang menjadi acuan adalah “GENETIKA”.
• Setiap individu menyatakan kata dugaan terhadap kata acuan.
• Setiap individu terdiri dari 8 gen.
• Nilai dari gen dinyatakan dengan bilangan integer antara 1 s/d
26 yang jika dikonversikan akan didapatkan karakternya.
• 1 dikonversikan ke huruf ‘A’, dst sampai 26 dikonversikan ke
huruf ‘Z’.
Fungsi Fitness
• Fungsi fitness dinyatakan sebagai 8 * 26 - (ac[i] –
gen[i])
Membangkitkan Populasi Awal
Membangkitkan sejumlah individu,
misalkan satu populasi terdiri dari
16 individu, maka dibangkitkan 8
individu dengan 8 gen integer (1
gen26) yang dibangkitkan secara
acak.
For i = 1 To 16
For j = 1 To 8
individu(i, j) = Int(26 * Rnd + 1)
k = (i - 1) * 8 + j - 1
Text1(k) = Chr(individu(i, j) + 64)
Next j
Next i
Hitung Fitness
Membangkitkan Populasi Awal
For i = 1 To 16
er = 0
er1 = 0
For j = 1 To 8
er = er + ad(j) * (ac(j) - individu(i, j)) ^ 2
If ac(j) <> individu(i, j) Then er1 = er1 + 1
Next j
fitness(i) = 8 * 26 - Int(er ^ 0.5) - 8 * er1
If fitness(i) < 0 Then fitness(i) = 0
Next i
Hitung Fitness
Seleksi (1)
Seleksi roulette wheel untuk
memilih induk dilakukan dengan
menggunakan prosentasi fitness
setiap individu, dimana setiap
individu mendapatkan luas bagian
sesuai dengan prosentase nilai
fitnessnya.
Jfitness = 0
For i = 1 To 8
Jfitness = Jfitness + fitness(i)
Next i
Hitung Total Fitness
k = 0
For i = 1 To 8
prosen = Int(100 * fitness(i) /
Jfitness)
Text2(i - 1) = prosen
For j = 1 To prosen
k = k + 1
rolet(k) = i
Next j
Next i
Menghitung prosentase
fitness dan penentuan
bidang
Seleksi (2) For i = 1 To 8
r = Int(k * Rnd) + 1
pilih = rolet(r)
Text4(i - 1) = pilih
For j = 1 To 10
induk(i, j) = individu(pilih, j)
Next j
Next i
Pemutaran Roulette
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 8
p = Rnd
If p < probCO Then
r1 = Int(8 * Rnd) + 1
r2 = Int((8 - r1) * Rnd) + r1
For j = r1 To r2
jn = r2 - (j - r1)
anak(2 * i - 1, j) = induk(2 * i, j)
anak(2 * i, j) = induk(2 * i - 1, j)
k = ((2 * i - 1) - 1) * 8 + j - 1
k = (2 * i - 1) * 8 + j - 1
Next j
End If
Next i
Mutasi
Mutasi dilakukan dengan cara menggeser posisi gen yang
dimutasi. Penggeseran ini dilakukan dengan melakukan
penambahan atau pengurangan pada posisi tersebut.
For i = 1 To 16
p = Rnd
If p < probMut Then
r1 = Int(8 * Rnd) + 1
r2 = Int((8 - r1) * Rnd) + r1
For r = r1 To r2
anak(i, r) = Int(Rnd * 26) + 1
k = (i - 1) * 8 + r - 1
Next r
End If
Next i
Membentuk Individu Baru
Anak hasil perkawinan silang dan
mutasi menjadi generasi baru untuk
dilakukan proses regenerasi
Pada generasi berikutnya, individu
terbaik (nilai fitness terbesar) dapat
dipertahankan dengan proses elitism
kmin = 1
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
For i = 1 To 8
For j = 1 To 8
individu(i, j) = anak(i, j)
Next j
Next i
Contoh Hasil Algoritma Genetika
Generasi 1
Contoh Hasil Algoritma Genetika
Generasi 2
Contoh Hasil Algoritma Genetika
Generasi 3
Contoh Hasil Algoritma Genetika
Generasi 4
Contoh Hasil Algoritma Genetika
Generasi 5

More Related Content

Recently uploaded

Jual Cytotec Blora 👗082322223014👗Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Blora 👗082322223014👗Pusat Peluntur Kandungan KonsultasiJual Cytotec Blora 👗082322223014👗Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Blora 👗082322223014👗Pusat Peluntur Kandungan Konsultasissupi412
 
283649986-MATERI-RISIKO-DAN-TK-PENGEMBALIAN-ppt.ppt
283649986-MATERI-RISIKO-DAN-TK-PENGEMBALIAN-ppt.ppt283649986-MATERI-RISIKO-DAN-TK-PENGEMBALIAN-ppt.ppt
283649986-MATERI-RISIKO-DAN-TK-PENGEMBALIAN-ppt.pptmumtaza6
 
WA 0821-2636-0569, Sekolah Pra Nikah Janda Duda Di Semarang
WA 0821-2636-0569, Sekolah Pra Nikah Janda Duda Di SemarangWA 0821-2636-0569, Sekolah Pra Nikah Janda Duda Di Semarang
WA 0821-2636-0569, Sekolah Pra Nikah Janda Duda Di SemarangKelas Online Pra Nikah Nikah
 
PPT usaha Air Minum masak untuk jualan- Umum fix.pptx
PPT usaha Air Minum masak untuk jualan- Umum fix.pptxPPT usaha Air Minum masak untuk jualan- Umum fix.pptx
PPT usaha Air Minum masak untuk jualan- Umum fix.pptxfirbadian97
 
Jual Obat Cytotec Di Palembang 0823.2222.3014 Pusat Pelancar Haid Ampuh Berga...
Jual Obat Cytotec Di Palembang 0823.2222.3014 Pusat Pelancar Haid Ampuh Berga...Jual Obat Cytotec Di Palembang 0823.2222.3014 Pusat Pelancar Haid Ampuh Berga...
Jual Obat Cytotec Di Palembang 0823.2222.3014 Pusat Pelancar Haid Ampuh Berga...ssupi412
 
Persyaratan Adminduk - Disdukcapil Kab. Kebumen
Persyaratan Adminduk - Disdukcapil Kab. KebumenPersyaratan Adminduk - Disdukcapil Kab. Kebumen
Persyaratan Adminduk - Disdukcapil Kab. KebumenPemdes Wonoyoso
 
5e6a9e119c2fedec04b90d50fcb7700901916.pdf
5e6a9e119c2fedec04b90d50fcb7700901916.pdf5e6a9e119c2fedec04b90d50fcb7700901916.pdf
5e6a9e119c2fedec04b90d50fcb7700901916.pdfFendryGustianVandell
 
Jual Cytotec Di Sumba Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Sumba Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Sumba Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Sumba Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasissupi412
 
Jual Cytotec Di Sinjai Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Sinjai Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Sinjai Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Sinjai Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasissupi412
 

Recently uploaded (11)

Obat Aborsi Medan 082223109953 Klinik Jual Obat Aborsi Di Medan
Obat Aborsi Medan 082223109953 Klinik Jual Obat Aborsi Di MedanObat Aborsi Medan 082223109953 Klinik Jual Obat Aborsi Di Medan
Obat Aborsi Medan 082223109953 Klinik Jual Obat Aborsi Di Medan
 
Jual Cytotec Blora 👗082322223014👗Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Blora 👗082322223014👗Pusat Peluntur Kandungan KonsultasiJual Cytotec Blora 👗082322223014👗Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Blora 👗082322223014👗Pusat Peluntur Kandungan Konsultasi
 
283649986-MATERI-RISIKO-DAN-TK-PENGEMBALIAN-ppt.ppt
283649986-MATERI-RISIKO-DAN-TK-PENGEMBALIAN-ppt.ppt283649986-MATERI-RISIKO-DAN-TK-PENGEMBALIAN-ppt.ppt
283649986-MATERI-RISIKO-DAN-TK-PENGEMBALIAN-ppt.ppt
 
WA 0821-2636-0569, Sekolah Pra Nikah Janda Duda Di Semarang
WA 0821-2636-0569, Sekolah Pra Nikah Janda Duda Di SemarangWA 0821-2636-0569, Sekolah Pra Nikah Janda Duda Di Semarang
WA 0821-2636-0569, Sekolah Pra Nikah Janda Duda Di Semarang
 
PPT usaha Air Minum masak untuk jualan- Umum fix.pptx
PPT usaha Air Minum masak untuk jualan- Umum fix.pptxPPT usaha Air Minum masak untuk jualan- Umum fix.pptx
PPT usaha Air Minum masak untuk jualan- Umum fix.pptx
 
Jual Obat Cytotec Di Palembang 0823.2222.3014 Pusat Pelancar Haid Ampuh Berga...
Jual Obat Cytotec Di Palembang 0823.2222.3014 Pusat Pelancar Haid Ampuh Berga...Jual Obat Cytotec Di Palembang 0823.2222.3014 Pusat Pelancar Haid Ampuh Berga...
Jual Obat Cytotec Di Palembang 0823.2222.3014 Pusat Pelancar Haid Ampuh Berga...
 
Persyaratan Adminduk - Disdukcapil Kab. Kebumen
Persyaratan Adminduk - Disdukcapil Kab. KebumenPersyaratan Adminduk - Disdukcapil Kab. Kebumen
Persyaratan Adminduk - Disdukcapil Kab. Kebumen
 
5e6a9e119c2fedec04b90d50fcb7700901916.pdf
5e6a9e119c2fedec04b90d50fcb7700901916.pdf5e6a9e119c2fedec04b90d50fcb7700901916.pdf
5e6a9e119c2fedec04b90d50fcb7700901916.pdf
 
Jual Cytotec Di Sumba Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Sumba Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Sumba Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Sumba Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
 
Obat Aborsi Bandung ( Ampuh ) 082223109953 Jual Cytotec Asli Obat Telat Bulan...
Obat Aborsi Bandung ( Ampuh ) 082223109953 Jual Cytotec Asli Obat Telat Bulan...Obat Aborsi Bandung ( Ampuh ) 082223109953 Jual Cytotec Asli Obat Telat Bulan...
Obat Aborsi Bandung ( Ampuh ) 082223109953 Jual Cytotec Asli Obat Telat Bulan...
 
Jual Cytotec Di Sinjai Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Sinjai Ori 👙082122229359👙Pusat Peluntur Kandungan KonsultasiJual Cytotec Di Sinjai Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
Jual Cytotec Di Sinjai Ori 👙082122229359👙Pusat Peluntur Kandungan Konsultasi
 

Featured

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 

Featured (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 

Search-algoritma-genetika .ppt

  • 2. Algoritma Genetika Representasi Kromosom Membangkitkan Populasi Awal Hitung Fitness Seleksi Perkawinan Silang Mutasi Individu Baru Optimal ? Tidak Solusi Optimal Ya
  • 3. 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
  • 4. 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
  • 5. 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.
  • 6. Membangkitkan Populasi Awal Membangkitkan sejumlah individu, misalkan satu populasi terdiri dari 8 individu, maka dibangkitkan 8 individu dengan 8 gen biner yang dibangkitkan secara acak. For i = 1 To 8 For j = 1 To 8 individu(i, j) = Int(2 * Rnd) Next j Next i 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 Hitung Fitness
  • 7. Seleksi (1) Seleksi roulette whell untuk memilih induk dilakukan dengan menggunakan prosentasi fitness setiap individu, dimana setiap individu mendapatkan luas bagian sesuai dengan prosentase nilai fitnessnya. Jfitness = 0 For i = 1 To 8 Jfitness = Jfitness + fitness(i) Next i 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 Menghitung prosentase fitness dan penentuan bidang
  • 8. Seleksi (2) For i = 1 To 8 r = Int(k * Rnd) + 1 pilih = rolet(r) Text4(i - 1) = pilih For j = 1 To 8 induk(i, j) = individu(pilih, j) Next j Next i Pemutaran Roulette
  • 9. 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
  • 10. 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
  • 11. Membentuk Individu Baru Anak hasil perkawinan silang dan mutasi menjadi generasi baru untuk dilakukan proses regenerasi Pada generasi berikutnya, individu terbaik (nilai fitness terbesar) dapat dipertahankan dengan proses elitism kmin = 1 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 For i = 1 To 8 For j = 1 To 8 individu(i, j) = anak(i, j) Next j Next i
  • 12. Contoh Hasil Algoritma Genetika Generasi 1 Generasi 2
  • 13. Contoh Hasil Algoritma Genetika Generasi 3 Generasi 4
  • 14. Aplikasi Algoritma Genetika untuk Penyelesaian Permasalahan Traveling Salesman Problem Permasalahan pada TSP adalah bagaimana seorang sales dapat mengunjungi setiap kota dengan jarak yang paling pendek. Pada contoh aplikasi GA untuk TSP, ditentukan 8 kota dengan posisi koordinat (x, y).
  • 15. Definisi Individu • Individu menyatakan urutan kota yang dinyatakan dalam nilai integer 1 sampai dengan 8 sebanyak 9 gen (8 gen urutan kota dan 1 gen terakhir merupakan duplikat dari gen pertama) • Sebagai contoh: 7 1 8 3 5 4 6 2 7 3 8 4 2 6 5 1 7 3 Fungsi Fitness • Fungsi fitness dinyatakan sebagai kebalikan dari nilai kuadrat jarak dari urutan kota.          9 2 2 1 2 1 ) ( ) ( 1000 i i i i i y y x x Fitness
  • 16. Membangkitkan sejumlah individu, misalkan satu populasi terdiri dari 8 individu, maka dibangkitkan 8 individu dengan 9 gen integer yang dibangkitkan secara acak (nilai 1 sampai dengan 8) Hitung Fitness For i = 1 To 8 jumlah = 0 For j = 1 To 7 sw = 0 While sw = 0 r = Int(Rnd * 8) + 1 sw = 1 For k = 1 To j - 1 If r = individu(i, k) Then sw = 0 Next k Wend individu(i, j) = r jumlah = jumlah + r Next j individu(i, 8) = 36 - jumlah individu(i, 9) = individu(i, 1) Next i Membangkitkan Populasi Awal (1) For i = 1 To 8 Z = 0 For j = 2 To 9 r1 = individu(i, j) r2 = individu(i, j - 1) d = ((xkota(r1) - xkota(r2)) ^ 2 + (ykota(r1) - ykota(r2)) ^ 2) ^ 0.5 Z = Z + d Next j fitness(i) = 1000 - Int(Z) Next i
  • 17. Membangkitkan Populasi Awal (2) Individu maksimum yang diperoleh mempunyai urutan 3 8 4 2 6 5 1 7 dengan nilai fitness terbesar yaitu 648
  • 18. Seleksi (1) Seleksi roulette whell untuk memilih induk dilakukan dengan menggunakan prosentasi fitness setiap individu, dimana setiap individu mendapatkan luas bagian sesuai dengan prosentase nilai fitnessnya. Jfitness = 0 For i = 1 To 8 Jfitness = Jfitness + fitness(i) Next i Hitung Total Fitness k = 0 For i = 1 To 8 prosen = Int(100 * fitness(i) / Jfitness) Text2(i - 1) = prosen For j = 1 To prosen k = k + 1 rolet(k) = i Next j Next i Menghitung prosentase fitness dan penentuan bidang
  • 19. Seleksi (2) For i = 1 To 8 r = Int(k * Rnd) + 1 pilih = rolet(r) Text3(i - 1) = pilih For j = 1 To 9 induk(i, j) = individu(pilih, j) m = (i - 1) * 9 + j - 1 Text4(m) = induk(i, j) Next j Next i Pemutaran Roulette
  • 20. 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 8 p = Rnd If p < probCO Then r1 = Int(Rnd * 8) + 1 r2 = Int(Rnd * (8 - r1)) + r1 For r = r1 To r2 anak(i, r) = induk(i, r2 + r1 - r) Next r End If anak(i, 9) = anak(i, 1) k = (i - 1) * 9 + 8 Next i
  • 21. Mutasi Mutasi dilakukan dengan cara menentukan dua posisi gen secara acak (posisi 1 sampai dengan 8) dan melakukan pertukaran nilai gen pada kedua posisi tersebut, nilai gen ke 1 diduplikasi ke nilai gen ke 9 Contoh : Sebelum mutasi : 6 8 7 1 5 3 4 2 6 Posisi terpilih adalah 1 dan 8 Sesudah mutasi : 2 8 7 1 5 3 4 6 2 For i = 1 To 8 p = Rnd If p <= probMut Then r1 = Int(8 * Rnd) + 1 r2 = Int(8 * Rnd) + 1 a = anak(i, r1) anak(i, r1) = anak(i, r2) anak(i, r2) = a End If anak(i, 9) = anak(i, 1) Next i
  • 22. Membentuk Individu Baru Anak hasil perkawinan silang dan mutasi menjadi generasi baru untuk dilakukan proses regenerasi Pada generasi berikutnya, individu terbaik (nilai fitness terbesar) dapat dipertahankan dengan proses elitism For i = 1 To 8 For j = 1 To 9 individu(i, j) = anak(i, j) Next j Next i
  • 23. Contoh Hasil Algoritma Genetika Generasi 1 Generasi 2
  • 24. Contoh Hasil Algoritma Genetika Generasi 3 Generasi 4
  • 25. Aplikasi Algoritma Genetika untuk Optimasi Penempatan Radio Based Station • Definisi Individu • Nilai Fitness • Seleksi roulette wheel • Crossover aritmatik • Mutasi gen
  • 26. Definisi Individu • RBS dibatasi sebanyak 5. • Setiap individu menyatakan lokasi dari kelima RBS. • Setiap individu terdiri dari 10 gen yang menyatakan posisi x dan y dari tiap RBS. • Nilai dari gen dinyatakan dengan bilangan integer yang dibatasi sesuai dengan ukuran wilayah yang disediakan. • Ukuran wilayah yang disediakan adalah 60 untuk posisi x & 40 untuk posisi y. Fungsi Fitness • Fungsi fitness dinyatakan sebagai invers dari fungsi yang menghitung jumlah blank area paling sedikit.
  • 27. Membangkitkan Populasi Awal Membangkitkan sejumlah individu, misalkan satu populasi terdiri dari 8 individu, maka dibangkitkan 8 individu dengan 10 gen (maks. 60 untuk x dan 40 untuk y) yang dibangkitkan secara acak. For i = 1 To 8 For k = 1 To 5 xr = Int(59 * Rnd) + 2 yr = Int(39 * Rnd) + 2 individu(i, k * 2 - 1) = xr individu(i, k * 2) = yr Next k Next i Hitung Fitness
  • 28. Membangkitkan Populasi Awal For i = 1 To 8 For xp = 1 To 60 For yp = 1 To 40 s(xp, yp) = 0 For j = 1 To 5 xr = individu(i, j * 2 - 1) yr = individu(i, j * 2) d = ((xp - xr) ^ 2 + (yp - yr) ^ 2) ^ 0.5 If d < radius + 1 Then s(xp, yp) = 1 Next j Next yp Next xp Jcover = 0 For xp = 1 To 60 For yp = 1 To 40 Jcover = Jcover + s(xp, yp) Next yp Next xp fitness(i) = Jcover Next i Hitung Fitness
  • 29. Seleksi (1) Seleksi roulette wheel untuk memilih induk dilakukan dengan menggunakan prosentasi fitness setiap individu, dimana setiap individu mendapatkan luas bagian sesuai dengan prosentase nilai fitnessnya. Jfitness = 0 For i = 1 To 8 Jfitness = Jfitness + fitness(i) Next i Hitung Total Fitness k = 0 For i = 1 To 8 prosen = Int(100 * fitness(i) / Jfitness) Text2(i - 1) = prosen For j = 1 To prosen k = k + 1 rolet(k) = i Next j Next i Menghitung prosentase fitness dan penentuan bidang
  • 30. Seleksi (2) For i = 1 To 8 r = Int(k * Rnd) + 1 pilih = rolet(r) Text4(i - 1) = pilih For j = 1 To 10 induk(i, j) = individu(pilih, j) Next j Next i Pemutaran Roulette
  • 31. Perkawinan Silang Cross-Over (Perkawinan Silang) dilakukan dengan menentukan 2 posisi awal dan akhir gen pada individu yang akan dikawinkan secara acak. Kemudian pada posisi tersebut dilakukan cross-over aritmetik. For i = 1 To 4 p = Rnd If p < probCO Then r1 = Int(10 * Rnd) + 1 r2 = Int((10 - r1) * Rnd) + r1 For r = r1 To r2 a = 0.5 + 0.5 * Rnd anak(2 * i - 1, r) = Int(a * induk(2 * i - 1, r) + (1 - a) * induk(2 * i, r)) anak(2 * i, r) = Int(a * induk(2 * i, r) + (1 - a) * induk(2 * i - 1, r)) k = (2 * i - 2) * 10 + r - 1 Next r Next i
  • 32. Mutasi Mutasi dilakukan dengan cara menggeser posisi gen yang dimutasi. Penggeseran ini dilakukan dengan melakukan penambahan atau pengurangan pada posisi tersebut. For i = 1 To 8 p = Rnd If p < probMut Then r1 = Int(10 * Rnd) + 1 r2 = Int((10 - r1) * Rnd) + 1 For r = 1 To r2 If r Mod 2 = 0 Then bt = 40 Else bt = 60 a = Int(10 * Rnd) - 4 If a < 1 Then a = a - 1 anak(i, r) = anak(i, r) + a If anak(i, r) < 1 Or anak(i, r) > bt Then anak(i, r) = anak(i, r) - 2 * a k = (i - 1) * 10 + r - 1 Next r End If Next i
  • 33. Membentuk Individu Baru Anak hasil perkawinan silang dan mutasi menjadi generasi baru untuk dilakukan proses regenerasi Pada generasi berikutnya, individu terbaik (nilai fitness terbesar) dapat dipertahankan dengan proses elitism kmin = 1 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 For i = 1 To 8 For j = 1 To 8 individu(i, j) = anak(i, j) Next j Next i
  • 34. Contoh Hasil Algoritma Genetika Generasi 1
  • 35. Contoh Hasil Algoritma Genetika Generasi 2
  • 36. Contoh Hasil Algoritma Genetika Generasi 3
  • 37. Contoh Hasil Algoritma Genetika Generasi 4
  • 38. Aplikasi Algoritma Genetika untuk Peramalan Time Series Permasalahan pada peramalan time series adalah bagaimana mempelajari perilaku data time series yang direpresentasikan pada model linier untuk menghasilkan nilai peramalan Training dengan algoritma genetika untuk mendapatkan nilai koefisien model linier Hasil Peramalan Data Input Koefisien model linier Data Test (Forecast)  Model Sistem
  • 39. Data Model Data input (time lag) Data test Data prediksi Input(1) Target(1) Input(2) Target(2) Input(3) Target(3) Input(k) Target(k) Data untuk learning/training x(k) Model peramalan algoritma genetika menggunakan model matematika untuk merepresentasikan pola data time series sebagai berikut : ) ( ) ( ... ) ( ) ( ) 1 ( 2 2 1 1 0 k e k x a k x a k x a a k y n n        x1(k)  xn(k) : data input prediksi pada step ke k y(k+1) : nilai prediksi pada step ke k+1 e(k) : error pada step ke k
  • 40. Data Time Series Data time series sunspot dengan jumlah data 30 yang dibagi dalam periode input (time lag) 14 dan periode training algoritma genetika 5 Periode Input Periode Training Periode Peramalan
  • 41. Membangkitkan sejumlah individu, misalkan satu populasi terdiri dari 8 individu, maka dibangkitkan 8 individu dengan 10 gen float yang dibangkitkan secara acak (nilai antara 0-1) sebagai representasi koefisien model linier Hitung Fitness ncrom = m - pga + 1 For i = 1 To 8 For k = 1 To 10 a(i, k) = Rnd / ncrom Next k Next i Membangkitkan Populasi Awal pGA1 = m - pga pGA2 = pGA1 + pga For i = 1 To 8 e = 0 ndata = 0 For k = pGA1 + 1 To pGA2 zp = a(i, 1) For j = 2 To ncrom zp = zp + a(i, j) * aktual(k + 1 - j) Next j e = e + (aktual(k) - zp) ^ 2 ndata = ndata + 1 Next k er = e / ndata fitness(i) = ncrom / (er + 0.01) Next i
  • 42. Seleksi Seleksi roulette whell untuk memilih induk dilakukan dengan menggunakan prosentasi fitness setiap individu, dimana setiap individu mendapatkan luas bagian sesuai dengan prosentase nilai fitnessnya.
  • 43. Perkawinan Silang Cross-Over (Perkawinan Silang) dilakukan dengan menentukan 2 posisi awal dan akhir gen pada individu yang akan dikawinkan secara acak. Digunakan arithmetic crossover untuk perkawinan silang c1(k) = r.p1(k) + (1-r).p2(k) c2(k) = (1-r).p1(k) + r.p2(k)
  • 44. Mutasi Mutasi untuk algoritma genetika dilakukan dengan metode shift yaitu menentukan satu posisi gen pada kromosom secara random. Kemudian nilai gen tersebut ditambahkan dengan bilangan kecil antara -0.1 sampai dengan 0.1 sebagai nilai gen yang baru tetapi tetap pada jangkauan nilai gen awal.
  • 45. Membentuk Individu Baru Anak hasil perkawinan silang dan mutasi menjadi generasi baru untuk dilakukan proses regenerasi. Pada generasi berikutnya, individu terbaik (nilai fitness terbesar) dapat dipertahankan dengan proses elitism
  • 46. Contoh Hasil Algoritma Genetika Generasi 1
  • 47. Contoh Hasil Algoritma Genetika Generasi 2
  • 48. Contoh Hasil Algoritma Genetika Generasi 3
  • 49. Contoh Hasil Algoritma Genetika Generasi 4
  • 50. Aplikasi Algoritma Genetika untuk Pencarian Kata secara Acak • Definisi Individu • Nilai Fitness • Seleksi roulette wheel • Two point crossover • Mutasi gen
  • 51. Definisi Individu • Kata yang menjadi acuan adalah “GENETIKA”. • Setiap individu menyatakan kata dugaan terhadap kata acuan. • Setiap individu terdiri dari 8 gen. • Nilai dari gen dinyatakan dengan bilangan integer antara 1 s/d 26 yang jika dikonversikan akan didapatkan karakternya. • 1 dikonversikan ke huruf ‘A’, dst sampai 26 dikonversikan ke huruf ‘Z’. Fungsi Fitness • Fungsi fitness dinyatakan sebagai 8 * 26 - (ac[i] – gen[i])
  • 52. Membangkitkan Populasi Awal Membangkitkan sejumlah individu, misalkan satu populasi terdiri dari 16 individu, maka dibangkitkan 8 individu dengan 8 gen integer (1 gen26) yang dibangkitkan secara acak. For i = 1 To 16 For j = 1 To 8 individu(i, j) = Int(26 * Rnd + 1) k = (i - 1) * 8 + j - 1 Text1(k) = Chr(individu(i, j) + 64) Next j Next i Hitung Fitness
  • 53. Membangkitkan Populasi Awal For i = 1 To 16 er = 0 er1 = 0 For j = 1 To 8 er = er + ad(j) * (ac(j) - individu(i, j)) ^ 2 If ac(j) <> individu(i, j) Then er1 = er1 + 1 Next j fitness(i) = 8 * 26 - Int(er ^ 0.5) - 8 * er1 If fitness(i) < 0 Then fitness(i) = 0 Next i Hitung Fitness
  • 54. Seleksi (1) Seleksi roulette wheel untuk memilih induk dilakukan dengan menggunakan prosentasi fitness setiap individu, dimana setiap individu mendapatkan luas bagian sesuai dengan prosentase nilai fitnessnya. Jfitness = 0 For i = 1 To 8 Jfitness = Jfitness + fitness(i) Next i Hitung Total Fitness k = 0 For i = 1 To 8 prosen = Int(100 * fitness(i) / Jfitness) Text2(i - 1) = prosen For j = 1 To prosen k = k + 1 rolet(k) = i Next j Next i Menghitung prosentase fitness dan penentuan bidang
  • 55. Seleksi (2) For i = 1 To 8 r = Int(k * Rnd) + 1 pilih = rolet(r) Text4(i - 1) = pilih For j = 1 To 10 induk(i, j) = individu(pilih, j) Next j Next i Pemutaran Roulette
  • 56. 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 8 p = Rnd If p < probCO Then r1 = Int(8 * Rnd) + 1 r2 = Int((8 - r1) * Rnd) + r1 For j = r1 To r2 jn = r2 - (j - r1) anak(2 * i - 1, j) = induk(2 * i, j) anak(2 * i, j) = induk(2 * i - 1, j) k = ((2 * i - 1) - 1) * 8 + j - 1 k = (2 * i - 1) * 8 + j - 1 Next j End If Next i
  • 57. Mutasi Mutasi dilakukan dengan cara menggeser posisi gen yang dimutasi. Penggeseran ini dilakukan dengan melakukan penambahan atau pengurangan pada posisi tersebut. For i = 1 To 16 p = Rnd If p < probMut Then r1 = Int(8 * Rnd) + 1 r2 = Int((8 - r1) * Rnd) + r1 For r = r1 To r2 anak(i, r) = Int(Rnd * 26) + 1 k = (i - 1) * 8 + r - 1 Next r End If Next i
  • 58. Membentuk Individu Baru Anak hasil perkawinan silang dan mutasi menjadi generasi baru untuk dilakukan proses regenerasi Pada generasi berikutnya, individu terbaik (nilai fitness terbesar) dapat dipertahankan dengan proses elitism kmin = 1 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 For i = 1 To 8 For j = 1 To 8 individu(i, j) = anak(i, j) Next j Next i
  • 59. Contoh Hasil Algoritma Genetika Generasi 1
  • 60. Contoh Hasil Algoritma Genetika Generasi 2
  • 61. Contoh Hasil Algoritma Genetika Generasi 3
  • 62. Contoh Hasil Algoritma Genetika Generasi 4
  • 63. Contoh Hasil Algoritma Genetika Generasi 5