BAB II TINJAUAN PUSTAKA 2.1 Job Shop Scheduling Problem … II.pdf · Sebagai contoh permasalahan...
Transcript of BAB II TINJAUAN PUSTAKA 2.1 Job Shop Scheduling Problem … II.pdf · Sebagai contoh permasalahan...
5
BAB II
TINJAUAN PUSTAKA
2.1 Job Shop Scheduling Problem (JSSP)
Job shop scheduling problem (JSSP) adalah permasalahan optimasi
kombinatorial. Misalkan terdapat 𝑛 buah job atau pekerjaan, yaitu 𝐽1, 𝐽2, … , 𝐽𝑛 yang
akan diproses pada 𝑚 buah mesin, yaitu 𝑀1, 𝑀2, … ,𝑀𝑚. Waktu yang diperlukan
untuk operasi 𝑂𝑖𝑗 (mengerjakan job 𝐽𝑖 dengan menggunakan mesin 𝑀𝑗) adalah 𝑡𝑖𝑗.
Setiap operasi diproses selama waktu tertentu dan oleh mesin tertentu. Setiap mesin
hanya dapat menangani satu operasi, dan operasi dari pekerjaan yang sama tidak
dapat diproses secara bersamaan. Tujuan dari job shop scheduling adalah
bagaimana membuat jadwal yang berupa urutan pengerjaan yang optimal
berdasarkan kriteria tertentu, misalkan untuk mendapatkan jadwal dengan
makespan yang minimum. (Suyanto, 2010)
Untuk job shop dengan 𝑛 job dan 𝑚 mesin, kemungkinan jadwal yang dapat
dibuat sangat besar, yaitu sebanyak (𝑛!)𝑚 buah kemungkinan. Tetapi, tidak semua
kemungkinan jadwal tersebut layak digunakan atau valid. Sebuah jadwal akan
dikatakan valid apabila urutan proses pengerjaan operasi-operasi dalam suatu job
memenuhi routing yang ditetapkan, dan tidak ada tumpang tindih (overlap) waktu
pengerjaan dari operasi-operasi yang dikerjakan pada mesin yang sama. (Suyanto,
2010)
6
Terdapat beberapa jenis penjadwalan job shop berdasarkan waktu kedatangan
job di suatu tempat produksi, yaitu job shop statik dan job shop dinamik.
Penjadwalan job shop statik merupakan model penjadwalan job shop yang paling
sederhana. Pada model ini semua job diterima atau tiba di tempat produksi pada
waktu yang sama.
Misalkan terdapat 2 job, yaitu job 1 dan job 2 dengan 2 mesin, yaitu mesin 1
dan mesin 2. Masing-masing job memiliki urutan operasi dan waktu operasi dari
mesin yang telah ditentukan. Job 1 diproses pada operasi 1 oleh mesin 2 dengan
waktu 2 detik dan dilanjutkan operasi 2 oleh mesin 1 dengan waktu 3 detik. Job 2
diproses pada operasi 1 oleh mesin 1 dengan waktu 8 detik dan dilanjutkan operasi
2 oleh mesin 2 dengan waktu 5 detik.
Tabel 2.1 Contoh model job shop statik
Keterangan :
𝑀𝑂1 : Mesin operasi 𝑂1 𝑀𝑂2 : Mesin operasi 𝑂2
𝑇𝑂1 : Waktu operasi 𝑂1 𝑇𝑂2 : Waktu operasi 𝑂2
Karena mesin yang beroperasi pada job 1 dan job 2 untuk operasi 1 berbeda,
maka keduanya dapat beroperasi bersamaan. Selanjutnya pada operasi 2, job 1
diharuskan menunggu mesin 1 selesai beroperasi terlebih dahulu pada job 2,
𝑀𝑂1 , 𝑇𝑂1 𝑀𝑂2 , 𝑇𝑂2
Job 1 𝑀2,2 𝑀1,3
Job 2 𝑀1,8 𝑀2,5
7
sedangkan job 2 dapat langsung beroperasi pada mesin 2 ketika telah selesai
beroperasi pada mesin 1. Untuk lebih jelasnya dapat dilihat pada Gambar 2.1
berikut.
Gambar 2.1 Ilustrasi model job shop statik
Penjadwalan job shop dinamik merupakan pengembangan model statik. Pada
model job shop dinamik waktu tiba pekerjaan di tempat produksi bervariasi. Jika
waktu kedatangan job dapat diketahui sejak awal maka penjadwalan tersebut
dinamakan job shop deterministik. Namun apabila waktu kedatangan yang job
bervariasi dan tidak diketahui sebelumnya maka penjadwalan itu dinamakan job
shop non – deterministik. Dengan demikian jadwal yang dibuat hanya melibatkan
pekerjaan yang sudah diterima. Jika terdapat pekerjaan baru di tengah-tengah
jadwal produksi, maka akan dilakukan penjadwalan ulang. (Saputro & Yento, 2004)
Akan tetapi dalam penelitian ini hanya akan dibahas model job shop statik.
8
2.2 Formulasi masalah job shop statik
Untuk permasalahan 𝑛 job dan 𝑚 mesin (𝑚, 𝑛 ∈ 𝑁), solusinya diperoleh dari
urutan 𝑛 ×𝑚 proses. Masing-masing solusi diwakili oleh urutan semua operasi
yang ada. Operasi yang dimaksud adalah operasi pertama sampai operasi ke-
𝑘 (𝑘 ≤ 𝑛 × 𝑚), 𝑘 ∈ 𝑁. Setiap proses diwakili oleh sepasang 𝑀𝑂𝑖 dan 𝑇𝑂𝑖, 𝑖 ∈
{1,2, … , 𝑘}. (Bouzidi & Riffi, 2014)
Misalkan 𝛼𝑗 ∈ {𝑂1, 𝑂2, … , 𝑂𝑘 (𝑘≤𝑛 × 𝑚)} dan 𝑗 ∈ {1,2, … , 𝑘}, 𝑗 ∈ 𝑁. Bentuk
solusi umum JSSP yang diperoleh dari urutan 𝑛 × 𝑚 proses dapat dilihat pada
Gambar 2.2.
𝛼1 𝛼2 … 𝛼𝑘 (𝑘≤𝑛 × 𝑚)
Gambar 2.2 Bentuk solusi umum JSSP
Dalam membuat jadwal yang valid, langkah pertama yang harus dilakukan
adalah data dari kasus JSSP dibuat ke dalam bentuk matriks informasi. Matriks
informasi dibuat untuk mewakili informasi dari masing-masing operasi dan sebagai
dasar dalam membuat penjadwalan yang memenuhi setiap batasan yang ada (valid).
Matriks informasi memiliki 𝑘 (𝑘 ≤ 𝑛 × 𝑚) kolom dan lima baris. Kolom
mewakili jumlah total operasi yang ada pada seluruh job dan kelima baris yang
dimaksud adalah :
𝑂𝑖 : nama atau nomor operasi di jadwal (𝑖 ∈ {1,2, … , 𝑘}, 𝑖 ∈ 𝑁).
𝐽𝑂𝑖 : job dari operasi 𝑂𝑖.
𝑆𝑒𝑞𝑂𝑖 : urutan dari operasi 𝑂𝑖 dengan job yang sesuai.
9
𝑀𝑂𝑖 : mesin dimana operasi 𝑂𝑖 akan diproses.
𝑇𝑂𝑖 : waktu proses dari operasi 𝑂𝑖.
Bentuk matriks informasi dapat dilihat pada persamaan (2.1)
(
𝑂1 𝑂2 … 𝑂𝑖 … 𝑂𝑘 (𝑘≤𝑛 × 𝑚)
𝐽𝑂1 𝐽𝑂2 … 𝐽𝑂𝑖 … 𝐽𝑂𝑘 (𝑘≤𝑛 × 𝑚)𝑆𝑒𝑞𝑂1 𝑆𝑒𝑞𝑂2 … 𝑆𝑒𝑞𝑂𝑖 … 𝑆𝑒𝑞𝑂𝑘 (𝑘≤𝑛 × 𝑚)𝑀𝑂1 𝑀𝑂2 … 𝑀𝑂𝑖 … 𝑀𝑂𝑘 (𝑘≤𝑛 × 𝑚)𝑇𝑂1 𝑇𝑂2 … 𝑇𝑂𝑖 … 𝑇𝑂𝑘 (𝑘≤𝑛 × 𝑚) )
(2.1)
Sebagai contoh permasalahan job shop scheduling dengan 2 job dan 2 mesin
adalah model job shop statik yang sebelumnya telah dibahas, yaitu :
𝐽1 = {(2,2), (1, 3)}
𝐽2 = {(1, 8), (2,5)}
𝐽1 adalah job pertama dengan urutan operasi diawali dengan operasi 1 pada
mesin 2 dengan waktu 2 satuan waktu. Dilanjutkan ke operasi 2 pada mesin 1
dengan waku 3 satuan waktu. Sedankan 𝐽2 adalah job kedua dengan urutan operasi
diawali dengan operasi 1 pada mesin 1 dengan waktu 8 satuan waktu. Dilanjutkan
ke operasi 2 pada mesin 2 dengan waku 5 satuan waktu.
Sebagai langkah pertama yaitu menyatakan data ke dalam bentuk matriks
informasi, seperti berikut :
(
11122
21213
32118
42225)
10
Langkah kedua membuat solusi acak awal, solusi yang dihasilkan dapat
berupa solusi yang valid atau tidak valid. Gambar 2.3 adalah contoh representasi
solusi yang tidak valid. Dilihat dari matriks informasi, 4 dan 2 adalah operasi kedua
dari 𝐽1 dan 𝐽2, sehingga 4 dan 2 tidak bisa mulai beroperasi sebelum 1 dan 3 selesai.
Dengan demikian solusi jadwal dikatakan tidak valid, karena urutan operasi salah.
4 2 1 3
Gambar 2.3 Contoh representasi solusi
Untuk dapat menghitung makespan, sebuah solusi harus valid. Solusi awal
yang tidak valid diperbaiki sehingga menjadi valid, proses ini dinamakan proses
koreksi. Untuk memperbaiki solusi acak yang tidak valid, digunakan matriks
informasi dari kasus pada Gambar 2.4. Pertimbangkan “solusi baru” sebagai solusi
yang valid dan “solusi lama” sebagai solusi saat ini. Proses koreksi digambarkan
sebagai berikut :
1. Amati dan periksa “solusi lama” prioritaskan operasi dengan urutan
lebih awal dari operasi lainnya pada setiap job.
2. Operasi yang tersedia ditambahkan ke solusi “solusi baru” dan dihapus
dari solusi “solusi lama”
3. Ulangi 1 dan 2 sampai “solusi lama” menjadi solusi “solusi baru” yang
disusun valid.
Solusi yang valid dari Gambar 2.3 :
1 3 2 4
Gambar 2.4 Solusi baru yang valid
11
Hitung makespan dari solusi penjadwalan yang valid. Tujuannya untuk
mendapatkan waktu operasi dengan makespan minimum. Makespan dari jadwal di
Gambar 2.4 adalah 13, seperti yang diperlihatkan oleh GANT chart di Gambar 2.8,
dimana 𝑀𝑖 , 𝑖 ∈ {1,2} mewakili mesin dan masing-masing warna mewakili operasi
dengan job yang sama.
Langkah-langkah dalam membuat GANT chart dari solusi baru yang valid
pada Gambar 2.4 dimulai dari operasi pertama, operasi ketiga, operasi kedua, dan
operasi keempat sebagai berikut.
Langkah pertama adalah penempatan operasi pertama, yaitu operasi 1 job 1 oleh
mesin 2 dengan waktu 2 satuan waktu, prosesnya dapat dilhat pada Gant chart
Gambar 2.5.
Gambar 2.5 Penempatan job 1 operasi 1 pada mesin 2
Langkah kedua dilakukan penempatan operasi ketiga yaitu operasi 1 job 2 oleh
mesin 1 dengan waktu 8 satuan waktu.
Gambar 2.6 Penempatan job 2 operasi 1 pada mesin 1
12
Langkah ketiga dilanjutkan penempatan operasi kedua, yaitu operasi 2 job 1 oleh
mesin 1 dengan waktu 3 satuan waktu. Operasi kedua dapat dimulai setelah operasi
ketiga selesai beroperasi, seperti pada Gambar 2.9.
Gambar 2.7 Penempatan job 1 operasi 2 pada mesin 1
Langkah keempat penempatan operasi keempat, yaitu operasi 2 job 2 oleh mesin 2
dengan waktu 5 satuan waktu. Operasi keempat dapat langsung dimulai setelah
operasi ketiga berakhir, keadaan ini disajikan dalam GANT chart Gambar 2.10.
Gambar 2.8 Penempatan job 2 operasi 2 pada mesin 2
Terdapat beberapa algoritma yang tergolong ke dalam algoritma
metaheuristik untuk menyelesaikan kasus optimasi diantaranya Algoritma
Genetika, Ant Colony Optimization (ACO), Particle Swarm Optimization (PSO),
Bee Colony Optimization (BCO), dan Cat Swarm Optimization (CSO). Pada
penelitian ini algoritma yang akan diterapkan dalam menyelesaikan kasus JSSP
adalah algritma CSO.
13
2.3 Cat Swarm Optimization
Cat Swarm Optimization (CSO) adalah algoritma yang diusulkan oleh Shu-
Chuan Chu dan Pei-Wei Tsai pada tahun 2006. CSO dihasilkan melalui pengamatan
terhadap perilaku sekumpulan kucing dan terdiri dari dua sub-models yaitu :
”seeking mode” dan ”tracing mode”. (Chu & Tsai, 2007)
Tahap pertama yang dilakukan pada proses CSO adalah menentukan berapa
banyak kucing yang digunakan dalam iterasi, selanjutnya menggunakan kucing
dalam CSO untuk menyelesaikan masalah. Setiap kucing memiliki posisi yang
tersusun di dalam dimensi M, kecepatan untuk setiap dimensi, nilai fitness yang
menunjukan penyesuaian kucing pada fungsi fitness dan bendera untuk
menentukan kucing masuk berada dalam seeking mode atau tracing mode. Solusi
akhir adalah satu kucing dengan posisi terbaik. CSO akan menyimpan solusi terbaik
hingga akhir iterasi. (Chu & Tsai, 2007)
a. Seeking Mode
Mode ini menggambarkan keadaan kucing pada saat beristirahat, melihat
kondisi sekitarnya mencari posisi berikutnya untuk bergerak. Seeking mode
memiliki empat faktor penting yang harus diperhitungkan, yaitu : seeking memory
pool (SMP), seeking range of the selected dimension (SRD), counts of dimension
to change (CDC), dan self position considering (SPC). SMP digunakan untuk
menentukan berapa banyak jumlah kucing tiruan yang akan dibuat, SRD atau
mencari rentang dimensi terpilih, CDC menentukan dimensi yang akan berubah,
14
dan SPC mempertimbangkan apakah posisi saat ini menjadi salah satu kandidat.
(Chu & Tsai, 2007)
Langkah – langkah seeking mode dapat dideskripsikan dalam 5 tahap sebagai
berikut (Chu & Tsai, 2007) :
Langkah 1 : Bangkitkan 𝑗 tiruan dari posisi kucing ke- 𝑘, dengan 𝑗 = 𝑆𝑀𝑃. Jika
nilai SPC benar, maka 𝑗 = (𝑆𝑀𝑃 − 1), kemudian pertahankan posisi saat ini
sebagai salah satu kandidat.
Langkah 2 : Untuk setiap tiruan, disesuaikan dengan CDC, tambahkan atau
kurangkan SRD persen dari nilai saat ini secara acak dan gantikan nilai yang
sebelumnya.
Langkah 3 : Hitung nilai fitness (FS) untuk semua titik kandidat.
Langkah 4 : Jika semua nilai fitness tidak benar-benar sama, hitung probabilitas
terpilih masing-masing titik kandidat dengan menggunakan persamaan (2.2),
sebaliknya atur probabilitas terpilih untuk semua titik sama dengan 1.
𝑃ℎ =|𝐹𝑆ℎ−𝐹𝑆𝑏|
𝐹𝑆𝑚𝑎𝑥−𝐹𝑆𝑚𝑖𝑛 , dimana 0 < ℎ < 𝑗 (2.2)
Langkah 5 : secara acak pilih titik untuk bergerak dari titik-titik kandidat, dan
pindahkan posisi kucing ke- 𝑘.
Jika tujuan fungsi fitness adalah untuk menemukan solusi minimal, maka 𝐹𝑆𝑏 =
𝐹𝑆𝑚𝑎𝑥, sebaliknya 𝐹𝑆𝑏 = 𝐹𝑆𝑚𝑖𝑛. (Chu & Tsai, 2007)
15
b. Tracing Mode
Tracing mode adalah mode yang menggambarkan keadaan ketika kucing
sedang mengikuti jejak targetnya. Sekali kucing memasuki tracing mode, kucing
tersebut akan bergerak sesuai dengan kecepatannya untuk tiap dimensi. (Chu &
Tsai, 2007)
Tahapan tracing mode dapat dijabarkan dalam 3 langkah sebagai berikut (Chu &
Tsai, 2007) :
Langkah 1 : Perbarui nilai kecepatan untuk setiap dimensi (𝑉𝑘,𝑑) dengan rumus
𝑉′𝑘,𝑑 = 𝑉𝑘,𝑑 + 𝑟1 × 𝑐1(𝑋𝑏𝑒𝑠𝑡,𝑑 − 𝑋𝑘,𝑑), dimana d = 1,2,3,.., M (2.3)
Langkah 2 : Periksa apakah kecepatan berada dalam rentang kecepatan maksimum.
Jika kecepatan yang baru melebihi rentang, tetapkan nilai sama dengan batas.
Langkah 3 : Perbarui posisi kucing ke- 𝑘 dengan rumus
𝑋′𝑘,𝑑 = 𝑋𝑘,𝑑 + 𝑉′𝑘,𝑑 (2.4)
𝑋𝑏𝑒𝑠𝑡,𝑑 adalah posisi kucing yang memiliki nilai fitness terbaik, 𝑋𝑘,𝑑 adalah posisi
kucing ke- 𝑘 pada dimensi ke- 𝑑, 𝑐1 adalah konstanta dan 𝑟1 adalah nilai acak dalam
rentang [0,1].
Seperti yang telah dibahas pada sebelumnya CSO terdiri dari dua sub model
yaitu seeking mode dan tracing mode, untuk mengkombinasikan kedua mode dalam
satu algoritma, perlu didefinisikan mixture ratio (MR). Dengan mengamati perilaku
16
kucing, dapat diketahui bahwa kucing menghabiskan sebagian besar waktunya
untuk beristirahat.
Selama beristirahat, kucing mengubah posisinya secara perlahan dan berhati-
hati, terkadang tetap pada posisi awalnya. Untuk menerapkan perilaku ini ke dalam
CSO, digunakan seeking mode. Perilaku mengejar target diaplikasikan dalam
tracing mode. Oleh karena itu, MR harus bernilai kecil untuk memastikan bahwa
kucing menghabiskan sebagian besar waktu kucing dalam posisi seeking mode.
(Chu & Tsai, 2007)
Secara umum proses CSO dapat digambarkan dalam 6 langkah sebagai
berikut (Chu & Tsai, 2007) :
Langkah 1 : Bangkitkan 𝑁 kucing dalam proses.
Langkah 2 : Sebarkan kucing secara acak dalam ruang solusi berdimensi M dan
pilih nilai dalam rentang kecepatan. Kemudian pilih sejumlah kucing secara
sembarang dan masukkan dalam tracing mode sesuai MR, sisanya dimasukkan
dalam seeking mode.
Langkah 3 : Hitung nilai fitness (FS) masing-masing kucing dengan memasukkan
nilai posisi kucing ke dalam fungsi fitness, yang menunjukkan kriteria tujuan, dan
simpan kucing terbaik dalam memori. Perlu diingat bahwa yang perlu disimpan
adalah posisi kucing terbaik (𝑋𝑏𝑒𝑠𝑡) karena kucing terbaik sejauh ini mewakili
solusi terbaik.
17
Langkah 4 : Pindahkan kucing sesuai benderanya. Jika kucing berada dalam seeking
mode perlakukan sesuai proses seeking mode, sebaliknya perlakukan sesuai tracing
mode. Proses masing-masing telah dijelaskan sebelumnya.
Langkah 5 : Pilih lagi sejumlah kucing dan masukkan dalam tracing mode sesuai
MR, sisanya masukkan ke dalam seeking mode.
Langkah 6 : Perhatikan terminating condition-nya. Jika telah terpenuhi, hentikan
program. Sebaliknya ulangi langkah 3 hingga 5.
18
Diagram proses algoritma Cat Swarm Optimization dapat dilihat pada Gambar 2.7
Gambar 2.9 Bagan Cat Swarm Optimization (sumber : Chu, 2006)
19
2.4 Inertia Weight (𝒘)
Parameter ini berguna untuk mengontrol keseimbangan antara kemampuan
eksplorasi global dan lokal, serta penurunan kecepatan untuk menghindari stagnasi
pada optimum lokal. Jika nilai inertia weight terlalu besar akan mengakibatkan
posisi kucing berubah terlalu jauh, sehingga gagal untuk menemukan solusi.
Sebaliknya, jika nilai inertia weight terlalu kecil posisi kucing akan terjebak pada
optimum lokal. (Suyanto, 2010)
Untuk menyelesaikan permasalahan kucing yang menjauhi solusi dan
terperangkap pada optimum lokal, CSO dimodifikasi dengan menambahkan
parameter baru berupa nilai inertia weight (𝑤) yaitu, CSO dengan inertia. Pada nilai
inertia weight (𝑤) berubah secara acak dalam tracing mode, sehingga kecepatan
pada persamaan (2.3) menjadi :
𝑉′𝑘,𝑑 = 𝑤 × 𝑉𝑘,𝑑 + 𝑟1 × 𝑐1(𝑋𝑏𝑒𝑠𝑡,𝑑 − 𝑋𝑘,𝑑), dimana d = 1,2,3,.., M (2.5)