• Tidak ada hasil yang ditemukan

HASIL DAN ANALISA

4.2. Analisa Data

4.2.2. Menghasilkan Fitness Function menggunakan metode Regresi Multi Linear Linear

Untuk menghasilkan fitness function, data yang diperoleh pada tabel 4.1 diproses lebih lanjut dengan metode regresi multi linear. Fitness function yang akan dihasilkan sebanyak 3 fitness function, yaitu fitness function untuk Volume Metal Removal (VMR), Tool Life (TL), dan Surface Roughness (Ra).

a. Fitness Function VMR

Dari tabel 4.1 di atas, X matriks dan Y vektor adalah:

X = Y =

X’ =

X’ X = X’ Y =

(X’ X)-1 =

Perkiraan kuadrat terkecil β adalah:

β’ = (X’ X)-1 X’ Y ... (4.1)

β’ =

Sehingga model numerik/matematik hasil regresi untuk fitness function VMR adalah sebagai berikut:

VMR (max) = 560,05875 - 7,00025v + 796,2375f + 102,56375a ... (4.2) b. Fitness function TL

Dari tabel 4.1 di atas, X matriks dan Y vektor adalah:

X = Y =

X’ =

X’ X = X’ Y =

(X’ X)-1 =

Perkiraan kuadrat terkecit β adalah:

β’ = (X’ X)-1 X’ Y ... (4.3)

β’ =

Sehingga model numerik/matematik hasil regresi untuk fitness function TL adalah sebagai berikut:

TL (max) = 63,63334 - 0,47367v - 38,3f - 2,565a ... (4.4) c. Fitness function Ra

Dari tabel 4.1 di atas, X matriks dan Y vektor adalah:

X = Y =

X’ =

X’ X = X’ Y =

(X’ X)-1 =

Perkiraan kuadrat terkecit β adalah:

β’ = (X’ X)-1 X’ Y ... (4.5)

β’ =

Sehingga model numerik/matematik hasil regresi untuk fitness function Ra adalah sebagai berikut:

Ra (min) = 1,133646 + 0,004196v + 1,905625f + 0,193437a ... (4.6) 4.3. Optimisasi Menggunakan Algoritma Genetika

Kita sudah mendapatkan fitness function untuk VMR, TL, dan Ra. Maka sekarang kita akan melakukan optimasi untuk mendapatkan nilai optimum untuk masing-masing fungsi.

4.3.1 Perhitungan Algoritma Genetika untuk Optimasi VMR 1. Menghasilkan Kromosom

Persamaan untuk fitness function VMR sebagai berikut:

max f(v,f,a) VMR = 560,05875 – 7,00025 v + 796,2375 f + 102,56375 a ... (4.7) Dengan fungsi kendala : 80,00 < v < 95,00

0,10 < f < 0,20 1,00 < a < 2,00

Representasi, langkah pertama, kita harus mengkodekan berbagai variabel keputusan ke dalam bentuk string-string biner. Panjang dari string-string tersebut sangat tergantung dari presisi yang diperlukan.

Sebagai contoh, domain dari variabel xj adalah [aj,bj] dan presisi yang diperlukan adalah dua angka dibelakang koma. Kebutuhan akan presisi berimplikasi terhadap jangkauan domain dari masing-masing variabel yang harus dibagi sedikitnya sebesar (bj – aj) x 102 jangkauan. Bit-bit yang diperlukan (didenotasikan dengan mj) untuk sebuah variabel dapat dihitung sebagai berikut:

2mj - 1 < (bj – aj) x 102 ≤ 2mj – 1 ... (4.8) Pemetaan dari string biner menjadi sebuah angka riil untuk variabel xj adalah straight-forward dan xj dapat dihitung sebagai:

xj = aj + decimal (substring j) x ... (4.9) Bit-bit yang diperlukan untuk variabel v, f, dan a dikalkulasikan sbb:

 (95 – 80) x 100 = 1.500

m = m1 + m2 + m3 = 11 + 4 + 7 = 22

Panjang sebuah kromosom diketahui = 22 bit, yang direpresentasikan sebagai berikut:

22 bit

Vj = 11011001110 1101 0011110 v = 11 bit f = 4 bit a = 7 bit

Nilai-nilai terkait untuk variabel v, f, dan a diberikan sebagai berikut:

Format biner Format desimal

v 11011001110 1742

f 1101 13

a 0011110 30

* v = 80 + 1742 x = 92,76502 ≈ 93,00

* f = 0,1 + 13 x = 0,186667 ≈ 0,19

