Multiple GA Penjadwalan.pdf

174
SKRIPSI / TUGAS AKHIR NO. 573 / Tl - 054 / 2002 PERBANDINGAN KINERJA ALGORITMA GENETIKA DA N 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

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

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.

 \ 

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;