Upload
moshe
View
65
Download
4
Embed Size (px)
DESCRIPTION
GAOT. Speaker: Moch. Rif’an [email protected]. Inisializega. function[pop]=initializega(num,bounds,evalFN,evalOps,options) Parameter input: Num : jumlah individu dalam satu populasi Bounds: matriks batas bawah dan batas atas dari allele. Inisializega. evalFN: fungsi evaluasi - PowerPoint PPT Presentation
Citation preview
Inisializega
function[pop]=initializega(num,bounds,evalFN,evalOps,options)
Parameter input:• Num : jumlah individu dalam satu
populasi• Bounds : matriks batas bawah dan
batas atas dari allele
Inisializega
• evalFN : fungsi evaluasi• evalOps : opsi untuk fungsi evaluasi,
dan memiliki nilai default [ ]• Options : matriks opsi untuk
inisialisasi, dan terdiri atas kolom pertama adalah epsilon, dan kolom kedua adalah 1 jika float dan 0 jika biner.
ga
• function[x,endpop,bpop,traceinfo]=ga(bounds,evalFN,evalOps,startPop,opts,termFN,termOps,selectFN,selectops,xoverFNs,xOverOps,mutFNs,mutOps)
ga
• Bounds : matriks batas bawah dan batas atas dari allele
• evalFN : fungsi evaluasi• evalOps : opsi untuk fungsi evaluasi,
dan memiliki nilai default [ NULL]• startPop : matriks yang merupakan
hasil inisialisasi
ga
• Opts : [epsilon prob_ops display] dengan epsilon merupakan perubahan yang dibutuhkan untuk mempertimbangkan dua penyelesaian berbeda, prob_ops adalah 0 jika digunakan algoritma versi biner dan 1 jika digunakan versi flot, display mengendalikan tampilan perkembangan algoritma, 1 menampilkan generasi terbaru dan penyelesaian terbaik, 0 tidak ada tampilan selama program berjalan. [1e-6 1 0]
ga
• termFN : nama fungsi terminasi• termOps : string option yang akan
digunakan dalam fungsi terminasi.• Bounds : matriks batas bawah dan
batas atas dari allele• SelectFN: nama fungsi seleksi .m file• SelectOps : string yang digunakan
dalam fungsi seleksi
ga
• xOverFNs : string fungsi crossover• xOverOps : matriks parameter
crossover• mutFNs : string fungsi mutasi• mutOps : matriks parameter mutasi
Fungsi evaluasi
function [sol, val] = GA_Eval(sol,options)
Parameter input:• sol : individu dalam populasi• Options : matriks opsi untuk inisialisasi,
dan terdiri atas kolom pertama adalah epsilon, dan kolom kedua adalah 1 jika float dan 0 jika biner.[1e-6 1]
Fungsi evaluasi
• Parameter output:
• sol : individu baru dalam populasi setelah ditambahkan nilai fitness
• val : nilai fitness
Fungsi Operator
• Simple crossover
• Uniform crossover
• arithXover
• cyclicXover
• dsb
Simple crossover
function [c1,c2] = SimpleXover(p1,p2,bounds,Ops)
Mengambil dua parent p1, p2 dan melakukan crossover sederhana tunggal
• Bounds : matriks batas bawah dan batas atas dari allele
Simple crossover
• Ops adalah [current_generation xoverops]
Simple crossover
• Membangkitkan angka random r dengan distribusi seragam dari 1 sampai m dan membuat dua individu baru dengan YX dan
lain yanguntuk ,
jika,
lain yanguntuk ,
jika,
i
ii
i
ii
x
riyy
y
rixx
Uniform crossover
function [ch1,ch2,t] = UniformXover(par1,par2,bounds,Ops)
Mengambil dua parent p1, p2 dan melakukan crossover pada beberapa gen dari dua buah chromosome
• Bounds : matriks batas bawah dan batas atas dari allele
Uniform crossover
• Ops adalah [current_generation xoverops]
Uniform crossover
• Membangkitkan angka random biner r, dan membuat dua individu baru dengan YX dan
lain yanguntuk ,
1 jika,
lain yanguntuk ,
1 jika,
i
ii
i
ii
x
ryy
y
rxx
Mutasi
• Mengubah satu individu menjadi satu individu baru
Jenis:• Inversionmutation• multiNonUnivMutation• nonUnivMutation• binaryMutation• boundaryMutation• unifMutation• dsb
unifMutation
Mengubah satu parameter parent berdasarkan distribusi probabilitas uniform
function [parent] = UnifMutation(parent,bounds,Ops)
unifMutation
• Memilih variabel r secara acak, dan mengubahnya menjadi angka acak uniform:
• Dengan:– r = angka random uniform (0,1)
– ai = selisih batas atas dan bawah sebuah variabel I
– bi = batas bawah sebuah variabel
)( rabx iii
Fungsi seleksi
• tournSelect
• roulette
• normGeomSelect
tournSelect
function[newPop] = tournSelect(oldPop,options)
• newPop : Populasi baru yang diseleksi dari oldPop.
• oldPop : Populasi saat ini
roulette
function[newPop] = roulette(oldPop,options)
• newPop : Populasi baru yang diseleksi dari oldPop.
• oldPop : Populasi saat ini
normGeomSelect
function[newPop] = normGeomSelect(oldPop,options)
• newPop : Populasi baru yang diseleksi dari oldPop.
• oldPop : Populasi saat ini
Genetic Algorithms (VIIIa)
Results from a small example:
6,0
)7()11(),(
21
2221
22
2121
xx
xxxxxxfMinimize
Initial Population Generation 10
Genetic Algorithms (VIIIb)
Gen
era
tion
20
Gen
era
tion
30
Gen
era
tion
40
Gen
era
tion
50
Transit Routing: Description
Transit Routing: Formulation (II)
Representation……….
Transit Routing: Results
0
1
14
67
13
8
12
4
10
3 5
9
2
11 Mandl’s Swiss network --- a benchmark problem
y
0.91
3
4
5
6
7
8
x1
x3
x22
-0.8
0.4
0.8
-0.7
0.2
-0.2
0.6-0.3 0.1
-0.2
0.9
-0.60.1
0.3
0.5
From neuron:To neuron:
1 2 3 4 5 6 7 8
12345678
0 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0
0.9 -0.3 -0.7 0 0 0 0 0 -0.8 0.6 0.3 0 0 0 0 00.1 -0.2 0.2 0 0 0 0 00.4 0.5 0.8 0 0 0 0 00 0 0 -0.6 0.1 -0.2 0.9 0
Chromosome: 0.9 -0.3 -0.7 -0.8 0.6 0.3 0.1 -0.2 0.2 0.4 0.5 0.8 -0.6 0.1 -0.2 0.9
Encoding a set of weights in a chromosomeEncoding a set of weights in a chromosome
Encoding of the network topologyEncoding of the network topology
From neuron:To neuron:
1 2 3 4 5 6
123456
0 0 0 0 0 00 0 0 0 0 01 1 0 0 0 01 0 0 0 0 00 1 0 0 0 00 1 1 1 1 0
3
4
5
y6
x22
x11
Chromosome: 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0
Ada Pertanyaan ?
Tugas untuk minggu depan
Buatlah fungsi • Single point crossover (int,bin)• Multipoint crossover (int,bin)• Uniform crossover (int,bin)• Single point mutation (int,bin)• Double point mutation (int,bin)• Uniform mutation (int,bin)• Selection (int,bin)
• Parent1