340 likes | 487 Views
GAOT. Speaker: Moch. Rif’an rif_an91@yahoo.com. 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
E N D
GAOT Speaker: Moch. Rif’an rif_an91@yahoo.com
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
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
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
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: Minimize Initial Population Generation 10
Genetic Algorithms (VIIIb) Generation 20 Generation 30 Generation 50 Generation 40
Transit Routing: Formulation (II) Representation……….
0 2 5 3 4 9 7 6 1 8 14 11 10 13 12 Transit Routing: Results Mandl’s Swiss network --- a benchmark problem
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)