Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

GENETIC ALGORITHMS (GAs) Prinsip Algoritma Genetika Komponen Algoritma Genetika Tahapan Algoritma Genetika Contoh Kasus Optimisasi Pendahuluan Latihan.

Presentasi serupa


Presentasi berjudul: "GENETIC ALGORITHMS (GAs) Prinsip Algoritma Genetika Komponen Algoritma Genetika Tahapan Algoritma Genetika Contoh Kasus Optimisasi Pendahuluan Latihan."— Transcript presentasi:

1 GENETIC ALGORITHMS (GAs) Prinsip Algoritma Genetika Komponen Algoritma Genetika Tahapan Algoritma Genetika Contoh Kasus Optimisasi Pendahuluan Latihan Soal Referensi : Michalewics, Z. Genetic Algorithms+Data Strauctures=Evolution Programs. Third Ed. Springer, New York, 1996.

2 INTRODUCTION During the last 30 years : a growing interest in problem solving systems based on principle of evolution and hereditary Maintain a population of potential solution by using selection process based on fitness of individuals, and some “genetic” operators Many kinds, i.e. :  Evolution strategies (by Rechenberg, 1973; and Schwefel, 1981) : algorithms which imitate the principles of natural evolution for parameter optimization problems  Evolutionary programming (by Fogel, Owen, and Walsh, 1966) : a technique for searching through a space of small finite- state machines

3  Scatter search techniques (by Glover, 1977) : maintain a population of reference points and generate offspring by weighted linear combinations  Genetic algorithms, GAs (by Holland, 1975) : Adaptation in Natural and Artificial Systems CALLED : EVOLUTION PROGRAMS, [Michalewicz,1996] algoritme probabilistik yang menjaga individu-individu dari populasi pada generasi ke t : berada pada kondisi yang ‘fit’ dibanding individu-individu dari populasi pada generasi sebelumnya Optimisasi yang dilakukan melalui pencarian (searching) pada domain solusi dengan mengikuti prinsip evolusi alami. This algorithms do what the nature does

4 An example : Population of Rabbits 1. At any given time there is a population of rabbits. Some of them are faster and smarter than other 2. These faster and smarter rabbits are less likely to be eaten by foxes. Therefore more of them survive. Some of the slower, dumber rabbits will survive just because they are lucky. 5. The baby rabbits will (on average) be faster and smarter than these in the original population because more faster, smarter parents survuved the foxes 3. The surviving population of rabbits starts breeding (to make more rabbits). The breeding result in a good mixture of rabbit genetic material (some of slow breed with fast rabbits, some fast with fast, some smart with dumb rabbits, and so on). 4. Nature throws in a ’wild hare’ every once in a while by mutating some of the rabbit genetic material

5 Prinsip GA memaintain P(t) 2. Setiap individu dievaluasi berdasar tingkat fitness-nya. 3. Berikutnya populasi baru pada generasi ke t+1 dibentuk melalui: a. Tahap seleksi : Seleksi berbasis fitness b. Tahap transformasi : Beberapa individu mengalami operasi genetika untuk membentuk solusi-solusi baru 4. Setelah melalui beberapa generasi, solusi akan konvergen ke nilai optimum 1. Setiap individumerepresentasikan suatu solusi Unary transformation (mutation), create new individual by a small change in a single individual m i :S  S c j :SxSx…xS  S Higher order transformations (crossover), create new individual by combining parts of several (two or more) individuals

6 Struktur Pemrograman

7

8 COMPONENT OF GAs ? 1. A genetic representation for potential solutions to the problem 2. A way to create an initial population of potential solutions 3. An evaluation function that play the role of the environment, rating solutions in terms of their “fitness” 4. Genetic operators that alter the composition of children 5. Values for various parameters that the genetic algorithm uses (population size, probabilities of applying genetic operators, etc.)

9 Representasi Solusi 1.Untuk mendapatkan solusi optimum, GA melakukan searching pada state space (domain solusi) yang setiap individu/anggotanya dikodekan dengan suatu string yang disebut kromosom. 2. Struktur kromosom : A chromosome :  Made of genes aranged in linear succession  alele : a value of the gene  Loci : location of a certain gene (string position)

