BABIV
DESAIN ALGORITMA DAN PROGRAM
4.1 DESAIN ALGORITMA
4.1.1 ALGORITMA SIMULATED ANNEALING 4.1.1.1 PARAMETER
Parameter-parameter awal yang diperlukan oleh algoritma Simulated Annealing ini adalah sebagai berikut:
• Temperatur Awal, merupakan penanda awal iterasi. Dimana nanti temperatur awal ini akan terus berkurang hingga mencapai temperatur akhir.
• Temperatur Akhir, merupakan batas akhir penanda iterasi sudah dapat dihentikan.
• Faktor Reduksi Suhu, merupakan angka yang digunakan untuk menurunkan suhu secara bertahap dan terkendali.
• Angka replikasi, merupakan angka yang menunjukkan berapa kali loop dalam harus dilakukan sebelum menurunkan suhu.
Gambar 4.1 FlowChart Algoritma Simmulated Annealing Langkah-langkah sistematis dari algoritma ini adalah sebagai berikut:
1. Soiusi awal didapatkan dari penjadwalan heuristik SPT (Shortest Processing Time), dihitung nilai objektifhya yaitu Ms dan F.
2. Menentukan parameter-parameter awal yang dibutuhkan.
antara 0 dan 1, jika pm < p maka jadwal baru diterima, jika tidak jadwal lama tetap dipertahankan. Jika A < 0 maka jadwal baru langsung diterima.
Secara umum A memiliki pengertian selisih keunggulan jadwal baru terhadap nilai minimum yang dihasilkan dengan jadwal lama terhadap nilai minimum yang dihasilkan.
8. Apabila kondisi replikasi lokal telah dipenulii, maka lakukan reduksi terhadap suhu dengan rumusan T, = r x T,_i.
9. Kembali ke langkah tiga^ampai kriteria penghentian iterasi terpenuhi.
4.1.1.3 CONTOH MANUAL
Akan dilanjutkan contol pada tabel 2.3 yang telah didapatkan solusinya
xdengan algoritma SPT pada tabel 2.4, untuk dijalankan pada algoritma ini.
Parameter Awal: '
Untuk contoh ini, diambil angka 0.5 untuk suhu awal (To), faktor reduksi suhu (r) ditetapkaii sebesar 0.9. Untuk suhu akhir (Ta), ditetapkan untuk contoh ini agar terjadi 4 kali pengurangan suhu, maka Ta =0.5x(0.9y =0.328 . Untuk replikasi pada satu tingkat suliu (R) ditetapkan sebesar 2. wl dan w2 ditetapkau sebesar 0.5 karena bobot kepentingannya dianggap sama.
Tabel 4.1 Problem Awal Job/Mesin
1 2 3 4 5
1 0 6 0 2 6
2 0 3 4 9 8
3 8 1 0 3 7
4 2 3 8 7 3
5 2 4 1 3 1
Problem ini sudali diketaliui SPT-nya adalah : 1-3-2-4-5. Jadwal ini menjadi solusi awal bagi algoritma Siimdaled Annelaing. Dengan demikian dapat dilanjutkan untuk menghitung nilai-nilai objektifiiya:
Tabel 4.2 Penjadvvalan solusi awal
Job 1 3 2 4 5
Mesin 1 S
0 0 0 6 8
E- 0 0 6 8 14
Mesin 2 S
0 0 6 9 18
E 0 4 9 18 26
Mesin 3 S
0 8 9 18 26
E 8 8 10 21 33
Mesin 4 S
co
10 18 21 33
E 10 18 21 28 36
Mesin 5 S
10 18 21 28 36
E 12 19 25 31 37
Dari tabel 4.2, didapatkan nilai objektif Makespan (Ms) adalah sebesar ?7 dan Total Flowtime (F) adalah sebesar 12+19+25+31+37 = 124.
Iterasi 1.1 T0 = l ; r = l
\
Iterasi 1.2 T0 = 0 . 5 ; r = 2
Su : 1-2-3-4-5 Ms = 41 ; F = 1 2 7 Dicari dua buah nilai random r\ dan r2, dengan posisi ke-2.
S ib: 1-4-3-2-5
Tabel 4.4 Penjadwalan iterasi 1.2
= 4 dan r2 = 2. Tukarkan posisi job ke-4
Job 1 4 3 2 5
Mesin 1 S
L 0
0 2 2 8
E 0 2 2 8 14
Mesin 2 S
0 2^
11 15
[3
0 11 15 18 18 | 26
Mesin 3 S
0 11 15 18 26
E 8 14 15 19 33
Mesin 4 S
8 14 21 29 33
E 10 2
L
291 32 36
Mesin 5 S
10 21 29 32 36
E 12 24 30 36 37
Iterasi 2.1
To = 0 . 5 x 0 . 9 = 0 . 4 5 ; r = 1 S ib: 1-4-3-2-5 ; M s = 3 7 ; F = 139 Dicari dua buah nilai random n dan r2, dengan posisi ke-4.
S2 a: 2-4-3-1-5
Tabel 4.5 Penjadwalan iterasi 2.1
= 1 dan r2 = 4. Tukarkan posisi job ke-1
Job 2 4 3 1 5
Mesin 1 S
0 6 8 8 8
E 6 8 8 8 14
Mesin 2 S
6 9 18 22 22
E 9 18 22 22 30
Mesin 3 S
9 18 22 22 30
E 10 21 22 30 37
Mesin 4 S
10 21 28 36 38
E
13 28 36 38 41
Mesin 5 S
13
f 2 8
36 38 41
E 17 31 37 40 42
Karena px < p, maka jadwal baru tersebut bisa diterima.
Iterasi 2.2 T0 = 0.45 ; r = 2
S2 a: 2-4-3-1-5 ; Ms = 4 2 ; F = 167
Dicari dua buah nilai random T| dan r2, ri = 2 dan r2 = 4. Tukarkan posisiyoi ke-2 dengan posisi ke-4.
S2 b: 2-1-3-4-5
Tabel 4.6 Penjadwalan iterasi 2.2
Job 2 1 3 4 5
Mesin 1 S
0 6 6 6 8
E 6 6 6 8 14
Mcsin 2 S
6 9 9 13 22
E 9 9 13 22
30
Mesin 3 S
9 10 18 22 30
E 10 18 18 25 37
Mesin 4 S
10 18 20 28 37
E 13 20 28 35 40
Mesin 5 S
13 20 28 35 40
E 17 22 29 38 41
Job 2 5 3 41
1
Mesin 1 S
0 6 12 12 14
E
6 12 J 12 l ^ 14
Mesin 2 6 12 20 24 33
E 9 20 24 33 33
Mesiti 3 S
9 20 24 33 36
E 10 27 24 36 44
Mesin 4 S
10 27 30 38 45
E 13 30 38 45 47
Mesin 5 S
13 30 38 45 48
E 17 31 39 48 50
Job 2 3 1 4 5
Mesin l S
0 6 6 6 8
E 6 6 6 8 14
Mesin 2 S
6 9 13 13
22
E 9 13 13 22 30
Mesin 3
S
9 13 13 22
30
E 10 13 21 25 37
Mesin 4 S
10 13 21 25 37
E 13 21 23 32 40
Mesin 5 S
13 21 23 32 40
E
17 22 25 35 41
Tabel 4.9 Penjadwalan iterasi 4. ]
Job 2 3 5 4 1
Mesin 1 S
0 6 6 12 14
E 6 6 12 14 14
Mesin 2 S
6 9 13 21 30
E 9 13 21 30 30
Mesin 3 S
9 13 21 30 37
E 10 13 28 37 45
Mesin 4 S
10 13 28 37 45
E 13 21 31 44 47
Mesin 5 S
13 21 31 44 47
E 17 22 32 47 49
S4 b: 1-3-2-4-5
Tabel 4.10 Penjadwalan iterasi 4.2
Job 1 3 2 4 5
Mesin 1 S
0 0 0 6 8
E 0 0 6 8 14
Mesin 2 S
0 0 6 9 18
E
o
4 9 18 26Mesin 3 S
0 8 9 18 26
E 8 8 10 21
Mesin 4 S
8 10 18 2!
33 E
10 18 21 28 36
Mesin 5 S
10 18 21 28 36
E 12 19 25 31 37
Tabel 4.11 Penjadwalan iterasi 5.1
Job 5 3 2 4 1
Mesin 1 S
0 6 6 12 14
E 6 6 12 14 14
Mesin 2 S
6 14 18 21 30
E 14 18 21 30 30
Mesin 3 S
14 21 21 30 33
E 21 21 22 33 41
Mesin 4 ! Mesin 5 S
21 24 32 35 42
E 24 32 35 42 44
S 24 32 35 42 45
E 25 33 39 45 47
S5 b: 3-1-2-4-5
Tabel 4.12 Penjadwalan iterasi 5.2
Job 3 1 2 4 5
Mesin 1 S
0 0 0 6 8
E 0 0 6 8 14
Mesin 2 0 6 9 18
E 4 4 9 18 26
Mesin 3 | Mesin 4 S
4 4 12 18 26
E 4 12 13 21 33
S 4 12 14 21 33
E n
12 34 17 28 36
Mesin 5 S
12 14 17 28 36
E 13 16 21 31 37
4.1.2 ALGORITMA GENETIKA 4.1.2.1 PARAMETER
Parameter-parameter yang digunakan dalam skema algoritma genetika ini adalah sebagai berikut:
• Banyak individu dalam I generasi, ini dapat ditentukan sendiri tanpa ada aturan tertentu. Namun pada jumlah job yang banyak sebaiknya banyak individu dalam 1 generasi juga banyak agar pencarian solusi akan lebih baik.
• Probabilitas mutasi, mutasi dalam kehidupan nyata jarang sekali terjadi dan kemungkinan terjadinya cukup kecil bila dibandingkan dengan kehidupan yang normal. Hal ini berlaku pula untuk algoritma genetika, karena itu perlu ditentukan besar kemungkinan terjadinya mutasi pada satu individu. Biasanya digunakan probabilitas 0,01.
• Jumlah generasi, sebenamya menunjukkan berapa kali iterasi yang dilakukan. Misalkan hendak dilakukan 10 kali iterasi, maka iterasi dihentikan apabila telah didapatkan generasi baru dari generasi ke-10.
• Bobot untuk masing-masing kepentingan Makespan dan Total Flowtime.
Bila tidak ditentukan, program dapat menghitungnya secara otomatis dimana akan dianggap keduanya memiliki bobot berimbang (tidak ada yang dipentingkan antara Makespan dan Totaljiowtime).
4.1.2.2 LANGKAH ALGORITMA
Gambar 4.2 Flowchart algoritma genetika
Berdasarkan jlowchart pada gambar 4.2, berikut ini adalah langkah spesifik algoritma genetika yang digunakan dalam tugas akhir ini:
1. Tentukan semua parameter awal yang dibutuhkan.
2. Solusi awal didapatkan dari SPT (P]), jadwal-jadwal berikutnya dalam generasi awal ini dibaiigun dengan metode random.
3. 'dntuk operator reproduksi, semua parent dalam satu generasi melakukan perkawinan dengan setiap parent lainnya. Jadi seandainya ada 8 parent akan terjadi 28 kali perkawinan yang menghasilkan 56 anak.
4. Dihitung semua fungsi objektif anak yang dihasilkan, kemudian diurutkan dari yang terbaik hingga terburuk. Sebanyak g anak dibiarkan hidup untuk menjadi generasi penerus berikutnya, sisanya mati. Besar g sesuai dengan banyak parent pada generasi awal yang telah ditentukan sebeluranya pada penentuan parameter awal. Seandainya telah ditetapkan dalam 1 populasi terdapat 8 individu, maka yang diluluskan menjadi generasi selanjutnya adalah 8 tefrbaik dari keselumhan populasi baru.
5. Untuk pengawinannya, operator crossover yang diberlakukan adalali metode PMX (partially matched crossover). Metode ini dimulai dengan mengambil dua buah angka random antara 1 dan banyak job dalam string.
Misalkan crossover diberlakukan pada dua jadwal A dan B berikut ini, angka random yang muncul adalah 4 dan 7, maka:
Dengan metode PMX ini, maka job-job dalam rentangan angka random itu akan bertukar tempat secara bersesuaian posisinya. Jadi job 5 pada jadwal A bertukar tempat dengan job 2, demikian pula pada jadwal B, job 2 bertukar tempat dengan job 5. Job 6 bertukar dengan job 3 dan job 7 bertukar dengan job 10. Sehingga hasil crossover akan menjadi:
A' dan B' ini adalah anak dari perkawinan metode crossover A dan B.
dan d2 = 4. Maka job 3 bertukar tempat dengan job 4 menjadi A' = 4 1 2 3 5. Ulangi lagi langkah 3 hingga syarat penghentian iterasi dipenuhi.
10. Jadwal terbaik adalah jadwal nomor 1 pada generasi terakhir.
4.1.2.3 CONTOH MANUAL
Masalah yang sama akan diselesaikan dengan Algoritma Genetika ini.
Parameter awal:
Jumlah parent dalam satu generasi: 4 Jumlah generasi: 4
Probabilitas mutasi : 0,1 ; sebenarnya pada umumnya probabilitas mutasi sangat kecil, berkisar pada angka 0,01.
Iterasi 1
Hasil dari SPT adalah : 1-3-2-4-5 dengan Ms = 37 dan F = 124. Hasil SPT ini menjadi initial solution bagi algoritma genetika.
Pl = 1-3-2-4-5 Ms = 37 F = 1 2 4
Dengan random, didapatkan parent-parent berikutnya sebagai berikut:
P2 = 2-3-4-1-5 Ms = 44 F = 152 Tabel 4.13 Penjadwalan P2
Generasi I:
Pl = 1-3-2-4-5 Ms = 37 F = 1 2 4 P2 = 2-3-4-1-5 Ms = 44 F = 152 P 3 = 3-1-5-2-4 Ms = 39 F = 124 P4 = 1-4-2-5-3 Ms = 41 F = 135
Untuk generasi pertaina tidak pcrlu dihitung nilai objektif keseluruhannya (Y), karena generasi pertama sudali berjumlah jumlah parent yang ditentukan sebelumnya dan tidak perlu diseleksi mana yang terbaik diantaranya, karena
semuanya akan mengalami crossover.
Pl crossoverP2
Mengambil 2 angka vandom, misalkan f| = 2 ; r2 = 4
\
Kemudian diurutkan dari nilai Y terkecil hingga terbesar dan diambil 4 terbaik saja, karena sudah ditentukan hanya 4 parent tiap generasi, hasilnya adalah sebagai berikut: Pg, Pd, Pb, Pa.
Langkah selanjutnya adalah memberlakukan operator mutasi pada 4 jadwal yang akan berlanjut sebagi generasi II ini, sebagai berikut:
Probabilitas mutasi untuk Pg : 0.997, tidak lebih kecil dari 0.1, inaka tidak mutasi.
Probabilitas mutasi tintuk Pd : 0.207, tidak lebih kecil dari 0.1, maka tidak mutasi.
Probabilitas mutasi untuk Pb : 0.26, tidak lebih kecil dari 0.1, maka tidak mutasi.
Probabilitas mutasi untuk Pa : 0.096, lebih kecil dari 0.1, maka terjadi mutasi sebagai berikut:
Pa : 1-3-4-2-5 ; diambil 2 bilangan random dl = 2, d2 = 4, maka menukarkan job 2 dan job 4 menjadi Pa : 1-3-2-4-5.
Iterasi 2 Generasi I I :
P l : 1-3-4-2-5 Ms = 35 F = 1 2 6 P 2 : 3-1-4-5-2 Ms = 37 F = 1 2 6 P3 : 1-3-2-4-5 Ms = 37 F = 1 2 4 P 4 : 1-3-2-4-5 Ms = 37 F = 124 Pl crossoverP2
Mengambil 2 angka random, misalkan X\ = 3 ; X2 = 4
Pl = l-3-|4-2|-5 -» P a = 1-3-4-5-2 Ms = 38 F= 135
\
Kemudian diurutkan dari nilai Y terkecil hingga terbesar dan diambil 4 terbaik : Pc, Pf, Pj, Pk.
Langkah selanjutnya adalah memberlakukan operator mutasi pada 4 jadwal yang akan berlanjut sebagi generasi 111 ini, sebagai berikut:
Probabilitas mutasi untuk Pc : 0.313, tidak lebih kecil dari 0.1, tnaka tidak mutasi.
Probabilitas mutasi untuk Pf: 0.883, tidak lebih kecil dari 0.1, maka tidak mutasi.
Probabilitas mutasi untuk Pj : 0.326, tidak lebih kecil dari 0.1, maka tidak mutasi.
Probabilitas mutasi untuk Pk : 0.991, tidak lebih kecil dari 0.1, maka tidak mutasi.
\
J
lterasi 3
PI : 1-3-2-4-5 Ms = 37 F = 124 P2: 1-3-2-4-5 Ms = 37 F = 1 2 4 P3 : 1-3-2-4-5 Ms = 37 F = 1 2 4 P 4 : 1-3-2-4-5 Ms = 37 F = 1 2 4
Karena semua jadwal adalah sama, maka dicrossover bagaimana pun akan menghasilkan jadwal yang sama pula, karena itu operator crossover dapat dilalui dan langsung ke operator mutasi.
Probabilitasmutasi untuk PI : 0.473, tidak lebih kecil dari 0.1, maka tidak mutasi.
Probabilitas mutasi untuk P2 :0.298, tidak lebih kecil dari 0.1, maka tidak mutasi.
Probabilitas mutasi untuk P3 : 0.543, tidak lebih kecil dari 0.1, maka tidak mutasi.
Probabilitas mutasi untuk P4 : 0.429, tidak lebih kecil dari 0.1, maka tidak mutasi.
lterasi 4
PI : 1-3-2-4-5 Ms = 37 F= 124 P 2 : 1-3-2-4-5 Ms = 37 F = 1 2 4 P3 : 1-3-2-4-5 Ms = 37 F = 1 2 4 P4 : 1-3-2-4-5 Ms = 37 F = 1 2 4
Probabilitas mutasi untuk PI : 0.068 lebih kecil dari 0.1, maka terjadi mutasi sebagai berikut, diambil 2 bilangan random dl = 4 dan d2 = 3. Maka job 4 bertukar der.gan job 3 menjadi PI : 1-4-2-3-5
Probabilitas mutasi untuk P2 :0.231, tidak lebih kecil dari 0.1, maka tidak mutasi.
Probabilitas mutasi untuk P3 : 0.467, tidak lebih kecil dari 0.1, maka tidak mutasi.
Probabilitas mutasi untuk P4 : 0.272, tidak lebih kecil dari 0.1, maka tidak mutasi.
Karena iterasi sudah menjadi jumlah generasi yang ditetapkan pada parameter awal, maka iterasi dihentikan. Maka hasil akhir dari algoritma genetika ini adalah jadwal pertama pada generasi terakhir. Tetapi karena hasil akhir adalah jadwal yang terkena mutasi, maka harus diurutkan kembali berdasarkan rumusan yang ada sebagai berikut:
Makahasil algoritma genetika ini adalah 1-3-2-4-5 dengan Ms = 37 dan F = 124.
4.1.3 PERBANDINGAN GENETIKA DAN SA
Untuk membandingkan hasil akhir genetika dan algoritma SA, cukup dilakukan pembandingan pada satu jadwal yaitu jadwal terbaik dari masing-masing algoritma. Pembandingannya dilakukan sebagai berikut:
SA: 3-1-2-4-5 , Makespan sebesar 37, Total Flowtime sebesar 118.
GA : 1-3-2-4-5, Makespan sebesar 37, Total Flowtirae sebesar 124.
4.2 DESAIN PROGRAM
4.2.1 ALGORITMA PROGRAM
Gambar 4.3 Algoritma program utama
Gambar 4.4 Flowchart prosedur algoritma SPT
Gambar 4.5 Flowcharl prosedur algoritma genetika bagian pertama
Gambar 4.6 Flowchart prosedur algoritma genetika lanjutan
Gambar 4.7 Flowchart prosedur algoritma simulated annealing
Gambar 4.8 Flowchart prosedur perbandingan hasil.
4.2.2 PENGGUNAAN PROGRAM
Program penjadwalan ini didesain tidak untuk melakukan simulasi saja, namun bisa digunakan untuk kasus sesungguhnya asalkan semua kondisi dasar program dapat dipenuhi. Kondisi dasar itu antara lain adalah sistern produksi harus sistem flow-shop dan semua batasan masalah pada bab 1. Sub bab ini akan memberikan panduan mengenai penggunaan program ini dary laporan-laporan yang dihasilkan. Agar memudahkan bentuk panduan ini kan dibuat seperti tutorial.
l. Pilih menu new problem, akan muncul window pop-up pengaturan problem seperti berikut:
Gambar 4.9 Window pop-up pengaturan problem
Pada pengaturan kali ini, isikan jumlah job 5 dan jumlah mesin 5 pula, batas bawah random adalah 5 dan batas atas random adalah 10. Pastikan pilihan tipe prob/em generaiion ada pada pilihan random, gunakan pilihan blank jika ingin memasukkan nilai-nilai problem secara manual, namun
pada tutorial ini pilihan random yang digunakan. Bila semua pengaturan telah selesai tekan tombol "OK".
2. Penekanan tombol OK akan memunculkan window baru sebagai berikut:
Gambar4.10 Window problem
Dapat dilihat pada gambar 4.10, program membuat problem berdasarkan pengaturan yang telah dilakukan sebelumnya. Didapatkan suatu sistem produksi 5 job, 5 mesin dengan waktu-waktu produksi tiap jobnya dirandomkan oleh program sesuatu batas atas dan batas bawah yang telah diatur sendiri.
3. Berikutnya pilih menu "Optimize" yang akan memunculkan menu pull- down baru, pilih menu "Genelic Algorilhm ".
Gambar 4.11 M&nw pull-down Optimize
Penekanan menu tersebut akan memunculkan window pop-up untuk pengaturan algoritma genetika.
Gambar 4.12 Window pop-np pengaturan algoritma genetika Diisikan jumlah parent 8, probabilitas mutasi 0.1 dan jumlah generasi 8.
Pilihan default weight tidak perlu diaktifkan agar bobot pementingan antar kedua objektif relatif sama.
4. Setelah menekan tombol OK, akan muncul 2 window baru, yang pertama adalah window "Iniiial l'ime Tuble" yang menampilkan jadwal SPT dan tabel waktunya.
Gambar 4.13 Window SPT dan tabel waktu produksinya
Dapat dilihat bahwa jadwal yang dihasilkan oleh SPT adalah 3-1-2-4-5 dengan makespan 61 dan total Jlowtirne 228. Window berikutnya adalah window algoritma genetika.
Gairibar 4.14 Winduw algoritma genetika
Pada yvindow ini, dilaporkan hasil perhitungan algoritma genetika. Kolom JOBQ adalah kolom jadwalnya, M adalali makespan jadwal tersebut, F adalah Jlowtime jadwal tersebut, dan kolom Mut, bila berisi Y berarti jadwal tersebut terkena operator mutasi.
5. Selanjutnya pilih menu "Siinulated Annealing" yang berada pada menu
"Optimize " seperti pada gambar 4.11.
Pemilihan menu ini akan memuncul window bani yang melaporkan perhitungan yang dilakukan oleh algoritma simulated annealing. Pada gambar berikut ini akan diperlihatkan bentuk laporan dan penjelasan singkatnya.
Gambar 4.15 Window perhitungan SA.
Kolom JOBQ adalali jadwal, kolom T adalah suhu saat jadwal tersebut dihasilkan,"kolom R adalah replikasi lokal saat jadwal dihasilkan, kolom
M dan F adalah makespan d&njlowtinw masing-masing jadwal, berikutnya adalah kolom e l , e2, dan d untuk masing-masing jadwal. Bila d positif (seperti pada contoh manual) maka akan ada kolom baru disebelahnya yaitu kolom p yang merupakan probabilitas penerimaan untuk jadwal itu dan kolom px yang merupakan hasil randomisasi probabilitas untuk peerimaan jadwal tersebut. Kolom terakhir adalah keterangan diteriina atau tidaknya jadwal tersebut.
6. Window terakhir yang muncul adalah window perbandingan. Dapat dilihat pada gambar 4.16 berikut ini:
Garabar 4.16 Window perbandingan hasil algoritma
Pada window ini dapat dilihat hasil perhitimgan A yang dilakukan oleh program untuk mencari tahu jadwal mana yang lebih baik. Kemudian performa dan waktu proses masing-masing algoritma untuk problem yang
diberikan.
Demikian" penggunaan program simulasi ini baik untuk melakukan simulasi atau untuk perhitungan manual sebenarnya. Untuk saat ini program telah dirasa telah cukup memuaskan, namun tentunya bila ada perbaikan yang bisa
dilakukan maka itu harus dilakukan.