# GENETIC ALGORITHMS (GAs)

## Presentasi berjudul: "GENETIC ALGORITHMS (GAs)"— Transcript presentasi:

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 finite- state machines

This algorithms do what the nature does
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

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)
1. Setiap individu 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:SS Unary transformation (mutation), create new individual by a small change in a single individual cj:SxSx…xSS 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 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 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 :  Maka nilai m adalah : Decoding=a+desimal(kromosom)*

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 : 10-5= Jumlah titik pada domain : (12.1-(-3.0))*105= Jumlah bit pada kromosom :

Ilustrasi Misal kromosom : Nilai desimal = ……………………….. = 667398
0*220 + 1*219 + 0*218 + +0*20 = Hasil decoding : * =

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 Bangkitkan digit biner r=random{1,0} 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 :  Hasil decoding, x= * =  nilai fitness=x*sin(10*3.14*x)+1=

Proses Regenerasi 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 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 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 Ind 1 Ind 2 aЄ[0,1]

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 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

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 : 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(( )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( )(15.1/218-1) = x2 =4.1+desimal( )(1.7/215-1) = Titik (1.0524,5.7553) Fitness=f(1.0524,5.7553)=

1. Populasi awal a. Misal ukuran populasi 20 kromosom
b. Secara acak 20 kromosom tersebut 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= <q11 v11 terpilih 2. q3 <r2= <q4 v4 terpilih …………………………… 20. q15 <r20= <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.25 V1’ tidak terpilih unt crossover 2. r2= <0.25 V2’ terpilih unt crossover 11. r11= <0.25 V11’ terpilih unt crossover 13. r13= <0.25 V13’ terpilih unt crossover 18. r18= <0.25 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’: v11’: Bangkitkan rЄ{1,2,3,…,32} sebagai posisi crossover Misalkan dihasilkan r=9 v2’: v11’: Hasil : v2’’: v11’’:

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

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 : Kromosom terbaik adalah v11, dengan nilai fitness Pada generasi awal nilai : total evaluasi : ) kromosom terbaik adl v15 dengan nilai fitness 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 9.6237 6320 219154 X2= (1.7/(215-1)) =4.4279 X1= (15.1/(218-1) =9.6237 f(9.6237,4.4279)=

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 : tem=0; tem=tem+kromosom(i,j)*(2^(panjang-j)); desimalnya=kecil+tem*((besar-kecil)/((2^panjang)-1)) fit=2*(desimalnya^3); kromosom(i,panjang+1)=desimalnya; kromosom(i,panjang+2)=fit; %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;

Presentasi serupa