10 Representasi Solusi 1.Secara umum ada dua teknik : a. Biner : nilai setiap gen dikodekan biner (1 dan 0) b. Integer : nilai gen dikodekan desimal (1, 2, 3, …) 2. Pemilihan teknik representasi sangat tergantung permasalahan 3. Misal pada : a. Optimisasi fungsi, f(x)  representasi biner lebih sesuai b. Optimisasi tata letak alat  representasi integer pada struktur dua dimensi c. TSP  representasi integer (adjacency, ordinal, atau path representation) 4. Pemilihan teknik representasi akan berpengaruh pada algoritma mutasi dan crossover

11 Representasi Biner 1. Tahapan mengkodekan domain x menjadi kode biner : a. Tentukan batas bawah, a, dan batas atas nilai x, b. b. Tentukan tingkat ketelitian (d angka dibelakang koma) Jarak antar titik pada domain : 10 -d Jumlah titik pada domain : (b-a)*10 d Jika jumlah bit pada kromosom adalah m, maka : Decoding=a+desimal(kromosom)*  Maka nilai m adalah :

12 Ilustrasi xЄ[-3.0,12.1] a. Batas bawah -3.0 dan batas atas 12.1 b. Misal diinginkan ketelitian 5 angka dibelakang koma, Jarak antar titik pada domain : = Jumlah titik pada domain : (12.1-(-3.0))*10 5 = Jumlah bit pada kromosom :

13 Ilustrasi Misal kromosom : ……………………….. Nilai desimal = Hasil decoding : * 0* * * *2 0 = =