* a = 1 + 30 x = 1,23622 ≈ 1,30 2. Membangkitkan Populasi Awal

Populasi awal dihasilkan secara acak sebagai berikut:

v1 = [11011001110 1101 0011110]

v = [11011110110 1000 0101101]

v3 = [01100111001 0101 0001101]

v4 = [10110111000 1111 1101101]

v5 = [10101001110 0110 0000100]

v6 = [01011000000 0110 0100001]

v7 = [11010111010 1100 1100010]

v8 = [00011001010 1000 0101101]

v9 = [00111001000 0000 1011111]

v10 = [11001011101 1111 1100010]

Didalam bentuk desimal, nilai-nilai di atas dikonversikan menjadi:

v1 = [v,f,a] = [(92,76502),( 0,186667),( 1,23622)]

v2 = [v,f,a] = [(93,05813),( 0,153333),( 1,354331)]

v3 = [v,f,a] = [(86,04543),( 0,133333),( 1,102362)]

v4 = [v,f,a] = [(90,72789),( 0,2),( 1,858268)]

v5 = [v,f,a] = [(89,95115),( 0,14),( 1,031496)]

v6 = [v,f,a] = [(85,15877),( 0,14),( 1,259843)]

v7 = [v,f,a] = [(92,61847),( 0,18),( 1,771654)]

v8 = [v,f,a] = [(81,48021),( 0,153333),( 1,354331)]

v9 = [v,f,a] = [(83,34148),( 0,1),( 1,748031)]

v10 = [v,f,a] = [(91,93698),( 0,2),( 1,771654)]

3. Evaluasi

Proses evaluasi fitness sebuah kromosom dapat dilakukan dengan langkah berikut:

Tabel 4.2 Prosedur evaluasi fitness Prosedur: Evaluasi

Step 1 Konversikan genotype kromosom menjadi phenotype. Dengan kata lain, string yang merupakan untaian bit-bit biner diubah menjadi nilai-nilai relatif,

xk = (vk, fk,ak), k = 1,2,....,pop_size.

Step 2 Evaluasi fungsi objektif f(xk)

Step 3 Konversikan nilai fungsi objektif ke dalam fitness.

Untuk permasalahan maksimasi, fitness secara sederhana sama dengan nilai dari fungsi objektif, eval(v1) = f(xk), k = 1,2,....,pop_size.

Nilai fungsi fitness berbagai kromosom di atas adalah sebagai berikut:

eval(v1) = [f(v,f,a)] = [f(92,76502),( 0,186667),( 1,23622)] = 186,103 eval(v2) = [f(v,f,a)] = [f(93,05813),( 0,153333),( 1,354331)] = 169,6233 eval(v3) = [f(v,f,a)] = [f(86,04543),( 0,133333),( 1,102362)] = 176,9463 eval(v4) = [f(v,f,a)] = [f(90,72789),( 0,2),( 1,858268)] = 274,7793 v4 eval(v5) = [f(v,f,a)] = [f(89,95115),( 0,14),( 1,031496)] = 147,6456 v5 eval(v6) = [f(v,f,a)] = [f(85,15877),( 0,14),( 1,259843)] = 204,6135

eval(v7) = [f(v,f,a)] = [f(92,61847),( 0,18),( 1,771654)] = 236,7365 eval(v8) = [f(v,f,a)] = [f(81,48021),( 0,153333),( 1,354331)] = 250,6717 eval(v9) = [f(v,f,a)] = [f(83,34148),( 0,1),( 1,748031)] = 235,5559 eval(v10) = [f(v,f,a)] = [f(91,93698),( 0,2),( 1,771654)] = 257,4319

Dapat dilihat bahwa kromosom v4 mempunyai nilai tertinggi dan v5 memiliki nilai terendah.

4. Seleksi

Secara praktis, untuk melakukan penyeleksian kita dapat mengadopsikan pendekatan roda roulette. Roda roulette dapat dikonstruksikan sebagai berikut:

e. Hitung nilai fitness eval(vk) untuk masing-masing kromosom vk :

Eval(v1) = f(xk), k = 1,2,....,pop_size ... (4.10) f. Hitung total fitness untuk populasi:

F = ... (4.11) g. Hitung probabilitas seleksi pk untuk masing-masing kromosom,

vk : pk = , k = 1,2,...,pop_size ... (4.12) h. Hitung probabilitas kumulatif qk untuk masing-masing kromosom vk :

qk = , k = 1,2,....,pop_size ... (4.13) Proses seleksi dimulai dengan memutar roda roulette sebanyak pop_size kali. Pada masing-masing waktu, sebuah kromosom tunggal dipilih untuk sebuah populasi yang baru, dengan cara sebagai berikut:

