6
a 7
b
8 7
5
6. Sisi eg dipilih sebagai sisi yang memiliki bobot terkecil (lihat Gambar 18).
c 5
9
Jadi, dihasilkan suatu minimum spanning tree dari graf G seperti pada Gambar 18.
e
15
9
8
d
a 7
6
g
11
f
c 7
Gambar 16 Sisi be hasil dari algoritme Prim tahap ke-4.
5
5. Sisi ec dipilih sebagai sisi yang memiliki bobot terkecil (lihat Gambar 17).
d
5
e 9 6
g f
a 7
b
8
Gambar 18 Solusi minimum spanning tree dengan bobot 39.
c
7 5
b
5
9
e
15
9
8
d 6
f
11
g
Gambar 17 Sisi ec hasil dari algoritme Prim tahap ke-5.
III PEMBAHASAN Di dalam karya ilmiah ini akan diperkenalkan sebuah masalah manajemen distribusi, yang disebut open vehicle routing problem (OVRP). Masalah manajemen distribusi OVRP berbeda dengan vehicle routing problem (VRP). Ciri utama permasalahan yang membedakan OVRP dengan VRP adalah kendaraan tidak diharuskan kembali ke depot, namun jika kendaraan diperbolehkan kembali ke depot maka kendaraan akan mengunjungi kembali konsumen melalui rute sebelumnya secara terbalik. OVRP bisa dijelaskan sebagai berikut. Misalkan terdapat sebuah depot dan himpunan konsumen yang memiliki permintaan terhadap barang. Pada depot terdapat sejumlah kendaraan transportasi. Setiap kendaraan memiliki kapasitas maksimum barang yang bisa dibawa dan tiap kendaraan juga memiliki biaya operasional. Biaya perjalanan antara depot dan semua konsumen, seperti juga dari konsumen ke konsumen, diketahui.
Permasalahannya adalah menentukan total biaya perjalanan yang minimum dan memenuhi tiga kriteria berikut: i. setiap rute berawal dari depot dan berakhir pada konsumen, ii. setiap konsumen hanya dikunjungi oleh tepat satu kendaraan dan permintaannya terpenuhi, iii. total permintaan konsumen yang dikunjungi di setiap rute kurang dari atau sama dengan kapasitas kendaraan yang bertugas di rute tersebut. Tujuannya adalah menentukan rute perjalanan yang meminimumkan total biaya perjalanan dan biaya pemakaian kendaraan. Di dalam OVRP terdapat beberapa kondisi yang mungkin muncul ketika kendaraan melakukan pendistribusian barang dari depot ke konsumen, di antaranya: i. kendaraan berangkat dari depot dan berhenti di konsumen akhir, ii. kendaraan berangkat dari depot dan berhenti di konsumen akhir, lalu kembali lagi ke depot dengan melalui rute yang telah dilewati sebelumnya secara terbalik.
7
Permasalahan pada kendaraan yang berhenti di konsumen akhir namun tidak kembali ke depot dapat terjadi pada perusahaan yang tidak memiliki kendaraan sendiri, atau kendaraan yang dimiliki tidak mencukupi untuk mendistribusikan barang ke konsumen, sehingga perusahaan diharuskan menyewa kendaraan lain. Kendaraan sewa akan mengunjungi konsumen dan tidak kembali lagi ke depot. Permasalahan pada kendaraan yang kembali ke depot dengan rute terbalik dapat ditemui dalam proses pengiriman dan pengumpulan tabung gas elpiji. Kendaraan mengunjungi setiap konsumen dan mengirimkan tabung gas elpiji yang telah dipesan. Ketika kendaraan mencapai konsumen akhir dan barang pesanan yang ada di dalam kendaraan telah kosong, maka kendaraan kembali ke depot sambil mengumpulkan tabung gas elpiji yang kosong dari konsumen dengan melalui rute yang sama namun dengan rute terbalik secara berurutan.
OVRP
Pembentukan cluster yang seimbang
Pembentukan cluster
Misalkan terdapat dua konsumen, dan diasumsikan bahwa jarak dari konsumen pertama ke konsumen kedua sama dengan jarak dari konsumen kedua ke konsumen pertama. Rute pengumpulan barang akan melalui rute yang sama dengan rute pengiriman, namun konsumen akhir pada rute pengiriman dikunjungi terlebih dahulu dan kendaraan berakhir di depot. Untuk selanjutnya hanya kondisi (ii) yang akan dibahas dalam karya ilmiah ini. Untuk menentukan rute kendaraan yang meminimumkan total biaya perjalanan dan meminimumkan biaya pemakaian kendaraan, akan digunakan suatu metode heuristik. 3.1 Metode Heuristik Metode heuristik yang akan dibahas dalam karya ilmiah ini merupakan metode yang terdiri atas dua fase berurutan yaitu fase pembentukan cluster lalu diikuti dengan fase penentuan rute (lihat Gambar 19).
Penentuan rute
Pembentukan minimum spanning tree
Pembentukan cluster Pemodifikasian minimum spanning tree Penghapusan sisi Pengubahan solusi taklayak ke solusi layak
Pelabelan simpul
Pembentukan solusi layak Gambar 19 Metode heuristik untuk OVRP.
8
3.1.1 Fase I: Pembentukan cluster yang seimbang Fase pertama dari metode heuristik adalah fase pembentukan cluster yaitu himpunan yang berisi konsumen. Setiap konsumen dalam cluster memiliki permintaan barang. Cluster memiliki kapasitas berupa total semua permintaan barang yang selanjutnya disebut sebagai kapasitas cluster. Setiap konsumen yang ada di dalam cluster hanya dikunjungi oleh satu kendaraan pengantar barang. Generalised customer adalah himpunan terurut yang anggotanya terdiri atas konsumen dan depot dengan depot sebagai anggota pertama. Setiap konsumen dalam generalised customer memiliki permintaan barang terhadap depot dan memiliki biaya perjalanan ke konsumen yang lainnya. Fase pembentukan cluster memiliki dua tahap. Tahap pertama adalah membentuk cluster berdasarkan permintaan barang dari konsumen. Tahap kedua adalah mengubah komposisi permintaan barang konsumen di dalam cluster dengan tujuan meminimumkan total biaya perjalanan dari tiap cluster. Tahap 1: Pembentukan cluster Tahap awal dari fase pertama adalah tahap pembentukan cluster. Prosedur pembentukan cluster adalah sebagai berikut: 1 Semua konsumen dalam generalised customer diberi nama berupa angka yang dimulai dari 2 sedangkan depot adalah 1. 2 Dipilih satu konsumen yang memiliki permintaan tidak melebihi sisa kapasitas cluster dan memiliki biaya perjalanan yang minimum dari konsumen tersebut ke konsumen lainnya dalam generalised customer. 3 Pada tahap awal, kapasitas cluster adalah jumlah maksimum barang yang bisa dibawa oleh kendaraan. Jika dalam pemilihan konsumen terdapat beberapa konsumen yang memiliki biaya sama, maka konsumen dengan permintaan maksimum yang dipilih. 4 Jika terdapat beberapa konsumen dengan permintaan maksimum sama, maka konsumen dipilih berdasarkan urutan angka. 5 Konsumen yang telah dipilih dimasukkan ke dalam cluster. 6 Prosedur ini diulang hingga semua konsumen dalam generalised customer berhasil ditempatkan ke dalam cluster.
Tahap 2: Penyeimbangan cluster Pada tahap ini akan dilakukan penyeimbangan cluster. Tujuan dari tahap ini adalah meminimumkan total biaya perjalanan tiap cluster. Prosedur penyeimbangan cluster adalah sebagai berikut: 1 Dipilih cluster yang memiliki total permintaan barang yang maksimum. 2 Jika dalam pemilihan cluster terdapat beberapa cluster yang memiliki total permintaan yang sama, maka dipilih cluster yang pertama kali terbentuk. 3 Konsumen akhir dari cluster tersebut akan dipilih kembali jika terdapat cluster lain yang memiliki sisa kapasitas lebih besar atau sama dengan permintaan konsumen yang dipilih. 4 Jika terdapat dua atau lebih cluster yang memiliki sisa kapasitas untuk konsumen tersebut, maka konsumen ditempatkan ke cluster yang memiliki sisa kapasitas terbesar. Prosedur ini diulang sampai konsumen akhir dari semua cluster tidak dapat ditempatkan ke dalam cluster lainnya. Jika konsumen akhir dari tiap-tiap cluster tidak bisa ditempatkan ke cluster lain, maka cluster-cluster ini disebut cluster yang seimbang. 3.1.2 Fase II: Penentuan rute Fase kedua dari metode heuristik adalah fase penentuan rute. Rute adalah urutan pemesanan barang oleh konsumen yang dimulai dari depot. Konsumen yang memiliki biaya perjalanan minimum ke depot akan dikunjungi terlebih dahulu. Kunjungan terhadap setiap konsumen dalam suatu rute hanya sekali dan berhenti pada konsumen akhir. Biaya suatu rute adalah total biaya perjalanan kendaraan ke setiap konsumen pada rute tersebut. Rute kendaraan dapat dinyatakan dalam bentuk graf berarah dengan setiap konsumen dan depot dinyatakan dengan simpul dan sisi berarahnya sebagai biaya perjalanan antara depot ke konsumen atau biaya perjalanan antara konsumen ke konsumen. Rute yang diinginkan berupa rantai yaitu suatu walk dengan syarat derajat masuk simpul depot adalah 0, derajat keluar simpul depot adalah 1, dan derajat masuk dan derajat keluar semua simpul konsumen adalah 1 kecuali konsumen akhir yang memiliki derajat masuk 1 dan derajat keluarnya 0. Contoh rantai dengan depot simpul 1 dan konsumen akhir simpul 6 diperlihatkan pada Gambar 20.
9
1
depot. Jika suatu simpul memiliki derajat yang tidak sama dengan syarat suatu rantai, maka simpul tersebut adalah simpul taklayak.
3 2
5
4
6
1
4
3 5
2
7
Gambar 20 Rantai. Fase penentuan rute memiliki tiga tahap, yaitu: i. tahap pembentukan minimum spanning tree (MST), ii. tahap pemodifikasian MST, dan iii. tahap pengubahan solusi taklayak menjadi layak. Jika hasil yang diperoleh dari tahap pertama berupa rantai, maka fase penentuan rute selesai; jika tidak, maka dua tahap selanjutnya dari fase ini harus dilakukan. Berikut ini adalah penjelasan dari setiap tahap. Tahap 1: Pembentukan MST Pada tahap ini, akan dibentuk MST dari setiap cluster dengan menggunakan algoritme Prim. Algoritme ini digunakan sebagai tahap awal menyelesaikan masalah optimasi. Solusi optimum global yang didapatkan belum tentu solusi optimum (terbaik) karena tidak beroperasi secara menyeluruh terhadap semua alternatif solusi yang ada. Namun begitu algoritme ini tetap merupakan pilihan utama untuk memecahkan permasalahan sederhana karena metode ini merupakan salah satu yang paling cepat. Metode ini juga dapat memberikan solusi hampiran atau aproksimasi terhadap nilai optimum yang diinginkan dan hasil yang diberikan masih merupakan solusi yang layak. Tahap 2: Pemodifikasian MST Pada tahap kedua akan digunakan prosedur penalti simpul untuk memodifikasi solusi minimum spanning tree. Misalkan Nc adalah banyaknya konsumen pada cluster c. Misalkan simpul i adalah simpul konsumen dalam suatu cluster sehingga sedangkan simpul 1 adalah simpul depot. Misalkan adalah derajat dari simpul i, dengan adalah derajat simpul ()
{
(
8
6
Gambar 21 Rantai bersimpul taklayak. Pada Gambar 21, simpul 3 adalah simpul taklayak karena memiliki derajat-masuk 1 dan memiliki derajat-keluar 3. Ketaklayakan suatu simpul adalah selisih derajat simpul graf G dengan simpul-simpul pada suatu graf berbentuk rantai. Ketaklayakan dari simpul depot didefinisikan sebagai berikut: ( ) dan ketaklayakan dari simpul konsumen adalah: ()
{
untuk . Total ketaklayakan untuk simpul konsumen dengan adalah: ∑(
)
Total ketaklayakan untuk simpul konsumen dengan adalah: ∑(
()
)
Total ketaklayakan dari suatu cluster adalah: ( ) Ketaklayakan simpul akan dihilangkan dengan menggunakan prosedur penalti untuk setiap simpul. Jika simpul tersebut adalah depot, maka penalti didefinisikan sebagai berikut: ( ) ( ) dengan Tidak ada aturan khusus dalam menentukan nilai p. Pada tahap ini akan digunakan dua prosedur penalti yang berbeda terhadap simpul konsumen. Kedua prosedur penalti tersebut adalah:
)
10
(
)
()
{ dengan adalah derajat simpul sebelum simpul i. Prosedur penalti kedua berbeda dengan prosedur penalti yang pertama. Pada prosedur penalti kedua, nilai penalti dari simpul i juga dipengaruhi oleh nilai dari derajat simpul sebelum simpul i yaitu Tujuan dari penggunaan dua prosedur penalti yang berbeda adalah untuk membandingkan hasil yang diperoleh dari keduanya. Langkah-langkah pemakaian metode penalti pertama: 1. Tentukan nilai awal dan nilai maksimum penalti p. 2. Tentukan kenaikan nilai p dan maksimum jumlah iterasinya. 3. Gunakan prosedur penalti pertama. 4. Nilai ̅ diperbarui dengan menggunakan: () () ̅ Jika ̅ maka sisi ( ) dihapus. 5. Prosedur akan berhenti ketika diperoleh suatu rantai atau maksimum iterasi dicapai. Jika rantai belum diperoleh atau maksimum iterasi belum dicapai, maka ulangi langkah 4. Langkah-langkah pemakaian metode penalti kedua: 1. Tentukan nilai awal dan nilai maksimum penalti p. 2. Tentukan kenaikan nilai p dan maksimum jumlah iterasinya. 3. Gunakan prosedur penalti kedua. 4. Nilai ̅ diperbarui dengan menggunakan: () () ̅ Jika ̅ maka sisi ( ) dihapus. 5. Prosedur akan berhenti ketika diperoleh suatu rantai atau maksimum iterasi dicapai. Jika rantai belum diperoleh atau maksimum iterasi belum dicapai, maka ulangi langkah 4.
Prosedur penalti diulangi untuk nilai p yang berbeda sesuai dengan kenaikan nilai p yang telah ditentukan hingga mencapai nilai maksimum p. Tahap 3: Pengubahan solusi taklayak menjadi layak Tahap ketiga dari fase ini adalah mengubah solusi taklayak menjadi layak. Ada tiga langkah dalam tahap ini, yaitu: i penghapusan sisi berarah, ii pelabelan simpul, iii pembentukan solusi layak. Berikut ini diberikan penjelasan dari tiap-tiap langkah. i Langkah penghapusan sisi berarah Ada dua metode penghapusan sisi berarah yang akan digunakan, yaitu: (i) menghapus sisi berarah yang memiliki biaya maksimum, (ii) menghapus sisi berarah yang akan menghasilkan solusi dengan biaya maksimum. Pada metode penghapusan yang kedua awalnya diperiksa sisi-sisi yang incident dari dan ke simpul depot atau konsumen yang tidak memenuhi syarat sebagai rantai. Lalu, misalkan sisi-sisi yang incident tersebut dihapus maka simpul-simpul yang bisa dihubungkan antar rantai parsial juga diperiksa. Sedangkan untuk metode penghapusan yang pertama hanya diperiksa sisi-sisi yang incident dari dan ke simpul depot atau konsumen yang tidak memenuhi syarat sebagai rantai. Tujuan dari penggunaan dua metode penghapusan yang berbeda untuk membandingkan hasil dari kedua metode penghapusan. Akan diperoleh 4 hasil setelah dilakukan prosedur penalti dan penghapusan yang ditunjukkan dalam Gambar 22.
11
Penghapusan 1 Penalti 1 Penghapusan 2
Penghapusan 1 Penalti 2 Penghapusan 2 Gambar 22 Prosedur penalti dan penghapusan. Metode pertama penghapusan sisi berarah: 1. Periksa/hitung derajat keluar simpul depot. 2. Jika derajat keluar simpul depot lebih dari satu, maka sisi berarah dengan biaya minimum dipertahankan dan lainnya dihapus. 3. Simpul konsumen yang memiliki derajatmasuk dan derajat-keluar maksimum dipilih. 4. Jika simpul konsumen memiliki derajatmasuk dan derajat-keluar sama dengan satu, maka prosedur penghapusan berhenti. 5. Jika tidak, maka dua sisi berarah yang memiliki biaya minimum dipertahankan dan sisanya dihapus. 6. Arah dari sisi berarah yang dipertahankan disesuaikan dengan arah sisi berarah dari masing-masing subtree. 7. Prosedur penghapusan akan berhenti sampai derajat-keluar maksimum dan derajat-masuk maksimum simpul konsumen sama dengan 1. Metode kedua penghapusan sisi berarah: 1. Periksa/hitung derajat-keluar simpul depot. 2. Jika derajat-keluar simpul depot lebih dari satu, maka sisi berarah dengan biaya minimum dipertahankan dan lainnya dihapus. 3. Simpul konsumen yang memiliki derajatmasuk dan derajat-keluar maksimum dipilih, misalkan simpul i. 4. Semua sisi berarah yang terhubung ke konsumen tersebut dihapus, kecuali jika
ada sisi berarah yang menghubungkan simpul berderajat maksimum dengan simpul depot maka sisi ini tidak dihapus sampai akhir prosedur. Simpul yang adjacent-ke dan adjacent-dari simpul i yaitu simpul berderajat maksimum, diberi penamaan baru yaitu dengan ) atau ( ) dengan . Sisi berarah ( adalah sisi berarah yang incident-ke atau incident-dari simpul i. Simpul yang adjacent-ke atau adjacentdari simpul i disebut simpul basis yang disimbolkan sebagai 5. Hasil dari penghapusan sisi berarah adalah subtree. Jika dilakukan penelusuran rute dari simpul basis pada tiap-tiap subtree, maka akan berhenti pada simpul akhir yang untuk selanjutnya disebut simpul terminal yang disimbolkan sebagai . Jika subtree hanya memiliki simpul tunggal, maka simpul basis sama dengan simpul terminal. Jika terdapat dua simpul akhir dalam satu subtree, maka dipilih simpul akhir yang memiliki biaya perjalanan minimum ke simpul sebelumnya. 6. Periksa lalu pilih sisi berarah dengan biaya minimum antar-subtree, yaitu dengan menggunakan: ) ( { ( )} adalah himpunan dari simpul-simpul basis dan adalah himpunan dari simpulsimpul terminal, sedangkan adalah ) himpunan sisi berarah (
12
Sisi berarah yang dipertahankan ) hanyalah sisi ( ) dan (
2 1
7. Sisi berarah ( ) yang memiliki biaya perjalanan minimum dikembalikan seperti semula dan arah dari sisi berarah yang dipertahankan disamakan dengan arah sisi berarah lainnya dari masing-masing subtree. 8. Prosedur penghapusan akan berhenti sampai derajat-keluar maksimum dan derajat-masuk maksimum simpul konsumen sama dengan 1. 9. Ulangi langkah 3 sampai langkah 6. Contoh penggunaan metode pertama penghapusan sisi berarah Misalkan terdapat sebuah depot d dan 10 konsumen { } dengan permintaan terhadap barang yang bervariasi (lihat Lampiran 1). MST diperoleh dengan menggunakan algoritme Prim’s. (lihat Gambar 23)
3
2
4
4
4
5 2
10
1
9
3
11
6 1
7
8
Gambar 24 Penghapusan sisi berarah ( ) dan ( ) 4 Arah dari sisi berarah ( Gambar 25) 2 1
) dibalik (lihat
3
2
4
4
4
5 2
2 1
3
2
4
4
10
1
9
3
4
11
6
3
1
5
7
3
2
10
1
9
Gambar 25 Hasil dari pembalikan sisi berarah (5,9).
3
11
6 2
7
8
1
8
5 Prosedur penghapusan berhenti karena derajat-keluar maksimum dan derajatmasuk maksimum simpul konsumen sama dengan 1.
Gambar 23 MST. Langkah-langkah penyelesaian menggunakan metode pertama penghapusan sisi berarah: 1 Derajat keluar simpul depot adalah 1, sehingga tidak dilakukan penghapusan sisi berarah. 2 Dipilih simpul berderajat maksimum, yaitu simpul 5, dengan derajat-masuk 1 dan derajat-keluar 3 3 Dipilih dua dari sisi berarah ( )( )( )( ) yang memiliki biaya minimum. Sisi berarah ( ) dan ( ) memiliki biaya minimum, maka sisi berarah ( ) dan ( ) dihapus (lihat Gambar 24).
Contoh penggunaan metode kedua penghapusan sisi berarah Misalkan G adalah suatu MST seperti dalam Gambar 23. Langkah-langkah penyelesaian menggunakan metode kedua penghapusan sisi berarah: 1 Derajat keluar simpul depot adalah 1, sehingga tidak dilakukan penghapusan sisi berarah. Dari Gambar 23 diperoleh: Simpul 5 memiliki derajat-masuk 1 dan derajat-keluar 3, sehingga simpul 5 berderajat 4. Simpul ini adalah simpul dengan derajat maksimum. 2 Dipilih simpul berderajat maksimum, yaitu simpul 5
13
sehingga diperoleh sisi berarah ( ) dan ( ) Sisi berarah ( ) dan ( ) dikembalikan seperti semula (lihat Gambar 27).
3 Semua sisi berarah yang terhubung ke simpul 5 dihapus, sehingga diperoleh simpul basis dan simpul terminal (lihat Gambar 26). 2 1
3
2
2
4
1
4
3
2
4
4
4
5
4
5 2
10 9
10
1
9 3
6 2
7
3
11
11
6
1
1
8
7
Gambar 26 Subtree hasil dari penghapusan sisi. Dari Gambar 26 diperoleh: Simpul basis dan ) adalah Sisi berarah ( ) atau ( {( ) ( ) ( ) ( )} Himpunan dari simpul basis { } disimbolkan dengan } Simpul akhir adalah { Simpul terminal dan Himpunan dari simpul terminal { } disimbolkan dengan )( ) {( ) ( ) ( ( )( )} ( ) {( ) ( ) ( ) ( )} )( ) {( ) ( ) ( ( )( )( )( )( ) ( )( )( )} 4 Pada langkah terakhir diperiksa biaya perjalanan minimum antar-subtree untuk ) yang akan menentukan sisi berarah ( dihapus. Diketahui bahwa: { ( )} ( ) { ( ) } ( ) ) ( { ( )} { ( ) ( )} ( ) 5 Sisi berarah ( ) dihapus dan dipilih dua sisi berarah dari ( ) ( ) dan ) yang memiliki biaya perjalanan minimum,
8
Gambar 27 Penghapusan sisi berarah (3,5) dan (5,10). 6 Arah dari sisi berarah ( Gambar 28). 2 1
) dibalik (lihat
3
2
4
4
4
5 2
10
1
9
3
11
6 1
7
8
Gambar 28 Hasil dari pembalikan sisi berarah (5,9). 7 Prosedur penghapusan akan berhenti sampai derajat-keluar maksimum dan derajat-masuk maksimum simpul konsumen sama dengan 1. Pada langkah penghapusan akan dihasilkan subtree dan simpul i memiliki derajat-masuk dan derajat-keluar yang sama dengan satu. Jika simpul i terhubung ke simpul depot, maka sisi berarah antara simpul i dengan simpul depot dipertahankan dan simpul depot tidak akan menjadi anggota himpunan B. Penggunaan salah satu metode penghapusan sisi berarah akan menguraikan MST taklayak menjadi simpul-simpul tunggal
14
dan rantai-rantai parsial. Rantai parsial memiliki beberapa bagian yaitu: (i) simpul depot, hanya terhubung ke satu simpul konsumen, (ii) simpul tengah, memiliki derajat masuk dan derajat keluar sama dengan 1, (iii) simpul akhir/terminal, memiliki derajat masuk 1 dan derajat keluar 0. Simpul pertama dalam rute suatu rantai disebut akar rantai (simpul akar). Ketakefisienan dari simpul konsumen didefinisikan sebagai berikut: ()
Oleh karena itu, ketakefisienan dari simpul tunggal adalah 2, simpul tengah dari rantai parsial adalah 0, dan ketakefisienan simpul depot dari rantai parsial adalah 1. Dalam solusi yang layak hanya simpul akhir dari rantai yang mempunyai ketakefisienan 1. ii Langkah pelabelan simpul Langkah kedua adalah pelabelan simpul. Simpul yang tidak terhubung ke simpul lainnya disebut simpul tunggal, sehingga memiliki derajat 0. Setiap simpul akan diberi tiga label. Aturan pelabelan simpul adalah sebagai berikut:
{ { { Label_1 menunjukkan simpul akar suatu rantai, label_2 menunjukkan simpul sebelumnya, dan label_3 menunjukkan bisa tidaknya simpul tersebut dihubungkan ke simpul tunggal atau rantai parsial lainnya. Simpul depot akan memiliki label (1 0 0). iii Langkah pembentukan solusi layak Pada bagian ini ketakefisienan dari solusi akan dikurangi. Prosedurnya adalah: 1. memasangkan semua simpul tunggal ke rantai parsial, 2. rantai-rantai parsial dihubungkan satu sama lain. Setiap kali simpul tunggal terhubungkan ke rantai parsial atau dua rantai parsial terhubungkan, ketakefisienan dikurangi 2. Oleh karena itu prosedur ini berhenti pada: ∑ () pengulangan dan menjamin solusi yang layak diperoleh. Berikut ini adalah penjelasan mengenai prosedur pembentukan solusi layak. Pembentukan solusi layak Terdapat dua langkah dalam pembentukan solusi yang layak, yaitu pemasangan simpul tunggal ke rantai parsial dan pemasangan rantai-rantai parsial.
Pemasangan simpul tunggal ke rantai parsial Sebuah simpul tunggal bisa dihubungkan ke salah satu dari: (a) simpul terminal yaitu simpul terakhir dalam suatu rantai, atau (b) simpul akar yaitu simpul pertama dalam suatu rantai, jika keduanya bukan simpul depot dari rantai parsial. Dalam memasangkan simpul tunggal ke rantai parsial akan dipilih simpul yang memiliki jarak minimum. Prosedur pemasangan simpul pada kasus (a) adalah: 1. Periksa jarak antara simpul tunggal dengan simpul akar atau simpul terminal pada rantai parsial. 2. Jika jarak terdekatnya adalah ke simpul terminal, maka simpul tunggal tersebut dihubungkan. 3. Label diperbarui yaitu: label_1 dari simpul tunggal diubah menjadi simpul akar dari rantai parsial, label_2 dari simpul tunggal diubah menjadi simpul terminal dari rantai parsial sebelumnya, dan label_3 dari simpul terminal rantai parsial diubah menjadi 0. Setelah dipasangkan, simpul tunggal menjadi simpul terminal dari rantai parsial yang dihasilkan, sementara simpul akar tetap sama. Sebagai contoh, misalkan diberikan suatu rantai parsial dan simpul tunggal berikut. Berikut hasil pemasangan simpul tunggal ke rantai parsial.
15
2
3
1 4
Gambar 29 Rantai parsial dan simpul tunggal. 2
3
simpul akar dari rantai parsial yang kedua diubah menjadi simpul akhir dari rantai parsial yang pertama, dan label_3 simpul akar dari rantai parsial yang kedua dan simpul terminal dari rantai parsial yang pertama diubah menjadi 0. Untuk kasus di saat simpul terminal milik rantai parsial kedua memiliki jarak minimum dengan simpul akar milik rantai parsial pertama dan simpul akar rantai parsial pertama bukan depot, maka diperlakukan prosedur yang sama. Rantai parsial yang dihasilkan memiliki arah kebalikan.
1 4
Gambar 30 Pemasangan simpul tunggal ke rantai parsial. Perubahan labelnya adalah: Label_1 simpul 4 berubah menjadi 1. Label_2 simpul 4 berubah menjadi 3. Label_3 simpul 3 berubah menjadi 0. Pada kasus (b) setelah dipasangkan, simpul tunggal menjadi simpul akar dari rantai parsial yang dihasilkan. Label diperbarui secara bersesuaian. Proses diulangi sampai semua simpul tunggal dipasangkan ke rantai parsial dan tidak ada simpul tunggal yang tersisa. Pemasangan rantai-rantai parsial Rantai-rantai parsial yang dihasilkan dari proses sebelumnya akan dipasangkan satu dengan yang lainnya. Ketika menghubungkan dua rantai parsial, akan dibedakan tiga kasus untuk calon simpul yang akan dipasangkan, yaitu: a. simpul akar dan terminal, b. keduanya simpul akar, c. keduanya simpul terminal. Rantai parsial yang memuat depot hanya bisa dihubungkan dengan simpul terminalnya. Prosedur pemasangan simpul pada kasus (a) adalah: 1. Periksa semua jarak simpul akar/terminal antara rantai-rantai parsial. 2. Misalkan simpul terminal dari rantai parsial pertama memiliki jarak minimum dengan simpul akar dari rantai parsial kedua dan simpul akar rantai parsial kedua bukan depot. 3. Kedua simpul dihubungkan. 4. Label diperbarui yaitu: label_1 untuk setiap simpul pada rantai parsial yang kedua diubah menjadi simpul akar dari rantai parsial yang pertama, label_2 dari
Prosedur pemasangan simpul pada kasus (b) adalah: 1. Periksa semua jarak simpul akar/terminal antar rantai parsial. 2. Misalkan simpul akar dari rantai parsial pertama memiliki jarak minimum dengan simpul akar dari rantai parsial kedua dan keduanya bukan simpul depot. 3. Kedua simpul dihubungkan. 4. Arah dari rantai parsial yang pertama atau kedua dibalik. 5. Label diperbarui yaitu: Jika rantai parsial pertama dibalik: label_1 untuk setiap simpul diubah menjadi nomor simpul terminal dari rantai parsial pertama. Label_2 dari simpul terminal rantai parsial pertama diubah menjadi 0. Label_2 dari semua simpul kecuali simpul terminal rantai parsial pertama diubah menjadi nomor simpul sebelumnya. Label_3 dari semua simpul kecuali simpul terminal rantai parsial kedua diubah menjadi 0, sedangkan label_3 untuk simpul terminal dari rantai parsial kedua diubah menjadi 1. Jika rantai parsial kedua dibalik: label_1 untuk setiap simpul diubah menjadi nomor simpul terminal dari rantai parsial kedua. Label_2 dari simpul terminal rantai parsial kedua diubah menjadi 0. Label_2 dari semua simpul kecuali simpul terminal rantai parsial kedua diubah menjadi nomor simpul sebelumnya. Label_3 dari semua simpul kecuali simpul terminal rantai parsial pertama diubah menjadi 0, sedangkan label_3 untuk simpul terminal dari rantai parsial pertama diubah menjadi 1. Prosedur pemasangan simpul pada kasus (c) adalah: 1. Periksa semua jarak simpul akar/terminal antara rantai-rantai parsial.
16
2. Misalkan simpul terminal rantai parsial pertama memiliki jarak minimum dengan simpul terminal rantai parsial kedua. 3. Periksa simpul akar dari kedua rantai parsial tersebut. Jika salah satunya adalah simpul depot, maka simpul akar dari rantai parsial lainnya menjadi simpul terminal dari rantai parsial yang dihasilkan. 4. Jika dari simpul-simpul akar tidak ada yang merupakan simpul depot, maka simpul akar dipilih secara acak. 5. Kedua simpul dihubungkan. 6. Arah dari rantai parsial yang pertama atau kedua dibalik. 7. Label-label diperbarui yaitu: Jika rantai parsial pertama dibalik: label_1 untuk setiap simpul diubah menjadi nomor simpul akar dari rantai parsial kedua. Label_2 dari simpul akar rantai parsial kedua diubah menjadi 0. Label_2 dari semua simpul kecuali
simpul akar rantai parsial kedua diubah menjadi nomor simpul sebelumnya. Label_3 dari semua simpul kecuali simpul akar rantai parsial pertama diubah menjadi 0, sedangkan label_3 untuk simpul akar dari rantai parsial pertama diubah menjadi 1. Jika rantai parsial kedua dibalik: label_1 untuk setiap simpul diubah menjadi nomor simpul akar dari rantai parsial pertama. Label_2 dari simpul akar rantai parsial pertama diubah menjadi 0. Label_2 dari semua simpul kecuali simpul akar rantai parsial pertama diubah menjadi nomor simpul sebelumnya. Label_3 dari semua simpul kecuali simpul akar rantai parsial kedua diubah menjadi 0, sedangkan label_3 untuk simpul akar dari rantai parsial kedua diubah menjadi 1.
IV CONTOH KASUS DAN PENYELESAIANNYA Misalkan terdapat perusahaan pengiriman barang yang memiliki sebuah depot dan dua kendaraan yang akan digunakan untuk mengirimkan barang. Misalkan terdapat 15 konsumen { } dengan permintaan terhadap barang yang bervariasi (lihat Lampiran 2). Diberikan biaya perjalanan antara depotkonsumen dan konsumen-konsumen seperti dalam Lampiran 3. Data permintaan konsumen dan biaya perjalanan diperoleh melalui data acak menggunakan software Matlab. Diasumsikan bahwa biaya perjalanan dari depot ke konsumen sama dengan biaya perjalanan dari konsumen ke depot. Asumsi ini juga berlaku untuk biaya perjalanan dari konsumen ke konsumen. Pada tahap awal akan dibentuk cluster berdasarkan kapasitas kendaraan. Misalkan akan dibentuk beberapa cluster dengan kapasitas 150 unit barang tiap cluster. 4.1 Tahap pembentukan seimbang
cluster
yang
Tahap pembentukan cluster 1 Dipilih konsumen yang memiliki permintaan tidak melebihi sisa kapasitas cluster 1 yaitu 150, sehingga diperoleh konsumen sampai . Lalu dari konsumen-konsumen tersebut dipilih yang memiliki biaya perjalanan minimum ke konsumen lainnya. Diperoleh konsumen yang memiliki biaya perjalanan 1. Lalu dipilih
konsumen yang memiliki permintaan maksimum, sehingga diperoleh konsumen yang memiliki permintaan 27. Dengan cara yang sama maka akan diperoleh secara berurutan yaitu Jadi cluster 1 berupa rangkap-9 (9-tuple) ( ) dengan total permintaan adalah 144 dan sisa kapasitas cluster 1 adalah 6. Tahap pembentukan cluster 2 Sekarang tersisa konsumen Kemudian dipilih konsumen yang memiliki permintaan tidak melebihi sisa kapasitas cluster 2 yaitu 150. Lalu dari konsumen-konsumen tersebut dipilih yang memiliki biaya perjalanan minimum ke konsumen lainnya. Diperoleh konsumen yang memiliki biaya perjalanan 2. Lalu dipilih konsumen yang memiliki permintaan maksimum, sehingga diperoleh konsumen yang memiliki permintaan 29. Dengan cara yang sama maka akan diperoleh secara berurutan yaitu Jadi cluster 2 berupa rangkap-6 (6-tuple) ( ) dengan total permintaan adalah 144 dan sisa kapasitas cluster adalah 6. Tahap penyeimbangan cluster Setelah diperoleh dua buah cluster, setiap cluster tersebut akan diseimbangkan. Pada tahap penyeimbangan cluster dipilih cluster yang memiliki total permintaan maksimum.