14 Pembangkitan Populasi Awal Untuk i=1 s.d. n (#n adalah ukuran populasi) 1. Populasi awal dapat dipilih secara acak atau bisa juga dipilih titik-titik tertentu yang dipandang mempunyai potensial sebagai solusi optimum 2. Pembangkitan secara random untuk ilustrasi di atas : 1. Untuk j=1 s.d 21 1.Bangkitkan digit biner r=random{1,0} 2.x j =random{1,0} 2. Kromosom i =x 1 x 2 x 3 …x 21

15 Fungsi Evaluasi 1. Fungsi evaluasi dibentuk sesuai dengan permasalahan yang akan dicari solusinya. Fungsi inilah yang dipergunakan sebagai kriteria optimum 2. Sebagai contoh sederhana, adalah permasalahan menemukan xЄ[-3.0,12.1] yang memaksimumkan f(x)=x*sin(10πx)+1 Maka fungsi f(x)=x*sin(10πx)+1 sebagai fungsi fitness Dengan fitness seperti ini, maka untuk ilustrasi di atas, kromosom :  Hasil decoding, x= * =  nilai fitness=x*sin(10*3.14*x)+1=

16 Proses Regenerasi 1.Proses ini terdiri dari 3 tahapan, yaitu : a. Seleksi b. Crossover c. Mutasi 2. Seleksi : memilih individu-individu sebagai parent yang akan menghasilkan generasi berikutnya 3. Crossover : mengkombinasikan antar dua parent untuk menghasilkan keturunan (child) 4. Mutasi : Secara acak, gen tertentu pada individu child dengan peluang tertentu akan mengalami mutasi

17 Proses Seleksi 1.Proses seleksi dilakukan dengan menggunakan putaran Roullete. Dengan aturan putaran roullete ini, luasan bidang roullete sebanding dengan proporsi nilai fitness setiap individu JIKA r Є[qk-1,qk], k=1, 2, 3, …, n MAKA individu ke k terpilih sebagai parent 2. Putaran roullete ini dapat diimplementasikan dengan pembangkitan bilangan acak r, dengan rЄ[0,1] 3. Dengan cara ini, interval [0,1] disekat-sekat untuk setiap individu dengan lebar sekatan sesuai dengan proporsi nilai fitness individu tersebut, dengan aturan seleksi sebagai berikut : Dalam hal ini : q j =p 1 +p 2 +p 3 +…+p j, dengan j=1, 2, 3, …, n dan q 0 =0 p i : proporsi fitnes individu ke i, i=1, 2, 3, …, n n adalah ukuran populasi

18 Ilustrasi Seleksi 1.Untuk kasus sebelumnya, misalkan populasi awal adalah : 2. Dari 5 individu tersebut dapat disusun tabel :

19 Ilustrasi Seleksi 3. Misalkan bilangan acak yang terpilih berturut-turut adalah adalah : r=0.64Є[q 4,q 5 ]Individu 5 terpilih r=0.95Є[q 4,q 5 ]Individu 5 terpilih kembali r=0.21Є[q 1,q 2 ]Individu 2 terpilih r=0.11Є[q 0,q 1 ]Individu 1 terpilih r=0.61Є[q 3,q 4 ]Individu 4 terpilih 4. Maka individu untuk proses selanjutnya (crossover dan mutasi) adalah :

20 Crossover 1. Crossover merupakan proses mengkombinasikan dua individu induk untuk menghasilkan dua individu baru. Teknik yang dilakukan ada beberapa sesuai dengan teknik representasinya. 2. Beberapa teknik Crossover yang dikenal adalah : 1. Simple crossover 2. Arithmetical crossover 3. Heuristic Crossover 4. Alternating-edge crossover 5. Subtour chunks crossover 6. Partially-mapped crossover (PMX) 7. Order Crossover (OX) 8. Cycle crossover (CX) 3. Simple crossover lebih disukai karena sederhana 4. Arithmetical crossover dipergunakan agar individu tidak keluar dari domain

21 Simple Crossover 1. Simple crossover dilakukan dengan menemukan posisi lokus tertentu tempat terjadi crossover. Kromosom terbagi menjadi dua segmen, yaitu dari posisi awal hingga posisi terjadinya crossover dan segmen kedua adalah setelah posisi terjadinya crossover. 2. Misal crossover antara individu 2 dan 4 pada ilustrasi sebelumnya, dan crossover terjadi setelah lokus ke 12 Posisi terjadi crossover

22 Arithmetical Crossover 1. Pada Simple crossover bisa saja dihasilkan keturunan yang berada diluar domain. Hal ini diatasi dengan menggunakan arithmetical crossover 2. Arithmetical crossover menggunakan rataan terboboti dari dua parent untuk menghasilkan keturunan Ind 1 Ind 2 aЄ[0,1] kromosom

23 Mutasi 1. Mutasi merupakan proses menghasilkan keturunan melalui perubahan internal pada sebuah kromosom. Contoh : Gen posisi lokus 12 bermutasi : 2. Salah satu prosedur mutasi yang sederhana untuk kromosom dengan representasi biner adalah dengan memilih sembarang posisi gen dan mengubah alelanya (1 menjadi 0 dan 0 menjadi 1)

24 Mutasi Lainnya 3. Dikenal beberapa mutasi lainnya : a. Inversion : select two points along the length of the chromosome b. Insertion : select a city and inserts it in a random place c. Displacement : select a subtour and inserts it in a random place d. Reciprocal exchange : swap two cities

25 Parameter-Parameter pada GA Pada Implementasi GA dikenal beberapa parameter : a. n : jumlah individu pada setiap generasi b. p c : probability of crossover c. p m : probability of mutation Crossover : a. Kromosom dipasang-pasangkan secara acak (jika jumlah kromosom ganjil, buang satu atau tambah satu) b. Bangkitkan bilangan acak rЄ[0,1] Jika r≤p c maka terjadi crossocer untuk lainnya maka tidak terjadi crossover Mutasi : a. Mutasi dilakukan pada setiap bit dari kromosom b. Bangkitkan bilangan acak rЄ[0,1] Jika r≤p m maka terjadi mutasi untuk lainnya maka tidak terjadi mutasi

26 TAHAPAN GA 1. Buat populasi awal secara acak 2. Evaluasi setiap kromosom dalam populasi dengan menggunakan “fungsi fitness” 3. Seleksi sejumlah kromosom untuk dijadikan “parent”, lalu ciptakan kromosom-kromosom baru dengan cara crossover (penyilangan) dan mutasi 4. Evaluasi kromosom-kromosom baru tersebut 5. Jika stopping criteria tercapai, maka stop. Jika belum terpenuhi, kembali ke langkah 3

27 Ilustrasi 1. Ingin menentukan nilai (x 1,x 2 ) yang memaksimumkan fungsi : 2. Misalkan ketelitian yang diinginkan untuk kedua variabel tersebut adalah 4 angka dibelakang koma, maka jumlah bit untuk x 1 dan x 2 adalah : Dengan : -3.0≤x 1 ≤12.1 Dan 4.1≤x 2 ≤5.8 x 1 : #bit= 2 log((12.1-(-3.0)) ) =[17.204]=18 x 2 : #bit= 2 log(( ) ) =[14.053]=15 1 kromosom dikodekan dengan 18+15=33 bit 18 bit pertama untuk x 1 15 bit sisanya untuk x 2

28 Ilustrasi 3. Contoh : x 1 =-3.0+desimal( )(15.1/ ) Titik (1.0524,5.7553) Fitness=f(1.0524,5.7553)= = x 2 =4.1+desimal( )(1.7/ ) = x1x1 x2x2

29 1. Populasi awal a. Misal ukuran populasi 20 kromosom b. Secara acak 20 kromosom tersebut adalah :

30 2. Seleksi a. Proporsi setiap kromosom adalah adalah : b. Sehingga proporsi kumulatifnya adalah :

31 2. Seleksi c. Setelal roulette diputar 20 kali (diimplementasikan dengan membangkitkan 20 bilangan acak rЄ[0,1]), dan misalkan diperoleh r berturut-turut : 1. q 10

32 2. Seleksi d. Akhirnya diperoleh :

33 3. Crossover dan Mutasi Crossover a. Misalkan peluang terjadinya crossover adalah p c =0.25 b. Maka pada setiap kromosom hasil seleksi dilakukan pembangkitan bilangan acak rЄ[0,1]. Jika r<0.25 maka kromosom tersebut dipilih untuk proses crossover c. Misal 20 bilangan acak adalah : 1. r 1 = <0.25 V1’ tidak terpilih unt crossover 2. r 2 = <0.25 V2’ terpilih unt crossover 11. r 11 = <0.25 V11’ terpilih unt crossover 18. r 18 = <0.25 V18’ terpilih unt crossover 13. r 13 = <0.25 V13’ terpilih unt crossover

34 Crossover d. Terlihat ada 4 kromosom yang terpilih. Karena jumlahnya genap, maka crossover dilakukan pada setiap dua kromosom yang urut. Jika jumlahnya ganjil, maka secara acak pilih satu kromosom lagi atau buang satu kromosom yang terpilih, sehingga dihasilkan jumlah genap. v2’: v11’: V2’ dengan v11’ Bangkitkan rЄ{1,2,3,…,32} sebagai posisi crossover Misalkan dihasilkan r=9 v2’: v11’: Hasil : v2’’: v11’’:

35 Crossover V13’ dengan v18’ Bangkitkan rЄ{1,2,3,…,32} sebagai posisi crossover Misalkan dihasilkan r=20 Hasil : v13’: v18’: v13’: v18’: v13’’: v18’’:

36 Crossover Hasil setelah crossover :

37 Mutasi a. Operator mutasi dikenakan pada gen sebuah kromosom, yang dalam hal ini adalah sebuah bit. Jumlah total bit adalah n*panjang kromosom=20*33=660 bit b. Misalkan parameter mutasi adalah p m =0.01 c. Pada setiap bangkitkan bilangan acak rЄ[0,1]. Jika r<0.01, maka bit tersebut mengalami mutasi (1 menjadi 0 dan 0 menjadi 1) d. Oleh karena itu diperoleh 660 bilangan acah, dan misalkan yang kurang dari 0.01 ada 5, yaitu :

38 Mutasi e. Hasil setelah mutasi  sebagai generasi ke 1

39 Mutasi e. Hasil setelah mutasi  sebagai generasi ke 1 Terlihat total evaluasi generasi ke dua : Pada generasi awal nilai : total evaluasi : ) kromosom terbaik adl v15 dengan nilai fitness Kromosom terbaik adalah v11, dengan nilai fitness f. Berikutnya cek kondisi henti (total nilai evaluasi atau jumlah generasi)

