1, Maret 2005
Intisari
Makalah ini membahas penerapan algoritma tabu search (TS) dalam
penyelesaian masalah penjadwalan job shop statik. Implementasi dalam
bentuk perangkat lunak membuktikan bahwa algoritma ini dapat
menghasilkan jadwal job shop yang valid. Kualitas jadwal diukur dengan
kriteria completion time atau makespan, dan dibandingkan dengan hasil
dari algoritma simulated annealing (SA) dan perangkat lunak penjadwalan
Quant System. Disimpulkan bahwa algoritma TS mengungguli algoritma SA
dan Quant System dalam hal kualitas solusi, dengan waktu komputasi yang
masih dapat diterima.
Abstract
This paper presents the application of tabu search (TS) algorithm in solving
static job shop scheduling problem. Software implementation proves that
this algorithm can give valid job shop schedules. The quality of solution is
measured with completion time (makespan) and compared with result from
simulated annealing (SA) algorithm and Quant System scheduling software.
It is concluded that TS algorithm exceeds SA algorithm and Quant System in
terms of solution quality, with reasonable computation time.
34
INTEGRAL, Vol. 10 No. 1, Maret 2005
teknik optimasi yang digunakan secara adalah lama waktu total penyelesaian
luas di berbagai bidang dan metode ini seluruh job (completion time atau
telah mengalami banyak perkembangan makespan).
melalui berbagai penelitian.
Asumsi berikut digunakan dalam
Tabu search adalah sebuah meta- penelitian ini :
heuristik yang menuntun prosedur local 1. Pada waktu t = 0, seluruh job sudah
search untuk melakukan eksplorasi di siap untuk dikerjakan. Tipe masalah
daerah solusi di luar titik optimum lokal. job shop seperti ini disebut juga
Metode ini menerapkan konsep adaptive masalah job shop statis.
memory dan responsive exploration, 2. Semua job harus melewati semua
untuk dapat melakukan proses pencarian mesin (jumlah operasi dalam tiap job
secara efektif dan efisien dengan cara = jumlah mesin).
memanfaatkan informasi tentang ciri 3. Setiap job hanya memiliki satu
solusi yang baik pada saat menjelajahi routing (urutan pengerjaan pada
daerah pencarian yang baru. Kenyataan mesin). Tiap operasi hanya dapat
ini memberi harapan bahwa algoritma TS dikerjakan oleh mesin sesuai dengan
dapat menghasilkan jadwal job shop routing-nya.
dengan kualitas yang baik dalam waktu 4. Tidak ada penghentian operasi yang
komputasi yang relatif kecil sedang dikerjakan (non-preemptive
dibandingkan metode enumeratif [2]. scheduling).
5. Pada suatu waktu tertentu, setiap job
Penelitian ini bertujuan untuk hanya dapat dikerjakan pada satu
menerapkan algoritma TS dalam mesin tertentu dan setiap mesin
menyelesaikan masalah job shop, serta hanya dapat mengerjakan satu
membandingkan kualitas jadwal yang operasi dari satu job. Tidak terdapat
dihasilkan (dalam satuan makespan) mesin paralel.
terhadap hasil dari algoritma simulated 6. Waktu setup mesin dan waktu
annealing (SA) dan perangkat lunak transportasi job antar mesin
penjadwalan Quant System, yang diabaikan. Mesin selalu tersedia dan
menerapkan metode heuristik priority tidak pernah mengalami kerusakan.
dispatching. Untuk mencapai tujuan Sumber daya lain di luar mesin tidak
tersebut, dibangun sebuah model diperhatikan.
perangkat lunak (program) penjadwalan
job shop dengan algoritma TS dan Setiap solusi feasibel dari masalah job
dilakukan percobaan dengan berbagai shop disebut jadwal. Masalah job shop
ukuran masalah job shop. dengan m mesin n job akan menghasilkan
(n!)m buah jadwal, namun tidak semua
2. Masalah Penjadwalan Job shop jadwal tersebut layak digunakan. Sebuah
Secara umum masalah penjadwalan job jadwal dikatakan valid jika urutan
shop dinyatakan sbb.: pengerjaan operasi-operasi dalam suatu
Terdapat n buah job {J1, J2, ..., Jn} yang job memenuhi routing yang telah
akan diproses pada m buah mesin {M1, ditetapkan, dan tidak ada overlap waktu
M2, ..., Mm}. Waktu yang dibutuhkan pengerjaan dari operasi-operasi yang
untuk mengerjakan job Ji pada mesin Mj dikerjakan pada mesin yang sama.
(operasi Oij) adalah tij. Masalahnya Masalah job shop berhasil diselesaikan
adalah menentukan urutan pengerjaan jika waktu awal pengerjaan dari setiap
yang menghasilkan solusi terbaik operasi telah diperoleh dan kedua syarat
berdasarkan kriteria tertentu. Dalam di atas dipenuhi.
penelitian ini, kriteria yang digunakan 35
INTEGRAL, Vol. 10 No. 1, Maret 2005
Representasi disjunctive graph (digraph) Proses pencarian bergerak dari satu solusi
sangat sesuai untuk digunakan dalam ke solusi berikutnya, dengan cara
pemodelan masalah penjadwalan job memilih solusi terbaik dari neighborhood
shop [1]. Graph ini dinotasikan dalam solusi sekarang (current) yang tidak
bentuk G = {V, A, E}, dimana V = tergolong solusi terlarang (tabu). Ide
himpunan vertex (simpul) yang mewakili dasar dari algoritma tabu search adalah
operasi-operasi; A = himpunan busur mencegah proses pencarian dari local
konjungtif (berarah) yang search agar tidak melakukan pencarian
menghubungkan operasi-operasi dalam ulang pada ruang solusi yang sudah
suatu job tertentu; dan E = himpunan pernah ditelusuri, dengan memanfaatkan
busur disjungtif (berarah bolak balik) suatu struktur memori yang mencatat
yang menghubungkan operasi-operasi sebagian jejak proses pencarian yang
yang dikerjakan pada mesin yang sama, telah dilakukan [1].
yang didefinisikan sebagai berikut:
• V = O ∪ {0} ∪ {N+1}, dimana O Struktur memori fundamental dalam tabu
adalah himpunan seluruh operasi search dinamakan tabu list. Tabu list
dalam masalah job shop; N = ⏐O⏐= menyimpan atribut dari sebagian move
jumlah seluruh operasi dalam (transisi solusi) yang telah diterapkan
masalah job shop, serta {0} dan pada iterasi-iterasi sebelumnya. Tabu
{N+1} adalah vertex khusus yang search menggunakan tabu-list untuk
mewakili vertex awal (start) dan menolak solusi-solusi yang memenuhi
vertex akhir (completion) dari atribut tertentu guna mencegah proses
masalah job shop. pencarian mengalami cycling pada
• A = {(i,j) : operasi i adalah daerah solusi yang sama, dan menuntun
predesesor langsung dari operasi j proses pencarian menelusuri daerah
dalam job Ji (= Jj)} ∪ {(0,j) : j ∈ O} solusi yang belum dikunjungi. Tanpa
∪ {(i,N+1) : i ∈ O}. menggunakan strategi ini, local search
• E = {(i,j) : Mi = Mj atau operasi i dan yang sudah menemukan solusi optimum
j dikerjakan pada mesin yang sama, lokal dapat terjebak pada daerah solusi
optimum lokal tersebut pada iterasi-
i,j ∈ O}
iterasi berikutnya.
• Pada tiap vertex i ∈ O, diberikan
sebuah bobot di; vertex 0 dan N+1
Perekaman solusi secara lengkap dalam
memiliki bobot 0.
sebuah forbidden list dan pengecekan
apakah sebuah kandidat solusi tercatat
dalam list tersebut merupakan cara yang
Waktu awal dari vertex 0 dan waktu
mahal, baik dari sisi kebutuhan memori
akhir dari vertex N+1 merepresentasikan
maupun kebutuhan waktu komputasi.
waktu awal dan waktu penyelesaian dari
Jadi tabu list hanya menyimpan langkah
masalah job shop tersebut. Jadi,
transisi (move) yang merupakan lawan
penyelesaian masalah job shop sama
atau kebalikan dari langkah yang telah
dengan penentuan orientasi (arah) dari
digunakan dalam iterasi sebelumnya
busur-busur disjungtif dalam graph G
untuk bergerak dari satu solusi ke solusi
sedemikian rupa sehingga graph G tidak
berikutnya. Dengan kata lain tabu list
mengandung cycle dan panjang lintasan
berisi langkah-langkah yang
terpanjang dari vertex 0 menuju vertex
membalikkan solusi yang baru ke solusi
N+1 diminimalkan.
yang lama [3].
3. Algoritma Tabu Search (TS) Pada tiap iterasi, dipilih solusi baru yang
Tabu search adalah sebuah metode 36
merupakan solusi terbaik dalam
optimasi yang berbasis pada local search.
INTEGRAL, Vol. 10 No. 1, Maret 2005
begin
{Buat solusi awal s yang feasibel dengan
menggunakan
suatu metode heuristik tertentu atau secara
acak}
best := cost(s);
s* := s; {s* adalah solusi terbaik yang
diperoleh}
tabu_list := null;
repeat
Candidate(s) := (s’ ∈ N(s): merupakan move
dari s
ke s’ yang tidak tergolong elemen dari tabu-
list atau
memenuhi kriteria aspirasi};
(pilih s ∈ Candidate(s): s adalah solusi yang
memiliki nilai cost minimum );
(simpan move yang berlawanan ke dalam tabu-
list, yaitu
yang mengubah s ke s );
s := s ;
if (cost(s) < best) then
s* := s;
best := cost(s);
until (stopping-criteria = TRUE);
return(s*);
end;
37
INTEGRAL, Vol. 10 No. 1, Maret 2005
38
INTEGRAL, Vol. 10 No. 1, Maret 2005
Dengan cara ini, dapat dihindari Dalam penelitian ini, panjang tabu list
pemilihan jadwal yang tidak ditentukan berdasarkan ukuran masalah
menghasilkan penurunan makespan dan yang ditangani, dengan mengalikan
jadwal yang mengakibatkan terjadinya jumlah job dengan sebuah konstanta
cyclic graph. Struktur neighbourhood ini tertentu, yang nilainya diubah pada tiap
memungkinkan model TS hanya eksekusi program untuk mendapatkan
meninjau graph-graph yang mewakili kualitas solusi yang terbaik. Pengaruh
solusi yang feasibel. Jadi, transisi ini perubahan panjang tabu list terhadap
menyebabkan pembalikan busur yang kualitas solusi yang dihasilkan
menghubungkan v dan w dari (v,w) ditunjukkan pada Tabel 3.
menjadi (w,v) dan penggantian busur
(u,v) dan (w,x) dengan busur (u,w) dan Dapat terjadi situasi dimana semua move
(v,x), dimana u adalah operasi sebelum v dalam neighborhood dari sebuah solusi
pada mesin k, dan x adalah operasi ternyata tergolong sebagai tabu. Jika hal
setelah w pada mesin k. ini terjadi, dapat ditempuh salah satu dari
dua alternatif berikut: menghentikan
(d) Tahap pengelolaan tabu list proses pencarian sama sekali (terminasi
Tabu list memiliki ukuran yang terbatas, algoritma), atau memilih salah satu dari
dan dikelola dengan menggunakan move yang tabu tersebut sebagai solusi
metode FIFO (first in first out), dimana berikutnya. Ada dua cara untuk memilih
setiap kali solusi baru dibuat, algoritma move tabu yang akan digunakan, yaitu
TS menyimpan atribut move yang memilih move tabu yang menghasilkan
membentuk solusi baru tersebut dan nilai makespan terbaik (cara
menghapus sebuah atribut move yang deterministik), atau memilih secara acak
lama dari list [6]. tanpa memperhatikan nilai makespan
yang dihasilkan (cara stokastik). Dalam
Kinerja algoritma TS sangat bergantung penelitian ini, cara yang ditempuh adalah
kepada cara penentuan panjang tabu list cara stokastik.
secara tepat. Secara empirik, ukuran tabu
list untuk menghasilkan kualitas solusi (e) Tahap pendefinisian kriteria aspirasi
yang baik akan bertambah seiring dengan Berdasarkan kenyataan bahwa pada suatu
membesarnya ukuran masalah. Namun kondisi tertentu, tabu search dapat
tidak ada aturan baku yang dapat melarang sebuah move yang sebenarnya
memberikan kriteria panjang tabu list dapat menuntun proses pencarian
yang tepat untuk setiap jenis masalah. bergerak ke daerah solusi yang belum
Hal ini disebabkan ukuran list yang tepat dikunjungi, yang mungkin dapat
sebenarnya tergantung pada ketatnya memberikan solusi yang baik, maka
tingkat kriteria tabu yang diterapkan; diperlukan suatu metode untuk dapat
kriteria tabu yang semakin ketat akan membatalkan efek dari tabu list, yang
mengurangi panjang tabu list yang disebut kriteria aspirasi (aspiration
dibutuhkan. Ukuran tabu list yang terlalu criteria) [6]. Kriteria aspirasi
pendek akan mengakibatkan seringnya diperkenalkan dalam tabu search untuk
terjadi cycling dalam daerah pencarian menentukan kapan sebuah forbidden-
yang menyebabkan pencarian terjebak move tetap dapat digunakan, atau
dalam solusi optimum lokal, sedangkan merupakan bagian dari tabu search yang
ukuran yang terlalu panjang akan berfungsi untuk membatalkan efek dari
mengakibatkan memburuknya kualitas tabu list untuk beberapa move pada
solusi karena terlalu banyak move yang kondisi tertentu. Penerapan aturan yang
dilarang [3]. tepat sebagai kriteria aspirasi merupakan
39
INTEGRAL, Vol. 10 No. 1, Maret 2005
Tabel 1. Data routing dan waktu operasi untuk masalah job shop 6-mesin 6-job kasus uji no. 1
Nilai makespan terbaik yang diperoleh Untuk tiap operasi dituliskan nomor
dari 30 kali percobaan dengan algoritma operasinya (di luar tanda kurung) dan
TS adalah 711, lebih baik dibandingkan sebuah triple dalam tanda kurung yang
solusi yang dihasilkan algoritma SA dan berisi titik waktu awal pengerjaan
Quant System. Di bawah ini ditunjukkan operasi, lama pengerjaan operasi, dan
solusi terbaik yang diperoleh untuk titik waktu penyelesaian operasi tersebut.
masalah 6-mesin 6-job kasus uji no.1.
41
INTEGRAL, Vol. 10 No. 1, Maret 2005
Tabel 2 memuat perbandingan nilai kasus uji (kolom yang dicetak miring),
makespan jadwal yang dihasilkan oleh diperoleh solusi dengan nilai makespan
algoritma TS, SA, dan Quant System yang sama untuk TS dan SA. Selebihnya,
untuk 30 kasus job shop berbeda dengan algoritma TS menghasilkan jadwal
berbagai ukuran jumlah mesin dan dengan makespan lebih baik.
jumlah job. Dari tabel ini tampak bahwa dibandingkan SA, yaitu pada 20 kasus uji
dari 30 kasus yang diselesaikan, kualitas (kolom yang dicetak tebal), dengan
solusi yang dihasilkan oleh Quant System persentase perbaikan nilai makespan
tidak pernah mengungguli algoritma TS terbesar adalah 7,36% dari hasil
dan hanya mampu menyamainya pada 5 algoritma SA.
kasus uji berukuran kecil (kolom yang
dicetak miring). Pada 25 kasus uji Hal menarik yang diamati dalam
lainnya (kolom yang dicetak tebal), percobaan adalah kondisi dimana semua
algoritma TS selalu menghasilkan solusi move dalam neighborhood tergolong
dengan kualitas yang lebih baik tabu. Kondisi ini dapat ditangani secara
dibandingkan Quant System, dengan deterministik dengan memilih solusi tabu
persentase perbaikan nilai makespan terbaik atau secara stokastik dengan
terbesar adalah 14,38% dari hasil Quant memilih solusi tabu secara acak. Hasil
System. percobaan menunjukkan bahwa cara
stokastik menghasilkan kualitas solusi
Algoritma TS juga mengungguli yang lebih baik dibandingkan cara
algoritma SA dalam sebagian besar kasus deterministik.
uji yang dicobakan. Pada 10 dari 30
INTEGRAL, Vol. 10 No. 1, Maret 2005
Tabel 3. Pengaruh panjang tabu list terhadap kualitas solusi yang dihasilkan algoritma TS
44
INTEGRAL, Vol. 10 No. 1, Maret 2005
45