Aplikasi Algoritma Branch And Bound Untuk Mengoptimalkan Permasalahan Penugasan Dengan Adanya Kendala Tambahan
DENGAN ADANYA KENDALA TAMBAHAN
SKRIPSI
PAULINUS SITANGGANG
050803060
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2010
(2)
APLIKASI ALGORITMABRANCH AND BOUND UNTUK MENGOPTIMALKAN PERMASALAHAN PENUGASAN
DENGAN ADANYA KENDALA TAMBAHAN
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains
PAULINUS SITANGGANG 050803060
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
MEDAN 2010
(3)
PERSETUJUAN
Judul : APLIKASI ALGORITMA BRANCH AND BOUND
UNTUK MENGOPTIMALKAN PERMASALAHAN PENUGASAN DENGAN ADANYA KENDALA TAMBAHAN
Kategori : SKRIPSI
Nama : PAULINUS SITANGGANG
Nomor Induk Mahasiswa : 050803060
Program Studi : SARJANA (S1) MATEMATIKA
Departemen : MATEMATIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, Maret 2010
Komisi Pembimbing :
Pembimbing II Pembimbing I
Drs. Henry Rani Sitepu, M.Si Prof. Dr. Herman Mawengkang NIP 19530303 198303 1 002 NIP 19461128 197403 1 001
Diketahui/Disetujui oleh
Departemen Matematika FMIPA USU Ketua,
(4)
iii
PERNYATAAN
APLIKASI ALGORITMABRANCH AND BOUNDUNTUK MENGOPTIMALKAN PERMASALAHAN PENUGASAN
DENGAN ADANYA KENDALA TAMBAHAN
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Maret 2010
PAULINUS SITANGGANG 050803060
(5)
PENGHARGAAN
(6)
v
ABSTRAK
Masalah penugasan adalah merupakan suatu masalah yang sangat nyata dalam kehidupan keprofesian. Secara umum masalah ini berkisar tentang bagaimana memasangkan orang atau karyawan dengan job yang ada secara tepat. Sehingga biaya atau waktu yang diperlukan adalah minimum. Karena dalam kehidupan nyata setiap pekerjaan itu berbeda-beda dan setiap orang memiliki keahlian yang berberbeda-beda pula, maka biaya yang dibutuhkan untuk setiap pemilihan pekerjaan tentunya berbeda pula.
Fungsi objektif dari masalah ini adalah bagaimana meminimumkan biaya yang terjadi selama penugasan, sehingga kita sebagai pihak yang melakukan penugasan mengeluarkan biaya seminimum mungkin. Algoritma Branch and Bound merupakan pendekatan yang baik dalam mencari solusi ini. Dengan metodeBreadht First Search dan menggunakan metode pencarian solusi dalam ruang solusi yang sistematis, algoritma ini sangat tepat untuk masalah ini.
(7)
APPLICATIONS ALGORITHM BRANCH AND BOUND FOR OPTIMIZING ASSIGNMENT PROBLEM
WITH ADDITIONAL CONSTRAINTS
ABSTRACT
Assignment problem is a very real problem in life professions. In general, this issue revolves on how to pair the person or employee with an existing job properly. So that the cost or time required is minimum. Because in real life every job is different and everyone has different skills, the cost needed for every vote certainly different jobs.
Objective function of this problem is how to minimize costs incurred during the assignment, so that we as a part an assignment spend a minimum cost. Branch and Bound algorithm is a good approach in finding solutions. Breadht First Search method and search using the solution in a systematic solution space, this algorithm is very appropriate for this problem.
(8)
vii
DAFTAR ISI
Halaman
PERSETUJUAN ii
PERNYATAAN iii
PENGHARGAAN iv
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL viii
DAFTAR GAMBAR ix
BAB 1 PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Perumusan Masalah 2
1.3 Pembatasan Masalah 2
1.4 Tujuan penelitian 2
1.5 Manfaat penelitian 3
1.6 Metode penelitian 3
1.7 Tinjauan Pustaka 3
BAB 2 LANDASAN TEORI 6
2.1 Matriks 6
2.1.1 Pengertian Matriks 6
2.1.2 Penjumlahan Matriks 7
2.1.3 Perkalian Matriks 7
2.1.4 Perkalian Matriks Dengan Bilangan 8
2.2 Masalah Transportasi 8
BAB 3 PEMBAHASAN 13
3.1 AlgoritmaBranch and Bound 13
3.1.1 Pembangkit Status SecaraBreadht First Search 13 3.1.2 Pembangkit Status SecaraDepth First Search 14
3.2 Contoh Kasus dan Penyelesaiannya 15
3.3 Pembahasan Dengan Adanya Kendala Tambahan 26
3.3.1 UntukJob Lebih Banyak Dari Pekerja 26
3.3.2 Untuk Pekerja Lebih Banyak DariJob 34
BAB 4 KESIMPULAN DAN SARAN 40
(9)
DAFTAR TABEL
Halaman
(10)
ix
DAFTAR GAMBAR
Halaman Gambar 3.1 Diagram pohon untuk metodaBranch and Bound 14
Gambar 3.2 Akar pohonassignment problem untuk 16
Gambar 3.3 Pohon ruang status untuk simpul 2 17
Gambar 3.4 Pohon ruang status untuk simpul 3 17
Gambar 3.5 Pohon ruang status untuk simpul 4 18
Gambar 3.6 Pohon ruang status untuk simpul 5 19
Gambar 3.7 Pohon ruang status untuk simpul 6 20
Gambar 3.8 Pohon ruang status untuk simpul 7 21
Gambar 3.9 Pohon ruang status untuk simpul 8 22
Gambar 3.10 Pohon ruang status untuk simpul 9 23
Gambar 3.11 Pohon ruang status untuk simpul 10 24
Gambar 3.12 Pohon ruang solusiAssignment Problem 25 Gambar 3.13 Pohon ruang status simpul 5 untukjob lebih banyak dari pekerja 28 Gambar 3.14 Pohon ruang status simpul 8 untukjob lebih banyak dari pekerja 29 Gambar 3.15 Pohon status simpul 10 untukjob lebih banyak dari pekerja 30 Gambar 3.16 Pohon solusi pertama untukjob lebih banyak dari pekerja 31 Gambar 3.17 Pohon solusi kedua untukjob lebih banyak dari pekerja 33 Gambar 3.18 Pohon simpul 5 untuk pekerja lebih banyak darijob 35 Gambar 3.19 Pohon simpul 8 untuk pekerja lebih banyak darijob 37 Gambar 3.20 Pohon simpul 10 untuk pekerja lebih banyak darijob 38 Gambar 3.21 Pohon solusi untuk pekerja lebih banyak darijob 39
(11)
ABSTRAK
Masalah penugasan adalah merupakan suatu masalah yang sangat nyata dalam kehidupan keprofesian. Secara umum masalah ini berkisar tentang bagaimana memasangkan orang atau karyawan dengan job yang ada secara tepat. Sehingga biaya atau waktu yang diperlukan adalah minimum. Karena dalam kehidupan nyata setiap pekerjaan itu berbeda-beda dan setiap orang memiliki keahlian yang berberbeda-beda pula, maka biaya yang dibutuhkan untuk setiap pemilihan pekerjaan tentunya berbeda pula.
Fungsi objektif dari masalah ini adalah bagaimana meminimumkan biaya yang terjadi selama penugasan, sehingga kita sebagai pihak yang melakukan penugasan mengeluarkan biaya seminimum mungkin. Algoritma Branch and Bound merupakan pendekatan yang baik dalam mencari solusi ini. Dengan metodeBreadht First Search dan menggunakan metode pencarian solusi dalam ruang solusi yang sistematis, algoritma ini sangat tepat untuk masalah ini.
(12)
vi
APPLICATIONS ALGORITHM BRANCH AND BOUND FOR OPTIMIZING ASSIGNMENT PROBLEM
WITH ADDITIONAL CONSTRAINTS
ABSTRACT
Assignment problem is a very real problem in life professions. In general, this issue revolves on how to pair the person or employee with an existing job properly. So that the cost or time required is minimum. Because in real life every job is different and everyone has different skills, the cost needed for every vote certainly different jobs.
Objective function of this problem is how to minimize costs incurred during the assignment, so that we as a part an assignment spend a minimum cost. Branch and Bound algorithm is a good approach in finding solutions. Breadht First Search method and search using the solution in a systematic solution space, this algorithm is very appropriate for this problem.
(13)
PENDAHULUAN
1.1 Latar Belakang
Permasalahan penugasan atau assignment problem adalah suatu persoalan dimana harus melakukan penugasan terhadap sekumpulan orang yang kepada sekumpulan job yang ada, sehingga tepat satu orang yang bersesuaian dengan tepat satu job yang ada. Penugasan satu orang dengan job yang ada ( menghasilkan biaya (cost) sebesar dan orang 1 dengan job 2 menghasilkan biaya dan seterusnya untuk setiap orang dan job yang ada. Sehingga ada c
( ) ( )
1,1 ,c 1, 2 ,K ,c( ) ( ) ( )
1,n c, 2,1 ,c 2, 2 ,( )
2,3 , ,( )
2, , ,( )
,c K c n K c n n . Maka misalkan setiap 4 orang dengan 4 job yang ada menghasilkan 4! kemungkinan yaitu 24 kemungkinan yang ada. Namun yang dicari disini atau fungsi objektifnya adalah mencari biaya seminimum mungkin sehingga dalam penugasan ini bagi orang yang melakukan penugasan dapat mengeluarkan biaya seminimum mungkin. Diperlukan suatu algoritma yang efektif untuk memecahkan persoalan ini, algoritmaBranch and Bound adalah salah satu algoritma yg bisa digunakan untuk meyelesaikan masalah.
Metode Branch and Bound pertama kali ditemukan oleh Land dan Doig, dan dikembangkan lebih lanjut oleh Little serta peneliti peneliti lain. Teknik ini dapat digunakan baik untuk masalahpure maupunmixed integer programming.
(14)
2
Algoritma Breadht First Search adalah merupakan bagian darialgoritma Branch and Bound yang akan digunakan untuk mencari solusi dari permasalahan penugasan. Dengan menggunakan sistem pencari solusi dalam ruang solusi yang sistematis atau dalam Algoritma Breadth First Search dengan menggunakan pohon maka permasalahan untuk menemukan solusi terbaik akan ditemukan.
1.2 Perumusan Masalah
Adapun yang menjadi permasalahan tulisan ini adalah bagaimana mencari simpul yang optimal dengan menggunakan Algoritma Branch and Bound sehingga diperoleh solusi yang optimal pada permasalahan penugasan dengan adanya kasus tambahan.
1.3 Pembatasan Masalah
Pada tulisan ini masalah hanya dibatasi sampai pada tahap pencarian solusi optimal dari permasalahan penugasan dengan adanya kasus tambahan dengan menggunakanAlgoritma Branch and Bound.
1.4 Tujuan Penelitian
Tujuan dari penelitian ini adalah untuk mencari solusi yang optimal dengan menggunakan
(15)
1.5 Manfaat Penelitian
Manfaat penelitian ini adalah:
1. Sebagai bahan tambahan dalam pembahasan Algoritma Branch and Bound
khususnya dengan menggunakanAlgoritma Breadht First Search.
2. Sebagai masukan untuk pemimpin perusahaan untuk menemukan solusi optimal dari masalah penugasan.
3. Sebagai penerapan ilmu pengetahuan yang dimiliki penulis.
1.6 Metodologi Penelitian
Metode penelitian yang akan digunakan adalah penelitian literatur. Prosedur yang dilakukan adalah:
1. Menguraikan teori dasar yang menunjang terhadap pembahasan.
2. Menguraikan penjelasan masalah assignment problem dengan menggunakan algoritmaBranch and Bound.
3. Menyelesaikan contoh kasus permasalahan assignment problem dengan matriks dengan algoritmaBranch and Bound.
1.7 Tinjauan Pustaka
Sebagai referensi literatur yang mendukung penelitian ini, penulis menggunakan beberapa buku dan jurnal antara lain:
(Made Mahendra Adtyaman, 2007; 1-5) Untuk menyelesaikan permasalahan penugasan dengan menggunakan algoritma Branch and Bound digunakan prinsip-prinsip sebagai berikut:
(16)
4
1. Memasukkan simpul akar ke dalam antrian . Jika simpul akar adalah simpul solusi(goal node), maka solusi sudah ditemukan, stop.
2. Jika antrian kosong, maka tidak ada solusi, stop.
3. Jika tidak kosong, pilih dari antrian simpul yang mempunyai paling kecil. Jika terdapat bebebrapa simpul yang memenuhi, pilih satu secara sembarang.
4. Jika simpul adalah simpul solusi, berarti solusi sudah ditemukan, stop. Jika simpul bukan simpul solusi, maka bangkitkan semua anak-anaknya. Jika tidak mempunyai anak, kembali ke langkah 2.
5. Untuk setiap anak dari simpul , hitung , dan masukkan semua anak-anak tersebut ke dalam antrian .
6. Kembali ke langkah 2.
(Munir Rinaldi, 2003). Algoritma Branch and Bound merupakan metode pencarian dalam ruang solusi yang di transformasikan dalam bentuk ruang pohon pencarian.
(Hamdy A. Taha, 1993). Masalah penugasan adalah masalah penempatan pekerja ke mesin, pekerjaan ketika ditugaskan ke mesin
dengan biaya dengan total biaya terendah.
0, jika pekerjaan tidak ditugaskan ke mesin 1, jika pekerjaan ditugaskan ke mesin ij i j x i j =
jadi model ini diketahui:
1 1
minimumkan n
ij ij i j
z c x = = =
∑∑
(17)
Dengan batasan:
∑
=n = =i
ij i n
x 1 , , 2 , 1 , 1 K
∑
= = = n jij j n
x 1 , , 2 , 1 ,
(18)
BAB 2
LANDASAN TEORI
2.1 Matriks
2.1.1 Pengertian Matriks
Matriks adalah susunan segi empat siku-siku dari bilangan bilangan. Bilangan-bilangan dalalm susunan tersebut dinamakan entri dalam matriks (Anton, 1988: 22). Jika adalah sebuah matriks, maka akan meggunakan untuk menyatakan entri yang terdapat di dalam baris dan kolom dari matriks . Secara umum matriks dituliskan sebagai berikut:
Matriks di atas disebut matriks berukuran kali (ditulis ) karena memiliki baris dan kolom.
Contoh:
(19)
2.1.2 Penjumlahan Matriks
Jika dan adalah sebarang dua matriks yang ukurannya sama, maka jumlah
adalah matriks yang diperoleh dengan menambahkan bersama-sama entri yang bersesuaian dalam kedua matriks tersebut. Matriks-matriks yang ukurannya berbeda tidak dapat dijumlahkan (Howard Anton, 1988 : 23).
Contoh :
Misalkan dan
Maka
2.1.3 Perkalian Matriks
Jika adalah matriks dan adalah matriks , maka hasil kali adalah matriks yang entri-entrinya ditentukan sebagai berikut. Untuk mencari entri dalam baris- dan kolom- dari , pilihlah baris- dari matriks dan kolom- dari matriks . Kalikanlah entri-entri yang bersesuaian dari baris dan kolom tersebut bersama-sama dan kemudian tambahkanlah hasil kali yang dihasilkan (Anton, 1988 :25).
Contoh :
Diketahui , dan
Tinjaulah perkalian matriks dan . Karena adalah matriks berukuran dan adalah matriks berukuran maka hasil kali adalah matriks . Perhitungan-perhitungan untuk hasil kali adalah:
(20)
8
Jadi, diperoleh .
2.1.4 Perkalian Matriks Dengan Bilangan
Jika adalah suatu matriks dan adalah suatu bilangan, maka hasil kali (product) adalah matriks yang diperoleh dengan mengalikan masing-masing entri dari oleh . Dalam hal ini ditulis . Khususnya dengan yang disebut negatif dari , diartikan matriks yang diperoleh dari dengan cara mengalikan setiap elemennya dengan
atau cukup dengan mengubah tanda semua elemennya.
Contoh :
Diketahui matriks
Maka dan
2.2 Masalah Transportasi
Model transportasi merupakan kasus khusus dari persoalan program linear dengan tujuan untuk mengangkut barang tunggal dari berbagai asal (origin) ke berbagai tujuan (destination) dengan biaya angkut serendah mungkin (Taha, 1996). Adanya informasi tentang besar kapasitas tiap tiap asal, permintaan total masing-masing tempat tujuan, dan
(21)
transportasi digunakan untuk menentukan program pengiriman optimal yang melibatkan biaya pengiriman total yang minimum.
Model transportasi adalah suatu kasus khusus dari persoalan program linear, berarti model transportasi memiliki ciri khas yang dimiliki pula oleh masalah program linear, yaitu:
1. Fungsi objektif (tujuan) yang linear
Struktur persyaratan linear
Setiap persoalan program linear memiliki sekumpulan persyaratan linear,yaitu:
2. Persyaratan tidak negatif
Variabel struktur dan variabelslack masalah program linear terbatas pada nilai tidak negative, ditulis:
Koefisien bernilai 1 atau 0
ialah koefisien variabel struktur.
Dalam arti sederhana, model transportasi berusaha menentukan rencana transportasi sebuah barang dari sejumlah sumber ke sejumlah tujuan. Data dalam model ini mencakup:
1. Tingkat penawaran di setiap sumber dan jumlah permintaan di setiap tujuan. 2. Biaya transportasi per unit barang dari setiap sumber ke setiap tujuan.
(22)
10
jumlah yang harus dikirim dari setia sumber ke setiap tujuan sedemikian rupa sehingga biaya transportasi total diminimumkan. Asumsi dasar dari model ini adalah bahwa biaya transportasi di sebuah rute tertentu adalah proporsional secara langsung dengan jumlah unit yang dikirimkan. Defenisi “unit transportasi” akan bervariasi bergantung pada jenis “barang” yang dikirimkan.
Gambar dibawah ini memperlihatkan sebuah model transportasi dari sebuah jaringan dengan sumber dan tujuan. Sebuah sumber dan tujuan diwakili dengan sebuah node. Busur yang menghubungkan sebuah sumber dan sebuah tujuan mewakili rute pengiriman barang tersebut. Jumlah penawaran di sumber adala dan permintaan di tujuan adalah . Biaya unit transportasi antara sumber dan adalah .
Anggap mewakili jumlah barang yang dikirimkan dari sumber ke tujuan , maka model LP yang mewakili masalah transportasi ini diketahui secara umum sebagai berikut:
Sumber Tujuan :
Unit penawaran unit permintaan
:
Minimumkan:
Dengan batasan: 1
1
2 2
(23)
Kelompok batasan pertama menetapkan bahwa jumlah pengiriman dari sebuah sumber tidak dapat melebihi penawarannya. Demikian pula kelompok batasan kedua mengharuskan bahwa jumlah pengiriman ke sebuah tujuan harus memenuhi permintaannya. Model yang baru digambarkan diatas menyiratkan bahwa penawaran total harus setidaknya sama dengan permintaan total . Ketika penawaran total sama dengan permintaan total ( = ), formulasi yang dihasilkan disebut Model Transportasi Berimbang (balanced transportation model). Model ini berbeda dengan model di atas hanya dalam fakta bahwa semua batasan adalah persamaan yaitu:
Dalam kehidupan nyata tidak selalu dapat dipastikan bahwa penawaran sama dengan permintaan atau melebihinya. Tetapi sebuah model transportasi dapat selalu berimbang. Pengimbangan ini disamping kegunaanya dalam pemodelan situasi praktis tertentu, penting untuk pengembangan sebuah metode pemecahan sepenuhnya memanfaatkan struktur khusus dari model transportasi ini.
Untuk mendapat gambaran yang jelas tentang model transportasi akan ditampilkan contoh persoalan berikut. Sebuah perusahaan memiliki tiga pabrik di luar kota dan menghasilkan barang yang sama. Produksi ketiga pabrik ini di sebarkan ke empat toko penjualan. Tiga pabrik ditandai dengan . Sedangkan toko tempat penyaluran barang ini ditandai dengan . Data relevan tentang kapasitas pabrik maupun permintaan pelanggan dan biaya pengiriman tiap rute ditampilkan dalam tabel berikut.
(24)
12
Tabel 2.1 Model Transportasi
Asal Destination (Tujuan) Kapasitas Asal
Permintaan Tujuan
Matriks persoalan transportasi ini memiliki 3 baris dan 4 kolom.
Dalam menyelesaikan permasalahan transportasi dibutuhkan persyaratan sebagai
berikut: , yang merupakan persyaratan yang
harus dipenuhi. Dalam tabel perlu diperhatikan bahwa subskrip pertama disetiap simbol menunjukkan asal tertentu dan subkrip kedua menunjukkan tujuan tertentu. Misalkan adalah biaya pengangkutan 1 unit barang dari ke , dan variabel ialah banyak unit barang yang diangkut ke .
Jika adalah banyak baris dan adalah banyak kolom dalam persoalan transportasi, maka dapat dinyatakan persoalan secara lengkap dengan
persamaan. Jika persyaratan dipenuhi, maka selalu mungkin untuk menyusun penyelesaian dasar awal. Ini berarti banyak sel yang terisi dalam program transportasi kurang dari banyaknya baris dan kolom dalam matriks transportasi. Jika banyaknya sel
(25)
PEMBAHASAN
3.1 AlgoritmaBranch and Bound
Algoritma Branch and Bound merupakan metode pencarian solusi di dalam ruang solusi secara sistematis yang di implementasikan dalam suatu pohon ruang status dinamis. Setiap status tersebut diberikan biaya (cost) dalam pencapaian solusi. Semakin kecilcost, semakin cepat solusi ditemukan. Algoritma Branch and Bound bukan saja sebuah teknik yang terbatas untuk menyelesaikan permasalahan Integer Programming, tetapi merupakan penyelesaian pendekatan yang dapat diterapkan pada sejumlah tipe masalah yang berbeda.
Konsep utama yang mendasari teknik Branch and Bound (pencabangan dan pembatasan) adalah dengan membagi dan menyelesaikan (divide and conquer). Pendekatan Branch and Bound dapat didasarkan pada prinsip bahwa total himpunan penyelesaian layak dapat dipisah menjadi himpunan bagian penyelesaian yang lebih kecil. Ada dua yang menjadi dasar dari algoritma Branch and bound ini yaitu: algoritma
Breadht First Search dan algoritmaDepth First Search.
(26)
14
disebut Best First Search. Pada implementasi Branch and Bound langkah-langkahnya adalah:
1. Bangkitkan anak dari semua simpul awal.
2. Masukkan setiap simpul tersebut ke dalam antrian sesuai urutan cost-nya dari kecil ke besar.
3. Keluarkan simpul yang terletak padahead antrian (simpul dengan cost terkecil). 4. Ulangi langkah 1.
3.1.2 Pembangkit Status SecaraDepth First Search
Prinsip Depth First Search (DFS) adalah selalu membangkitkan anak pertama dari simpul pada pohon ruang solusi. Pada implementasi Branch and Bound langkah-langkahnya adalah:
1. Cost dari simpul awal (misal: ) akan menjadicost patokan awal ( ).
2. Bangkitkan anak pertama yang masih hidup dari (misal: ). Jika tidak ada lagi anak simpul yang mungkin akan dibangkitkan, maka kembali ke simpul bapaknya. 3. Jika maka ulangi langkah 1, tapi jika tidak, matikan simpul dan
kembali ke simpul (backtrack/kembali) lalu ulangi langkah 2.
4. Ulangi terus langkah-langkahnya sampai menemukan simpul/solusi yang optimal.
1
2 3
4 5
(27)
Gambar diatas memperlihatkan pembagian (pencabangan) menjadi dua sub masalah pohon dengan cabang-cabang atau busur dari simpul 1 menjadi dua simpul yang bersesuaian dengan dua sub masalah. Pohon ini yang akan terus berkembang setahap demi setahap yang disebut sebagai pohon penyelesaian (solution tree) untuk algoritma tersebut. Variabel yang digunakan untuk pencabangan tersebut disebut variabel pencabangan.
3.2 Contoh Kasus dan Penyelesaiannya
Sebuah perusahaan akan melakukan penugasan kepada 4 orang karyawan barunya untuk mengoperasikan 4 buah mesin. Setiap karyawan memiliki memiliki biaya yang berbeda-beda untuk menyelesaikan produk di setiap mesin yang mereka operasikan. Dari hasil yang diperoleh di lapangan biaya yang mereka keluarkan untuk setiap mesinnya dinyatakan dalam bentuk matriks di bawah ini (dalam satuan ribuan):
Pertanyaan: carilah penugasan yang tepat untuk menghasilkan biaya yang minimum.
Terlebih dahulu akan mencari lower bound pada matriks ini secara seksama. Untuk mencarilower bound dari persoalan ini, carilah 4 biaya yang paling minimum dari matriks ini. Harus 4 karena mewakilkan setiap pekerjaan yang ada.
Jadi dari matrik diatas,lower bound yang ada yaitu:
Yang artinya persoalan diatas paling tidak memiliki total biaya minimum 50.
(28)
16
Gambar 3.2 Akar pohonassignment problem untuk
Selanjutnya, misalkan untuk orang ke-1 dan job ke- maka biaya minimum yang ada adalah ditambah biaya-biaya minimum darijob dan orang yang tersisa (biaya minimum ini mewakilkan sebagai pencarian sisa solusi yang ada). Jadi persamaan dari fungsi pembatas yang ada adalah:
Dalam hal ini,
Perhitungan selanjutnya untuk simpul-simpul yang lain pada pohon ruang status adalah sebagai berikut:
1. Simpul 2, orang ke-1,job ke-1
Karena dipilih , maka untuk stiap nilai dari pada baris 1 dan kolom 1 diubah menjadi – (artinya tidak dihiraukan untuk mencari biaya minimum yang lainnya). Nilai batas untuk simpul 2 pada pohon ruang status adalah:
(29)
1
2
X1=1
Gambar 3.3 Pohon ruang status untuk simpul 2
2. Simpul 3, orang ke-1,job ke-2
Untuk nilai batas pada simpul ke-3 pada pohon ruang status ini adalah:
(30)
18
3. Simpul ke 4, orang ke-1,job ke-3
Untuk nilai batas pada simpul ke 4 pada pohon ruang status ini adalah:
Gambar 3.5 Pohon ruang status untuk simpul 4
4. Simpul 5, orang ke-1,job ke-4
(31)
Gambar 3.6 Pohon ruang status untuk simpul 5
Nilai pada setiap simpul di dalam pohon ruang status di atas bermakna sebagai berikut:
a. Jika orang ke-1 dicocokkan dengan job ke-1, maka biaya yang diperlukan paling sedikit 100.
b. Jika orang ke-1 dicocokkan dengan job ke-2, maka biaya yang diperlukan paling sedikit 60.
c. Jika orang ke-1 dicocokkan dengan job ke-3, maka biaya yang di perlukan paling sedikit 75.
d. Jika orang ke-1 dicocokkan dengan job ke-4, maka biaya yang diperlukan paling sedikit 85.
Sekarang disini bisa dilihat bahwa simpul yang hidup adalah simpul 2,3,4, dan 5. Langkah selanjutnya dalam algoritma Branch and Bound adalah memilih simpul hidup yang memiliki cost paling kecil, yaitu simpul 3 dengan nilai 60. Simpul 3 menjadi simpul-E yang akan diekspansi lagi. Perhitungan selanjutnya untuk simpul-simpul anak pada pohon ruang status dari simpul 3 adalah sebagai berikut:
(32)
20
5. Simpul 6, orang ke-2,job ke-1
Nilai batas untuk simpul 6 pada pohon ruang status adalah
Dimana 10 didapat dari hasil orang ke-1 dengan job ke-2, dan 30 dari orang ke-2 dengan job ke-1. Sedangkan angka 20 dan 25 adalah biaya minimum lainnnya yang menunjukkan ke ruang solusi.
Gambar 3.7 Pohon ruang status untuk simpul 6
(33)
Nilai batas untuk simpul 7 pada pohon ruang status adalah:
Gambar 3.8 pohon ruang status untuk simpul 7
7. Simpul 8, orang ke-2,job ke-4
(34)
22
Gambar 3.9 Pohon ruang status untuk simpul 8
Sekarang simpul yang hidup adalah simpul 2,6,7,8,4, dan 5. Langkah berikutnya adalah mencari simpul dengan nilai terkecil, yaitu simpul 7 dengan nilai 55, maka simpul inilah yang akan dikembangkan untuk menjadi simpul-E. Perhitungan selanjutnya untuk simpul-simpul anak pada pohon ruang status dari simpul 7 yaitu sebagai berikut:
8. Simpul 9, orang ke-3,job ke-1
(35)
Gambar 3.10 Pohon ruang status untuk simpul 9
9. Simpul 10, orang ke-3,job ke-4
(36)
24
Gambar 3.11 Pohon ruang status untuk simpul 10
Bisa dilihat disini kalau simpul-simpul yang hidup adalah simpul 2,6,9,10,8,4, dan 5. Dengan melihat nilai-nilai yang ada, maka yang paling kecil adalah simpul 9 dengan nilai 65, sehingga yang menjadi simpul-E adalah simpul 9. Berikut adalah pengembangan simpul 9:
10. Simpul 11, orang ke-4,job ke-4
(37)
Karena dengan algoritma Branch and Bound ini sudah mencapai simpul solusi yang ada, maka proses berhenti. Sehingga pohon yang terbentuk merupakan sebuah solusi dariassignment problem yang ada. Berikut adalah pohon ruang solusinya:
Gambar 3.12 Pohon ruang solusiAssignment Problem
Jadi jawaban untuk dari assignment problem dengan contoh diatas yaitu biaya minimum yang dikeluarkan adalah 65 dengan susunan penugasannya adalah sebagai berikut:
Orang 1:job 2 (10) Orang 2:job 3 (20) Orang 3:job 1 (5) Orang 4:job 4 (30)
(38)
26
3.3 Pembahasan Dengan Adanya Kendala Tambahan
3.3.1 UntukJob Lebih Banyak Dari Pekerja
Contoh:
Tn.Abdi berencana akan melakukan mutasi terhadap 4 orang karyawannya yaitu Hasan, Budi, Andre, dan Nico. Ternyata dalam melakukan mutasi ini hanya terdapat 3 pekerjaan. Adapun hasil dari analisis pekerjaan dapat dilihat dari matriks di bawah ini:
Pertanyaan:
Tentukan hasil dari penugasan pekerja terhadap job sehingga biaya yang dikeluarkan adalah minimum!
Untuk bisa menyelesaikan permasalahan diatas maka harus ditambahkan 1 kolom
dummy.Sehingga bentuk permasalahan yang baru adalah sebagai berikut:
Selanjutnya selesaikan persoalan ini dengan menggunakan algoritma Branch and Bound
sebagai berikut:
Lower bounddari matriks diatas adalah,
(39)
a. Simpul 2, karyawan ke-1,job ke-1
Maka diperoleh:
b. Simpul 3, karyawan ke-1,job ke-2
Maka diperoleh:
c. Simpul 4, karyawan ke-1,job ke-3
Maka diperoleh:
d. Simpul 5, karyawan ke-1,job ke-4
(40)
28
Pohon ruang status yang terbentuk sampai saat ini adalah:
Gambar 3.13 Pohon ruang status simpul 5 untukjob lebih banyak dari pekerja
Disini dapat dilihat bahwa nilai yang paling minimum adalah simpul ke-3 dengan biaya sebesar 32. Sekarang simpul yang hidup adalah simpul 2,3,4, dan 5. Langkah selanjutnya adalah mengekspansi simpul ke-3 (simpul yang paling minimum).
e. Simpul 6, karyawan ke-2,job ke-1
Maka diperoleh:
f. Simpul 7, karyawan ke-2,job ke-3
(41)
Simpul 8, karyawan ke-2,job ke-4
Maka diperoleh:
Pohon ruang status yang terbentuk saat ini adalah:
1
2 3 4 5
X1=1 X1=2 X1=3 X1=4
6 7 8
X2=4 X2=1 X2=3
Gambar 3.14 Pohon ruang status simpul 8 untukjob lebih banyak dari pekerja
Sekarang simpul yang hidup adalah 2,6,7,8,4, dan 5. Langkah selanjutnya adalah mencari simpul dengan nilai (cost) terkecil, yaitu simpul ke-8. Maka simpul inilah yang akan dikembangkan untuk menjadi simpul-E. Sehingga perhitungan selanjutnya adalah untuk simpul-simpul anak pada pohon ruang status daris simpul 8 adalah sebagai berikut:
(42)
30
g. Simpul 9, karyawan ke-3,job ke-1
Maka diperoleh:
h. Simpul 10, karyawan ke-3,job ke-3
Maka diperoleh:
(43)
Dilihat bahwa simpul-simpul yang hidup adalah simpul 2,4.5,6,7,9, dan 10. Karena disini nilai simpul dari 9 dan 10 nilainya sama, maka langkah selanjutnya adalah jadikan kedua simpul ini menjadi simpul-E yang akan diekspansi.
i. Simpul 10.1, karyawan ke-4,job ke-3
Maka diperoleh:
Karena dengan algoritma Branch and Bound ini sudah mencapai simpul solusi, maka proses berhenti. Sehingga pohon yang terbentuk adalah:
1
2 3 4 5
7
6 8
9 10
X1=4
X1=1 X1=2 X1=3
X2=1 X2=3 X2=4
X3=1 X3=3
11 X4=3
(44)
32
Jadi jawaban dariassignment problem diatas adalah: Hasan :job 2 (12)
Budi :job 4 (0) Andre :job 1 (20) Nico :job 3 (8)
Dengan total .
Artinya Hasan pada pekerjaan 2, Budi pada pekerjaan 4, Andre pada pekerjaan 1, dan Nico pada pekerjaan 3. Karena pekerjaan 4 tidak tersedia maka Budi tidak memilih tempat kerja.
j. Simpul 10.2, karyawan ke-4,job ke-1
Maka diperoleh:
Karena dengan algoritmaBranch and Bound sudah mencapai simpul solusi, maka proses berhenti. Sehingga pohon yang terbentuk adalah:
(45)
Gambar 3.17 Pohon solusi kedua untukjob lebih banyak dari pekerja
Jadi jawaban dariassignment problem diatas adalah: Hasan :job 2 (12)
Budi :job 4 (0) Andre :job 3 (12) Nico :job 1 (16)
Dengan total .
Artinya Hasan pada pekerjaan 2, Budi pada pekerjaan 4, Andre pada pekerjaan 3, dan Nico pada pekerjaan 1. Karena pekerjaan 4 tidak tersedia maka Budi tidak memilih tempat kerja.
(46)
34
3.3.2 Untuk Pekerja Lebih Banyak DariJob
Sebuah salon kecantikan akan melakukan perekrutan untuk 4 orang pekerjaan perawatan wajah, dari hasil perekrutan ternyata hanya 3 pelamar yang berhasil lolos seleksi, yaitu Ani, Susi, dan Silvy. Berdasarkan tes ketrampilan yang dilakukan oleh pihak salon, biaya yang dihasilkan untuk tiap pekerjaan disajikan dalam matriks dibawh ini.
Untuk dapat menyelesaikan matriks ini akan ditambahkan 1 baris dummy yang nilainya akan diisi dengan 0. Sehingga menjadi:
Dengan begini, solusi untuk masalah assignment problem dapat dicari perhitungannya sebagai berikut:
Cari lower bound dari matriks diatas:
Ini akan menjadi simpul akar atau simpul 1.
a. Simpul 2, orang ke-1, pek-1
(47)
b. Simpul 3, orang ke-1, pek-2
Maka diperoleh:
c. Simpul 4, orang ke-1, pek-3
Maka diperoleh:
d. Simpul 5, orang ke-1, pek-4
(48)
36
Simpul yang hidup adalah simpul 2,3,4,dan 5. Karena simpul ke-2 adalah simpul yang paling kecil maka simpul ini menjadi simpul-E yang akan diekspansi lagi. Perhitungan selanjutnya untuk simpul-simpul anak pohon ruang status dari simpul 2 adalah sebgai berikut:
e. Simpul 6, orang ke-2,job ke-2
Maka diperoleh:
f. Simpul 7, orang ke-2,job-3
Maka diperoleh:
g. Simpul 8, orang ke-2,job ke-4
(49)
1
2 3 4 5
X1=2 X1=3 X1=4 X1=1
6 7 8
X2=2 X2=3 X2=4
Gambar 3.19 Pohon simpul 8 untuk pekerja lebih banyak darijob
Sekarang simpul yang hidup adalah 3,4,5,6,7, dan 8. Langkah berikutnya adalah mencari simpul dengan nilai terkecil, yaitu simpul 7 dengan nilai 110, maka simpul inilah yang akan dikembangkan untuk menjadi simpul-E. Perhitungan selanjutnya untuk simpul-simpul anak pohon adalah sebagai berikut:
h. Simpul 9, orang ke-3,job ke-2
Maka diperoleh:
(50)
38
Maka diperoleh:
1
2 3 4 5
X1=2 X1=3 X1=4 X1=1
6 7 8
X2=2 X2=3 X2=4
9 10
X3=2 X3=4
Gambar 3.20 Pohon simpul 10 untuk pekerja lebih banyak darijob
Dapat dilihat bahwa simpul-simpul yang hidup adalah simpul 3,4,5,6,8,9, dan 10. Dengan melihat yang ada, maka yang paling kecil adalah simpul 9 dengan nilai 120, sehingga menjadi simpul-E. Perhitungan selanjutnya adalah:
j. Simpul 11, orang ke-4,job ke-4
(51)
Karena algoritma Branch and Bound ini sudah mencapai solusi yang ada, maka proses dihentikan.
Gambar 3.21 Pohon solusi untuk pekerja lebih banyak darijob
Jadi jawaban assignment problem diatas adalah biaya minimum yang dikeluarkan adalah 120. Dengan susunan penugasannya adalah sebagai berikut:
Ani :job 1 (30) Susi :job 3 (50) Silvy :job 2 (40)
Dummy :job 4 (0)
Dengan .
(52)
BAB 4
KESIMPULAN DAN SARAN
4.1 Kesimpulan
Berdasarkan dari hasil pembahasan yang dilakukan maka dapat diambil kesimpulan yaitu: 1. Untuk menyelesaikan masalah penugasan pada kasus dengan algoritma
Branch and Bound, langkah pertama yang dilakukan adalah mencari lower bound
dari matriks penugasan. Kemudian akan dicabangkan simpul-simpul yang timbul, dan memilih cost yang paling kecil dari simpul yang selanjutnya disebut simpul-E yang akan diekspansi.
2. Untuk menyelesaikan masalah penugasan dengan kendala tambahan maka harus menambahkan kolom atau barusdummy yang nilainya 0.
4.2 Saran
Terdapat saran untuk kemajuan studi ini di masa mendatang, yaitu dalam skripsi ini penulis hanya menyelesaikan permasalahan penugasan dengan menggunakan algoritma BFS, oleh karena itu penulis menyarankan untuk mengembangkan penyelesaikan masalah penugasan dengan algoritma dan metoda yang berbeda.
(53)
Adtyaman, Made M.. 2007. Algoritma Branch and Bound Dalam Kegunaannya Memecahkan Assignment Problem. http//:www.informatika.com.
Anton, Howard. 1987.Aljabar Linier Elementer.Jakarta: Erlangga.
Munir, Rinaldi. 2003.Matematika Diskrit. Bandung: Informatika Bandung.
Thie, Paul R.. 1979. An Introduction to Linear Programming and Game Theory. New York: John Wiley & Sons, Inc.
Wolfe, Carvel S.. 1985. Linear Programming With Basic and Fortran. Virginia: Reston Publishing Company.
(1)
Simpul yang hidup adalah simpul 2,3,4,dan 5. Karena simpul ke-2 adalah simpul yang paling kecil maka simpul ini menjadi simpul-E yang akan diekspansi lagi. Perhitungan selanjutnya untuk simpul-simpul anak pohon ruang status dari simpul 2 adalah sebgai berikut:
e. Simpul 6, orang ke-2,job ke-2
Maka diperoleh:
f. Simpul 7, orang ke-2,job-3
Maka diperoleh:
g. Simpul 8, orang ke-2,job ke-4
(2)
37
1
2 3 4 5
X1=2 X1=3 X1=4 X1=1
6 7 8
X2=2 X2=3 X2=4
Gambar 3.19 Pohon simpul 8 untuk pekerja lebih banyak darijob
Sekarang simpul yang hidup adalah 3,4,5,6,7, dan 8. Langkah berikutnya adalah mencari simpul dengan nilai terkecil, yaitu simpul 7 dengan nilai 110, maka simpul inilah yang akan dikembangkan untuk menjadi simpul-E. Perhitungan selanjutnya untuk simpul-simpul anak pohon adalah sebagai berikut:
h. Simpul 9, orang ke-3,job ke-2
Maka diperoleh:
(3)
Maka diperoleh:
1
2 3 4 5
X1=2 X1=3 X1=4 X1=1
6 7 8
X2=2 X2=3 X2=4
9 10
X3=2 X3=4
Gambar 3.20 Pohon simpul 10 untuk pekerja lebih banyak darijob
Dapat dilihat bahwa simpul-simpul yang hidup adalah simpul 3,4,5,6,8,9, dan 10. Dengan melihat yang ada, maka yang paling kecil adalah simpul 9 dengan nilai 120, sehingga menjadi simpul-E. Perhitungan selanjutnya adalah:
j. Simpul 11, orang ke-4,job ke-4
(4)
39
Karena algoritma Branch and Bound ini sudah mencapai solusi yang ada, maka proses dihentikan.
Gambar 3.21 Pohon solusi untuk pekerja lebih banyak darijob
Jadi jawaban assignment problem diatas adalah biaya minimum yang dikeluarkan adalah 120. Dengan susunan penugasannya adalah sebagai berikut:
Ani :job 1 (30) Susi :job 3 (50) Silvy :job 2 (40) Dummy :job 4 (0)
Dengan .
(5)
4.1 Kesimpulan
Berdasarkan dari hasil pembahasan yang dilakukan maka dapat diambil kesimpulan yaitu: 1. Untuk menyelesaikan masalah penugasan pada kasus dengan algoritma Branch and Bound, langkah pertama yang dilakukan adalah mencari lower bound dari matriks penugasan. Kemudian akan dicabangkan simpul-simpul yang timbul, dan memilih cost yang paling kecil dari simpul yang selanjutnya disebut simpul-E yang akan diekspansi.
2. Untuk menyelesaikan masalah penugasan dengan kendala tambahan maka harus menambahkan kolom atau barusdummy yang nilainya 0.
4.2 Saran
Terdapat saran untuk kemajuan studi ini di masa mendatang, yaitu dalam skripsi ini penulis hanya menyelesaikan permasalahan penugasan dengan menggunakan algoritma BFS, oleh karena itu penulis menyarankan untuk mengembangkan penyelesaikan masalah penugasan dengan algoritma dan metoda yang berbeda.
(6)
DAFTAR PUSTAKA
Adtyaman, Made M.. 2007. Algoritma Branch and Bound Dalam Kegunaannya Memecahkan Assignment Problem. http//:www.informatika.com.
Anton, Howard. 1987.Aljabar Linier Elementer.Jakarta: Erlangga.
Munir, Rinaldi. 2003.Matematika Diskrit. Bandung: Informatika Bandung.
Thie, Paul R.. 1979. An Introduction to Linear Programming and Game Theory. New York: John Wiley & Sons, Inc.
Wolfe, Carvel S.. 1985. Linear Programming With Basic and Fortran. Virginia: Reston Publishing Company.