1 / 63

Algoritma Genetika

Algoritma Genetika. Algoritma Genetika. Representasi Kromosom. Membangkitkan Populasi Awal. Hitung Fitness. Seleksi. Perkawinan Silang. Mutasi. Individu Baru. Tidak. Ya. Optimal ?. Solusi Optimal. Aplikasi Algoritma Genetika. Aplikasi GA untuk mencari nilai maksimal dari suatu fungsi

akiva
Download Presentation

Algoritma Genetika

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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)=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 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 < 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 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) < 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 < 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 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 < 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 < 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 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) < 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. Training dengan algoritma genetika untuk mendapatkan nilai koefisien model linier  Hasil Peramalan Koefisien model linier Data Input Data Test (Forecast) 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 untuk learning/training Data prediksi Data input (time lag) Data test x(k) Input(1) Target(1) Input(2) Target(2) Input(3) Target(3) Input(k) Target(k) 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(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 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

More Related