74
BAB 4 PENGUJUAN MODEL DAN ANALISIS
Untuk keperluan pengujian model dan program komputer yang telah dikembangkan dilakukan pengumpulan data sebagai berikut : 1. Pengujian model dalam masalah job shop dengan berbagai variabel jumlah mesin, job, dan operasi tiap job. 2. Karakteristik optimasi lokal yang dilakukan oleh model. Data hasil dari re-optimasi lokal yang dilakukan, model diplot untuk mengetahui perilaku pencarian lokal optimal. 3. Perbandingan antara model dasar dengan pendekatan heuristik priority dispatching yang dalam hal ini dilakukan oleh program aplikasi Quant System. 4. Pengujian model dengan waktu siap job / operasi tidak sama dengan nol. Pada bagian ini diberikan contojh kasus dimana terdapat job dan operasi yang memiliki waktu siap tidak sama dengan nol. 5. Pengujian model dengan waktu siap mesin tidak sama dengan nol. Pada bagian ini dibahas kasus yang didalamnya terdapat mesin dengan waktu siap tidak sama dengan nol. 6. Pembahasan masalah job berprioritas.
75
4.1
Pengujian Model Dengan Berbagai Variabel Pengujian ini dilakukan untuk mengetahui kemampuan model dan performansinya dalam menyelesaikan masalah-masalah job shop dengan N job dan M Mesin. Pada pengujian ini, model akan diuji dalam berbagai kondisi. Kondisi yang berbeda tersebut dibedakan dalam beberapa variabel, yaitu : •
Jumlah job atau part
•
Jumlah operasi pada setiap job
•
Waktu proses setiap operasi
•
Jumlah mesin yang terlibat dalam penjadwalan Variabel-variabel tersebut yang akan menjadi input bagi model
penjadwalan algoritma Shifting Bottleneck. Penetapan variabel waktu proses diperoleh dari data dengan membangkitkan bilangan random berdistribusi seragam yang bervariasi dari 10 sampai 100. Bahasa pemrograman yang digunakan adalah Dev C++. Pada pengujian ini juga diberikan solusi salah satu kasus dalam bentuk tabel dan Gantt Chart untuk mengetahui kebenaran jadwal yang sudah terbentuk.
76
Tabel 4.1 Data pengujian model dasar Problem
Mesin
Job
Operasi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
4 4 5 5 5 5 6 5 5 5 5 10 10 10 15 15 15 16 17 17 18 18 20 25 30 35 40 45 50 50
5 3 5 6 6 5 6 10 10 15 20 10 10 20 5 10 20 15 20 15 16 17 15 20 25 30 35 40 45 50
3 4 5 4 5 20 6 5 5 5 5 5 10 10 10 10 10 15 20 15 10 18 10 15 20 25 30 35 40 50
Makespan (detik) 13* 28 253 357 81 1615* 406 373 882 1237 1552 637 794 1863 879 1178* 1572 1752 2052 1846 2272 2389 2736 3418 3886 4559 4924 5338 6709 6958
Waktu Proses (detik) 1 1 1 1 1 2 1 1 1 2 2 2 7 35 3 12 46 37 64 41 45 48 52 67 83 92 108 127 154 172
LB 13* 27 220 205 80 1615* 366 280 850 1094 1512 528 603 1458 825 1178* 1189 1722 1987 1819 1374 1621 2594 2983 3697 3979 4608 5011 6173 6285
77
Kasus 1 : Contoh kasus yang akan diberikan adalah solusi dari problem 1 pada tabel pengujian diatas. Problem ini terdiri dari 4 mesin, 5 job, dengan operasi maksimum tiap job adalah 3.
Tabel 4.2 Data Penjadwalan Kasus 1 No Job
No Operasi
1
1 2 3 4 5 6 7 8 9 10 11 12 13
2
3
4 5
Waktu Proses (detik) 2 3 3 3 2 1 3 2 4 1 3 4 4
No Mesin 1 2 1 4 2 1 2 3 1 3 4 3 4
78
2 1
2 3
0
3
3
3
0
4
5
1 0
3
6
0
2
7
8
0
3 4 9
0
10
11
1
4
4
12
13
Gambar 4.1 Graph Kasus 1.
Tabel 4.3 Hasil Penjadwalan Kasus 1 No Job
No Operasi
1
1 2 3 4 5 6 7 8 9 10 11 12 13
2
3
4 5
Waktu Mulai (detik) 8 10 0 3 7 3 4 9 4 8 10 0 6
Waktu Selesai (detik) 10 13 3 6 9 4 7 11 8 9 13 4 10
2
14
79
M4 M3
4
13
12 7 3
8
10
M2 M1
11
5 9
6
2 1
5
10
Job 1
Job 4
Job 2
Job 5
13
Job 3 Gambar 4.2 Gantt Chart Kasus 1
4.2
Analisis Pengujian Model Dengan Berbagai Variabel Pengujian yang dilakukan dengan bantuan program komputer menghasilkan data pengujian seperti yang dapat dilihat pada tabel 4.1. Pada data pengujian tampak bahwa algoritma Shifting Bottleneck diuji dengan variabel job, mesin dan operasi yang berbeda-beda dengan minimum empat mesin, lima job dan tiga operasi dan maksimum 15 mesin, 20 job dan 20 operasi. Pengujian terhadap bermacam-macam kondisi ini bertujuan untuk mengetahui solusi dan waktu yang di butuhkan untuk menghasilkan solusi serta mengetahui kemampuan program untuk menyelesaikan bermacammacam masalah.
80
Pada tabel 4.1 tersebut tampak LB atau Lower Bound yang merupakan nilai makespan maksimum yang diperoleh penjadwalan satu mesin, saat belum ada mesin yang telah dijadwalkan atau M o = φ . Bila terdapat solusi akhir yang sama dengan Lower Bound maka solusi tersebut adalah solusi optimal sedangkan solusi yang lebih besar dari Lower Bound adalah solusi yang dihasilkan oleh algortima Shifting Bottleneck yang mungkin saja merupakan solusi optimal. Pada pengujian tersebut terdapat dua masalah yang solusinya sama dengan Lower Bound ( problem 1 dan 4 ), maka masalah tersebut terpecahkan dengan optimal dengan algoritma Shitfting Bottleneck. Waktu proses pada tabel tersebut merupakan waktu komputasi yang dibutuhkan untuk menyelesaikan masalah. Tampak bahwa semakin besar masalah semakin besar pula waktu komputasi yang dibutuhkan. Pada algoritma ini, jumlah job dan jumlah operasi mencerminkan banyaknya simpul dalam graph yang mempengaruhi berapa kali algortima pencarian lintasan terpanjang dilakukan, sedangkan banyaknya mesin membuat prosedur reoptimasi lokal dan pencarian mesin yang bottleneck melakukan penjadwalan satu mesin dengan jumlah yang tergantung dari banyaknya mesin. Faktor-faktor ini mempengaruhi lamanya waktu komputasi. Pada tabel 4.1 diatas tampak bahwa waktu yang dibutuhkan untuk mengeluarkan solusi, relatif kecil sehingga dapat secara praktis digunakan dalam kondisi nyata, maupun untuk rescheduling atau dibandingkan dengan
81
algoritma lain untuk mencari algoritma penjadwalan yang terbaik dalam modul sistem pakar. Contoh solusi dari problem 1 merupakan gambaran mengenai hasil penjadwalan yang dilakukan dengan algortima ini. Problem tersebut, dengan algoritma ini diselesaikan dengan bantuan graph seperti pada gambar 4.1. Tabel
hasil
penjadwalan
berdasarkan
job
dan
berdasarkan
mesin
menunjukkan waktu dan urutan pengerjaan operasi dalam tiap job dan waktu dan urutan operasi pada tiap mesin. Dengan tabel ini maka kesalahan dapat dideteksi dengan mudah. Selama pengujian dilakukan tidak ada kesalahan yang terjadi dalam jadwal, jadi solusi pada tabel 4.1 merupakan solusi yang benar.
4.3
Karakteristik Optimasi Lokal Model dasar yang dikembangkan melakukan re-optimasi lokal dari mesin-mesin yang telah dijadwalkan satu persatu dengan cara melakukan penjadwalan satu mesin terhadap operasi-operasi yang diproses dalam suatu mesin. Bagian ini akan menggambarkan proses optimasi lokal yang dilakukan model. Untuk keperluan tersebut diambil contoh reoptimasi lokal dari salah satu problem yang diuji.
82
Gambar 4.3 Grafik Reoptimasi Lokal
4.4
Analisis Reoptimasi Lokal Reoptimasi lokal merupakan suatu prosedur bagian dari algortima Shifting Bottleneck yang dilakukan pada M o , yaitu himpunan mesin-mesin yang telah terjadwal. Reoptimasi lokal dilakukan setiap kali suatu mesin yang bottleneck masuk dalam anggota M o . Reoptimasi lokal ini menjadwalkan kembali semua mesin-mesin yang telah terjadwal dengan masuknya anggota baru mesin yang bottleneck tersebut. Penjadwalan kembali ini dilakukan terhadap mesin satu persatu dengan penjadwalan satu mesin yang optimal. Setelah semua mesin terjadwal kembali, reoptimasi ini diulang sampai tidak ada lagi perbaikan atau berhenti setelah beberapa putaran yang dapat ditentukan sebelumnya. Reoptimasi lokal ini akan memperbaiki solusi makespan sampai titik dimana tidak ada lagi perubahan. Hal ini dapat ditunjukan pada gambar 4.3
83
dimana nilai makespan cenderung terus menurun sampai tidak ada lagi perubahan. Pada gambar 4.3 tersebut sumbu vertikal menunjukkan nilai makespan sedangkan sumbu horizontal menunjukkan putaran reoptimasi. Angka 1, 2, dan seterusnya pada reoptimasi menunjukkan putaran 1, putaran 2, dan seterusnya. Pada gambar 4.3 tersebut, nilai makespan tampak tidak mengalami perubahan lagi pada putaran tiga dan empat. Reoptimasi lokal ini pada dasarnya merupakan usaha untuk memperoleh solusi optimal dilihat dari masing-masing mesin dengan melihat keterkaitannya dengan mesin dan operasi lain. Teknik ini walaupun tidak menjamin
penyelesaian
optimal
secara
keseluruhan,
tetapi
mampu
memberikan solusi yang baik dengan waktu yang relatif cepat. Hal ini akan diperlihatkan pada bagian perbandingan dengan teknik yang lain.
4.5
Perbandingan Model Dengan Pendekatan Heuristik Priority Dispatching. Pada bagian ini akan dilakukan perbandingan antara model Shifting Bottleneck dengan pendekatan heuristik lain yang sering digunakan yaitu priority dispatching. Untuk keperluan perbandingan ini, solusi dari model dasar akan dibandingkan dengan solusi dari program Quant System dengan option semua aturan untuk menyelesaikan problem ( Option 2 ). Aturan yang digunakan dalam Quant System adalah SPT ( Shortest Processing Time ), LPT ( Longest Processing Time ), RANDOM, FCFS
84
( First Come First Serve ), LCFS ( Last Come First Serve ), LWKR ( Least Work Remaining ), MWKR ( Most Work Remaining ), TWK ( Total Work ), LWK ( Least Total Work ), FOR ( Fewest Operation Remaining ), EDD ( Earliest Due Date ), SLACK , S/ROP ( Slack / Remaining Operation ), WINQ ( Work In Next Queue ) dan INDEX.
Tabel 4.4 Perbandingan Shifting Bottleneck dengan Algoritma Priority Dispatching Shifting Bottleneck Problem 1 2 3 4 5 6 7 8 9 10
M
J
4 5 5 10 10 15 3 3 10 10
5 5 10 10 20 5 4 6 10 20
O 3 20 5 5 10 10 5 6 10 10
Makespan 13 1615 882 637 1863 879 295 360 580 1875
LB 13 1615 850 528 1458 825 217 333 374 1458
Waktu 1 2 1 2 35 3 1 1 8 30
Catatan : M
: Jumlah Mesin
J
: Jumlah Job
O
: Jumlah maksimum operasi dalam tiap job
LB
: Lower Bound
Priority Dispatching Quant System Makespan Waktu 13 1 1615 12 932 5 834 12 2124 27 879 8 296 3 373 4 641 12 2117 21
85
4.6
Analisis Perbandingan Model Perbandingan
terhadap
beberapa
algortima
teknik
Priority
Dispatching dilakukan dengan maksud untuk mengetahui kualitas solusi yang diberikan dan waktu yang dibutuhkan untuk memperoleh solusi. Dari tabel 4.4 di atas tampak bahwa 8 dari 10 perbandingan yang dilakukan algoritma Shifting Bottleneck menghasilkan jadwal yang lebih baik dari teknik Priority Dispatching dalam program aplikasi Quant System. Dua dari 10 perbandingan yang dilakukan menghasilkan solusi yang sama dan solusi tersebut optimal dan tidak ada solusi yang lebih buruk yang dihasilkan oleh algortima Shifting Bottleneck selama perbandingan dilakukan. Dari tabel 4.4 di atas tampak bahwa waktu komputasi dengan algoritma Shifting Bottleneck lebih cepat dari teknik Priority Dispatching, kecuali untuk problem dengan jumlah mesin 20, job 20 dan maksimum operasi per job 10. Kelemahan yang tampak untuk algoritma Shifting Bottleneck adalah waktu yang lebih lama dari teknik Priority Dispatching pada problem yang semakin besar, tetapi ini dapat diimbangi dengan waktu yang lebih baik pada masalah-masalah yang kecil dan solusi yang diberikan algoritma Shifting Bottleneck lebih baik. Kenyataan ini menunjukkan bahwa algoritma Shifting Bottleneck sangat baik digunakan untuk menyelesaikan masalah N job M mesin dengan kriteria minimasi makespan.
86
4.7
Pengujian Model Dengan Waktu Siap Job Bervariasi Pada kondisi nyata seringkali job datang secara dinamis selama dilakukan penjadwalan. Oleh karena itu harus terdapat sistem yang dapat mengantisipasi masalah tersebut sehingga sasaran yang ingin dicapai dalam penjadwalan dapat terpenuhi. Pengembangan model dilakukan untuk menyelesaikan masalah ini sehingga model dasar dapat digunakan dalam kondisi seperti ini. Pengujian ini dilakukan terhadap lima problem dan diberikan salah satu solusi dalam bentuk tabel dan Gantt Chart. Kasus 2 : Pada contoh berikut diberikan kasus 2 yang menggambarkan solusi yang dihasilkan pemgembangan model yang telah dilakukan untuk menyelesaikan masalah dengan waktu siap job dan operasi tidak sama dengan nol. Kasus ini merupakan masalah dengan 4 mesin, 5 job dan maksimum 3 operasi dalam tiap job. Job 5 siap pada t = 4 dan operasi 2 siap pada t = 11.
87
Tabel 4.5 Data Penjadwalan Kasus 2 No Job
No Operasi
1
1 2 3 4 5 6 7 8 9 10 11 12 13
2
3
4 5
11
Waktu Proses (detik) 2 3 3 3 2 1 3 2 4 1 3 4 4
No Mesin
Waktu Siap
1 2 1 4 2 1 2 3 1 3 4 3 4
0 11
2
1
0
0
0 4
2
0 3
3
3
3
4
5
0
2 1
0
0
3
6
7
2 14
8
0
3 4 9
0
1 10
11
4
4 4 12
13
Gambar 4.4 Graph Kasus 2
88
Tabel 4.6 Hasil Penjadwalan Kasus 2 No Job
No Operasi
1
1 2 3 4 5 6 7 8 9 10 11 12 13
2
3
4 5
M4
Waktu Selesai (detik) 10 14 3 6 9 4 7 11 8 9 15 8 12
4
13
M3
12
M2 M1
Waktu Mulai (detik) 8 11 0 3 7 3 4 9 4 8 12 4 8
7 3
8
10 5
9
6
11
2 1
5
10
Job 1
Job 4
Job 2
Job 5
Job 3
Gambar 4.5 Gantt Chart Kasus 2
15
89
4.8
Analisis Model Dengan Waktu Siap Job Bervariasi Pengujian terhadap model terhadap waktu siap job atau operasi yang tidak sama dengan nol telah dilakukan pada bagian 4.7 diatas. Masalah yang diselesaikan adalah masalah dengan 4 mesin, 5 job dan maksimum 3 operasi per job. Job 5 pada problem tersebut siap pada t = 4 dan operasi 2 siap pada t = 11. Solusi dari masalah ini dapat dilihat lebih jelas pada Gantt Chart di gambar 4.5. Pada gambar tersebut, operasi pertama pada job 5 yaitu operasi dengan nomor 12 dilakukan pada t = 4. Job 5 ( operasi 12 ) sebenarnya dapat lebih dahulu dikerjakan pada mesin 3 dengan t = 0 karena mesin menganggur pada saat itu, tetapi karena job 5 baru siap pada t = 4 maka operasi 12 baru dapat dikerjakan pada t = 4. Begitu pula dengan operasi 2 yang baru siap pada t = 10, operasi 1 yang harus mendahului operasi 2 telah selesai dikerjakan pada t = 10 dan mesin 2 siap pada t = 10, tetapi karena operasi 2 baru siap pada t = 11 maka operasi 2 dikerjakan pada t = 11 di mesin 2. Kedua masalah tersebut di atas membuktikan pengembangan model telah dapat mengatasi masalah waktu job tidak sama dengan nol. Pengembangan model yang dilakukan untuk menyelesaikan masalah waktu siap job atau waktu siap operasi yang tidak nol dilakukan dengan cara menambahkan busur pada simpul yang waktu siapnya tidak nol. Busur yang ditambahkan ini memiliki nilai sebesar waktu kesiapan job atau operasi. Penambahan busur ini akan mempengaruhi masalah perhitungan lintasan
90
terpanjang yang merupakan masukan bagi penjadwalan satu mesin. Jadi maksimal pemilihan 3 lintasan terpanjang dari suatu simpul yaitu (1). busur dari simpul dengan hubungan dalam satu job, (2). busur dari simpul yang berhubungan karena urutan pengerjaan pada satu mesin yang sama, dan (3) busur yang menunjukkan kesiapan simpul tersebut. Penambahan busur tersebut dapat menyelesaikan masalah waktu siap yang tidak nol. Akan tetapi terdapat kelemahan dari penambahan busur tersebut, yaitu waktu yang diperlukan untuk perhitungan lintasan terpanjang menjadi lebih lama dari waktu tanpa penambahan busur. Penambahan waktu ini menurut pengamatan tidak terlalu besar sehingga tidak mengganggu performansi algoritma secara keseluruhan.
4.9
Pengujian Model Dengan Waktu Siap Mesin Bervariasi Pada kondisi nyata sering mesin tidak siap saat penjadwalan dilakukan. Ketidaksiapan mesin ini dapat saja disebabkan mesin mengalami kerusakan atau operator tidak siap pada titik nol. Pengembangan model dilakukan untuk menghadap permasalahan seperti ini. Pengujian ini dilakukan terhadap lima problem dan diberikan salah satu solusi dalam bentuk tabel dan Gantt Chart.
91
Kasus 3 : Kasus ini merupakan contoh solusi dari pengembangan model dimana waktu siap mesin tidak sama dengan nol. Kasus ini merupakan masalah penjadwalan dengan 4 mesin, 5 job dan maksimum 3 operasi dalam tiap job. Mesin 1 siap pada t = 3 dan mesin 3 siap pada t = 2.
Tabel 4.7 Data Penjadwalan Kasus 3 No Job
No Operasi
1
1 2 3 4 5 6 7 8 9 10 11 12 13
2
3
4 5
Waktu Mulai (detik) 2 3 3 3 2 1 3 2 4 1 3 4 4
No Mesin 1 2 1 4 2 1 2 3 1 3 4 3 4
Waktu Siap Mesin 3 0 3 0 0 3 0 2 3 2 0 2 0
92
2
1
2
3 3
0 3
4
3
5
3
2
0 3 0
0
1
6
7
3
8
0 3 0
3 4 10
9
1
11
3
2
12
4
2 2
Gambar 4.6 Graph Kasus 3
13
2
14
93
Tabel 4.8 Hasil Penjadwalan Kasus 3 No Job
No Operasi
1
1 2 3 4 5 6 7 8 9 10 11 12 13
2
3
4 5
Waktu Mulai (detik) 11 13 2 6 10 6 7 12 7 11 13 2 9
M4
Waktu Selesai (detik) 13 16 6 9 12 7 10 14 11 12 16 6 13
4
M3
13
12
10
M2
7
M1
11
3
5 9
6
5 Job 1
Job 4
Job 2
Job 5
Job 3
Mesin tak siap
2 1
10
Gambar 4.7 Gantt Chart Kasus 3
8
15
16
94
4.10
Analisis Model Dengan Waktu Siap Mesin Bervariasi Pengembangan yang dilakukan terhadap model untuk menyelesaikan masalah dengan waktu siap mesin tidak sama dengan nol pada prinsipnya tidak berbeda dengan pengembangan yang dilakukan pada masalah waktu siap job / operasi tidak sama dengan nol. Pengembangan ini dilakukan dengan bantuakn graph yaitu melakukan tambahan busur pada semua simpul yang harus diproses pada suatu mesin. Penambahan busur iin sebesar waktu kesiapan mesin tersebut. Pengujian terhadap model terhadap waktu siap mesin yang tidak sama dengan nol telah dilakukan pada bagian 4.9 diatas. Masalah yang diselesaikan adalah masalah dengan 4 mesin, 5 job dan maksimum 3 operasi per job. Mesin yang tidak siap pada t = 0 adalah mesin 1 dan mesin 3. Mesin 1 siap pada t = 3 dan mesin 3 siap pada t = 2. Solusi masalah ini dapat dilihat lebih jelas pada Gantt Chart di gambar 4.7. Pada gambar tersebut, operasi pertama yang dikerjakan pada mesin 1 yaitu operasi dengan nomor 3 dilakukan pada t = 3. Operasi 3 sebenarnya dapat lebih dahulu dikerjakan pada mesin 1 dengan t = 0 karena mesin menganggur pada saat itu, tetapi karena mesin 1 baru siap pada t = 3 maka operasi 3 baru dapat dikerjakan pada t = 3. Begitu pula dengan mesin 3 yang baru siap pada t = 2, operasi 12 yang merupakan operasi pertama yang dikerjakan pada mesin 3 baru dikerjakan pada t = 2 karena mesin 3 siap pada t = 2.
95
Jadi
pengujian
yang
telah
dilakukan
menunjukkan
bahwa
pengembangan yang dilakukan telah dapat menyelesaikan masalah dengan waktu siap mesin yang tidak sama dengan nol.
4.11
Kasus Job Berprioritas Pengembangan terhadap job berprioritas telah dilakukan sepertu yang telah diberikan pada Bab 3 diatas. Pada bagian ini akan diberikan suatu kasus penjadwalan satu mesin untuk job berprioritas :
Tabel 4.9 Data Penjadwalan Kasus Job Berprioritas
Operasi
1
2
3
4
5
6
7
ri
10
13
11
20
30
0
30
di
5
6
7
4
3
6
2
qi
7 2
26 2
24 1
21 2
8 2
17 2
0 1
Prioritas
Dengan menggunakan pengembangan algoritma Schrage maka urutan operasi solusi algoritma Schrage adalah sebagai berikut :
96
6 0 10
6
23 12
1 5
13 0
2
32 6
11 20
31 3
*
25 7
30
4
2 4
30
11
7 2 5
Gambar 4.8 Hasil Pengembangan Algoritma Schrage Pada Kasus Job Berprioritas
Dari graph tersebut diperoleh lintasan terpanjang dibentuk oleh simpul-simpul 1-2-3-4 dengan makespan 53. Operasi terakhir dalam lintasan terpanjang adalah p = 4 dengan q p = 21. Operasi yang dapat disebut sebagai c adalah operasi 1 karena q7 < dari q1 .
97
Operasi tersebut pada teknik Branch and Bound diperiksa apakah dapat dikerjakan sesudah operasi-operasi himpunan J, yaitu operasi 2, 3, dan 4. Karena prioritas operasi 1 lebih kecil atau sama dengan operasi anggota himpunan J maka operasi 1 dapat dikerjakan setelah operasi-operasi J. Solusi jadwal jika operasi 1 dikerjakan sesudah operasi-operasi J memberikan solusi yang lebih baik yaitu lintasan kritis 3-2 dengan makespan 50. Solusinya dapat dilihat pada gambar berikut :
6 6
0
23
3 11 13
7
31 32
2 6
0
20
25 4
28
4 1
30 30
12 2
5 11
7 2 5
Gambar 4.9 Solusi Penjadwalan Satu Mesin Kasus Job Berprioritas
*
98
Pada lintasan kritis sebenarnya dijumpai operasi c yaitu operasi 3 yang memiliki qi = 24 < q p = 26 ( p = 2 ), tetapi karena operasi 3 memiliki prioritas yang lebih tinggi maka operasi 3 tetap dikerjakan sebelum operasi 2. Solusi tersebut pada gambar 4.15 merupakan solusi akhir dari penjadwalan satu mesin.
4.12
Analisis Kasus Job Berprioritas Job berprioritas mengubah penjadwalan satu mesin sehingga job yang siap dengan prioritas tertinggi dijadwalkan terlebih dahulu. Hal ini sesuai dengan kepentingan dari job tersebut. Pengembangan ini dimaksudkan untuk memberikan alternatif penjadwalan terhadap job berprioritas. Perubahan yang dilakukan untuk masalah ini adalah pengembangan pada penjadwalan satu mesin. Kriteria yang digunakan masih minimasi makespan dengan pemilihan job berprioritas diutamakan. Kriteria ini mungkin kurang tepat digunakan untuk job-job berprioritas, jadi masih perlu penyesuaian-penyesuaian untuk memnuhi kriteria yang lebih cocok. Kriteria yang mungkin lebih baik untuk masalah ini adalah minimasi weighted mean completion time. Pengujian perlu dilakukan untuk melihat performansi solusi dari pengembangan ini.
99
4.13
Analisis Algoritma Shifting Bottleneck Pada bagian ini akan dianalisis Algoritma Shifting Bottleneck dengan memperhatikan teknik-teknik yang digunakan pada algoritma tersebut dan kemungkinan pengembangan lebih lanjut. 4.13.1 Analisis Penggunaan Teori Graph Masalah N job M mesin yang akan diselesaikan dengan algoritma ini pada dasarnya dibentuk dari graph yang terdiri dari simpul-simpul yang merupakan operasi, busur conjunctive yang menghubungkan operasi dalam satu job, dan busur disjunctive yang menghubungkan operasi-operasi yang dikerjakan pada mesin tertentu. Dengan bantuan graph ini masalah N job M mesin dapat digambarkan dan diselesaikan. Pada algoritma ini masalah penjadwalan dengan kriteria minimasi makespan diselesaikan, dan dengan bantuan graph ini, makespan dari sebuah jadwal dapat dihitung dengan mencari lintasan terpanjang dari simpul nol ( mulai ) ke simpul akhir ( selesai ). Dengan mencari jadwal yang memiliki lintasan terpanjang yang lebih pendek maka diperoleh solusi yang lebih baik sesuai dengan kriteria minimasi makespan. Hal ini yang dilakukan oleh algoritma penjadwalan satu-mesin untuk menentukan mesin yang paling kritis yang akan dijadwalkan terlebih dahulu.
100
Pemanfaatan graph dalam masalah ini membuat penjadwalan selalu melihat keterkaitan mesin yang akan dijadwalkan dengan jadwal mesin-mesin yang lain yang sudah terbentuk. Keterkaitan yang dimaksudkan adalah nilai-nilai input yang dibutuhkan pada penjadwalan satu mesin, merupakan nilai lintasan terpanjang operasi dari titik nol, yang merupakan gambaran kesiapan operasi tersebut untuk diproses dan lintasan terpanjang dari operasi tersebut selesai dikerjakan ke titik akhir, yang merupakan gambaran lamanya operasi tersebut berada dalam sistem setelah diproses. Input-input ini, bersama dengan input waktu operasi, merupakan input penjadwalan satu mesin yang menentukan urutan operasi-operasi dalam suatu mesin yang optimal dilihat dari mesin tersebut. Pengembangan
algoritma
yang
dilakukan
untuk
menyelesaikan masalah waktu siap job, operasi maupun waktu siap mesin yang tidak nol, memanfaatkan teori graph ini, yaitu dengan menambahkan busur dengan nilai waktu siap terhadap simpul-simpul yang berhubungan dengan kesiapan mesin, job dan operasi tersebut. Dari kegunaan graph dalam penyelesaian masalah penjadwalan di atas, maka tampak bahwa teori graph ternyata sangat membantu penyelesaian penjadwalan dan penelitian lebih lanjut dilakukan dengan memperhatikan teori graph sebagai alternatif alat bantu penyelesaian masalah.
101
4.13.2 Analisis Penjadwalan Satu Mesin Penjadwalan satu mesi merupakan teknik yang menjadi dasar dari algoritma Shifting Bottleneck. Pencarian mesin yang bottleneck, penjadwalan mesin, dan lokal reoptimasi semuanya menggunakan penjadwalan satu mesin yang optimal ini. Penjadwalan satu mesin ini membutuhkan input lintasan terpanjang dari operasi-operasi yang terlibat dalam penjadwalan satu mesin, sedangkan perhitungan lintasan terpanjang merupakan perhitungan yang paling banyak memerlukan waktu komputasi. Kondisi seperti ini menyebabkan diperlukannya prosedur perhitungan lintasan terpanjang yang cepat. Dengan terpenuhinya suatu prosedur perhitungan lintasan terpanjang yang baik maka waktu komputasi secara keseluruhan akan baik. Perbaikan terhadap program komputer yang telah dibuat khususnya dalam prosedur perhitungan lintasan terpanjang jika ada metoda yang lebih baik untuk lintasan terpanjang sangat disarankan untuk memperbaiki waktu komputasi. Karena
penjadwalan
satu
mesin
merupakan
dasar
dilakukannya penjadwalan operasi dalam mesin yang akhirnya akan membentuk jadwal untuk semua mesin maka pengembangan terhadap penjadwalan satu mesin untuk masalah-masalah yang lebih kompleks menjadi penting. Hampir semua pengembangan yang dilakukan oleh penulis sesungguhnya adalah pengembangan dari penjadwalan satu
102
mesin ini. Pengembangan untuk masalah perawatan mesin dan job berprioritas merupakan pengembangan dari penjadwalan satu mesin. Pengembangan
lebih
lanjut
untuk
kriteria
yang
lain
kemungkinan besar dapat dilakukan dengan mengembangkan penjadwalan satu mesin ini dengan tujuan yang lain. Kriteria lain seperti pemenuhan due date atau minimasi flow time akan merubah penjadwalan satu mesin yang kemudian dimasukkan dalam algoritma Shifting Bottleneck diharapkan memperoleh hasil yang baik pula. Perubahan mungkin terjadi pada cara pemilihan mesin mana yang terlebih dahulu dijadwalkan, yang mungkin kriteria bottleneck harus digantikan dengan kriteria pemilihan yang lain.