Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma Genetika. Representasi Kromosom Membangkitkan Populasi Awal Hitung Fitness Seleksi Perkawinan Silang Mutasi Individu Baru Optimal ? Tidak Solusi.

Presentasi serupa


Presentasi berjudul: "Algoritma Genetika. Representasi Kromosom Membangkitkan Populasi Awal Hitung Fitness Seleksi Perkawinan Silang Mutasi Individu Baru Optimal ? Tidak Solusi."— Transcript presentasi:

1 Algoritma Genetika

2 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 -x sin(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: = ( )/256 = = ( )/256 = 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 1Generasi 2

13 Contoh Hasil Algoritma Genetika Generasi 3Generasi 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: Fungsi Fitness Fungsi fitness dinyatakan sebagai kebalikan dari nilai kuadrat jarak dari urutan kota.

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) = Int(Z) Next i

17 Membangkitkan Populasi Awal (2) Individu maksimum yang diperoleh mempunyai urutan 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) * 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 : Posisi terpilih adalah 1 dan 8 Sesudah mutasi : 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 1Generasi 2

24 Contoh Hasil Algoritma Genetika Generasi 3Generasi 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 = * 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) 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 : x 1 (k)  x n (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 TrainingPeriode 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 j) Next j e = e + (aktual(k) - zp) ^ 2 ndata = ndata + 1 Next k er = e / ndata fitness(i) = ncrom / (er ) 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.p 1 (k) + (1-r).p 2 (k) c2(k) = (1-r).p 1 (k) + r.p 2 (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


Download ppt "Algoritma Genetika. Representasi Kromosom Membangkitkan Populasi Awal Hitung Fitness Seleksi Perkawinan Silang Mutasi Individu Baru Optimal ? Tidak Solusi."

Presentasi serupa


Iklan oleh Google