Tabel 4.3 Prosedur seleksi

Probabilitas seleksi pk untuk masing-masing kromosom vk, dimana k = 1,2,....,10, adalah sebagai berikut:

pk = , k = 1,2,....pop_size ... (4.15) p1 = , k = = 0,08696

p2 = , k = = 0,079259 p3 = , k = = 0,082681

p4 = , k = = 0,128395 p5 = , k = = 0,06899

p6 = , k = = 0,095609 p7 = , k = = 0,110619

p8 = , k = = 0,11713 p9 = , k = = 0,110067

p10 = , k = = 0,120289

Probabilitas kumulatif qk untuk masing-masing kromosom vk dimana k = 1,2,....,10, adalah sebagai berikut:

qk = , k = 1,2,....,pop_size ... (4.16) q1 = = p1 = 0,08696

q2 = = p1 + p2 = 0,08696 + 0,079259 = 0,166219

q3 = = p1 + p2 + p3 = 0,08696 + 0,079259 + 0,082681 = 0,2489 q4 = = p1 + p2 + p3 + p4 = 0,08696 + 0,079259 + 0,082681 + 0,128395 = 0,377295

q5 = = p1 + p2 + p3 + p4 + p5 = 0,08696 + 0,079259 + 0,082681 + 0,128395 + 0,06899 = 0,446285

q6 = = p1 + p2 + p3 + p4 + p5 + p6 = 0,08696 + 0,079259 + 0,082681 + 0,128395 + 0,06899 + 0,095609 = 0,541894

q7 = = p1 + p2 + p3 + p4 + p5 + p6 + p7 = 0,08696 + 0,079259 + 0,082681 + 0,128395 + 0,06899 + 0,095609 + 0,110619 = 0,652513 q8 = = p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 = 0,08696 + 0,079259 + 0,082681 + 0,128395 + 0,06899 + 0,095609 + 0,110619 + 0,11713 = 0,769643

q9 = = p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 = 0,08696 + 0,079259 + 0,082681 + 0,128395 + 0,06899 + 0,095609 + 0,110619 + 0,11713 + 0,110067 = 0,879711

q10 = = p1 + p2 + p3 + p4 + p5 + p6 + p7 + p8 + p9 + p10 = 0,08696 + 0,079259 + 0,082681 + 0,128395 + 0,06899 + 0,095609 + 0,110619 + 0,11713 + 0,110067 + 0,120289 = 1

Sekarang kita bersiap untuk memutar roda roulette 10 kali, dan pada masing-masing waktu kita pilih satu kromosom sebagai anggota populasi baru. Kita asumsikan sebarisan 10 angka-angka acak yang telah dipilih pada interval [0,1] adalah sebagai berikut:

1. 0.2548 (r1) 2. 0.2240 (r2) 3. 0.6678 (r3)

4. 0.8444 (r4) 5. 0.3445 (r5) 6. 0.7805 (r6) 7. 0.6753 (r7) 8. 0.0067 (r8) 9. 0.6022 (r9) 10. 0.3868 (r10)

Populasi baru yang dihasilkan adalah:

v1’ v4 = [10110111000 1111 1101101] q3 < r1 < q4

v2’ v3 = [01100111001 0101 0001101] q2 < r2 < q3

v3’ v8 = [00011001010 1000 0101101] q7 < r3 < q8

v4’ v9 = [00111001000 0000 1011111] q8 < r4 < q9

v5’ v4 = [10110111000 1111 1101101] q3 < r5 < q4 v6’ v9 = [00111001000 0000 1011111] q8 < r6 < q9

v7’ v8 = [00011001010 1000 0101101] q7 < r7 < q8 v8’ v1 = [11011001110 1101 0011110] r8 < q1 v9’ v7 = [11010111010 1100 1100010] q6 < r9 < q7 v10’ v5 = [10101001110 0110 0000100] q4 < r10 < q5 5. Crossover

Crossover yang digunakan disini adalah dengan menggunakan pendekatan one-cut-point dan menukarkan bagian kanan dari kedua parent untuk menghasilkan offspring.

Probabilitas crossover dapat kita atur sebagai pc = 0,25, ini bermaksud kita berharap bahwa pada rata-rata 25%, kromosom-kromosom akan melalui crossover.

Kita peroleh sebarisan angka acak sebagai berikut:

0.9160 rk > 0,25

0.0012 (crossover) rk < 0,25 v2’ 0.4624 rk > 0,25

