Kuliah XII Metkuan

advertisement
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: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
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));
Download