40 Generasi Ke 1000 Setelah generasi ke 1000 diperoleh :

41 Generasi Ke 1000 Total fitness : Kromosom terbaik adalah yang ke 11, dengan fitness X1= (15.1/( ) = X2= (1.7/( )) = f(9.6237,4.4279)=

42

43 Latihan Soal clear %bangkitkan N kromosom, panjang 21, minimum -3 dan max 12 format long; N=10; panjang=21; kecil=-3; besar=12; for i=1:N for j=1:panjang kromosom(i,j)=round(rand(1)); end %hitung fitnes % 1 : for i=1:N tem=0; for j=1:panjang tem=tem+kromosom(i,j)*(2^(panjang-j)); end desimalnya=kecil+tem*((besar-kecil)/((2^panjang)-1)) fit=2*(desimalnya^3); kromosom(i,panjang+1)=desimalnya; kromosom(i,panjang+2)=fit; end %mutasi for i=1:10 for j=1:21 r=rand(1); if r<0.01; k(i,j)=1; else k(i,j)=0; end end


Download ppt "GENETIC ALGORITHMS (GAs) Prinsip Algoritma Genetika Komponen Algoritma Genetika Tahapan Algoritma Genetika Contoh Kasus Optimisasi Pendahuluan Latihan."

Presentasi serupa


Iklan oleh Google