0.4243 rk > 0,25 0.4609 rk > 0,25 0.7702 rk > 0,25 0.3225 rk > 0,25 0.7847 rk > 0,25 0.4714 rk > 0,25

0.0358 (crossover) rk < 0,25 v10’ Ini berarti kromosom,

v2’ = [01100111001 0101 0001101]

v10’ = [10101001110 0110 0000100]

Kita pilih untuk crossover. Kita pilih sebarang nilai pos secara acak berkisar [11,11] (karena total panjang sebuah kromosom = 22) sebagai cut-point atau posisi titik crossover. Asumsikan pos = 11, maka bagian kanan keseluruhan bit setelah bit ke sebelas dari kedua parent akan ditukarkan secara silang.

Tukarkan bagian kanan dari kedua parent setelah gen ke- 11, v2’ = [01100111001 * 0101 0001101]

v10’ = [10101001110 * 0110 0000100]

menjadi,

v2’ = [01100111001 * 0110 0000100]

v10’ = [10101001110 * 0101 0001101]

Offspring yang dihasilkan adalah:

v2’ = [01100111001 0110 0000100]

v10’ = [10101001110 0101 0001101]

6. Mutasi

Mutasi berarti mengubah satu atau lebih gen-gen dengan suatu probabilitas yang setara dengan mutation rate. Probabilitas mutasi diatur sebagai pm = 0,01, artinya, pada rata-rata 1% dari total bit dalam populasi akan melalui mutasi. Ada m x pop_size = 22 x 10 = 220 bit di dalam keseluruhan populasi. Maka kita harapkan ada sekitar 2,2 mutasi pergenerasi, dimana setiap bit-bit mempunyai kesempatan yang sama untuk dimutasikan. Untuk itu, kita perlukan sebarisan sebarang nilai acak rk, k = 1,2,3,....,220 dengan kisaran nilai [0,1]. Mutasi dapat dilakukan jika memenuhi syarat (rk < pm), dimana rk adalah nilai yang dibangkitkan secara acak.

Tabel 4.4 Nilai rk secara acak

6 0.3922 12 0.0462 18 0.0344

6 0.1112 12 0.1320 18 0.3532

Berikut adalah gen-gen yang mengalami mutasi:

Tabel 4.5 Gen-gen yang mengalami mutasi bit_pos chrom_num bit_no random_num

123 6 13 0,0046

v6’ = [00111001000 0000 1011111]

Setelah dimutasikan,

v6’ = [00111001000 0100 1011111]

Setelah mutasi, keseluruhan populasi akhir yang dihasilkan adalah sebagai berikut:

v1’ = [10110111000 1111 1101101]

v2’ = [01100111001 0110 0000100]

v3’ = [00011001010 1000 0101101]

v4’ = [00111001000 0000 1011111]

v5’ = [10110111000 1111 1101101]

v6’ = [00111001000 0100 1011111]

v7’ = [00011001010 1000 0101101]

v8’ = [11011001110 1101 0011110]

v9’ = [11010111010 1100 1100010]

v10’ = [10101001110 0101 0001101]

Populasi akhir yang dihasilkan setelah dilakukan mutasi, akan dijadikan sebagai populasi awal untuk generasi kedua.

Kita konversikan vk ke dalam desimal, kemudian kita peroleh fitness untuk masing-masing nilai fungsi objektif sebagai berikut:

[f(v,f,a)] = [f(90,72789),( 0,2),( 1,858268)] = 274,7793 [f(v,f,a)] = [f(86,04543),( 0,14),( 1,031496)] = 174,9866 [f(v,f,a)] = [f(81,48021),( 0,153333),( 1,354331)] = 250,6717 [f(v,f,a)] = [f(83,34148),( 0,1),( 1,748031)] = 235,5559 [f(v,f,a)] = [f(90,72789),( 0,2),( 1,858268)] = 274,7793 [f(v,f,a)] = [f(83,34148),( 0,126667),( 1,748031)] = 256,7892 [f(v,f,a)] = [f(81,48021),( 0,153333),( 1,354331)] = 250,6717 [f(v,f,a)] = [f(92,76502),( 0,186667),( 1,23622)] = 186,103 [f(v,f,a)] = [f(92,61847),( 0,18),( 1,771654)] = 236,7365 [f(v,f,a)] = [f(89,95115),( 0,133333),( 1,102362)] = 149,6053

Sekarang kita telah melengkapi satu iterasi dari algoritma genetika, maka untuk iterasi berikutnya akan digunakan bantuan software MATLAB.

Dokumen terkait