GENETIC ALGORITHMS (GAs) Pendahuluan Prinsip Algoritma Genetika Komponen Algoritma Genetika Tahapan Algoritma Genetika Contoh Kasus Optimisasi Latihan Soal Referensi : Michalewics, Z. Genetic Algorithms+Data Strauctures=Evolution Programs. Third Ed. Springer, New York, 1996. 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 finitestate machines 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) : Natural and Artificial Systems Adaptation in CALLED : EVOLUTION PROGRAMS, [Michalewicz,1996] algoritme probabilistik yang menjaga individu-individu dari populasi pada generasi ke t : P ( t ) { x 1 , x 2 ,..., x n } t t 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 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. 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. The baby rabbits will (on average) be faster and smarter than these in the original population because more faster, smarter parents survuved the foxes Prinsip GA memaintain P(t) t 1. Setiap individu x i merepresentasikan suatu solusi 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 mi:SS Unary transformation (mutation), create new individual by a small change in a single individual cj:SxSx…xSS Higher order transformations (crossover), create new individual by combining parts of several (two or more) individuals 4. Setelah melalui beberapa generasi, solusi akan konvergen ke nilai optimum Struktur Pemrograman 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.) 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) 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 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)*10d Jika jumlah bit pada kromosom adalah m, maka : 2 m 1 ( b a ) * 10 d 2 m 1 Maka nilai m adalah : (b a ) Decoding=a+desimal(kromosom)* 2 m 1 Ilustrasi xЄ[-3.0,12.1] a. Batas bawah -3.0 dan batas atas 12.1 b. Misal diinginkan ketelitian 5 angka dibelakang koma, 0.00001 Jarak antar titik pada domain : 10-5=0.00001 Jumlah titik pada domain : (12.1-(-3.0))*105=1510000 Jumlah bit pada kromosom : Ilustrasi Misal kromosom : Nilai desimal = 0*220 + 1*219 + 0*218 + ……………………….. +0*20 = 667398 Hasil decoding : -3+667398* 12 . 1 ( 3 . 0 ) 2 21 1 =1.80543 Pembangkitan Populasi Awal 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 : Untuk i=1 s.d. n (#n adalah ukuran populasi) 1. Untuk j=1 s.d 21 1. Bangkitkan digit biner r=random{1,0} 2. xj=random{1,0} 2. Kromosomi=x1x2x3…x21 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 : 12 . 1 ( 3 . 0 ) Hasil decoding, x= -3+667398* 2 21 1 =1.80543 nilai fitness=x*sin(10*3.14*x)+1=1.255214 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 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 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 : JIKA rЄ[qk-1,qk], k=1, 2, 3, …, n MAKA individu ke k terpilih sebagai parent Dalam hal ini : n adalah ukuran populasi pi : proporsi fitnes individu ke i, i=1, 2, 3, …, n qj=p1+p2+p3+…+pj, dengan j=1, 2, 3, …, n dan q0=0 Ilustrasi Seleksi 1. Untuk kasus sebelumnya, misalkan populasi awal adalah : 2. Dari 5 individu tersebut dapat disusun tabel : Ilustrasi Seleksi 3. Misalkan bilangan acak yang terpilih berturut-turut adalah adalah : r=0.64Є[q4,q5] Individu 5 terpilih r=0.95Є[q4,q5] Individu 5 terpilih kembali r=0.21Є[q1,q2] Individu 2 terpilih r=0.11Є[q0,q1] Individu 1 terpilih r=0.61Є[q3,q4] Individu 4 terpilih 4. Maka individu untuk proses selanjutnya (crossover dan mutasi) adalah : 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 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 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 kromosom 1 1 Ind 1 x x1 Ind 2 x 1 2 1 1 x2 1 ... xn 1 ... xn x1 x2 aЄ[0,1] anak 1 a x 1 (1 a ) x 1 1 2 anak 2 (1 a ) x 1 ax 1 1 2 ax 2 (1 a ) x 2 ... ax n (1 a ) x n (1 a ) x 2 ax 2 ... (1 a ) x n ax n 1 2 1 2 1 2 1 2 Mutasi 1. Mutasi merupakan proses menghasilkan keturunan melalui perubahan internal pada sebuah kromosom. 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) Contoh : Gen posisi lokus 12 bermutasi : Mutasi Lainnya 3. Dikenal beberapa mutasi lainnya : a. Inversion : select two points along the length of the chromosome x1 x2 x3 x4 x5 x6 x7 x8 x9 x 10 x1 x2 x3 x8 x7 x6 x5 x4 x9 x 10 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 Parameter-Parameter pada GA Pada Implementasi GA dikenal beberapa parameter : a. n : jumlah individu pada setiap generasi b. pc : probability of crossover c. pm : 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≤pc 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≤pm maka terjadi mutasi untuk lainnya maka tidak terjadi mutasi 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 Ilustrasi 1. Ingin menentukan nilai (x1,x2) yang memaksimumkan fungsi : f ( x 1 , x 2 ) 21 . 5 x 1 sin 4 x 1 x 2 sin 20 x 2 Dengan : -3.0≤x1≤12.1 Dan 4.1≤x2≤5.8 2. Misalkan ketelitian yang diinginkan untuk kedua variabel tersebut adalah 4 angka dibelakang koma, maka jumlah bit untuk x1 dan x2 adalah : x1 : #bit=2log((12.1-(-3.0))104+1) =[17.204]=18 x2 : #bit=2log((5.8-4.1)104+1) =[14.053]=15 1 kromosom dikodekan dengan 18+15=33 bit 18 bit pertama untuk x1 15 bit sisanya untuk x2 Ilustrasi 3. Contoh : x1 x2 x1 =-3.0+desimal(010001001011010000)(15.1/218-1) = 1.0524 x2 =4.1+desimal(111110010100010)(1.7/215-1) = 5.7553 Titik (1.0524,5.7553) Fitness=f(1.0524,5.7553)=20.2526 1. Populasi awal a. Misal ukuran populasi 20 kromosom b. Secara acak 20 kromosom tersebut adalah : 2. Seleksi a. Proporsi setiap kromosom adalah adalah : b. Sehingga proporsi kumulatifnya adalah : 2. Seleksi c. Setelal roulette diputar 20 kali (diimplementasikan dengan membangkitkan 20 bilangan acak rЄ[0,1]), dan misalkan diperoleh r berturut-turut : 1. q10 <r1=0.513870<q11 v11 terpilih 2. q3 <r2=0.175741<q4 v4 terpilih …………………………… 20. q15 <r20=0.780237<q16 v16 terpilih 2. Seleksi d. Akhirnya diperoleh : 3. Crossover dan Mutasi Crossover a. Misalkan peluang terjadinya crossover adalah pc=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. r1=0.822951<0.25 V1’ tidak terpilih unt crossover 2. r2=0.151932<0.25 V2’ terpilih unt crossover 11. r11=0.031523<0.25 V11’ terpilih unt crossover 13. r13=0.166525<0.25 18. r18=0.200232<0.25 V13’ terpilih unt crossover V18’ terpilih unt crossover 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’ dengan v11’ v2’: 100011000101101001111000001110010 v11’: 111011101101110000100011111011110 Bangkitkan rЄ{1,2,3,…,32} sebagai posisi crossover Misalkan dihasilkan r=9 v2’: 100011000101101001111000001110010 v11’: 111011101101110000100011111011110 Hasil : v2’’: 100011000101110000100011111011110 v11’’: 111011101101101001111000001110010 Crossover V13’ dengan v18’ v13’: 000101000010010101001010111111011 v18’: 111011111010001000110000001000110 Bangkitkan rЄ{1,2,3,…,32} sebagai posisi crossover Misalkan dihasilkan r=20 v13’: 000101000010010101001010111111011 v18’: 111011111010001000110000001000110 Hasil : v13’’: 000101000010010101000000001000110 v18’’: 111011111010001000111010111111011 Crossover Hasil setelah crossover : 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 pm=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 : Mutasi e. Hasil setelah mutasi sebagai generasi ke 1 Mutasi e. Hasil setelah mutasi sebagai generasi ke 1 Terlihat total evaluasi generasi ke dua : 447.049688 Kromosom terbaik adalah v11, dengan nilai fitness 33.351874 Pada generasi awal nilai : total evaluasi : 387.776822) kromosom terbaik adl v15 dengan nilai fitness 30.060205 f. Berikutnya cek kondisi henti (total nilai evaluasi atau jumlah generasi) Generasi Ke 1000 Setelah generasi ke 1000 diperoleh : Generasi Ke 1000 Total fitness : 625.3729 Kromosom terbaik adalah yang ke 11, dengan fitness 35.477938 219154 9.6237 X1=-3.0+219154(15.1/(218-1) =9.6237 f(9.6237,4.4279)=35.477938 6320 X2=4.1+6320(1.7/(215-1)) =4.4279 f ( x 1 , x 2 ) 21 . 5 x 1 sin 4 x 1 x 2 sin 20 x 2 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 end %hitung fitnes %1: for i=1:N tem=0; for j=1:panjang tem=tem+kromosom(i,j)*(2^(panjang-j));