Algoritma Genetika - PowerPoint PPT Presentation

About This Presentation
Title:

Algoritma Genetika

Description:

Title: Workshop Algoritma Genetika Author: basuki Last modified by: masdani Created Date: 10/7/2003 4:45:32 AM Document presentation format: On-screen Show (4:3) – PowerPoint PPT presentation

Number of Views:969
Avg rating:3.0/5.0
Slides: 64
Provided by: basu69
Category:

less

Transcript and Presenter's Notes

Title: Algoritma Genetika


1
Algoritma Genetika
2
Algoritma Genetika
Representasi Kromosom
Membangkitkan Populasi Awal
Hitung Fitness
Seleksi
Perkawinan Silang
Mutasi
Individu Baru
Tidak
Ya
Optimal ?
Solusi Optimal
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)1e-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 (12881)/256 0.5352
  • 01010010 (21664)/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
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
7
Seleksi (1)
Hitung Total Fitness
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
Menghitung prosentase 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
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 lt 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 lt probMut
Then r Int(8 Rnd) 1 anak(i,
r) 1 - anak(i, r) End If Next i
11
Membentuk Individu Baru
For i 1 To 8 For j 1 To 8
individu(i, j) anak(i, j) Next j Next i
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) lt 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
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.

16
Membangkitkan Populasi Awal (1)
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 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)
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
Hitung Fitness
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)
Hitung Total Fitness
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
Menghitung prosentase fitness dan penentuan bidang
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
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 lt 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 lt 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
For i 1 To 8 For j 1 To 9
individu(i, j) anak(i, j) Next j Next i
Pada generasi berikutnya, individu terbaik (nilai
fitness terbesar) dapat dipertahankan dengan
proses elitism
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
Hitung Fitness
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 lt 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
29
Seleksi (1)
Hitung Total Fitness
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
Menghitung prosentase fitness dan penentuan bidang
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
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 lt 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 lt 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 lt 1 Then a a - 1 anak(i, r)
anak(i, r) a If anak(i, r) lt 1 Or
anak(i, r) gt 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
For i 1 To 8 For j 1 To 8
individu(i, j) anak(i, j) Next j Next i
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) lt 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
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
Model Sistem
Permasalahan pada peramalan time series adalah
bagaimana mempelajari perilaku data time series
yang direpresentasikan pada model linier untuk
menghasilkan nilai peramalan
39
Data Model
Model peramalan algoritma genetika menggunakan
model matematika untuk merepresentasikan pola
data time series sebagai berikut
x1(k) ? xn(k) data input prediksi pada step ke
k y(k1) nilai prediksi pada step ke
k1 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 Populasi Awal
ncrom m - pga 1 For i 1 To 8 For k 1
To 10 a(i, k) Rnd / ncrom Next
k Next i
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
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 -
    ?(aci geni)

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
Hitung Fitness
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) ltgt
individu(i, j) Then er1 er1 1 Next j
fitness(i) 8 26 - Int(er 0.5) - 8 er1
If fitness(i) lt 0 Then fitness(i) 0 Next i
54
Seleksi (1)
Hitung Total Fitness
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
Menghitung prosentase fitness dan penentuan bidang
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
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 lt 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 lt 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
For i 1 To 8 For j 1 To 8
individu(i, j) anak(i, j) Next j Next i
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) lt 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
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
Write a Comment
User Comments (0)
About PowerShow.com