Multiple GA Penjadwalan.pdf
Transcript of Multiple GA Penjadwalan.pdf
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 1/174
SKRIPSI / TUGAS AKHIR
NO. 573 / Tl - 054 / 2002
PERBANDINGAN KINERJA ALGORITMA GENETIKA
DAN SIMULATED ANNEALING UNTUK MASALAH
MULTIPLE OBJECTIVE PADA PENJADWALAN
FLOWSHOP
OLEH :
ANDREE PAMUNGKAS
NRP. 25497068
JURUSAN TEKNIK INDUSTRI
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS KRISTEN PETRA
SURABAYA
2002
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 2/174
Ditenma oleh Jurusan ieknik Industn
Fakultas Teknologi Industri
Universitas Kristen Petra
Ketua Tim Penguji,
Pembimbing,
Disahkan oleh.
Ketua Jurusan Teknik Industri Surabaya, Juli 2002
Julianingsih, M.Eng
NIP. 93014
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 3/174
SURAT PERNYATAAN PERSETU JlJAN
PUBLIKASI KARYA ILMIAH UNTUK
KEPENTESGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya :
Nama : ANDREEE PAMUNGKAS, Mahasiswa Universitas Kristen Petra
NRP : 25497068
Demi mengembangkan Ilmu Pengetahuan, menyetujui bahwa karya llmiah saya yang
berjudul:PERBANDINGAN KINERJA
ALGORITMA GENETIKA DAN SIMULATED ANNEALING
UNTUK MASALAH MULTIPLE OBJECTIVE
PADA PENJADWALAN FLOWSHOP
Beserta perangkat yang diperlukan (bila ada) untuk disimpan, dipublikasikan dan atau
diperbanyak dalam bentuk apapun oleh Universitas Knsten Petra bagi keperluan
akademis.
Demikian surat pemyataan ini saya buat dengan sebenarnya.
Dibuat di : Surabaya
Padatangga! :24Juii2002
Yang menyatakan
( Andree Pamungkas)
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 4/174
KATA PENGANTAR
Teknik industri memberikan banyak materi perkuliahan untuk mengatasi masalah-
masalah yang akan timbul dalam dunia industri. Segala materi perkuliahan bertujuan
untuk meningkatkan produktivitas dan membentuk sistem yang lebih baik. Salah satu
yang menjadi sorotan adalah masalah penjadwalan produksi. Penjadwalan adalah satu
elemen yang penting dalam sistem industri dimana pada penjadwalanlah sebenamya
jantung dari sistem produksi itu. Penjadwalan yang baik akan mempercepat proses
produksi dan dapat membantu meminimumkan biayanya.
Penjadwalan memiliki banyak metode, ada yang sederhana hingga yang rumit
sekali. Keragaman ini menyebabkan kerancuan untuk memilih metode apa yang
sebenarnya bisa diandalkan karena tentunya masing-masing metode memiliki kelebihan
dan kekurangan sendiri-sendiri. Dunia industri sendiri disadari masih banyak
menggunakan intuisi dan pengalaman dalam melakukan penjadwalan produksi, hal ini
disebabkan kerancuan diatas, ketidaktahuan mengenai metode-metode penjadwalan yang
handal serla tidak adanya sumber daya manusia yang bisa melakukan metode
penjadwalan yang handal tersebut.
Tugas akhir ini mengupas mengenai dua metode penjadwalan yang cukup dikenal
handal dalam dunia induslri yaitu algoritma genetika dan algoritma sinmlated annealing.
Pembagian bab secara sistematis akan memudahkan pengertian hal yang dibahas hingga
langkah-langkah algoritma tersebut. Intinya adalah pembandmgan dua algoritma di atas
berdasarkan keunggulan satu sama lain, waktu proses dan performa masing-masing
algoritma. Hasil lain yang dijabarkan adalah mengenai program simulasi yang digunakan
IV
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 5/174
beserta perancangannya sehingga akan dimungkinkan pengembangan lebih lanjut karena
dalam era teknologi ini, penggunaan komputer sebagai alat bantu manusia mutlak tidak
bisa dihindari. Besar harapan penulis agar buku ini dapat berguna bagi yang
membutuhkan dan dapt dikembangkan lebih lanjut jika memungkinkan.
Akhir kata, akibat keterbatasan dana dan waktu, apa yang dilaporkan dalam buku
ini tentu belum sempurna. raasukan dan kritik yang membangun tentu akan sangat
diterima demi pengembangan penelitian di masa yang akan datang.
Surabaya, Juni 2002
Penulis
\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 6/174
UCAPAN TERIMA KASfH
Banyak bantuan yang telah didapatkan oleh penulis daiam melakukan penelitian
dan penyusunan buku ini, karena ltu sudah sewajarnya kesediaan mereka untuk
membantu mendapatkan ucapan terima kasih yang tulus. Mereka adalah ;
1. Tuhan, yang selalu membimbing dan memberi jaian keluar dimana terasa
kebuntuan. Puji syukur dan terima kasih selalu dipanjatkan kepada-Nya.
2. Semua keluarga penulis yang selalu memberi dukungan, baik moral dan finansial
demi keberhasilan penelitian ini.
3. Bapak I Gede Agus Wahyudi. ST. M.Eng selaku koordinator tugas akhir
Universitas Kristen Petra dan dosen pembimbing penulis dalam melaksanakan
tugas akhir. Berkat bimbingannya penelitian ini dapat diselesaikan.
4. Saudara Denny Mahendra yang telah sangat membantu dalam pembuatan
program penjadwalan yang digunakan dalam penelitian ini. Tanpa program
tersebut, penelitian ini tentu tidak akan berhasil.
5. Saudara Henry Pribadi yang telah membantu saat penulis menemukan kebuntuan
dalara perancangan algoritma.
6. Semua orang yang telah membantu, terlalu banyak jumlahnya jika dituliskan.
Banyak terima kasih penulis haturkan kepada mereka semua yang telah
mendukung dan membantu. j
\
VI
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 7/174
ABSTRAK
Penelitian difokuskan pada pembandingan algoritma genetika dan simulated
annealing pada performa, waktu proses dan keunggulannya satu sama lain. Tujuan
penelitian adalah untuk melihat mana yang lebih baik antara dua algoritma penjadwalan
tersebut, untuk menyelesaikan problem-problem penjadwalan Jlow shop yang
disimulasikan pada kriteria minimasi makespan dan lotal flowiime. Tujuan lain adalahuntuk mendapatan suatu sistem penjadwalan terkomputerisasi yang dapat dilakukan
untuk melakukan penelitian dan dapat pula dilakukan untuk vnenyelesaikan problem-
problem yang sesungguhnya.
Hasil yang didapatkan adalah program penjadwalan untuk melakukan simulasi
pembandingan algoritma tersebut serta simulasi yang dilakukan pada kombinasi-
kombinas job dan mesin yang berbeda-beda. Didapatkan algoritma simulated annealing
lebih unggul dari algoritma genetika hingga 90%, algoritma genetika hanya unggul pada
waktu proses saja, namun dengan tren waktu proses yang terbentuk, diyakini pada
problem dengan kombinasi job dan mesin yang banyak, algoritma simidated annealing
dapat lebih cepat daripada algoritma genetika.
111
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 8/174
DAFTAR ISI
HALAMANJUDUL i
LEMBARAN PENGESAHAN ii
ABSTRAK iii
KATA PENGANTAR iv
UCAPAN TERIMA KASIH vi
DAFTARISI vii
DAFTARTABEL x
DAFTARGAMBAR xiv
DAFTAR LAMPIRAN xvi
BAB HALAMAN
I. PENDAHULUAN 1
1.1 LATAR BELAKANG 1
1.2PERMASALAHAN 31.3TUJUAN 4
1.4 RUANG LINGKUP 4
1.5MET0D0L0GI 5
1.6SISTEMATIKAPEMBAHASAN 5
II. LANDASAN TEORI 7
2.1 PEMROGRAMAN KOMPUTER 7
2.2 PENJADWALAN 8
2.2.1 PENDAHULUAN 8
2.2.2 LINGKUNGAN PENJADWALAN 9
2.2.3 FLOW SHOP 102.2.4 NOTASI DAN KARAKTERISTIK j. 11
2.2.5 SIMULASI PENJADWALAN 14
2.3 ALGORITMA SPT 15
2.3.1 PENDAHULUAN 15
2.3.2 CONTOH MANUAL ' 16
2.4 SIMULATED ANNEALING 17
2.4.1 PENGERTIAN \ 17
2.4.2 SKEMA UMUM , 18
Vll
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 9/174
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 10/174
DAFTARTABEL
TABEL HALAMAN
2.1 LAMBANG-LAMBANG BASIC FLOWCHART 7
2.2 LINGKUNGAN PENJADWALAN 9
2.3 PROBLEM SEDERHANA 16
2.4 PROBLEM SEDERHANA DENGAN WAKTU JOB 16
2.5 C O N T O H M A S A L A H D A N N I L A I O B J E K T I F 2 5
4.1 PROBLEMAWAL 35
4.2 PENJADWALAN SOLUSl AWAL - 35
4.3 PENJADWALANITERASIl. l 36
4.4 PENJADWALAN ITERASl 1.2 37
4.5 PENJADWALAN ITERAS12.I 38
4.6 PENJADWALAN ITERASl 2.2 39
4.7 PENJADWALANITERASI3.1 40
4.8 PENJADWALAN ITERASl 3.2 41
4.9 PENJADWALANITERAS14.1 42
4.10 PENJADWALAN 1TERAS14.2 43
v 4.11 PENJADWALAN1TERAS15.1 44
4.12 PENJADWALAN1TERASI 5.2 ^. 45
4.13 PENJADWALAN P2 50
4.14 PENJADWALAN P3 ' 51
4.15 PENJADWALAN P4 51
IX
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 11/174
4.16 PENJADWALAN Pa 52
4.17 PENJADWALAN Pb 52
4.18 PENJADWALAN Pc 52
4.19 PENJADWALAN Pd 53
4.20 PENJADWALAN Pe 53
4.21 PENJADWALAN Pf 53
4.22 PENJADWALAN Pg 54
4.23 PENJADWALAN Ph 54
4.24 PENJADWALAN Pi 54
4.25 PENJADWALAN Pj 55
4.26 PENJADWALAN Pk 55
4.27 PENJADWALAN Pl 55
4.28 TABEL HASIL CROSSOVERITERASI 1 56
4.29 TABEL NILAIOBJEKTIF UNTUKITERASI 1 56
4.30 PENJADWALAN Pa 58
4.31 PENJADWALAN Pb 58
4.32 PENJADWALAN Pg 59
4.33 TABEL HASIL CROSSOVERITERASI2 59
4.34 TABEL NILAl OBJEKTIF UNTUK1TERASI2 60
5.1 TABEL10 JOB 5 MESIN 78J
5.2 TABEL 10 JOB 10 MESIN 79
5.3 TABEL 10JOB 15MESIN - . 80
5.4 TABEL10 JOB 20 MESIN 81
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 12/174
5.5 TABEL10 JOB 25 MCSIN 82
5.6 TABEL 10 JOB 30 MESIN 83
5.7 TABEL20JOB5MESIN 84
5.8 TABEL 20 JOB 10 MESIN 85
5.9 TABEL 20 JOB 15 MESIN 86
5.10 TABEL 20 JOB 20 MESIN 87
5.11 TABEL 20 JOB 25 MESIN 88
5.12 TABEL 20 JOB 30 MESIN 89
5.13 TABEL 30 JOB 5 MESIN 90
5.14 TABEL 30 JOB 10 MESIN 91
5.15 TABEL 30 JOB 15 MESIN 92
5.16 TABEL 30 JOB 20 MESIN 93
5.17 TABEL 30 JOB 25 MESIN 94
5.18 TABEL 30 JOB 30 MESIN 95
5.19 TABEL 40 JOB 5 MESIN 96
5.20 TABEL 40 JOB 10 MESIN 97
5.21 TABEL 40 JOB 15 MESIN 98
5.22 TABEL 40 JOB 20 MESIN 99
5.23 TABEL 40 JOB 25 MESIN 100
5.24 TABEL 40 JOB 30 MESIN 101
5.25 TABEL 50 JOB 5 MESIN 102
5.26 TABEL 50 JOB 10 MESIN • 103
5.27 . TABEL 50 JOB 15 MESIN 104
XI
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 13/174
5.28 TABEL 50 JOB 20 MESIN
5.29 TABEL 50 JOB 25 MESIN
5.30 TABEL 50 JOB 30 MESIN
5.31 TABEL KUMULATIF HASIL SlMULASl
105
106
107
108
XII
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 14/174
DAFTARGAMBAR
GAMBAR HALAMAN
2.1 SISTEM FLOW SHOP 11
2.2 FLOWCHART ALGORITMA SPT 16
2.3 RODA ROLET UNTUK TABEL 2.5 25
2.4 SKEMA CROSSOVER SEDERHANA 27
3. 1 FLOWCHART PENGERJAAN TUG AS AKHIR 29
4.1 FLOWCHART ALGORITMA SIMULATED ANNEALING 33
4..2 FLOWCHART ALGORITMA GENETIKA 47
4..3 ALGORITMA PROGRAM UTAMA 65
4.4 FLOWCHART PROSEDUR ALGORITMA SPT 66
4.5 FLOWCHART PROSEDUR ALGORITMA GENETIKA 67
( I )
4.6 FLOWCHART PROSEDUR ALGORITMA GENETIKA 68
( I I )
4.7 FLOWCHART PROSEDUR SIMULATED ANNEALING 69
4.8 FLOWCHART PROSEDUR PERBANDINGAN HASIL 70
4.9 WINDOW POP-UP PENGATURAN PROBLEM , 71
4.10 WINDOW PROBLEM 71
4.11 MENU PULL DOWN OPTIMIZE 72
4.12 WINDOW POP-UP PENGATURAN GENETIKA " 72
4..13 WINDOW SPT DAN TABEL WAKTU PRODUKSINYA 73
xm
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 15/174
4.16 WINDOW PERBANDINGAN HASIL ALGORITMA
5.1 GRAFIK WAKTU PROSES
75
110
XIV
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 16/174
DAFTAR IAMPIRAN
LAMPIRAN HALAMAN
LISTING PROGRAM SIMULASI
BERSAMA DENGAN LAPORAN INI, DILAMPIRKAN PULA SEBUAH DISKET
YANG BERISI PROGRAM PENJADWALAN YANG DIGUNAKAN UNTUK
MELAKUKAN SIMULASIDALAM PENELITIAN INI.
XV
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 17/174
BABI
PENDAHULUAN
1.1 LATAR BELAKANG
Penjadwalan bagi perusahaan manufaktur adalah aspek yang sangat
penting, karena penjadwalan merupakan salah satu elemen perencanaan dan
pengendalian produksi. Namun, tidak banyak perusahaan manufaktur di Indonesia
yang menggunakan suatu algoritma tertentu dalam melakukan penjadwalan
produksi. Kebanyakan perusahaan di Indonesia menggunakan pengalaman dan
intuisi dalam membuat penjadwalan produksi. Hal ini menjadi latar belakang
pertama dari topik yang diangkat oleh penulis.
Metode-metode dalam penjadwalan ada bennacam-macam. Metode
paling oprimal adalali metode Branch and Bound yang menguji semua
kemungkinan solusi dan mengambil solusi yang paling optimal. Namun karena
metode ini sangat lama dan sulit dilakukan sehingga menghabiskan banyak waktu
dan biaya, muncul yang disebut metode heuristik. Metode heuristik menggunakan
suatu algoritma tertentu yang mencari solusi terdekat dengan solusi optimal taiipa
melakukan pengujian pada semua kemungkinan solusi yang ada. Hasilnya
memang tidak mungkin paling optimal tetapi hampir optimal.
Metode heuristik yang telah ada dapat dibagi menjadi.dua yaitu metode
construclive dan metode improvement. Metode constmctive menghasilkan multi
solusi atau satu sokisi dengan menenlukan urutan job dengan tcpat. Metode
improvement atau metaheuristik bermula dari suatu solusi inisial dan mencoba
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 18/174
mengembangkannya dengan membuat neighbourhoods. Metode iinprovement
yang sudah ada diantaranya adalah Descent Method, Simulated Annealing, Tabu
Search.
Dalam perkembangan perindustrian, banyak literatur menganjurkan
penggunaan prosedur metaheuristik untuk optimalisasi. Sebuah komite yang
menangani riset dan operasi menyelidiki beberapa diantaranya, yaitu Simulated
Annealing, Tabu Search, Targei Analysis, dan Neural Nelwork, dan mereka
menyimpulkan bahwa metode-metode ini memiliki potensi yang besar untuk
menyelesaikan masalah optimalisasi. Beberapa tahun kemudian, pengujian
metode baru yaitu algoritma genetika mulai dilakukan dan disimpulkan bahwa
algoritma genetika dapat digimakan sebagai teknik multisolusi, tidak memerlukan
penyesuaian untuk tnasalah-masalah apa pun, dan solusi yang dihasilkan
mendekati optimal (Onwubolu et ai 1999).
Penelitian-penelitiaii sebelumnya dalam hal penjadwalan biasanya
difokuskan pada pemenuhan deadline. Padahal ada aspek lain yang cukup penting
seperti idle iime, total jlow time, dan lain-lain. Penelitian ini tentu saja berdasar
pada suatu perbandingan dengan algoritina lain yang selama ini dianggap baik.
Salah satunya adalah penelitian yang dilakukan oleh Tcssa Vanina Soetanto dan
Ervin Medianti (1999). Kelebihan yang dimiliki oleh algoritma genetika dan
belum diperbandingkaiinya metode algoritma genetika dengan algoritma
metaheuristik yang lain dalam problem multisolusi, dalam hal ini adalali
simulated annealing, menjadi lalar belakang kedua diangkatnya topik ini.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 19/174
1.2 PERMASALAHAN
Perusahaan manufaktur yang menggunakan pengalaman dan intuisinya
dalam melakukan penjadwalan menyatakan bahwa kendala mereka adalah tidak
adanya sumber daya manusia yang dapat melakukan penjadwalan tersebut selain
karena mereka tidak begitu mengerti metode-metode penjadwalan yang baik.
Dikhawatirkan penjadwalan berdasarkan feeling dan pengalaman ini akan
menyebabkan kurang optimalnya jadwal produksi yang dihasilkan. Hal ini
memicu keinginan didapatkannya suatu algoritma penjadwalan yang baik dan
dapat disarankan pada perusahaan-perusahaan tersebut.
Pada suatu penelitian Mario Tucci dan Rinaldo Rinaldi menguji
algoritma genetika, Simulaled Annealing dan Tabu Search pada job-shop dan
membandingkan kualitas solusinya (Tucci et. al. 1999 ). Disimpulkan bahwa
algoritma genetika adalah yang paling tidak baik, karena bertambahnya solusi tak
layak yang dibangkitkan secara acak dan cenderung menghasilkan jadwal yang
sama. Tahu Search dan Simulated Annealing menghasilkan solusi yang lebih
optimal. Sedangkan Li Dawei et. ai (1999) menyebutkan bahwa diantara
algoritma genetika, Simulaled Annealing dan Tabu Search, Algoritma genetika
adalah yang paling banyak digunakan dan optimal. Kemudian ada pula pernyataan
dari Sridhar dan Rajendran (Ponnambalan et. al. 1999) yang menyatakan bahwa
algoritma genetika menghasilkan solusi yang lebih baik daripada Simulated
Anneahng. Sehingga dapat ditarik kesimpulan bahwa sebenaraya algoritma
genetika adalah yang terbaik. Dua hal yang bertentangan ini memicu keinginan
untuk membandingkan kinerja antara algoritma-algoritma metaheuristik yai|g ada.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 20/174
1.3TUJUAN
Pelaksanaan dan hasil tugas akhir ini dapat digunakaii untuk:
• Mengetahui performa Algoritma Genelika dan Sinndated Annealing
dengan kriteria Makespan dan Tolal Flowtime.
• Mendapatkan suatu desain sistem penjadwalan lerkomputerisasi yang
selain dapat menguji algoritma-algoritma tersebut, dapat pula digiinakau
iintuk kasus sesungguhnya.
1.4RUANGLINGKUP
Mengetahui ada banyaknya algoritma heuristik dan metaheuristik yang
ada, maka diperlukan pembatasan ruang pembahasan sebagai berikut:
- Algoritma yaiig diperbandingkan kinerjanya adalah Algoritma
Genetika dan Simulated Annealing sebagai dua algoritma
metaheuristik yang banyak dianjurkan oleh jurnal-jurnal industri.
- Pembuatan desain dan program komputer yang dilakiikan hanya
menggunakan Algoritma Genetika dan Simulaled Annealing saja.
- Sistem produksi adalah flow shop
- Proses produksi dari job-job sudah diketahui secara jelas.
- Tidak terdapat pre-emp(ion.
- Setiapjob memiliki ready time yang sama.
- Kriteria yang digunakan dalam Mitltiple Objeciive ini adalab
minimdsi Makespan dan minimasi Total Flowtime.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 21/174
1.5 METODOLOGI
Metodologi yang digunakan dalam penyusunan tugas akhir ini adalah:
• Mendesain algoritma penjadwalan dan langkah simulasi yang bisa
diintegrasikan dengan program komputer Delphi 5
• Melakukan simulasi perbandingan algoritma untuk berbagai
kombinasi job dan niesin
• Menarik'kesimpulan dari hasil simulasi
1.6 SISTEMATIKA PEMBAHASAN
Sistematika penulisan skripsi ini adalah sebagai berikut
BABIPENDAHULUAN
Dalam bab ini akan dibahas latar belakang pcnulisan skripsi ini, masaiah yang
diangkat menjadi dasar penulisan, tujuan penulisan, metodologi penulisan, dan
sistematika penulisan skripsi.
BAB II LANDASAN TEORI
Dalam bab ini akan dibahas teori-teori dasar yang digunakan sebagai landasan
skripsi ini, sesuai dengan materi yang telah didapatkan selama mengikuti
perkuliahan di Teknik lndustri. Teori-teori yang disertakan dalam skripsi ini
adalah rangkuman dari banyak sumber kepustakaan yang berkaitan dengan topik
yang diangkat beserta hasil diskusi daii bimbingan dari dosen pembimbing.
BAB III METODE PENELITIAN
Dalam bab ini akan dituliskan langkah yang ditempuh dalam melakukan
penelitian ini dalam bentuk/Zowc/iar/ dan penjelasannya.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 22/174
BAB IV DESAIN ALGORITMA DAN PROGRAM
Bab ke empat membahas mengenai algoritma penjadwalan yang digunakan dan
modifikasi yang dilakukan untuk menyesuaikan algoritma dengan masalah yang
ada dengan tanpa mengurangi orisinalitas dari algoritma tersebut. Desain program
membahas mengenai langkah-langkah simulasi yang akan dilakukan dan
penerapannya dalam program. Juga akan dibahas mengenai fitur-fitur dan
tampilan program yang telab didesain sedemikian rupa sehingga cukup mer-
friendly.
BAB V SIMULASI DAN ANALISA
Bab ini membahas mengenai hasil dari simulasi yang dilakukan dan analisa dari
hasil simulasi tersebut beserta penjelasan-penjelasan agar dapat diiarik
kesimpulan dari simulasi yang dilakukan
BAB VIPENUTUP
Bab terakhir dari skripsi ini membahas mengenai kesimpulan serta saran-saran
yang bisa diberikan setelah melakukan semua langkah pengerjaan skripsi ini.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 23/174
BAB II
LANDASAN TEORl
2.1 PEMROGRAMAN KOMPUTER
Pengetahuan pemrograman komputer yang perlu dikuasai dalam
pembuatan skripsi ini terutama adalah daiam materi logika pemrograman yang
diwujudkan dalam bentuk Jlowchart. Tidak ada bahasa yang lebih mudali untuk
menjelaskan alur algoritma selain dengan membuatnya dalam bentuk flowchart.
Flowchart sendiri sebenarnya dibagi menjadi banyak bentuk, namun pada bab ini
hanya akan dijabarkan secara singkat mengenai basic-jhwchart. Lambang-
lambang dalara basic-jlowchart yang digunakan adalah sebagai berikut:
Tabel 2.1 Lambang-lambang basic flowchari
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 24/174
2.2 PENJADWALAN
2.2.1 PENDAHULUAN
Penjadwalan selalu berkaitan dengan banyak elemen yang berhubungan
dengan resource yang berbeda-beda pada suatu periode waktu. Resource ini
jumlahnya terbatas. Elemen yang ingin diselesaikan disebut "job" atau "project"
atau "assignment" dan terdiri dari bagian-bagiarv yang disebut "aktivitas" atau
"operasi". Tiap aktivitas memerlukan sejumlah resource dalam suatu periode
waktu yang disebut "waktii proses". Resource juga memiliki bagian-bagian pula
yaitu mesin, sel, transport, delay, dan lain-Iain.
Masalah penjadwalan biasanya memiliki banyak batasan-batasan tertentu,
misalnya ada preseclence constraints pada aktivitas yang berhubungan yang
menjelaskan aktivitas mana yang mendahuhii aktivitas lain dan berapa waktunya,
atau suatu resource tidak tersedia pada interval waktu tertentu karena digunakan
oleh aktivitas lain. Menemukan solusi penjadwalan yang baik bisa jadi cukup sulit
untuk beberapa alasan. Pertama, objektif yang cukup penting seperti kepuasan
pelanggan tidak dapat diwujudkan dalarn bentuk angka-angka karena bersifat
kualitas. Kedua, perusahaan biasanya berusaha mewujudkan tiga tipe objektif
yang cukup berbeda :
a. Memaksimumkanjumlah output
b. Memaksimumkan kualitas output
c. Meminimalkan biaya
Skripsi ini mengangkat materi penjadwalan yang mempelajari bagaimana
mengatur jadwal aktivitas produksi untuk meningkatkan produktivitas. Ada
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 25/174
banyak jalan yang dapat ditempuh misalnya adalah melalui minimalisasi total
waktu kerja mesin, minimalisasi waktu produksi, minimalisasi jurnlah pekerjaan
yang tertambat selesai, dan lain-lain. Penjadwalan hatiyalah salah satu dari sekian
banyak ilmu yang ada yang saiigat berguna dalam bidang industri untuk
meningkatkan produktivitas.
2.2.2 LINGKUNGAN PENJADWALAN
Terdapat ciikup banyak lingkungan penjadwalan, tabel 2.2 akan
menjelaskan lingkungan penjadwalan tersebut.
Tabel 2.2 Lingkungan Penjadwalan
Karena dalam skripsi ini yang berkaitan adalah lingkungan Flow shop,
raaka hanya jlow shop saja yang dijabarkan lebih lanjut. Keterangan mengenai
lingkungan penjadwalan yang lain dapat dilihat pada buku karangan Thomas
Morton dan David Pentico (1993).
Type
Classic Job Shop
Open Job Shop
Batch Shop
Flow Shop
Batch/flow shop
Manufacturing cell
Assembly shop
Assembly line
Transfer line
Flexible transfer
line
Karakteristik
Diskrit, aliran rumit, job unik, no multi-use parts
Diskrit, aliran rumit, ada job yang berulang, dan/atau multi-
use parts
Diskrit atau kontinyu, aliran tidak begitu rumit, banyak
pengulangan dan multi-use purls, group and lolling important
Diskrit atau kontinyu, aliran linear, job-job hampir sama,
group and lotting important
Bagian pertama, Proses batch yang besar dan bersambung;bagian kedua, flow shop
Diskrit, otomasi job shop atau batch shop
Bentuk perakitan dari job shop atau batch shop
Skala besar, variasi kecil, bentuk aliran dari suatu perakitanSkala sangat besar dan variasi kecil, sistem produksi linear
dan beroperasi secara otomatis
Versi modern dan sel dan aliran yang bertujuan untuk
membawa beberapa keuntungan produksi skala besar kebentuk job shop
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 26/174
10
2.23 FLOW SHOP
Flow shop pada dasamya adalah batch shop dengaii aliran yang linear.
Flow shop bisa diskrit, kontinyu atau semi-kontinyu. Pada kasus yang paling
sederhana (simple flow shop), tiap job memiliki aktivitas yang sama yang harus
dilakukan pada urutan mesin-mesin yang sama pula untuk tiap job. Jadi ada mesin
yang melakukan aktivitas pertaina untuk tiap job, mesin lain raelakukan yang
kedua, dan seterusnya.
Pada bentuk compound flow shop, tiap mesin dapat digantikan oleh satu
set mesin paralel, yang dapat sangat mirip atau berlainan. Bentiik ini bisa dibilaiig
bentuk paling sering dijumpai, misalnya pada pabrik kertas, besi, pembotolan,
makanan, dan lain-lain. Tiap job melalui satu mesin pada kelompok pertama, lalu
berikutnya.
Variasi lain, yang disebut reentrant flow shop, raeliputi penggunaan mesin
atau kelompok mesin yang sama lebih dari sekali. Sebagai contoh, suatu pipa
diekstrusi secara berulang-ulang untuk mendapatkan diameter yang lebih kecil.
Pada tiap ekstrusi, pipa tersebut kembali pada tungku yang sama untuk ditempa,
kita dapat menyebutnya reentrant jlow shop.
Pada skipflow shop, beberapa mesin dapat tidak dilalui oleh beberapa job
tertentu. Di atas kertas, dilakukan pemberian waktu proses 0 pada mesin yang
tidak mengerjakan aktivitas pada job tertentu tersebut.
Flow shop yang benar-benar vnurni jlow shop hanya sedikit, tapi ada
banyak flow shop compound dengan sedikit variasi. Perusahaan botol, percetakan
dan penggilingan besi adalah beberapa contoh. Pada kjasifikasi ini akan sulit
J
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 27/174
II
menemukan sistem penjadwalan yang berjangka panjang dan pasti, karena flow
shop biasanya hanya cocok setelah proses produksi sudah cukup standar.
Pada bentuk jlnile queue flow shop, terdapat penyimpanan terbatas pada
mesin-mesin. selain mesin pertama. Kasus istimewa terjadi bila tidak ada
penyimpanan yang diperbolehkan kecuali pada mesin pertama. Sebagai contoh,
keperluan seperti ini biasanya dijumpai pada industri pemrosesan metal, pada saat
metal dirol saat panas. Jeda waktii antar operasi akan mengakibatkan pendinginan
sehingga proses rolling akan menjadi sulit.
2.2.4 NOTASI DAN KARAKTERISTIK
Beberapa notasi yang biasa digunakan dalam penjadwalan :
- n; menyatakan jumlah job
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 28/174
12
- m; menyatakan jumlah mesin
KARAKTERISTIK
Karakteristik maksudnya adalah karakter-karakter yang mendasari proses
produksi tersebut. Beberapa contoh karaktcr:
- Sequence dependent setup times (Sjk)
Sjt merupakan ketergantungan waktu setup pada urutan job j dan k.
- Release Date (Rj)
Karakteristik ini menandakan bahwa job j tidak dapat dimulai prosesnya
apabila waktu R, belum tercapai.
- Pre-emption (pnnp)
Pre-emption menipakan karakteristik proses yang menyatakan bahwa
suatu job tidak perlu selesai tuntas pada mesin tertentu. Job dengan
karakteristik ini dapat diinterupsi oleh job lain.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 29/174
13
Precedence Constrainls (prec)
Job dengan karakter ini harus diselesaikan tedebih dahulu sebelum
menyelesaikan job berikutnya.
Breakdown (brkdwn)
Menyatakan mesin rusak.
- Blocking (block)
Blocking muncul pada/tow shop. Hal ini terjadi apabila buffer yang ada di
antara dua mesin memiliki kapasitas yang terbatas. Sehingga bila bnff'er ini
penuh, maka mesin tidak diijinkan mengeluarkan job yang sudah selesai
ke dalam buffer tersebut.
- No wait (nwt)
Karakteristik ini juga muncul pada flow shop, dimana job tidak
diperbolehkan menunggu antara dua vnesin pengikutnya.
- Recirculation (recrc)
Karakteristik ini muncul pada job shop, dimana job dapat melalui suatu
mesin lebih dari satu kali.
TUJUAN PENJADWALAN
Beberapa macam tujuan yang dicari dalam penjadwalan adalah:
- MakeSpan [Cmax]
Menipakan waktu penyelesaian job terakhir meninggalkan sistem produksy
- Total Flowtime [Ft]
Merupakan total waktu semua mesin bekerja untuk semua job yang ada.
- iMleness [Lj]
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 30/174
14
Tardimss [Tj]
Mcucimiun Lateness [Lmax]
2.2.5 SIMULASI PENJADWALAN
Pada tahun 1950-an dan 1960-an, kebangkitan komputer membuat
penyajian stniktur pabrik, aktivitas, job, dan hal-hal lain menjadi tnungkin untuk
diwujudkan dalam detail tertentu yang mana dengan diberikan input dan operasi
m
tertentu, komputer dapat membuat penjadwalan dengan biaya yang relatif sangat
murah. Orang dapat membuat banyak tipe data dan menyimulasikannya dalam
metode dan kondisi yang berbeda-beda.
Simulasi dapat menyajikan sistem yang cukup realistik, simulasi juga
dapat memberikan pendekatan yang lebih alami pada pengalaman manusia.
Namun, solusi yang diberikan simulasi biasanya tidak optimal, dan biasanya tidak
ada sistem pembanding yang tepat untuk membandingkan seberapa baikkah solusi
yang ada tersebut.
Pada taliun 1960-an, Balas (1965, 1967) dan Gomory (1965, 1967)
mengeksploitasi kecanggihan komputer untuk mengembangkan pemrograman
integer modem, yang membuat masalah penjadwalan diformulasikan secara
realistik sehingga secara teori dapat diselesaikan lebih optimal. Hal ini terus
berkembang mencapai pemrograman dinamis, langrangian relar.alion, dan
neighboitrhood search.
Neighbourhood search adalah contoh dari metode yang ditemukan Glover
(1990), yang ia sebut "iniensification diversification methods", untuk terus
berdekatan dengan solusi paling optimal. Discbut pula algoritma Mcia-heuri.stics
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 31/174
15
yang memberikan ide mengenai neighbourhoods. Idenya adalah kesempatan
menemukan solusi yang lebih baik dengan kemungkinan neighbourhoods lebih
besar. Algoritma heuristik yang berbasis lokal sudah dikenal sebagai algoritma
yang bisa mencari solusi optimal dalam waktu yang cepat, namun besar
kemiingkinan untuk terjebak daiam optimal lokal.
Algoritma meta-heuristik ini hampir semua sama, hanya metode pencarian
neighbourhoods-nya. yang berbeda. Awalnya satu solusi awal dibuat sedemikian
rupa, kemudian mulai dijalankan metode tersebut, diharapkan pada pencarian
neighbonrhood tersebut, didapatkan hasil yang paling optimal. Tidak perlu
memulai metode diversifikasi ini sejak awal, karena dapat hanya dilakukan pada
saat merasa terjebak pada optimum lokal. Randora adalah salah satu metode
membuat neighbourhood, tapi masih ada banyak lagi yang lain. Teknik-teknik
modern mengembangkan penggabungan strategi intensifikasi dan diversifikasi
pada tabu search, sinndated annealing, genetic algorithms, beam search, dan
pendekatan metode branch-and-boi(nds lainnya.
2.3 ALGORITMA SPT
2.3.1 PENDAHULUAN
Algoritma SPT atau Shoriest Processing Time adalah algoritma yang
sangat sederhana. Inti dari algoritm.a SPT adalah mencari waktu proses job yang
terkecil dan mengurutkannya hingga yang terbesar. Secara skematik dan contoh
soal akan lebffi mudah untuk dijelackan sebagai berikut:
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 32/174
16
Gambar 2.2 Flowchart algoriUna SPT.
23.2 CONTOH MANUAL
Agar lebih jelas bagaimana algoritma-alooritma ini nanti melakukan
perhitungan, diberikan contoh perhitungan manual dari kasus yang sederhana
yang akan terus dilanjutkan hingga bab desain algoritma.
Problem :
Tabel 2.3 Problem Sederhana
Dengan algoritma SPT, dibuat jadwal pertama sebagai berikut:
Tabel 2.4 Problem Sederhana dengan Total Waktu Job
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 33/174
17
Kemudian diurutkan job-job tersebut berdasarkan urutan tolal waktn terkecil
hingga terbesar, didapatkan hasil sebagai berikut: 1-3-2-4-5.
2.4 SIMULATED ANNEALING
2.4.1 PENGERTIAN
Penggunaan algoritma Simulated Annealing untuk penjadwalan telah
dilakukan oleh Kirk'patrick et al. (1983), Vakharia dan Chang (1990), Coroyer dan
Liu (1991), Ishibuchi et al. (1991), dan Van Laarhoven et al. (1992). Algoritma ini
melakukan diversifikasi dengan prosedur pencarian neighborhood, namiin dalam
bentuk metode yang berbeda.
Simulated Annealing dikembangkan berdasarkan ide dari mekanisme
perilaku pendinginan dan proses kristalisasi (annealing) material panas. Algoritma
ini melakukan peningkatan iteratif untuk memperbaiki solusi yang diliasilkan
teknik-teknik penjadwalan heuristik, dalam hal ini adalah sebuah solusi awal yang
dibuat dengan teknik heuristik ataupun randora, diiterasi secara berulang dengan
metode annealing dengan menggunakan perturbasi lokal hingga tidak ada
peningkatan lagi atau hingga jumlah iterasi yang diinginkan sudah dicapai.
Proses annealing akan diawali dengan material yang panas yang kemudian
temperaturnya diturunkan secara bertahap hingga keadaan energi terendah
(ground state) didapatkan. Apabila pendinginan dilakukan terlalu cepat atan
apabila temperatur awalnya terlalu rendah, benda padat yang dihasilkan akan
cenderung berada di tingkat energi yang lebih tinggi (metaslable state) daripada
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 34/174
18
ground siate. Pada kondisi ini, benda padat itu akan lebih rentan terliadap
kemungkinan patah dan retak.
Algoritma Simulaled annealing diawali dengan sebuah solusi awal yang
didapatkan dengan menggimakan algoritma heuristik lain yang lebih sederhana
seperti Johnson, Slwrtest Procassing Time, Longest Processing Time, dan lain-Iain.
Kemudian solusi awal ini dihitung nilai objekiifriya. Langkah selanjutnya adalah
mencari neighbourhoods (jadwal) beiikutnya dengan metode tertentu ataupu
random. Dihitung pula nilai objektif solusi ini dan dibandingkan dengan solusi
sebelumnya. Jika solusi kedua memiliki nilai objektif yang lebih baik maka solusi
itu diterima dan menjadi solusi awal bagi pencarian neighbourhoods berikutnya,
namun jika tidak, solusi itu masih bisa diterima dengan probabilitas tertentu sesuai
dengan algoritma sinmlated animiling. Demikan satu iterasi telah diselesaikan.
Setelah melalui beberapa replikasi (pengubahan/pencarian solusi neigh-
bourhoods dalam satu tingkat svihu yang sama), suhu dapat diturunkan sesuai
dengan parameter yang ditentukan. Algoritma dihentikan apabiia sejuinlah iterasi
yang diharapkan telah selesai dilaknkan, apabila suatu tingkat suhu tertentu telah
dicapai, atau apabila tidak ada lagi perubahan nilai objektif untuk beberapa iterasi
berturut-turut(J'rozen).
2.4.2 SKEMA UMUM
Struktur algoritma simulated annealing secara umum adalah sebagai
berikut (diambil dari jumal Ponnambalan et al. 1999):
1. Cari solusi awal S menggunakan parameter awal dan metode heuristik
awal yang dapat ditentukan sendiri. \
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 35/174
19
4. Dapatkan solusi optimal
2.4.3 NOTASI DAN ISTILAH
Istilah dan notasi yang digunakan dalam algoritma simulated annealing ini
adalah:
1. Parameter awal
Parameter awal ini ditentukan sendiri. Parameter ini memegang peranan
yang sangat penting karena sangat mempengaruhi jalannya algoritma ini.
Parameter awal terdiri dari:
To = Svihu awal
Ta= Suhu akliir
r = faktor reduksi suhu
R = replikasi pencarian solusi pada satu tingkatan suhu
Umumnya, parameter awal didapatkan melalui serangkaian Trial and
Error, tapi ada kalanya dapat ditentukan sendiri sesuai dengan keperluan.
2. Tetapkan suatu nilai temperatur awal T yang cukup tinggi, dimana T>0
3. Pada keadaan tidak frozen, lakukan:
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 36/174
20
2. Solusi awal
Solusi awal adalah suatu jadwal yang menjadi acuan avval dimulainya
algoritma simulated unnealmg. Dilihat dari deskripsi ini, maka untuk
mendapatkaii solusi awal ini tidak dibutuhkan algoritma yang rumit,
karena diharapkan solusi awal ini akan dibuang digantikan oleh solusi lain
yang jauh lebih optimal. Untuk inendapatkan solusi awal ini, dapat
digunakan'algoritma heuristik sederhana seperri NEH, Algoritma Johnson,
Shortest Processing Time, Longest Processing Time, random, dan lain
sebagainya.
3. Tetangga
Tetangga, disebut pula neighbourhood solution, adalah jadwal atau solusi
yang didapatkan dari solusi sebeluranya dengan metode tertentu. Cara
pembuatan jadwal tetangga ini tidak ada teorinya sehingga harus
ditentukan sendiri suatu metode yang akan digunakan. Contoh metode
yang sudah ada adalah metode pertukaran job secara random, pertukaran
semua job dengan batasan yang random, dan lain-lain.
4. Probabilitas
Ciri khas algoritma ini adalah dimungkinkannya peneriraaan solusi yang
lebih jelek daripada solusi sebelumnya asalkan dapat memenuhi suatu
probabilitas tertentu. Hal inilah yang membuat solusi tidak terjebak dalam
optimum lokal. Probabilitas yang diberikan adalah suatu probabilitas
eksponensial dengan rumus exp(-A/T). A adalah selisih nilai objektif dari
solusi yang baru dengan solusi sebehurmya, sedangkan T adalah tingkat
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 37/174
21
suhu pada saat iterasi tersebut terjadi. Maksud dari runuis ini adalah
diharapkam pada suhu yang cukup tiaggi, probabilitas penerimaan solusi
yang jelek adalah cukup besar, namun seiring dengan tunmnya suhu,
probabilitas penerimaan solusi yang jelek ini juga menurun, hingga ketika
mendekati suhu akhir probabilitas penerimaannya akan sangat kecil.
5. Looping iterasi
Algoritma'ini memiliki dua macam pengulangan (looping) yaitu looping
dalara dan looping luar.
a. Looping dalam, pencarian solusi tetangga yang dilakukan pada satu
tingkat suhu yang sama, dibatasi oleh parameter R (replikasi).
b. Looping luar, apabila looping dalam telah memenuhi syarat
parameter R, maka sulni dapat diturunkan dan kembali lagi
melakukan looping dalam.
2.5 ALGORITMA GENETIKA
2.5.1 PENGERTIAN
Algoritma genetika adalah algoritma pencarian solusi tetangga ber-
dasarkan mekanisme seleksi alam dan genetika alam. Algoritma genetika dapat
mengacu pada semua metode pencarian solusi tctangga dengan menyimulasikan
proses evolusi alam. Pada tiap generasi, solusi terbaik (individu) diperbolehkan
menghasilkan solusi baru (anak) dengan mengambil fitur terbaik dari parent dan
mencampurkan dengan fitur lainnya (atau dengan mutasi). Individu terburuk mati
untuk menjaga kestabilan populasi.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 38/174
22
Ada 4 hal yang menyebabkan algoritma genetika unik dibandingkan
prosedur optimasi dan pencarian lainnya :
1. Genetika bekerja dengan pengkodean parameter, bukan parameter itu
sendiri. Genetika membutuhkaii paraineter dari masalah optiinisasi untuk
dikodekan menjadi rangkaian dengan panjang teitentu. Sebagai contoh jika
kita ingin memaksimalkan fungsi / ( x ) = x2
pada interval integer [0,31].
*
Dengan metode tradisional kita akan berusaha untuk memiitar-mutar
parameter x hingga mencapai nilai objektif tertinggi. Dengan genetika,
langkah pertama adalah mengkodekan parameter x ke bentuk rangkaian.
Ada banyak cara melakukan pengkodean ini, namun untuk contoh ini
dilakukan pengkodean yang sederhana. Misalkan ada sebuah kotak dengan
5 buah saklar, dimana kotak ini adalah fuiigsi objektif (f(s)), dan s adalah
keadaan saklar tersebut. s akan bemilai 0 bila saklar mati dan bemilai 1
bila saklar hidup. Tujuan utamanya adalah mencari kombinasi saklar-
saklar tersebut yang bisa menghasiikan nilai objektif yang maksimum.
Dengan pengkodean ini, misal didapatkan 11110, maka ini berarti 4 saklar
pertama hidup, dan saklar kelima mati. Dengan pengkodean ini, genetika
terbebas dari keterbatasan meiode lain (kontinuitas, keberadaan turunan,
dan lain-lain).
2. Genetika melakukan pencarian pada populasi titik, bukan satu titik.
Dalam banyak metode optimisasi, kila bergerak dari satu titik kc titik lain
dengan aturan transisi tertentu untuk menentukan titik berikutnya. Hal ini
berbahaya karena dapat sering menemukan hasil yang salah dalam^lingkup
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 39/174
hasil yang memiliki varian besar. Genetika bekerja dengan sejumlah titik
secara simultan, sehingga kemungkinan menemukan hasil yang jelek akan
sangat berkurang dibandingkan pencarian titik ke titik. Sebagai contoh,
pada masalah optimasi kotak dengan lima saklar tersebut, metode lain
akan memulai dengan satu kombinasi saklar, melakukan aturan transisi
dan menghasilkan kombinasi baru. Genetika yang bekerja secara populasi,
misalkan dengan random menggunakan koin dan besar populasi adalah 4,
bisa didapatkaii suatu populasi kombinasi saklar :
01101
11000
01000
10011
Bani kemudian, populasi ini digenerasikan kembali dengan algoritma
genetika. Selain hasil yang didapat bisa lebih banyak dalam satii iterasi,
kemungkinaii kombinasi yang bisa dicapai akan lebih banyak dalam
jumlah iterasi yang sama dengan metode tradisional.
3. Genetika menggunakan informasi fungsi objektif, biikan turunannya atau
informasi lainnya.
Banyak metode membutuhkan informasi tambahan agar dapat bekerja
dengan baik, misalnya, metode gradien membutuhkan turunan, dan
prosedur pencarian lokal lainnya seperti metode optimasi kombinasi
(lawyer, 1976; Syslo, Deo, and Kowalik, 1983) membutuhkan hampir
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 40/174
24
seluruh parameter tabular. Namun, algoritma genetika tidak membutuhkan
ini setnua. Untuk bekerja secara efektif hanya diperlukan nilai objektif saja.
4. Genetik menggimakan aturan perubahan probabilistik, bukan deterministik.
Bagi mereka yang terbiasa dengan metode deterministik, ini akan terasa
aneh, namun penggunaan probabilitas tidak menyatakan bahwa metode
genetika adalah metode randoin sederhana sepeiti random dengan koin
misalnya. Algoritma genetika menggunakan random sebagai sarana untuk
memandu pencarian ke daerah pencarian yang dianggap lebih baik.
2.5.2 OPERATOR GENETIKA
2.5.2.1 REPRODUKSI
Reproduksi adalah proses dimana slrings dikopi sesuai dengan nilai fiingsi
objektifhya. Mengkopi strings sesuai dengan nilai objektifiiya berarti string
dengan nilai yang tinggi memiliki probabilitas untuk meinbentuk anak pada
generasi berikutnya yang tinggi pula. Operator ini tentu saja adalah versi artifisial
dari seleksi alam. Umumnya, harapan hidup suatu mahluk ditentukan oleh
kemainpuannya bertahan hidup terhadap pemangsa, wabah, dan halangan lainnya.
Pada algoritma ini, fungsi objektif adalah semua yang membentuk halangan-
halangan itu.
Operator reproduksi dapat diimplementasikan dalam bentuk algoritma
yang bermacam-raacam. Mungkin yang temiudah adalali dengan roda rolet
dimana setiap string dalam populasi memiliki proporsi tertentu dalam roda rolet
tersebut. Misalnya contoh pada tabel 2.5 ini.
\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 41/174
25
Tabel 2.5 Contoh Masalah dan Nilai Objektif
No.
12
34
Total
String
01101
11000
01000
10011
Nilai Objektif
16957664
361
1170
%
14.4
49.2
5.530.9
100.0
Dengan menjumlahkan semua nilai objektif, didapatkan total 1170.
Persentase masing-masing string dapat dicari dan telali ditunjukkan pula dalam
tabel. Dari sini dibentuk sebuah roda rolet seperti pada gambar 2.3 dibawah ini.
Untuk melakukan prosedur reproduksi, cukup "memutar" roda rolet tersebut 4 kali
(sesuai dengan besar populasi yang ditentukan). Misalnya, string nomor 1
memiliki nilai objektif 169, yang merupakan 14.4 persen dari keseluruhan nilai
objektif. Sehingga, string 1 memiliki 14.4% dari roda rolet tersebut, demikian
seterusnya. Dengan cara demikian, siring dengan nilai tertinggi akan memiliki
kemungkinan bertahan hidup paling besar. Setelah didapat satu string untuk
reproduksi, kopi dari siring itu dimasukkan dalara maling pool (tempat generasi
melakukan perkawinan untuk membentuk generasi berikutnya).
Gambar 2.3 Roda rolet untuk tabel 2.5
\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 42/174
26
2.5.2.2 CROSSOVER
Crossover mungkin adalah bagiaii terpenting dari algoritma genetika
karena disinilah ditentukan bagaimana membentuk generasi yang baru. Crossover
adalah mekanisme diversifikasi yang dimiliki oleh algoritma genetika. Tidak ada
aturan tertentu mengenai metode crossover, karena memang sangat fleksibel. Ada
banyak metode crossover yang dapat diimplementasikan seperti halnya metode
reproduksi. Namun untuk menjelaskan operator crossover ini, akan ditemskan
contoh pada tabel 2.5 itu dengan metode cro&sover yang sederhana.
Pertama, semua anggota string dalam mating pool dikawinkan secara
random. Kedua, masing-masing string melakiikan crossover sebagai berikut: satii
angka k diambil secara random antara 1 dan panjang string dikurangi 1 [1, / - 1].
Dua string baru diciptakan dengan cara inemindahkan semua karakter antara k + 1
dan /. Sebagai contoh, misalkan stringnoA dan no.2 terpilih untiik dikawinkan :
S, =0 1 10 1 S7 = l 1 0 0 0
Misalkan pula, k yang dipilih secara random antara 1 hingga 4 didapatkan
k = 4 (ditandai dengan batas garis). Maka crossover akaii dilakukan sebagai
berikut (Sj' dan Sj' adalah hasil crossover):
Si =0 1 1 0 | l S2 = 1 1 0 0 1 0
sr = o n o o s2' = i i oo i
Untuk lebih jelasnya dapat dilibat pada ilustrasi gambar 2.4 ini :
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 43/174
27
Gambar 2.4 Skema crossover sederhana antara dua string.(dikutip dari Thomas Morton & David Pentico (1993))
Hasil dari crossover ini akan membentuk populasi generasi penerus bani
yang akan dikenai hukum-hukum lain sesuai dengan parancang algoritma seperti
misalnya probabilitas bertahan hidup, pengurutan nilai objektif, dan lain
sebagainya. Sebelum kemudian akan dikenakan pada operator mutasi.
2.5.2.3 MUTASI
Apabila reproduksi dan crossover sudah sangat menunjukkan kekuatan
algoritma genetika, apa giina operator mutasi? Memang hingga kini banyak
pertanyaan mengenai peranan operator mutasi dalam genetika. Mutasi diperlukan
karena walau reproduksi dan crossover dapat secara efektif melakukan semua
pencarian yang diharapkan, terkadang akan kehilangan potensi yang bisa dibilang
cukup berguna (1 atan 0 pada posisi tertentu). Mutasi mencegah hal ini walaupun
secara random dengan probabilitas yang kecil pula, tnjuan lain adalah untuk tetap
bertaban agar tidak teijebak dalam optimum lokal. Contob. sederhana pada
masalah string 1 dan 0 itu, bila mutasi dijalankan dapat dilakukan pengubahan 1
ke 0 dan atau sebaliknya sehingga akan terbentuk satu individu baru yang sangat
\ berlainan dan memperbesar ruang lingkup pencarian kembali. /
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 44/174
2.5.3 SKEMA
Hal lain yaiig tak kalah penting adalah mengenai istilah-istilah yang
digunakan dalam algoritma genetika. Chromosome/string menggambarkan uaitan
job, gen menggambarkan posisi job, alkie menggambarkan job yang memiliki
posisi tersebut.
Berikut adalah skema umiim dari algoritma genetika (Diambil dari jurnal industri
Li Dawei et al 199*9):
- Menginitialisasi populasi awal Po (biasanya didapatkan dari algoritma
heuristik yang lebih sederhana ataupun dengan random)
- Mengevaluasi populasi Po
Menginitialisasi generasi = 1
Mengerjakan langkah-langkah berikut sampai kondisi tertentu :
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 45/174
29
BAB lll
METODE PENELITIAN
3.1 FLOWCHART PENGERJAAN
Untuk mendapatkan hasil yang maksimal, inaka perencanaan yang baik
tentu diperlukan. Demikian pula halnya dalam pengerjaan tugas akhir ini. Berikut
adalah jlowchart pengerjaan tugas akhir ini:
Gatnbar 3.1 Flowchart pengeijaan tugas akhir
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 46/174
30
Gambar 3.1 (lanjutan)
3.2 PENJELASAN SKEMA
1. Studi literatur awal
Studi literatur yang lebih mendalam dilakukan setelah proposal disetujui.
Pencarian literatur sebanyak mungkin yang diperlukan dan dilakukan selama
dipandang masih perlu untuk dilakukan.
2. Menetapkan bentuk algoritma
Setelah melakukan studi literatur yang cukup menjadi modal berpikir,
mulai dicari bentuk algoritma yang akan digunakan dalam tugas akhir ini. Bentuk
algoritma ini tentu tidak lepas dari teori-teori yang didapatkan dari kuliah maupiin
dari studi literatur sehingga modifikasi apapun yang dilakukan tidak menyalahi
\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 47/174
31
aturan yang ada. Tentu saja pada tahap ini bentuk aigoritma ini belum pasti dan
masih dapat berubah seiring waktu dan perkembangan pengerjaan tugas akhir ini.
3. Menetapkan bentuk program
Karena tugas akhir ini adalali simulasi dengan program komputer maka
harus ditetapkan pula rancangan program komputer tersebut. Penetapan
didasarkan pada kriteria user-jhendly, memenuhi sasaran simulasi, sesuai dengan
algoritma yang ditetapkan, dan informasi yang didapatkan cukup lengkap.
4. Pembuatan program
Setelah rancangan tersebut telah direvisi dan bisa dianggap layak untiik
dikerjakan, program pun mulai dibuat. Revisi berikutnya tetap dilakukan bila
diperlukan.
5. Simulasi dan analisa
Setelah program sesuai dengan yang diharapkan, simulasi dan analisa hasil
simulasi mulai dilakukan.
6. Evaluasi
Mengevaluasi hasil analisa tersebut untuk membuat kesimpulan dan saran-
saran bagi tugas akhir ini.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 48/174
32
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.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 49/174
4.1.1.2 LANGKAH ALGORITMA
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.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 50/174
34
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: '
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 51/174
35
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 T a =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
23
4
5
1
0
60
26
2
0
34
9
8
3
8
103
7
4
2
38
7
3
5
2
4131
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
S0
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
E8
8
10
21
33
Mesin 4
S c o
10
18
21
33
E
10
18
21
28
36
Mesin 5
S10
18
21
28
36
E12
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
T 0 = l ; r = l
\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 52/174
36
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 53/174
37
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.
Sib : 1-4-3-2-5
Tabel 4.4 Penjadwalan iterasi 1.2
= 4 dan r2 = 2. Tukarkan posisi job ke-4
Job1
4
3
2
5
Mesin 1
SL 0
0
2
2
8
E0
2
2
8
14
Mesin 2
S0
2^
11
15
[30
11
15
18
18 | 26
Mesin 3
S0
11
15
18
26
E8
14
15
19
33
Mesin 4
S8
14
21
29
33
E10 2 L291
32
36
Mesin 5
S1021
29
32
36
E1224
30
36
37
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 54/174
38
Iterasi 2.1
T o =0.5x0.9=0.45 ;r= 1
Sib: 1-4-3-2-5 ;Ms = 37;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 1S
0
6
8
8
8
E
6
8
8
8
14
Mesin 2S
6
9
18
22
22
E
9
18
22
22
30
Mesin 3S
9
18
22
22
30
E
10
21
22
30
37
Mesin 4S
10
21
28
36
38
E13
28
36
38
41
Mesin 5S
13
f 2836
38
41
E
17
31
37
40
42
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 55/174
39
Karena px < p, maka jadwal baru tersebut bisa diterima.
Iterasi 2.2
T 0 = 0.45 ; r = 2
S 2 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.
S2b: 2-1-3-4-5
Tabel 4.6 Penjadwalan iterasi 2.2
Job
21
3
4
5
Mesin 1
S
0
6
6
6
8
E
6
6
6
8
14
Mcsin 2
S
69
9
13
22
E9
9
13
22
30
Mesin 3
S
910
18
22
30
E
1018
18
25
37
Mesin 4
S10
18
20
28
37
E13
20
28
35
40
Mesin 5
S
13
20
28
35
40
E17
22
29
38
41
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 56/174
40
Job2
5
3
41
1
Mesin 1
S06
1212
14
E6
12 J
12l ^
14
Mesin 2
6
122024
33
E
9
20
24
33
33
Mesiti 3
S9
20
24
33
36
E10
27
24
36
44
Mesin 4
S
10
27
30
38
45
E13
30
38
45
47
Mesin 5
S13
30
38
45
48
E17
31
39
48
50
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 57/174
41
Job
2
3
14
5
Mesin l
S
0
6
66
8
E
6
6
68
14
Mesin 2
S
6
9
1313
22
E
9
13
1322
30
Mesin 3
S9
13
1322
30
E
10
13
2125
37
Mesin 4
S
10
13
2125
37
E
13
21
2332
40
Mesin 5
S
13
21
2332
40
E17
22
2535
41
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 58/174
42
Tabel 4.9 Penjadwalan iterasi 4. ]
Job23
54
1
Mesin 1
S0
6
6
12
14
E66
12
14
14
Mesin 2
S6
9
13
21
30
E9
13
21
30
30
Mesin 3
S9
13
21
30
37
E10
13
28
37
45
Mesin 4
S10
13
28
37
45
E13
21
31
44
47
Mesin 5
S13
21
31
44
47
E17
2232
47
49
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 59/174
43
S4b : 1-3-2-4-5
Tabel 4.10 Penjadwalan iterasi 4.2
Job
1
3
2
4
5
Mesin 1
S0
0
0
6
8
E
0
0
6
8
14
Mesin 2
S0
0
6
9
18
E
o4
9
18
26
Mesin 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
S10
18
21
28
36
E12
19
25
3137
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 60/174
44
Tabel 4.11 Penjadwalan iterasi 5.1
Job53
2
4
1
Mesin 1
S066
12
14
E66
121414
Mesin 2
S6
14
18
21
30
E14
18
21
30
30
Mesin 3
S14
21
21
30
33
E21
21
22
33
41
Mesin 4 ! Mesin 5
S21
24
32
35
42
E24
32
35
42
44
S24
32
35
42
45
E2533
39
45
47
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 61/174
45
S5b: 3-1-2-4-5
Tabel 4.12 Penjadwalan iterasi 5.2
Job
3
1
245
Mesin 1
S0
0
0
6
8
E0
0
6
8
14
Mesin 2
0
6
9
18
E4
4
9
18
26
Mesin 3 | Mesin 4
S4
4
12
18
26
E
4
12
13
21
33
S
4
12
14
21
33
En
12
34
17
28
36
Mesin 5
S
12
14
17
2836
E13
16
213137
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 62/174
46
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).
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 63/174
47
4.1.2.2 LANGKAH ALGORITMA
Gam bar 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.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 64/174
48
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.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 65/174
49
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 66/174
50
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=124
Dengan random, didapatkan parent-parent berikutnya sebagai berikut:
P2 = 2-3-4-1-5 Ms = 44 F = 152
Tabel 4.13 Penjadwalan P2
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 67/174
51
Generasi I:
Pl = 1-3-2-4-5 Ms = 37 F=124
P2 = 2-3-4-1-5 Ms = 44 F = 152
P3= 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
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 68/174
52
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 69/174
53
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 70/174
54
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 71/174
55
\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 72/174
56
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 73/174
57
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 II:
P l : 1-3-4-2-5 Ms = 35 F=126
P 2 : 3-1-4-5-2 Ms = 37 F =126
P3 : 1-3-2-4-5 Ms = 37 F=124
P4: 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 -» Pa= 1-3-4-5-2 Ms = 38 F= 135
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 74/174
58
\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 75/174
59
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 76/174
60
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
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 77/174
61
lterasi 3
PI : 1-3-2-4-5 Ms = 37 F = 124
P2: 1-3-2-4-5 Ms = 37 F =124
P3 : 1-3-2-4-5 Ms = 37 F= 124
P4: 1-3-2-4-5 Ms = 37 F=124
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=124
P3 : 1-3-2-4-5 Ms = 37 F=124
P4 : 1-3-2-4-5 Ms = 37 F=124
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.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 78/174
62
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:
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 79/174
63
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.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 80/174
64
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 81/174
4.2 DESAIN PROGRAM
4.2.1 ALGORITMA PROGRAM
65
Gambar 4.3 Algoritma program utama
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 82/174
66
Gambar 4.4 Flowchart prosedur algoritma SPT
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 83/174
67
Gambar 4.5 Flowcharl prosedur algoritma genetika bagian pertama
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 84/174
68
Gambar 4.6 Flowchart prosedur algoritma genetika lanjutan
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 85/174
69
Gambar 4.7 Flowchart prosedur algoritma simulated annealing
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 86/174
70
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:
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 87/174
71
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
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 88/174
72
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.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 89/174
73
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
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 90/174
74
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.
Ga mba r 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
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 91/174
75
M dan F adalah makespan d&njlowtinw masing-masing jadwal, berikutnya
adalah kolom el, 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.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 92/174
76
BAB V
SIMULASI DAN ANALISA
5.1 PENDAHULUAN
Pada bab ini akan dibahas mengenai simulasi yang dilakukan berserta
analisanya. Simulasi ini bertujuan untuk membandingkan performa algoritma
genetika yang diusulkan dengan algoritma simulated annealing yang diusulkan.
Simulasi dilakukan dengan aturan sebagai berikut:
• Jumlah job bervariasi dari 10 hingga 50 job dengan kenaikan 10 job per
tahap. (Rajendran 1993)
• Jumlah mesin bervariasi dari 5 hingga 30 dengan kenaikan 5 mesin per
tahap. (Rajendran 1993)
• Jumlah problem tiap kombinasi adalah 20.
• Waktu proses iintuk job dirandomkan oleh komputer pada rentangan 1
hingga 99 unit waktu. (Rajendran 1993)
• Untuk algoritma genetika akan dilakukan iterasi 12 parent untiik 16
generasi, sehingga total akan dilakukan : 12C2 x 15 = 66x15 =990 iterasi
yang berarti 990 kali pencarian solusi neighbourhood.
» Untuk algoritma simulaied annealing ditetapkan parameter awalnya adalah
sebagai berikut:
o Probabilitas penerimaan pertama diharapkan akan sebesar 0.95,
diharapkan A adalah sebesar 0.05 yang berarti jadwal baru
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 93/174
77
ditoleransi boleh diterima walaupun kalah dengan jadwal awal jika
kekalahannya itu ada dikisaran angka 0.05.
Dengan detnikian, akan didapatkan simulasi dari 600 problem yang
digenerate oleh komputer. Pembandingan dilakukan pada performa tiap algoritma
dan waktu proses tiap algoritma.
Simulasi dilakukan pada processor AMD dengan kecepatan 400MHz,
dengan RAM 256Mb pada BUS 133. Perlu diingat kecepatan komputer dan
kapasitas serta sistem BUS MolherBoard tentu akan berpengaruh pada kecepatan
kalkulasi untuk problem yang diberikan. Sehingga bila dilakukan pada sistem
komputer dengan kecepatan yang berbeda, kecepatan prosesnya tentu akan
berbeda pula.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 94/174
78
5.2 HASILSIMULASI
Simulasi yang dijalankaii dengaii aturan-atiiran tersebut diatas, hasilnya
dapat dilihat dalam tabel-tabel berikut ini:
5.2.1 KOMBINASl 10 JOB
Tabel 5.1 10 Job 5 Mesin
Dari tabel diatas, GA menghasilkan nilai objektif yang lebih baik pada 6
problem, sedangkan SA menghasilkan nilai objektif yang lebih baik pada 14
problera.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 95/174
79
Jadi, rata-rata performa GA jika mengungguli SA adalah 2.342 dan terjadi
pada 6 problem, sedangkan rata-rata performa SA jika mengungguli GA adalah
6.448 dan terjadi gada 14 problem. Namun pada waktii proses terlihat hal
sebaliknya, rata-rata waktu proses GA 2.34 kali lebih cepat dibandingkan waktu
proses SA.
Tabel5.2 lOjoblOmesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 96/174
80
Rata-rata waktu proses SA : = 382.5 ms
20
Rata-rata perfomna GA jika mengungguli SA adalah 1.9035 dan terjadi
pada 4 problem. sed^ngkan rata-rata performa SA jika mengungguli GA adalah
4.36235 dan terjadi pada 16 problem. Pada waktu proses terlihat hal sebaliknya,
rata-rata waktu proses GA 2.27 kali lebih cepat dibandingkan waktu proses SA.
Tabel 5.3 10 job 15 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 97/174
81
Rata-rata performa GA jika mengungguli SA adalali 2.04 dan terjadi pada
7 problem, sedangkan rata-rata performa SA jika mengungguli GA adalah 5.96
dan terjadi pada 13 problem. Pada waktu proses masih terlihat hal sebaliknya,
rata-rata waktu proses GA 1.874 kali lebih cepat dibandingkan waktu proses SA.
Tabel 5.4 10 job 20 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 98/174
82
Rata-rata performa GA jika mengungguli SA adalah 2.4435 dan terjadi
pada 8 problem, sedangkan rata-rata perfonna SA jika mengungguli GA adalali
4.5486 dan terjadi pada 12 problern. Waktu proses GA masih lebih cepat 1.7 kali
dari waktu proses SA.
Tabel 5.5 10 job 25 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 99/174
83
Rata-rata performa GA jika mengungguli SA adalah 1.80205 dan terjadi
pada 4 problem, sedangkan rata-rata performa SA jika mengungguli GA adalah
3.6733 dan terjadi pada 16 problem. Waktu proses GA masih lebih cepat 1.63 kali
dari waktu proses SA.
Tabel 5.6 10 Job 30 Mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 100/174
84
Rata-rata performa GA jika mengungguli SA adalah 1.7737 dan terjadi
pada 9 problem, sedangkan rata-rata performa SA jika mengungguli GA adalah
4.9096 dan terjadi pada 11 problem. Waktu proses GA masih lebih cepat 1.563
kali dari waktu proses SA.
5.2.2 KOMBINASI20 JOB
Tabel 5.7 20 job 5 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 101/174
85
Rata-rata performa GA jika mengungguli SA adalah 2.9795 dan terjadi
pada 2 problem, sedangkan rata-rata perfonna SA jika mengungguli GA adalah
7.5396 dan terjadi pada 18 problem. Waktu proses GA masih lebih cepat 1.929
kali dari waktu proses SA.
Tabel5.8 20jobl0mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 102/174
86
Rata-rata performa GA jika mengungguli SA adalah 2.0555 dan teijadi
pada 2 problem, sedangkan rata-rata performa SA jika mengungguli GA adalah
8.19729 dan teijadi pada 18 problem. Waktu proses GA masih lebih cepat 1.685
kali dari waktu proses SA.
TabeI5.9 20jobl5mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 103/174
87
Rata-rata performa GA jika mengungguli SA adalah 1.6085 dan terjadi
pada 2 problem, sedangkan rata-rata performa SA jika mengungguli GA adalah
6.4238 dan terjadi pada 18 problem. Waktu proses GA masih lebih cepat 1.502
kali dari waktu proses SA.
Tabel 5.10 20 job 20 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 104/174
88
Pada simulasi kombinasi 20 job 20 mesin ini, GA sama sekali tidak
menghasilkan nilai objektif yang lebih baik dari SA, sedangkan rata-rata perfomia
SA jika mengungguli GA adalah 5.3029 dan terjadi semua problem yang
digenerate. Waktu proses GA masih lebih cepat 1.344 kali dari waktu proses SA.
Tabel 5.11 20 job 25 mesin
No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
GA
Ms
2949
2819
2843
2846
2821
2870
2840
2792
2868
2902
2681
2896
2834
2864
2733
2917
2988
2920
2759
2946
F
41670
40640
39560
40290
40070
39760
38470
40000
40100
37910
38680
39920
39920
37850
39480
39240
40840
40290
39700
39440
* •
Ms
2750
2684
2675
2697
2618
2535
2660
2641
2569
2557
2535
2783
2657
2531
2601
2684
2770
2685
2636
2634
>A
F
42800
40630
39790
40090
41340
40160
39840
40590
40020
39210
39030
40080
42200
38690
39100
40730
43050
39950
40440
39960
Win
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
Performa
4.034
4.826
5.325
5.752
4.029
10.67
2.779
3.938
10.64
8.478
4.549
3.514
0.5495
9.392
5.798
4.206
1.874
8.909
2.612 •
9.275
Waktu (ms)
GA
440
380
440
440
440
440
390
440
440
380
440
440
440
440
380
430
380
440
440
440
SA
500
500
490
500
490
440
490
500
490
500
500
490
500
490
550
500
500
540
550
490
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 105/174
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 106/174
90
Hanya ada 1 GA yang mengungguli SA dengan performa 2.671, rata-rata
performa SA jika mengungguli GA adalah 4.7354 dan terjadi pada 19 problem.
Waktu proses GA masih lebili cepat 1.12 kali dari waktu proses SA.
5.2.3 KOMBINASI 30 JOB
TabeI5.13 30job5mesin
\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 107/174
91
Hanya ada 1 GA yang mengungguli SA dengan performa 0.8203, rata-rata
perfonna SA jika mengungguli GA adalah 6.9955 dan terjadi pada 19 problem.
Waktu proses GA masih lebih cepat 2 kali dari waktu proses SA.
Tabel5.14 30jobl0mesin
No.
1
2
3
45
6
7
8
9
10
11
12
13
14
1516
17
18
19
20
GA
Ms
2551
2255^
2415
21932247
2214
2243
2374
2426
2336
2293
2405
2399
2301
22702535
2489
2349
2385
2304
F \
41260
39670
40850
3670038440
39910
39890
39950
41110
37940
39130
42250
39940
40730
3877042030
42200
40750
39510
38660
<
Ms
2234
2173
2098
21482168
2014
2076
2205
2215
2096
2088
2265
2122
2143
21*552238
2372
2298
2i30
~^09T
>A
F
41120
40730
40500
3955039040
39180
39260
39810
41460
39310
40100
41830
40530
41010
3999042050
43450
42140
40980
37890
Win
SA
SA
SA
GASA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SASA
SA
GA
SA
SA
Performa
12.79
0.9873
13.98
5.4321.939
10.87
9.017
7.467
7.839
6.65
6.446
6.818
10.07
6.162
1.5
11.65
1.746
1.261
6.981 •
11.07
Waktu (ms)
GA
330
390
330
330330
330
330
280
330
330
330
330
330
330
330380
330
330
330
320
SA
540
550
550
550550
550
550
550
550
490
550
490
490
490
550550
500
500
490
490
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 108/174
92
Ada 2 GA yang mengungguli SA dengan rata-rata performa 3.3465, rata-
rata performa SA jika mengungguli GA adalah 7.4435 dan terjadi pada 18
problem. Waktu proses GA masih lebih cepat 1.58 kali dari waktu proses SA.
Tabel 5.15 30 job 15 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 109/174
93
GA sama sek&li tidak menghasilkan nilai objektif yang lebih baik dari SA,
rata-rata performa SA mengungguli GA adalah 6.595 dan terjadi pada semua
problem. Waktu proses GA rnasih lebih cepat 1.294 kali dari waktu proses SA.
Tabel 5.16 30 job 20 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 110/174
94
GA sama sekali tidak menghasilkan nilai objektif yang lebih baik dari SA,
rata-rata performa SA mengungguli GA adalah 5.6777 dan terjadi pada semua
problem. Waktu proses GA masih lebih cepat 1.0998 kali dari waktu proses SA.
Tabel 5.17 30 job 25 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 111/174
95
GA sama sekali tidak menghasilkan nilai objektif yang lebih baik dari SA,
rata-rata performa SA mengungguli GA adalah 6.3852 dan terjadi pada semua
problem. Waktu proses GA masih lebili cepat 1.0054 kali dari waktu proses SA.
Terlihat semakin lama waktu proses GA semakin terkejar oleh SA.
Tabel 5.18 30 job 30 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 112/174
12920Rata-rata waktu proses SA : — = 646 ms
GA sama sekali tidak menghasilkan nilai objektif yang lebih baik dari SA,
rata-rata performa SA mengungguli GA adalah 5.955 dan terjadi pada semua
problem. Waktu proses SA kini lebih cepat 1.111 kali dari waktu proses GA.
5.2.4 KOMBINASI40 JOB
Tabel 5.19 40 job 5 mesin
No.
1
2
3
4
5
6
7
89
10
11
12
13
14
15
16
17
18
1920
GA
Ms2304
2557
2508
2416
2542
2196
2358
24772494
2446
2306
2617
2657
2466
2364
2436
2390
2465
24282373
F
46490
48500
47610
48830
48490
43600
45170
4872049660
48650
44500
48510
49380
48580
47650
46720
47490
48860
4784048100
<
Ms2207
2414
2378
2191
236]
2083
2265
23122308
2278
2184
2400
2287
2373
2298
2254
2270
2329
23102254
SA
F46200
48400
47390
49920
49500
44510
47650
4832049970
49840
42760
48100
49610
48700
47470
47110
46660
48870
4907047180
Win
SA
SA
SA
SA
SA
SA
GA
SASA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SASA
Performa
4.838
5.801
5.65
7.066
5.054
3.068
1.553
7.4746.832
4.416
9.19
9.129
13.45
3.528
3.174
6.637
6.76
5.501
2.2916.944
Waktu (ms)
GA
440
270
330
280
330
330
330
270330
330
270
330
280
330
330
330
330
330
SA
610
610
540
600
600
600
610
600600
540
610
610
610
600
610
550
600
610
330 610
330 1 600
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 113/174
97
11920Rata-rata waktu proses SA : = 596 ms
20
Hanya ada 1 GA yang mengungguli SA dengan performa 1.553, rata-rata
performa SA jika mengungguli GA adalah 6.1475 dan terjadi pada 19 problem.
Waktu proses GA lebih cepat 1.8538 kali dari waktu proses SA.
Tabel 5.20 40 job 10 mesin
No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
GA
Ms2908
2810
2852
2914
2839
2875
3025
2885
2869
2932
2886
2857
3106
3118
2910
3016
2913
3008
2859
2921
F64880
66170
64340
65780
60020
64200
66310
65130
62760
65180
63370
67620
64440
65440
63780
67390
63610
67300
61890
66550
SA Win
Ms2811
2724
2637
2739
2638
2710
2787
2723
F67790 GA
66850 i SA
62080 SA
67110 SA
60890 SA
65480 SA
64930 SA
Performa
1.434
2.034
11.06
3.974
5.636
3.737
9.949
66940 SA | 2.842
2626 63570 SA
2681
2619
2714
2761
2759
2735
2816
2653
66640 SA
65230 SA
67700 SA
67570 SA
67670 SA
68700 GA
69160 SA
67280 SA
2754 68490 SA
2662
2792
63360 SA
66350 SA
7.174
• 6.315
6.305
4.887
6.247
8.111
1.609
4.014
3.152
6.673
4.522
4.715
Waktu (ms)
GA
440
440
440
380
440
440
390
500
440
440
500
440
390
440
440
440
440
440
440
440
SA
600
600
600
660
660
660
600
600
600
650
600
610
660
610
610
600
610
600
660
600
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 114/174
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 115/174
99
GA sama sekali tidak menghasilkan nilai objektif yang lebih baik dari SA,
rata-rata performa SA mengungguli GA adalah 6.7987 dan terjadi pada semua
problem. Waktu proses GA lebih cepat 1.19 kali dari waktu proses SA.
Tabel 5.22 40 job 20 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 116/174
100
14440
Rata-rata waktu proses GA : = 722 msF 20
Rata-rata waktu proses SA : = 752.5 ms
F 20
GA sama sekali tidak menghasilkan nilai objektif yang lebih baik dari SA,
rata-rata performa SA mengungguli GA adalah 7.594 dan terjadi pada seraua
problem. Waktu proses GA lebih cepat 1.042 kali dari waktu proses SA.
Tabel 5.23 40 job 25 mesin
No.
1
2
3
4
5
6
7
8
9
10
11
12
13
1415
16
17
18
19
20
GA
Ms4209
4276
~4O2CP
4346
4376
4279
4262
4093
4398
4208
4196
4185
4296
4291
4298
4242
4042
4258
4199
4325
F108700
110700
106300
111000
107700
107800
106700
108900
109300
106900
109200
108600
105900
109700
108900
107100
108000
110100
104500
105600
SA
Ms3846
3947
3885
4074
3932
3902
3838
3847
3926
3916
3911
3943
3845
3824
3971
3916
3836
3978
3746
3729
F
109400
108900
108000
109200
108000
109700
109700
108200
U0100
108800
108300
113200
109600
108800
110200
108300
107900
110100
105300
104500
Win
SASA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SA
SASA
SA
SA
SA
SA
Perforraa
7.995
9.324
4.154
7.87
9.916
7.071
7.076
6.589
10.03
5.239
7.588
1.522
• 7.043
11.68
6.4
6.544
5.15
6.608
10.06
14.84
Waktu (ms)
GA
720
830
720
770
820
720
770
760
720
820
770
770
820
770
770
830
760
660
880
830
SA
720720
720
770
760
770
770
760
770
760
760
770
770
770
720
770
770
770
L 7 7 0
830
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 117/174
101
GA sama sekah tidak menghasilkan mlai objektif yang lebih baik dan SA,
rata-rata performa SA mengunggub GA adalah 7 635 dan terjadi pada semua
problem Waktu proses SA krai lebih cepat 1019 kah dan waktu proses GA
Tabel 5.24 40 job 30 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 118/174
102
GA sama sekali tidak menghasilkan nilai objektif yang lebih baik dari SA,
rata-rata performa SA mengungguli GA adalah 5.8978 dan terjadi pada semua
problem. Waktu proses SA kini lebih cepat 1.12 kali dari waktu proses GA.
5.2.5 KOMBINASI 50 JOB
Tabel 5.25 50 job 5 mesin
No.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
GA
Ms3154
2868
2958
2992
2712
2987
3197
2999
3193
3081
2994
2809
2835
3068
3090
2925
•2994
3054
3072
3144
F *73790
71260
70790
76610
66020
74050
75820
73050
80620
75570
67770
66140
68980
73640
72680
73520
72460
73700
73640
76060
Ms3107
2572
2796
2835
2603
2746
3041
2839
3095
2887
2743
2612
2721
2920
3045
2709
2895
2993
2890
3076
>A
F75850
68830
72280
75030
69120
74500
75870
74710
80660
77690
68370
67590
70850
74380
75360
73290
75840
76900
74430
75700
Win
GA
SA
SA
SA
GA
SA
SA
SA
SA
SA
SA
SA
SA
SA
GA
SA
GA
GA
SA
SA
Performa
1.294
13.74
3.372
7.305
0.7522
7.463
4.811
3.059
3.01
3.494
7.507
4.815
1.309
3.818
2.111
7.691
1.421
2.264
4.85
2.636
Waktu (ms)
GA
390
330
380
L 330
390
380
440
380
330
390
380
380
330
380
380
380
330
390
380
380
SA
710
660
660
660
660
660
710
720
660
720
660
650
710
660
660
660
660
660
660
660
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 119/174
103
Ada 5 GA yang mengungguli SA dengan rata-rata performa 1.5684, rata-
rata performa SA jika mengungguli GA adalah 5.2587 dan terjadi pada 15
problem. Waktu proses GA lebih cepat 1.8 kali dari waktu proses SA.
Tabel 5.26 50 job lOmesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 120/174
104
14640Rata-rata waktu proses SA : = 732 ms
20
Ada 1 GA yang mengungguli SA dengan performa 2.964, rata-rata
performa SA jika mengungguli GA adalah 7.96 dan terjadi pada 19 problem.
Waktu proses GA lebih cepat 1.3824 kali dari waktu proses SA.
Tabel 5.27 50 job 15 mesin
No.
12
3
4
5
6
7
8
9
10
11
1213
14
15
16
17
18
19
20
GA '
Ms
38734033
3697
4016
3869
4159
3908
3781
3908
4024
3971
41593962
4097
3786
4020
3968
3928
4077
3843
F
110400114700
112300
117400
111800
114800
115800
108500
114400
112900
112900
117400115700
115100
111600
112800
113500
115500
114500
111900
SA
Ms
37653703
3536
3796
3761
3710
3527
3604
3620
3672
3590
38823680
3631
3490
3663
3688
3705
3664
3677
F
114400119000
110500
118700
116000
117800
112200
114600
114200
114500
110200
117100116100
115100
111400
117000
117400
119400
119000
116000
Win
GASA
SA
SA
GA
SA
SA
GA
SA
SA
SA
SASA
SA
SA
SA
SA
SA
SA
SA
Performa
0.974.432
5.897
4.442
1.072
8.179
12.83
1.099
7.554
7.288
12.01
6.916.807
11.37
7.962
5.198
3.663
2.302
6.157
0.5827
Waktu (ms)
GA
660710
660
660
760
710
610
710
660
710
710
710770
660
650
660
720
720
660
710
SA
820770
770
820
770
770
770
830
770
830
820
770830
770
830
820
820
770
760
770
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 121/174
105
Ada 3 GA yang mengungguli SA dengan rata-rata perforaia 1.047, rata-
rata performa SA jika mengungguli GA adalah 6.681 dan terjadi pada 17 problem.
Waktu proses GA lebih cepat 1.149 kali dari waktu proses SA.
Tabel 5.28 50 job 20 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 122/174
106
GA sama sekali tidak menghasilkan nilai objektif yang lebih baik dari SA,
rata-rata performa SA mengungguli GA adalah 7.22535 dan terjadi pada semua
problera. Waktu proses SA kini lebih cepat 1.0066 kali dari waktu proses GA.
Tabel 5.29 50 job 25 mesin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 123/174
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 124/174
108
GA sama sekali tidak menghasilkan nilai objektif yang lebih baik dari SA,
rata-rata performa SA mengungguli GA adalah 5.31915 dan terjadi pada semua
problem. Waktu proses SA kini lebih cepat 1.2292 kali dari waktu proses GA.
5.3 ANALISA HASIL SIMULASI
Tabel 5.31 Kumulatif Hasil Simulasi
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 125/174
109
Pertama dilakukan analisa pada kolom score. Kolom score merupakan
angka keunggulan satu algoritma terhadap algoritma yang lain, dari kolom ini
dapat dilihat bahwa algoritma SA cukup telak unggul terhadap algoritma GA
dalam simulasi yang dijalankan. Total score untuk GA adalah 60 keunggulan
terhadap SA, sedangkan total score SA adalah 540 keunggulan terhadap GA.
Dengan demikian, secara keseluruhan GA hanya memiliki 10% saja dari seluruh
problem simulasi dimana GA unggul terhadap SA, sebaliknya SA unggul 90%
terhadap GA pada simulasi ini.
Analisa pada kolom performa, dilakukan perhitungan sebagai berikut:
Perhitungan diatas menunjukkan performa SA dalam simulasi ini jauh lebih baik
dari performa GA. Hasil-hasil dimana SA unggul terhadap GA jauh lebih baik
daripada hasil-hasil yang didapat bila GA yang unggul terhadap SA. Dari tabel
pun dapat dilihat bahwa performa GA tidak pemah melebihi performa SA.
Analisa terhadap kolom waktu proses, GA memang lebih cepat dalam
melakukan perhitungannya, namun terjadi peningkatan yang cukup besar seiring
dengan bertambahnya job atau mesin dalam problem yang diberikan. Hal berbeda
ditampakkan oleh SA, waktu proses SA tidak mengalami peningkatan sebesar GA
walaupun waktii proses awalnya sudah lebih besar. Hal ini menyebabkan pada
kombinasi job dan mesin yang besar, waktu proses SA bisa lebih cepat
dibandingkan waktu proses GA. Melihat tren ini, dapat diperkirakan apabila
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 126/174
110
kombinasi 10 job pada simulasi ini diteruskan, akan ada titik korabinasi dimana
waktu SA bisa lebih cepat daripada waktu GA.
Gambar 5.1 Grafik waktu proses
Pada gambar 5.1 di atas, dapat dilihat tren yang timbul. Waktu proses SA
memiliki tren dengan gradasi yang lebih kecil, sedangkan waktu proses GA
memiliki tren dengan gradasi yang lebih besar.
Grafik diatas menunjukkan bahwa waktii proses GA sangat dipengaruhi
oleh jumlah mesin yang dikalkulasi, semakin banyak jumlah mesin yang
dikalkulasi. waktu prosesnya menjadi semakin besar. Pada titik nomor 7, 13, 19,
dan 25, dimana disini keadaan problem adalah pada jumlah mesin sedikit,
kenaikannya tidak curam. Berbeda dengan pada titik nomor 6, 12, 18, dan 24,
dimana disini keadaan problemnya adalah pada jumlah mesin yang banyak,
kenaikan waktu proses sangat besar. \
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 127/174
11
Sedangkan waktu proses SA cenderung memiliki kenaikan yang konstan
yang berarti pengaruh jumlah job dan jumlah mesin yang dikalkulasi hampir sama
besar dan ditinjau dari kelandaiannya, pengamh keduanya tidak begitii besar.
5.4 ANALISA KEMUNGKINAN APLIKASI
Program penjadwalan ini belum dicoba untuk diaplikasikan pada kasus
nyata di perusahaan manufaktur tertentu. Beberapa hal yang perlu diperhatikan
pada saat hendak melakukan implementasi pada perusahaan adalah sebagai
berikut:
• Sistem produksi manufaktur harus flow shop.
• Terkadang praktisi tidak mau tahu mengenai teorinya, karena itu perlu
dibuat suatu nilai default pada parameter-parameter awal algoritma
tersebut, sehingga praktisi yang awam pun bisa menggunakan program ini
dengan mudah sekali tanpa harus mencari nilai-nilai parameter awal yang
tepat. Walaupun sebenamya nilai-nilai parameter awal ini tentii akan
sangat berpengaruh pada hasil iterasi, sehingga akan lebih baik jika dicari
terlebih dahulu sesuai dengan kondisi manufaktur yang ada.
• Melihat kendala diatas, langkah terbaik yang ada adalah orang yang
melakukan implementasi harus melihat dahulu kondisi manufaktur yang
ada dan sebagai orang yang lebih mengerti algoritma dan programnya,
diharapkan dapat mencari dahulu nilai-nilai parameter awal yang sesuai
untuk kasus di perusahaan yang diimplementasi tersebut.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 128/174
112
• Penting pula pemberian teori dasar mengenai algoritma yang digunakan
kepada praktisi agar praktisi dapat melihat kelebihan algoritma
metaheuristik tersebut.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 129/174
113
BAB VI
KESIMPULAN DAN SARAN
6.1 KESIMPULAN
Melihat pada hasil simulasi dan analisanya, dapat ditarik kesimpulan-
kesimpulan sebagai berikut:
• Algoritma SA lebih unggul dibandmgkan algoritma GA pada simulasi
yang diberikan. Terbukti pada persentase keunggulan SA terhadap GA
adalah 90% berbanding 10%.
• Walaupun waktu proses SA terlihat lebih lama daripada waktu proses GA,
namun tren waktu proses SA lebih landai dibandingkan tren waktu proses
GA. Sehingga dapat diperkirakan pada kasus dengan jumlah job dan mesin
yang banyak, SA akan lebih cepat menyelesaikan iterasinya daripada GA.
Namun mengingat keunggulan SA yang begitu besar terhadap GA dengan
selisib waktu yang relatif kecil, SA tetap akan lebih baik dalam
menyelesaikan problem-problem yang memiliki kombinasi mesin dan job
kecil. Dapat dilihat dari tabel 5.31, untuk kombinasi 10 job saja, SA masih
memiliki keunggulan 69% terhadap GA.
• Performa SA saat unggul terhadap GA juga jauh lebih baik dibandingkan
pdrforma GA saat unggul terhadap SA. Hal ini semakin memperkuat
rekomendasi SA sebagai metode penjadwalan meta-heuristik yang handal
dalam mencari nilai objektif.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 130/174
114
• Algoritma GA ternyata memakan waktu proses yang lebih lama pada
kasus dengan job dan mesin yang banyak. Hal ini dapat disebabkan oleh
perhitungan GA yang memang lebih banyak dari SA yang sangat
tergantung pada jumlah job dan mesiii yang diiterasikan, misal saja
perhitungan bobot pencarian nilai Y, crossover yang akan menukarkan
lebih banyak job dan kemungkinan mutasi.
6.2 SARAN
Saran-saran yang dapat diberikan seputar topik tugas akliir ini:
• Algoritma GA yang diusulkan tampak baik pada perliitungan kasus dengan
kombinasi job dan mesin yang sedikit, namun jika dilakukan untuk banyak
kasus yang sama, ternyata SA masih lebih baik. Mungkin diperlukan
modifikasi pada algoritma GA agar bisa lebih baik performanya.
Kemungkinan terbesar yang dapat diperkirakan penulis adalah pada
metode crossovernya.
<• Program simulasi ini dirancang untuk dapat menyelesaikan kasus-kasus
nyata yang terjadi di perusahaan-perusahaan manufaktiir, namun karena
tidak dicoba ke arah sana maka tingkat keberhasilannya belum bisa
ditetapkan.
• Program dapat dikembangkan lagi dengan menambahkan algoritma
Branch and Bound sehingga ukuran performa dapat dibandingkan
langsung terhadap algoritma tersebut yang merupakan algoritma paling
optim&l, tidak perlu membandingkan secara langsung. Hal lain adalah
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 131/174
115
penambahan lool untuk perhitungan secara kumulatif dan grafik tren
waktii proses secara kumulatif.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 132/174
16
DAFTAR PUSTAKA
Mitchell, Melanie, 1996. "An Introduction to Geneiic Algorithms", London :
Massachusetts Institute of Technology, Second Printing.
Morton, Thomas E., and Pentico, David W., 1993. "Heuristic Scheduling Systems",
Canada : John Wiey & Sons, Inc.
Goldberg, David E., "Genelic Algorithms, in Search, Optimization and Machine
Learning", Addison-Wesley PublishingCo. lnc, 1989.
Ponnambalan, S.G., Jawahar, N., and Aravindan, P., 1999. "A Simulated Annealing
Algorithm for Job Shop Scheduling", Production Planning and Control Vol. 10,
No.8, 767-777.
Dawei, L., Li, W.. Mengguang, W., 1999. "Genelic Algorithm for Production Loi
Planning ofSteel Pipe ", Production Planning and Control Vol. 19, No. 1, 54-57.
Tucci, M., Rinaldi, R., 1999. "From Theory lo Application: Tabu Search in Textile
Production Schedulling", Production Planning and Control Vol. 10, No. 4,340-
358.
Rajendran, C, 1993. "Heuriscticfor Schedulling in Flowshop with Multiple Objectives",
European Joumal of Operational Research 82.
Medianti, E., Vanina, T., 1999. "Perbandingan Kinerja Algoritma Genetika dan
Algoritma Heuristik Rajendran untuk Penjadwalan Produksi jenis Flow Shop",
Jurnal Teknik Industn Vol. 1, No. 1, 41-50.
Onwubolu, G., Mutingi, M., 1999. "Genetic Algontnm for Mmimizing Tardmess in Flow
Shop Schedulhng", Production Planning and Control Vol. 10, No. 5, 462-471.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 133/174
117
LISTING PROGRAM
Fi l e : sched.dpr
program sched;
usesForms,main in 'main.pas' {fmain},fproblem in 'fproblem.pas' {fnproblem},mpbask in'mpbask.pas' {fpbask},msched in 'msched.pas',fgeneticask in 'fgeneticask.pas' {fgenask},msaask in 'msaask.pas' (fsaask),mrpt in 'mrpt.pas' {frand};
{$R *.RES} -
beginApplication.Initialize;
Application.CreateForm(Tfmain, fmain);Application.Run;
end.
File : main.pas
unit main;
interface
uses
W indows, Messages, SysUtils, Classes, Graphics, Con trols, Forms, Dialogs,Menus;
typeTfmain = class(TForm)
MainM enul: TMainMenu;Newl: TMenuItem;Aboutl: TMenuItem;
Settingsl: TMenultem;W indow l: TMenuItem;Tilel: TMenultem;Cascadel: TMenuItem;Infol: TMenuItem;
Random DislributionRcportl: TM cnuItcm;procedure NewlClick(Scnder: TObjcct);
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 134/174
118
< procedure FormShow (Sender: TO bjcct);
procedure FormClose(Sende,r: T Object; var A ction: TCloseAction);
procedure RandomDistributionReportlClick(Sender: TObject);private
{ Private declarations }public
procedure forminit;procedure autoproblem;procedure formshutdown;{ Public declarations}
end;
varfmain: Tfmain;
implementation
uses fproblem, mpbask, m rpt;
{$R *.DFM}
procedure Tfmain.NewlClick(Sender: TObject);var
ftfnproblem;p:tfpbask;njob,nmach,gtype,rO,r 1 :integer;
begin
p:=tfpbask.create(self);
if p.showmodal=m rok thenbegin
try
njob:=strtoint(p.enjob.text);nmach:=strtoint(p.enmachine.text);if p.rgproblem.ItemIndex=0 thenbegin
rO:=strtoint(p.ermin.text);rl :=strtoint(p.ermax.text);
end else
beginr0:=0;
r l :=0;end;gtype:=p.rgproblem.itemindex;
p.free;\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 135/174
19
f:=tfnproblem.create(njob,nmach,giype,rO,rl,selO;f.show;
exceptp.free;
end;
end elsep.free;
end;
procedure Tfmain.FormShow(Sender: TObject);begin, forminit;end; «
procedure Tfmain.forminit;
begin//autoproblem;
end;
procedure Tfmain.autoproblem;var
f:tfnproblem;
beginf:=tfnproblem.create(8,8,0,20J30,self);f.show;
end;
procedure Tfmain.FormClose(Sender. TObject; var Action: TCloseAction);begin
formshutdown;end;
procedure Tfmain.formshutdown;var
i:integer;
begin
//fori :=OtoMDIChildCount-l do//while MDlChildCount>0 do
// MDIChildren[0].close;
end;
procedureTfmain.RandomDistributionReportlClick(Sender: TObject);
va rf.tfrand;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 136/174
120
beginf:=tfrand. crea te(sel f);f.show;
end;
end.
F i l e : mpbask.pas
unit mpbask;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, ExtCtrls, Buttons;
typeTfpbask = class(TForm)
Label l :TLabel ;
Label2: TLabel;
rgproblem: TRadioGroup;BitBtnl-.TBitBtn;BitBtn2: TBitBtn;
enjob: TEdit;• enraachine: TEd it;LabeB: TLabel;
Label4:TLabel;ermin: TEdit;
ermax: TEdit;private
{ Private declarations }public
{ Public declarations }end;
varfpbask: Tfpbask;
i implementation J
{$R *.DFM}
end.
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 137/174
121
File : msaask.pas
unit msaask;
interface
usesW indows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
typeTfsaask = class(TForm)
Label l :TLabel ;Label2: TLabel;LabeB: TLabel;Label4: TLabel;
etO: TEdit;eta: TEdit;etr: TEdit;eR: TEdit;BitBtnl-.TBitBtn;BitBtn2: TB itBtn;Label5: TLabel;Label6: TLabel;ewl: TEdit;ew2: TEdit;
private
{ Private declarations}public
{ Public declarations }end;
var
fsaask: Tfsaask;
implementation
{$R*.DFM}
end.
File : msched.pas
unit msched;
interface
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 138/174
122
constgtypestr.array [0..1] of string=('RANDOMVBLANK');GEN_PARENTNUM=8;
typetarrint = array of integer;tpbanray = array of ta rrint;tgainfo = record
nparent,ngeneration:integer;mutprob:single;randseed:integer;defwl ,defw2:single;usedefw.boolean;
end;
tcomp rec = recordm,f:single;jobq:tarrint;
end;
tcompar = array of tcom prec;
tpbsim = recordtable:array of array of array[O..l] of integer;jobq:tarrint;
m,f,y:single;mut:boolean;end;
tgaproblem = recordinfo:tgainfo;parent:tarrint;psim,ssim".array of Ipbsim;cp,cg:integer; // current generationcsim:tpbsim;wl,w2:single;
compitcompar;end;
tsaproblem = recordtO,ta,tr,f.double;wl,w2:single;n,r:integer;psim,csim:tpbsim;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 139/174
el,e2,delta,p,px:single; .a:boolean;
comp:tcompar;
end;
function strf(x:single):string;
function getSPT(var x:tpbarray):tarrint;
functionGetRandomParent(n:integer):tarrint;procedure doSIM(var pb:tpbarray;var r:tpbsim;wl,w2:single);procedure crossover(var a,b,c:tarrint);procedure copyjobq(var a:tarrint;var b:tarrint);proce dure cross(var a,b,c,d:tarrint); // cross a & b, store it in cprocedure pbcopy(var a,b:tpbsim);function lpad(q:string;l:inieger):string;functionrpad(q:string;l:integer):string;functionjobqstr(var d:tarrint):string;
function min(a,b:single):single;procedure sort(var x:tcompar);
function scanjobpos(j:tarrint;q:integer):integer;
implementation
uses sysutils;
function getSPT(var x:tpbarray):tarrint;var
p,q:tarrint;
ij,k:integer;begin
setlength(p,length(x));setlength(q,length(x));
for i:=0 to length(x)-l dobegin
q[i]:=i;p[i]:=0;for j:=0 to length(x[i])-l do
inc(p[i],x[ij]);end;
for i:=0 to length(p)-2 dofor j :=i+l to length(p)-l do
if p[j]<p[i] thenbegin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 140/174
124
end;
result:=q;end;
function GetRandomParent(n:integer):tarrint;varp:tarrint;
ij,k,l:integer;
begin
setlength(p,n);
for i:=0ton-l do
for i:=l ton*n dobeginj:=random(n);
k:=random(n);
end;
result:=p;end;
procedure doSIM(var pb:tpbarray;var r:tpbsim;wl,w2:single);var
nmach,njob:integer;ij,s:integer;
begin//nmach:=length(pb[O]);//njob:=length(r.jobq);
njob:=length(r.table);nmach:=length(r.table[O]);
fori :=0 tonjob-l dobegin
s:=0;for j:=0 to nm ach-1 dobegin
if(i>0)thenif (s<r . table[ i - l j , l ] ) then
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 141/174
125
s:=r. table[i-l j , rj ;r.table[ij,O]:=s;inc(s,pb[r.jobq[i]jj);r.table[ij,l]:=s;
end;end;
r.m:=r.table[njob-l][nrnach-l][l];
r.f:=O;for i:=0 to njob-1 do
r. f:=r. f+r.table[i ,nm ach-1 ,1];
end;
procedure crossover(var a,b,c:tarrint);var
l:integer;
i'J,k,m,rl,r2:integer;
beginl:=length(a);
r2:=random(l);
for i :=Otol- l do
for i:=rl to r2 dobegin
j:=b[i];i fc[i]<>jthenbegin
fork :=0to l - l doif c[k]=j thenbegin
m:=c[k];c[k]:=c[i];
c[i]:=m;break;
end;end;
end;end;
proccdure copyjobq(var a:tarrint,var b:larrint); \
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 142/174
126
begin
move(a[0],b[0],sizeof(a[0])*!ength(a));end;
procedu re cross(var a,b,c,d'-tarrint); // cross a & b , store it in cvar
rl,r2,n:integer;ij,k:integer;
beginn:=length(a);repeat
rl :=random(n);r2:=random(n);
unt i l ( r2>rl ) ;
for i:=0 ton-1 dobegin
end;
fori:= rl to r2 dobegin
i f (a [ i ]ob[ i ] ) thenbegin
for j:= 0 to n-1 doif a[j]=b[i] thenbegin
// swap c[j] & c[i];
k:=c[i];c[i]:=cfl;
break;end;end;
end;
end;
procedure pbcopy(var a,b:tpbsim);
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 143/174
127
vari:integer; '
beginwith a dobegin
for i:=0 to length(table)-l do
move(table[i,0,0],b.tabk[i,0,0],length(table[i])*sizeof(table[0,0]));move(jobq[0],b.jobq[0],length(jobq)*sizeofGobq[0]));{for i:=0 to length(jobq )-l dob.jobq[i]:=jobq[i];}
b.m:=a.m;b.f:-a.f;
b.y:=a.y;b.mut:=a.mut;
end;end;
function scanjobpos(j:tarrint;q:integer):integer;var
i:integer;
beginfor i:=0 to high(j) do
ifj[i]=qthenbegin
result:=i;exit;
end;
raise exception.Create('Scanjobpos: not found: '+inttostr(q));end;
function lpad(q:string;l:integer):string;begin
while length(q)<l do q:=' '+q;result:=q;
end;
function rpad(q:string;l:integer):string;
beginwhile length(q)<l do q:=q+'';
result:=q;end; j
function jobqstr(var d:tarrint):string;
vari:integer;
s.string;
begin \
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 144/174
128
s. ,fori:=Olo length(d)-l do
beginifi>Othens:=s+'-';s:=s+inttostr(d[i]+l);
end;result:=s;
end;
function strf(x:single):string;begin
result:=floattostrf(x,ffgeneral,4,7);end;
m
function min(a,b:single):single;begin
if a>b then result:=b else result:=a;end;
procedure sort(var x:tcompar);var
ij,l:integer;k,yl,y2:single;d:tarrint;
begin
setIength(d,Iength(x[0].jobq));I:=sizeof(d[0])*length(d);
for i:=0 to length(x)-2 doforj:=i+ l to length(x)-l do
begin
y2:=(x[j].m+x[j].f)/2;i f (y2>yl) thenbegin
k:=x[i].m;x[i].m:=x[j].in;x[j].m:=k;
k:=x[i].f;
x[i].f:=x[j].f;
xG].f~k;
move(x[i].jobq[0],d[0],l);
move(x[j].jobq[0],x[i].jobq[0],l);move(d[01,x[j].jobq[0],l);
end;\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 145/174
129
• end;
end;
end.
File : mrpt.pas
unit mrpt;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, ExtCtrls;
typeTfrand = class(TForm)
irand: Tlmag e;Bevell-.TBevel;Bevel2: TBevel;Labell: TLabel;Label2: TLabel;Label3: TLabel;Label4: TLabel;procedure FormShow(Sender: TObjecl);procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations}
public{ Public declarations}
end:
varfrand: Tfrand;
implementation
($R *.DFM}
procedure Tfrand.FormShow(Sender: TObject);var
c:tcanvas;r:array of integer;q,ij,v,p:integer;
z:single;begin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 146/174
130
irand.canvas.brush.color:=chvhite;irand.canvas.pixels[O,O];c:=irand.canvas;
p:=irand.width;setlength(r,p);
fillchar(r[0],sizeof(r[0])*p,0);
q:= 10000;
for i:=l to q do
begin1 v.^random^p);
inc(r[v]);end;
for i:=0 to p-1 dobeginz:=r[i]/(q/p);
//z:=z*20*5;z:=z*0.5;c.moveto(i,round((l-z)*irand.height));c.lineto(i,irand.height);
end;end;
procedure Tfrand.FormClose(Sender: TObject; var Action: TCloseAction);
beginaction:=cafree;
end;
end.
File : fproblem.pas
unit fproblem;
interface
usesWindo ws, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
i M enus, Grids,msched, Com Ctrls, StdCtrls, ExlCtrls;
typeTfnproblem = class(TForm)
\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 147/174
131
MainMenul: TMainMenu;
Optim izel: TMenuItem;GeneticAlgorithml: TMenuItem;
SimulatedAnnealingl: TMenuItem;PageControl 1: TPag eCon trol;tsproblem: TTabSheet;
sgproblem: TStringGrid;tsgenetic: TTabSheet;sbga: TS tatusBar;
Panel l :TPanel ;
Panel2: TPanel;Panel3: TPanel;Label2: TLabel;
Label l :TLabel ;lnparent: TLabel;lngeneration: TLabel;Panel4: TPanel;
scgageneration: TScrolIBar;scgaparent: TScrollBar;sgGA: TStringGrid;But tonl :TBut ton;lgainfo: TLabel;tsga2: TTabSheet;mgalog: TM emo;tssa: TTabSheet;
'mlogsa: TMemo;tscomp: TTabSheet;
mcomplog: TMemo;procedure FormClose(Sender: TObject; var Action: TCloseAction);procedure GeneticAlgorithmlClick(Sender: TObject);procedure scgaparentChange(Sender: TObject);procedure scgagenerationChange(Sender: TObject);procedure SimulatedAnnealinglClick(Sender: TObject);procedure sgproblemSetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: String);procedure FormCreate(Sender: TObject);
private{ Private declarations }
publicgatime: tdatetime;satime: tdatetime;
pb:tpbarray;njob,nmachine:integer;ga:tgaproblem;sa:tsaproblem;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 148/174
132
llogsa:tlistbox;
constructor create(njob, nmach, gtype, rO, rl : integer; aow ner: tcom ponen t);procedure tes tl;procedure doGA;procedure optimizega;
procedure autoga;procedure displaysim(x: tstringgrid; var s: tpbsim; var jobq :tarrint);procedure update;procedure initpb(var x: tpbsim);procedure crossover;procedure insertsort(var p: tpbsim );procedure rptstart;procedure galog(q: string);procedure rptcross;procedure postga;procedure mutation;
procedure doSA;procedure optimizeSA;procedure autosa;procedure salog(q: string);function saitcount: integer;procedure compareSAGA;procedure cplog(q: string);procedure compareSAGA2;procedure displayspt;procedure compareSAGA3;
procedure Formlnit;procedure SaveLog(sender: tobject);{ Public declarations}
end;
varfnproblem: Tfnproblem;
impkmentation
uses main, mpbask, fgeneticask, msaask;i
{$R *.DFM}
constructor Tfnproblem.create(njob, nmach , gtype, rO, r l: integer;
aowner. tcomponent);
varij:integer; \
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 149/174
I JJ
be'gin
inherited create(aowner);self.njob:=njob;self.nmachine:=nmach;
caption:='Problem: '+inttostr(njob)+'jobs, '+inttostr(nmach)+' machines,('+gtypestrtgtype^ 1)1;
sgproblem.colcount:=nmach+1;sgproblem.Ro\vCount:=njob+1;for i:=l to nmach do
sgprobIem.Cells[i,0]:=inUoslr(i);for i:=l to njob do
sgproblem.Cells[0,i]:=inttostr(i);
setlength(pb,njob);
for j :=l tonjobdo
beginsetlength(pb[j -1 ] ,nmach);for i:=l to nmach dobegin
pbjj-1 ,i-1] :=rO+random(r 1 -rO);sgproblem .cells[i j]:==inttostr(pb[j-] ,i-l ]) ;
end;end;
tsgenetic.tabvisible:=false;tsga2.tabvisible:=false;
//autoga;//autosa;
/ / test l ;end;
procedure Tfnproblem.ForrnClose(Sender: TObject; var Action: TCloseAction);
begin
action:=cafree;
end;J
procedure Tfnproblem.testl;
va r
p:tarrint;
beginp:=getSPT(pb);p:=getrandoiHparenl(Iength(pb));
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 150/174
134
p:=getrandomparenl(length(pb));p:=getrandomparent(length(pb)); ,
p:=getrandomparent(lenglh(pb));
showmessage(inttostr(length(p)));
end;
procedu re Tfnprob lem.Gene ticAlgorithmlClick(Sender: T Object);begin
doGA;end;
procedure Tfnproblem.doGA;va r
f:tfgenask;
beginf:=tfgenask.create(self);
if (f. showm odal=m rok) thenbeginga.info:=f.gainfo;f.free;
optimizeGA;postga;
end elsef.free;
end;
procedureTfnproblem.optimizega;var
cm,cf.single;ij,k:integer;njob,nmach:integer;
q:string;
const
yn:array[boolean] of char=(' ','Y');
begingatime:=time;
geneticalgorithm 1 enabled:=false;
with ga,info do
begin\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 151/174
135
setlength(parent,nparent);setlength(psjm,nparent);setlenglh(ssim,nparent);
setlength(comp,ngeneration);
njob:=length(pb);nmach:=length(pb[O]);
for i:=0 to nparent-1 dobegin
if i=0 thenpsim[0].jobq:=getSPT(pb)
else
psim[i].jobq:=getRandomParent(njob);
//cparent[i]:=copy(parent[i],0,njob);
//sparent[i]:=copy(parent[i],0,njob);
//setlength(psim[i].table,njob);//for j:= 0 to njob-1 do
// setlength(psim[i].table[j],nmachine);
end;
(setlength(csim.table,njob);
fori:=0 tonjob-l dosetlength(csim.table[i],nmachine);}
for i:=0 to nparent-1 dobegin
//setlength(psim[i].job,nparent);setlength(ssim[i].jobq,length(pb));
end;
setlength(csim.jobq,length(pb));
//dosim(pb,cparent[0],csim,ga.wl,ga.\v2);
cm':=0;cf:=0;for i:=0 to nparent-1 do
begininitpb(psim[i]);initpb(ssim[i]);dosim(pb,psim[i],ga.wl ,ga.\v2);cm:=cm+psim[i].m;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 152/174
136
ef:=cf+psim[i].f;
end;ga.wl:=cm/cf;
ga.w2:=l-wl ;
if usedefw then
beginga.w 1 :=info .defw 1;
ga.w2:=info.defw2;end;
for i:=0 to nparent-1 dowith psim[i] dobeginy:=wl*m+w2*f;
end;
//rptstart;
//galog(#13#10'Wl='+floattostrf(ga.wl,ffgeneral,2,2)+'W2-+flOattostrf(ga.w2,ffgeneral,2,2));
initpb(csim);
scgaparent.max:=nparent-1;scgageneration.max:=ngeneration-1;
galog(#13#10);galog('Iterations ('+inttostr(ngeneration)+' generation):');q:=rpad(' #. JOBQ ',length(pb)*3)+' M F Mut';
// le. 2-6-8-5-4 -1-3-7 2522 13199 Ygalog(q);for i:= 1 to length(q) do q[ i ] := 1 - ;
galog(q);
//for i:=0 to nparent-1 do
for i:=0 to ngeneration-1 dobegin
if i>0 then // do not crossover the first generation
begin
for k:=0 to nparent-1 dossim[k].y.=-l;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 153/174
137
if i>0thenbegin
crossover;
for j:= 0 to nparent-1 dopbcopy(ssim[j],psim[j]);
end;mutation;
end;
for k:=0 to nparent-1 dossim[k].y:=-l;
for j:=0 to nparent-1 do
insertsort(psim[j]);
forj:=Otonparent-l do
pbcopy(ssim[j],psimO]);
if not usedefw then // no default weightbegin
cm:=0;cf:=0; // recalc ga vv'sfor j:=0 to nparent-1 dobegin
cnv.=cm+psim[j].m;cf:=cf+psim[j].f;
end;ga.wl:=cm/cf;
ga .w2:=l -wl ;end;
'{galog(lpad(inttostr(i+l),3)+'.'+rpad(jobqstr(psim[0].jobq),length(pb")*3)+lpad(floaUostrf(psim[0].m,ffgeneral,8,2),10)+lpad(floaUostrf(psim[0].f,ffgeneral,8,2),10)+lpad(floattostrf(psim[0].y,ffgeneral,8,2),10)
);}comp[i].m:=psim[0].m;comp[i].f:=psim[0].f;
setlength(comp[i].jobq,length(psim[0].jobq));move(psim[0].jobq[0],comp[i].jobq[0],length(psim[0].jobq)*sizeof(psim[0].jobq[0]));
for j:= 0 to nparent-1 dobegin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 154/174
138
galog(lpad(inltostr(H1 ),2) tchr(j+97)i-'. 'frpad(jobqstr(psim[j].jobq),length(pb)*3)+lpad(floattostrf(psim[j].m,ffgeneral,8,2), 10)+lpad(floattostrf(psimO ].f,ffgeneral,8,2),10)//+//lpad(floattostrf(psim[j].y,ffgeneral,8,2),10)+' '+yn[psim[j].mut]
);end;
ga logO;
end;galogC');//galog('Best schedule ('+inttostr(nparent)+' parents):');{q:=xpad(' #. JOBQ',le-ngth(pb)*3)+' M F Y';galog(q);for i:= 1 to length(q) do q[i]:= '=';galog(q);}
update;
end;
gatime:=time-gatime;comparesaga;
end;
procedure Tfnproblem.autoga;begin
with ga.infodobegin
nparent:=8;ngeneratioiv.^20;mutprob:=0.2;
optimizega;
postga;end;
end;
procedu?eTfnprob lem.displaysim(x: tstringgrid; var s: tpbsim ; var jobq:tarrin t);
varij,k:integer;z:char;
beginx.TOwcounf.=\ength(s.lable)+1;x.colcount:=length(s.table[0])*2+1;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 155/174
139
for i:=0 lo lengih(s.table)-1 dofor j:= 0 to Iength(s.table[i])-1 dobegin
x.cells(J*2+l,i+l]:=inttostr(s.table[ij )0]);x.cells[j *2+2,i+1 ]:=inttostr(s.table[ij ,1 ]) ;
end;
for i:=0 to length(jobq)-l dox.CeIls[0,i+l]:=inttostr(jobq[i]+l);
for i:=l to x.colcount-l dobegin
k : = ( i - l )mod2 ;
if (k=0) then z:-s' else z:-e';
x.cells[i,0]:=inttostr(j+1 )+z;end;
end;
procedure Tfnproblem.update;begin
lnparent.caption:=inttostr(ga.cp+1);lngeneration.caption:=inttosir(ga.cg+1);
end;
procedure Tfnproblem.scgaparentChange(Sender: TObject);begin
ga.cp:=scgaparent.position;update;
end;
procedure Tfnproblem.scgagenerationChange(Sender: TObject);
begin
ga.cg:=scgageneration.position;update;
end;
procedure Tfnproblem.initpb(var x: tpbsim);
vari:integer;
beginwith x dobegin
//setlength(jobq ,length( pb));
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 156/174
140
setlength(table,lcngth(pb));for i:=0 to length(pb)-l do
set!ength(table[i],length(pb[O]));end;
end;
procedure Tfnproblem.crossover;var
i,cx,cy:integer;
j:tarrint;begin
with gajnfo dobegin
//for i:=0 to nparent-1 do// ssim[i].y:=-l;
setlength(j,length(csim.jobq));
for cx:=0 to nparent-2 dofor cy:=cx+l to nparent-1 dobegin
{cross(psim[cx].jobq,psim[cy].jobq,csim.jobq);dosim(pb,csim,ga.wl ,ga.w2);
insertsort(csim);}
cross(psim [cy] j obq,psi m [cx] .jobq,csim j obq j) ;dosim(pb,csim,ga.wl ,ga.w2);
insertsort(csim);
move(j[0],csim.jobq[0],length(j)*sizeof(j[0]));dosim(pb,csim,ga.wl,ga.\v2);insertsort(csim);
end;
end;end;
procedure Tfnproblem.insertsort(var p: tpbsim );
varij.integer;s:string;
beginwith gajnfo dobegin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 157/174
141
for i:=0 to nparent-1 do
beginif (ssim[i].y<0) or (ssim[i].y>p.y) thenbegin
for j:=nparent-l downto i+1 do
pbcopy(p,ssim[i]);//mgalog.Lines.add('IS('+inttostr(i)+'): M='+inttostr(round(p.m))+'
F-+inttostr(round(p.f))+' Y= '+inttostr(round(p.y)));break;
end;end;
{for i:=0 to 9 do
begin
s:=s+" '+inttostr(round(ssim[i].y));end;
showmessage(s);}
end;end;
procedure Tfnproblem.rptstart;var
s:string;ij,x:integer;
begin
mgalog.clear;s:-Problem description: '+inttostr(length(pb))+' Jobs, '+intlostr(length(pb[0]))+'
Machines'#13#10+#13#10;galog(s);for i:=-l to length(pb)-! do
beginc._n.
= > • >
for j:=-l to length(pb[O])-l do
begin
if(i=-l)thenx:=j+l else
if(j=-l)thenx:=i+l else
x:=pb[ij];
i f( io-l)or( jo-l) then
s:=s+lpad(inttostr(x),5) else
s:=s+' ';
end;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 158/174
142
galog(s);end;
end;
procedure Tfnproblem.galog(q: string);begin
mgalog.lines.add(q);end;
procedure Tfnproblem.rptcross;begin
end;
procedure Tfnproblem.postga;
begin
//displaysim(sgGA,ga.csim,ga.psim[0].jobq);
displayspt;
//sbga.simpIetext:-SPT: l+jobqstr(ga.psim[0].jobq)+'M-+inttostr(round(ga.csim.m))+1
F='+inttostr(round(ga.csim.f))+' Y='+inttostr(round(ga.csim.y));
lgainfo.caption:='Wl='+noattostrf(ga.wl,ffgeneral,2,0)+#13lW 2= t+floattostrf(ga.w2,ffgeneral,2,0);
tsga2.tabvisible:=true;
end;
procedure Tfnproblem.mutation;var
x:single;i j ,dl ,d2:integer;
begin
//x:=random(1000)/1000;//if (x<=ga.info.mutprob) thenbegin
//galogC*** Mutation: '+strf(x));
with ga,info dobegin J
for i:=0 to length(psim)-l dobegin
psim[i].mut:=false;if (random(1000)/1000<=ga.info.mutprob) then
with psim[i] do\ begin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 159/174
143
repeatd 1 :=random(length(jobq));d2:=random(length(jobq));
u n t i l d l o d 2 ;
d l :=scanjobpos(jobq,d 1);
- d2:=scanjobpos(jobq,d2);
j :=jobq[dl];jobq[dl]:=jobq[d21;jobq[d2]:=j;dosim(pb,psim[i],ga.w1,ga.w2);mut^ t rue ;
end;end;
end;end;
end;
proced ure Tfnproblem .SimulatedAnnealinglClick(Sender: TO bject);begin
doSA; .end;
procedure Tfnproblem.doSA;va r
f:tfsaask;
vtx:tdatetime;begin
f:=tfsaask.create(self);if (f.showmodal=mrok) thenbegin
with sa dobegin
try
tO:=strtofloat(f.et0.text);1 ta:=strtofloat(f.eta.text);
tr:=strtofloat(f.etr.text);r.=strtoint(f.er.text);wl :=strtofloat(f.ewl .text);w2:=strtofloat(f.ew2.text);
try
optimizeSA;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 160/174
144
displayspt;
excepton E: exception do
salog('SAException:'+E.Message);
end;
exceptshowmessage('Invalid input !');
end;end;f.free;
en d elsef.free;
end;
procedure Tfnproblem.optimizeSA;var
ml,f l :s ingle;ir,ij,dl,d2:integer;
ti:integer;
q:string;
accept:boolean;
beginsatime:=time;
SimulatedAnnealingl.enabled:=false;tssa.tabvisible:=true;
initpb(sa.csim);initpb(sa.psim);sa.csim.jobq:=getSPT(pb);sa.psim.jobq:=getSPT(pb);sa.n:=0;
setlength(sa.comp,saitcount);
//salog('saitcount = f+inttostr(saitcount));
with sa dobegin
dosim(pb,csim,wl ,w2);dosim(pb,psim,wl,v/2);
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 161/174
145
q:=f N '+rpad('J0BQ',length(pb)*3)+' T R M F el ' e2 d
P px';
salog(q);
for i:=l to Iength(q) do q[i]:='-;
salog(q);// 1.2-1-4-6-8-3-5-7 134 1 388 2257 0 0.0004435 0.0004435
1 0.44
//1,0 .00 11 ,0.9 332, 158c
q:=";
t:=tO;
repeat
i f (n=0)then
beginq:=lpad(inttostr(n),3)+'. '+rpad(jobqstr(csim.jobq),length(pb)*3);q:=q
+lpad(strf(t),10)+lpad(inttostr(ir),4)+lpad(strf(osim.m), 10)+lpad(strf(csim.f),10)
5
salog(q);
inc(n);end;
for ir:=l to rdowith csim dobegin
accept:=false;
move(psim .jobq[0],csim.jobq[0],sizeof(psim.jobq[0])*length(psim.jobq)); // acceptit
repeatdl :=random(Iength(jobq)),
d2:=random(length(jobq));until dl<> d2;
j:=jobq[dl];jobq[dl]:=jobqld2];jobq[d2]=j; x
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 162/174
146
ml:=psim.m;
fl:=psim.f;
dosim (pb,csim ,wl ,vv2);
try
e2:=wl*((m - min (m,m l))/(min(m ,ml))) + w2*((f-min(f,fl))/(min(f,fl)));el :=wl*((ml -min(m,ml))/(min(m,ml))) + w2*((f l-min(f ,f l))/(min(f ,f l)));
excepton E:exception do
raise exception.Create('Error while calculating e l & e2 : '+E.M essage);end;
delta:=e2-el;
q:=lpad(inttostr(n),2)+chr(ir+96)+'.'+rpad(jobqstr(csim.jobq),length(pb)*3);
q:=q
+lpad(strf(t),10)
+lpad(inttostr(ir),4)+lpad(strf(csim.m),10)+lpad(strf(csim.f),10)
+lpad(strfl[el),10)+lpad(strf(e2),10)+lpad(strf(de!ta),10)
ifdelta>Othenbegin
try •//p:=-delta/0;p:=exp(-delta/t);px:=(random(1000)/1000);
excepton e: exception dobegin
salog('error on calculating p (ignored): '+e.Message);p:=0;
end;end;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 163/174
147
a:=px<p;
q:=q+lpad (strf(p), 10)+lpad(strf(px), 10);
if a then
begin
move(csim.jobq[0],psim.jobq[0],sizeof(psim.jobq[0])*length(psim.jobq));//accept it
dosim(pb,psim,wl,w2);q:=q+' ACCEPT';
{sa.comp[n-l].m:=psim.m;
sa.comp[n-l].f:=psim.f;
setlength(sa.comp[n-l].jobq,length(psim.jobq));move(psim.jobq[0],sa.comp[n-
l]jobq[0]jength(psimjobq)*sizeof(psiiujobq[0]));}
accept:=true;end else q:=q+' REJECT';
end elsebegin
move(csim.jobq[0],psim.jobq[0],sizeof(psim.jobq[0])*length(psim.jobq));//accept it
dosim(pb,psim,wl ,w2);
q:=q+rpad(",20)+' ACCEPT';
accept:=true;
{sa.compfn-lj .m^psim.m;sa.comp[n-l].f:=psim.f;
setlength(sa.comp[n-l].jobq,length(psim.jobq));move(psim.jobq[0],sa.comp[n-
I].jobq[0],length(psim.jobq)*sizeof(psim.jobq[0]));}end;
salog(q);
end; J
q:=lpad(inttostr(n),3)+'*'+rpad(jobqstr(psim.jobq),length(pb)>| t3);
q:=q+lpad(strf(t),10)+lpad('*',4)+Ipad(strf(psim.m),10) \
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 164/174
148
+!pad(strf(psim.r)JO); ,
//salog(q);
//t:=t*tr;
tryt:=tO*exp(ti*ln(tr));
excepton e: exception do
raise exception.Create('Error while evaluating t:=tO*e xp(ti*ln(tr)): '+e.Message);end;
inc(ti);
sa.comp[n-l].m:=psim.m;
sa.comp[n-l].f:=psim.f;setlength(sa.comp[n-l].jobq,length(psim.jobq));
move(psim.jobq[0],sa.comp[n-l].jobq[0],length(psim.jobq)*sizeof(psimjobq[0]));
inc(n);
until t<ta;
//salog('Final: t-+ strf(t )+ ', ta='+strf(la));
end;
satime:=time-satime;
' trycomparesaga;
excepton E: exception do
raise exception.Create('Error in com paresaga : '+E.M essage);end;
end,
procedure Tfnproblem.autosa;
beginwith sa dobegin
tO:=134;ta:=10;tr:=0.9;r:=2;wl :=0.5;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 165/174
149
optimizeSA;end;
end;
procedure Tfnproblem.salog(q: string);begin
//mlogsa.Lines.add(q);
llogsa.Items.Add(q);end;
procedure Tfnproblem.sgproblemSetEditText(Sender: TObject; ACol,AR ow : Integer; const Value: String);
begin
ifvalue- ' then exit ;trypb[aro w-1 ,acol-1 ] :=strtoint(value);
exceptend;
//sgproblem.cells[acol,aro\v]:=inttostr(pb[aro\v-1,acol-l]);end;
function Tfnproblem.saitcount: integer;var
i.integer;begin
with sa dobegin
t:=tO;i:=O;repeat
t:=tO*exp(i*ln(tr));inc(i);
until t<ta;end;result:=i-i;
end;j
procedureTfnproblem.compareSAGA;
varn.integer;q:string;
ij:integer;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 166/174
150
el ,e2,mm,ff,d,w1 ,w2 :single;.
wga,wsa:integer;
x:single;begin
if (length(ga.comp)> 0) and(length(sa.comp)>0) then
begintscomp.TabVisible:=true;
wga:=0;wsa:=0;
//sort(ga.comp);//sort(sa.comp);
if (length(ga.comp)>length(sa.comp)) thenn:=length(sa.comp) elsen:=length(ga.comp);
wl:=0.5;w2:=0.5;
cplog('For problem : '+inttostr(length(pb))+ 'job '+inttostr(length(pb[0]))+'machineM-#13#10);
GAm GAf1+rpad('SAJOBQ l,length(pb)*3)+' SAm SAf el e2 d WIN ';
cplog(q);for i:=l to length(q) do q[i]:='=';
cplog(q);
//for i~0 to n-1 do // compare each iteration//for i:=n-l to n-1 do // show the best only
i'.=length(ga.comp)-l;j:=length(sa.comp)-1;
begin
mm:=min(ga.comp[i].m,sa.comp[j].m);ff:=min(ga.comp[i].f,sa.complj].f); J
tryel:=wl*((ga.comp[i].m-mm)/mm) + w2*((ga.comp[il.f-fT)/ff);
e2:=wl*((sa.comp[j].m-mm)/mm) + \v2*((sa.comp[j].f-ff)/ff);except
on e: exceplion do \
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 167/174
151
raise exception.Create('error while evalualing el & e2 : '+e.Messag e);end;
d:=e2-el;
q:=rpad(jobqstr(ga.comp[i].jobq),length(pb)*3)+
lpad(strf(ga.comp[i].m),10)+lpad(strf(g a.com p[i]. f), 10)+1 '+rpad(jobqstr(sa.comp[j].jobq),length(pb)*3)+lpad(strf(sa.comp[j].m),10)+lpad(strf(sa.comp[j].f),10)+
lpad(slTf(el),10)+lpad(strf(e2),10)+lpad(strf(d),10); '
i f doO t he ni fd>0thenq:=q+ ' GA'e l se q:=q+" SA';
i f d o O t h e nif d>0 then inc(wga) else inc(wsa);
cplog(q);end;
cplog(");//q:='WIN : SA^+inttostrCwsaJ+' GA='+inttostr(wga);
//cplog(q);
try
if wsa=wga thenbegin
cplog('GA v.s. SA : DRAW');end elsebegin
ifwsa>wgathenbegin
cplog('Best schedu le is Simulated A nnealing');x--(((GA.comp[i].m-SA.compO ].m)/GA.comp[i].m)-t-((GA.comp[i].f-
SA.compO].f)/GA.comp[i].f)) * 100;end elsebegin
cplog('Best schedule is Genetic A lgorithm');
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 168/174
152
x:=(((SA.comp[j].m-GA.comp[i].m)/SA.comp[i].m)+((SA.comp|j].f-GA .comp[i].f)/SA.comp|j].f)) * 100;
end;
cplog('Performa : '+strf(x));cplog(");end;
excepton e:exception do
raise exception.Create('Error while calculating best schedule ('+E.Message+')');end;
cplog('Processing Time : GA : '+inttostr(round(gatime*60*60*24*1000))+' ms');cplogC SA :*'+inttostr(round(satime*60* 60*24* 1000))+'m s');
end;end;
procedure Tfnproblem.cplog(q: string);begin
mcomplog.Lines.add(q);end;
procedureTfnprob!em.compareSAGA2;begin
if (length(ga.comp)>0) and
(length(sa.comp)> 0) thenbcgin
tscomp.TabVisible:=true;
end;end:
procedure Tfnproblem.displayspt;var
x:tpbsim;begin
x.jobq:=getSPT(pb);initpb(x); J
dosim(pb,x,0.5,0.5);
displaysim(sgGA,x,x.jobq);
sbga.simpIetext:=lSPT:'+jobqstr(x.jobq)+1M =1+inttostr(round(x.m))+ l
FV+inttostr(round(x.f));
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 169/174
153
tsgenetic.tabvisible:=true;end;
procedure Tfnproblem.compareSAGA3;var
n:integer;q:string;
ij:integer;
el5e2,mm,ff,d,wl,w2:single;
v/ga,wsa:integer;
x:single;
bga,bsa:
A
tpbsim;msr,fr,wa,wb,ysa,yga:single;begin
if (length(ga.comp)>0) and, (length(sa.comp)>0) thenbegin
tscomp.TabVisible:=true;
wga:=0;wsa:=0;
//sort(ga.comp);
//sort(sa.comp);
if (length(ga.comp)>length(sa.comp)) thenn:=length(sa.comp) elsen:=length(ga.comp);
w1:=0.5;w2:=0.5;
cplog('For problem : '+inttostr(length(pb))+' job '+inttostr(length(pb[0]))+'
machine'+#13#10);
q:=rpad('GAJOBQ',length(pb)*3)+' GAm GAf'+rpadCSAJOBg'.lengthCpb)*^)^1 SAm SAf el e2 d W IN';
cplog(q);for i:=l to length(q) do q[i]:='=';cplog(q);
//for i:=0 to n-1 do // compare each iteration//for i:=n-l to n-1 do // show the best only
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 170/174
154
i:=]ength(ga.comp)-l;
j :=length(sa.com p)-1;
begin
mm :=min(ga.comp[i].m,sa.comp[j].m);
ff:=min(ga.comp[i].f,sa.compjj].f);
el:=wl*((ga.comp[i].m-mm)/mm) + w2*((ga.comp[i].f-ff)/fO;e2:=wl*((sa.comp[j].m-mm)/mm) + w2*((sa.comp[j].f-ff)/ff);
d:=e2-el;
q:=rpad(jobqstr(gaxqmp[i].jobq),length(pb)*3)+
lpad(strf(ga.comp[i].m),10)+lpad(strf(ga.com p[i].f), 10)+
' '+rpad(jobqstr(sa.compjj].jobq),length(pb)*3)+lpad(strf(sa.comp[jj.ni),10)+
Ipad(strf(sa.comp0].f),10) +
lpad(strf(el),10)+lpad(strf(e2),10)+lpad(strf(d),10);
if d o O theni f d>0 t he nq : =q+ ' GA'else q:=q+' SA';
if do O thenif d>0 then inc(wga) else inc(wsa);
cplog(q);end;
1 cplog(");
//q:='WIN : SA= '+inttostr(wsa)+' GA='+inUostr(\vga);
//cplog(q);
if\vsa=wgathenbegin
cplog('GA v.s. SA : DR AW ');en d elsebegin
(i f wsa>\vgathenbegin
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 171/174
155
cplog('Be stschedule is Simulated Annealing1); '
x:=(((GA.comp[i].m-SA.comp[j].m)/GA.comp[i].m)+((GA.comp[i].f-SA.comp[j].f)/GA.comp[i].f)) * 100;
end elsebegin
cplog('Best schedule is Genetic Algorithm');
x:=(((SA.comp[j].m-GA.comp[i].m)/SA.comp[i].m)+((SA.comp[j].f-GA .comp[i].f)/SA.comp[j].f)) * 100;
end;cplog('Perforina: '+strf(x));}
bga:[email protected][i];
bsa:[email protected][j];
msr:=(bsa.m+bga.m)/2;fr:=(bsa.f+bga.f)/2;
wa:=msr/fr;
wb:=l-wa;
ysa:=(wb*bsa.m) + (wa*bsa.f);yga:=(wb*bga.m) + (wa*bsa.f);
ifwsa>wgathenbegin
cplog('Best schedule is Simulated Annealing');x:=abs((ysa-yga )/ysa)* 100;
end elsebegin
cplog('Best schedule is Genetic Algorithm');x:=abs((yga-ysa)/yga)*100;
end;cplog('Performa : '+strf(x));
c p l ogO ;end;
cplog('Processing Time : GA : '+inttostKroundCgatime+eO^eO^l^^lOOO))^ ms');
cplogC SA : M-inttostr(round(satime»60*60*24* 1000))+ ' ms');
end;end;
procedure Tfr,probIem.FormCreate(Sender. TO bject);
begin\
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 172/174
156
forminit;
end;
procedure Tfnproblem.Formlnit;var
p:tpopupmenu;i:tmenuitem;
beginllogsa:=tlistbox.Create(self);
llogsa.Parent:=mlogsa.Parent;
mlogsa.Free;
llogsa.Align:=alclient;
p:=tpopupmenu.Create(self);
llogsa.PopupMenu:=p;
i :=tmen uitem. Crea te(self);i.Caption:-Save to File ... ';
i.Tag:=integer(llogsa);i.OnClick:=savelog;p.Items.Add(i);
end;
procedure Tfnproblem.SaveLog(sender: tobject);var
d:tsavedialog;
l:tlistbox;
begind:=tsavedialog.Create(self);
d.Filter:=Text files (*.txt)l*.TXT|All Files (*.*)|d.DefaultExt:=TXT';
if d.Execute then
beginl:=tlistbox((sender as lm enuitem).tag);
l.Items.SaveToFile(d.FileName);
end;
d.Free;end;
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 173/174
157
end.
F i l e : fgeneticaslcpas
unit fgeneticask;
interface
usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, Buttons, msched;
typeTfgenask = class(TForm)
Label l :TLabel ;Label2: TLabel;LabeI3:TLabel;enparent: TEdit;enmutprob: TEdit;erandseed: TEdit;gweight: TGroupBox;
edefwl: TEdit;edefw2: TEdit;Label4: TLabei;Label5: TLabel;BitBtnl-.TBitBln;Bitfitn2: TBitBtn;cusedefw: TCheckBox;Label6: TLabel;engeneration: TEdit;procedure cusedefwClick(Sender: TObject);procedure BitBtnlClick(Sender. TO bject);
private{ Private declarations}
publicgainfo: tgainfo;
{Public declarations}
end;
varfgenask: Tfgenask;
implementation
7/28/2019 Multiple GA Penjadwalan.pdf
http://slidepdf.com/reader/full/multiple-ga-penjadwalanpdf 174/174
158
{$R*.DFM}
procedure Tfgenask.cusedef\vClick(Sender: TObject);begin
gweight.visible:=cusedefw.checked;
end;
procedure Tfgenask.BitBtnlClick(Sender: TObject);begin
fillchar(gainfo,sizeof(gainfo),0);
gainfo.nparent:=strtoint(enparent.text);gainfo.ngeneration:=strtoint(engeneration.text);gainfo.mutprob:=strtofloat(enmutprob.text);//gainfo.randseed:=strtoint(erandseed.text);gainfo.usedefw:=cusedefw.fhecked;
if (gainfo.usedefw) thenbegin
gainfo.defwl :=strtofloat(edefwl .text);gainfo.defw2:=strtofloat(edef\v2Aext);
if(round(1000*(gainfo.defwl+gainfo.defw2))<>1000)thenraise Exception.Create('Invalid Default weight!');
end;