3.3 Algoritme Smallarcs
Misalkan diberikan
graf campuran
= , ∪ , dengan = himpunan sisi
berarah yang harus dilewati minimal satu kali dan bobot setiap sisi
, atau sisi berarah , adalah
. Langkah-langkah algoritme Smallarcs adalah sebagai berikut:
Langkah 1. Dibentuk subgraf
= , dari graf dengan menghilangkan E.
Langkah 2. Graf diubah menjadi
graf tidak berarah =
′
,
′
dengan
′
ialah himpunan verteks yang mewakili sisi
berarah , ℎ pada subgraf
. Untuk setiap verteks
dan ,
′
, ditentukan sebagai minimum dari
, , , ℎ , ℎ , , dan ℎ , ℎ . Jarak antarverteks
, dari ditentukan
dengan
′
, . Antara verteks dan
dihubungkan dengan sisi yang bobotnya ialah jarak terpendek
′
, . Langkah 3. Minimum spanning tree
ditentukan dari graf dengan algoritme
Prim. Langkah 4. Diidentifikasi
verteks berderajat ganjil pada spanning tree
dari graf
. Selanjutnya dibentuk graf lengkap dari verteks berderajat ganjil tersebut
dengan jarak antarverteks-nya merupakan jarak terpendek yang diperoleh dari Langkah
1. Langkah 5. Matching yang perfect dan
berbobot minimum, yaitu , ditentukan dari
graf .
Langkah 6. Setiap verteks dan
diubah kembali menjadi sisi berarah seperti pada
, sisi spanning tree graf dan
matching yang perfect berbobot minimum graf diganti dengan path terpendek yang
diperoleh dari
Langkah 1,
sehingga menghasilkan graf
= , ∪
dengan =
∪ .
Langkah 7. Jika dan
ℎ pada berderajat ganjil, maka ditambahkan sisi
, ℎ dan diarahkan dari ℎ ke . Graf yang dihasilkan diberi nama
= , ∪
∪ dengan
himpunan sisi berarah
, ℎ
yang diperoleh dari penambahan sisi dari verteks berderajat ganjil pada
dan diarahkan dari
ℎ ke . Langkah 8. Sirkuit
Euler ditentukan
pada dengan mengabaikan arah dari sisi
berarah pada verteks berderajat genap. Arah sirkuit Euler dibalikkan jika terdapat sisi
berarah pada verteks berderajat genap yang dilintasi dengan arah yang salah yang
bobotnya melebihi dari setengah total bobot sisi berarah pada verteks berderajat genap dari
graf
. Langkah 9.
Dibentuk graf
= , ∪
∗
∪ ∪
∗
dengan
∗
adalah himpunan sisi spanning tree graf
dan matching yang perfect berbobot minimum graf
yang telah ditetapkan arahnya dari sirkuit Euler dan
∗
ialah himpunan sisi berarah yang diperoleh dengan menambahkan dua sisi
berarah , ℎ pada sisi berarah dari verteks
berderajat genap , ℎ yang dilintasi dengan
arah sirkuit Euler yang salah. Langkah 10. Sirkuit Euler ditentukan
pada dan dijadikan sebagai solusi dari
SCP. Eiselt et al. 1995b
Pada Gambar 42 diberikan skema tahapan penyelesaian SCP dengan algoritme Smallarcs
dan pada Gambar 43 diberikan skema keseluruhan penyelesaian SCP.
Gambar 42 Skema penyelesaian SCP dengan algoritme Smallarcs. Graf campuran berbobot
= , ∪
Dibentuk subgraf =
,
Dibentuk Graf =
′
,
′
Algoritme Prim Ditentukan minimum
spanning tree graf
Penentuan verteks berderajat ganjil pada spanning tree graf
Konstruksi graf lengkap dari
verteks berderajat ganjil di
Algoritme Dijkstra
Penentuan bobot sisi-sisi dan matching yang perfect berbobot
minimum pada graf Dibentuk Graf
= , ∪
Dibentuk graf baru =
, ∪ ∪
Algoritme Fleury Penentuan sebuah sirkuit
Euler sehingga
menghasilkan graf Penambahan sisi berarah
Membentuk Graf =
, ∪
∗
∪ ∪
∗
Diperoleh sirkuit Euler
Algoritme Dijkstra
Algoritme van Aardenne- Ehrenfest - de Bruijn
Gambar 43 Skema penyelesaian SCP. A
L G
O R
I T
M E
C R
A N
E Ya
Algoritme Smallarcs Tidak
Algoritme Largearcs Graf campuran berbobot
= , ∪
Memenuhi syarat 1 dan 2 Frederickson
et al. 1978 Algoritme Preprocess
Diperoleh sirkuit Euler
Graf campuran
′
=
′
,
′
∪
Diperoleh sirkuit Euler
Rute terpendek Dipilih sirkuit
Euler terpendek
IV APLIKASI MASALAH
Katering adalah salah satu jasapelayanan untuk memenuhi pesanan makanan dari pihak
yang membutuhkan makanan dalam jumlah besar untuk acara yang diadakannya. Terdapat
banyak katering yang tersebar di Jakarta, misalnya Katering Eco Raos yang berlokasi di
Jakarta Pusat. Katering Eco Raos adalah perusahaan katering dengan empat dapur yang
masing-masing bertugas untuk menyiapkan makanan
untuk satu
pelanggan yang
menggunakan jasanya Gambar 44, namun hanya
memiliki satu
kendaraan untuk
mengantarkan makanan dari dapur Katering Eco Raos ke pelanggan. Kendaraan tersebut
berada di Dapur 1 yang diasumsikan memiliki tempat penyimpanan kendaraan. Agar proses
pengantaran makanan berjalan lancar dan optimal, maka pihak Katering Eco Raos harus
menentukan rute atau jalan terbaik untuk proses pengantaran makanan. Pada karya
ilmiah ini akan dibahas penentuan rute pengantaran
makanan dari
dapur-dapur Katering Eco Raos ke pelanggan yang
menggunakan katering tersebut. Lokasi dapur Katering Eco Raos dan pelanggan yang
menggunakan katering serta jarak tempuhnya dinyatakan dengan graf pada Gambar 45.
Verteks 1, 4, 5, dan 8 menyatakan dapur Katering Eco Raos, dan lokasi pelanggan
katering ialah verteks lainnya.
Gambar 44 Peta Katering Eco Raos di Jakarta Pusat. www.googlemaps.co.id.
Keterangan : :
Lokasi dapur Katering Eco Raos di Jakarta Pusat :
Lokasi pelanggan katering Asumsi yang digunakan dalam penentuan
rute tersebut adalah sebagai berikut: 1.
Semua jalur pendistribusian makanan harus dilewati tanpa kecuali.
2. Jalur pilihan boleh dilewati atau tidak.
3. Pendistribusian makanan dimulai pada
Dapur 1 di pertigaan jalan Sutan Syahrir dan berakhir di tempat yang sama.
4. Mobil mengambil makanan dari dapur
Katering Eco Raos untuk diantarkan ke pelanggan.
5. Waktu pengiriman makanan tidak
diperhitungkan. Pada Gambar 45, bobot pada setiap sisi
{ , } atau sisi berarah , merupakan jarak dari verteks ke verteks . Jarak diperoleh dari
perkiraan dengan satuan kilometer. Model di atas dapat dibuat menjadi graf sebagai berikut:
2 6
7
3 8
1 5
4
�
:
7
6 7
6 8
9 4
7
9 3
6 7
5 10
4 5
1 3
4 8
7 6
2
Gambar 45 Graf kasus Katering Eco Raos di Jakarta Pusat dengan arah pendistribusian katering. Ket :
Arah distribusi katering yang harus dilewati Jalur pilihan
Tabel 3 Penjelasan setiap verteks pada graf kasus katering di Jakarta Pusat
Verteks Keterangan
1 Tempat awal dan akhir mobil
pengantar makanan dari dapur Katering Eco Raos.
2 Pertigaan jalan Sutan Syahrir,
jalan Teuku Umar, dan jalan RP Soeroso.
3 Perempatan jalan Teuku Umar,
jalan HOS
Cokroaminoto, jalan Cut Mutia dan jalan Cut
Nyakdien. 4
Dapur Katering Eco Raos di perlimaan
jalan Wahid
Hasyim, jalan Kebon Kacang, jalan Jaksa, jalan Cut Nyak
Dien, dan jalan Lombok. 5
Dapur Katering Eco Raos di pertigaan jalan Kebon Kacang,
jalan Kampung Bali, dan jalan Jaksa.
6 Pertigaan jalan Kampung Bali,
jalan Jaksa dan jalan Kebon Sirih.
7 Perempatan
jalan Wahid
Hasyim, jalan Kebon Sirih, jalan Jaksa, dan jalan Cikini
Raya. 8
Dapur Katering Eco Raos di pertigaan jalan Cikini Raya,
jalan Cut Mutia, dan jalan RP Soeroso.
Dalam bahasan berikut, graf campuran
�
= , ∪ memenuhi syarat 1 dan 2,
sehingga algoritme
Preprocess tidak
digunakan. Ada dua metode heuristik yang digunakan, yaitu Largearcs dan Smallarcs.
4.1 Penyelesaian SCP dengan Algoritme
Largearcs Langkah 1. Subgraf
= , dari graf
�
adalah sebagai berikut: ∶
9 10
9 7
5
1 3
4 8
7 6
2
Gambar 46 Subgraf .
Langkah 2. Selanjutnya graf bipartite =
1
∪
2
,
′
dibuat dengan himpunan
1
, yaitu {1,8,4,5}, himpunan
2
, yaitu {2,3,7,6} dan himpunan
′
= {{1,3}, {1,7}, {1,6}, {8,2}, {8,7}, {8,6}, {4,2}, {4,3},{4,6},
{5,2}, {5,3}, {5,7}}. Dengan algoritme Dijkstra didapat path tependek graf
dari graf
�
detail penghitungan dapat dilihat di Lampiran 5.
∶
6 10
12 8
16 6
7 4
7 7
13 13
1 2
3
4
5 6
7 8
V
2
V
1
Gambar 47 Graf bipartite .
Langkah 3. Dengan metode Hungaria
didapat solusi matching berbobot minimum pada
, yaitu =
1,3 , 8,2 , 4,6 , 5,7 Lampiran 6. Selanjutnya graf
= , ∪
dibentuk dari graf dengan menambahkan sisi dari matching
dan arahnya dari
2
ke
1
. :
4
5 6
7 8
7 6
9 1
2
3 8
9 7
7 10
Gambar 48 Graf .
Langkah 4. Pada terdapat 2 komponen
yaitu
1
dan
2
.
1
∶
1 2
3 8
9 7
7 10
2
∶ 4
5 6
7 8
7 6
9
Gambar 49 Komponen
1
dan
2
. Karena pada
terdapat 2 komponen, maka dibentuklah graf lengkap
= ,
dengan banyaknya verteks sesuai dengan banyaknya komponen pada
, yaitu 2. Bobot setiap verteks dapat dicari dengan cara
mencari path terpendek yang menghubungkan komponen
1
dan
2
dari tiap-tiap
verteksnya. Dengan menggunakan algoritme Dijkstra Lampiran 7, didapat panjang path
terpendek antarkomponen adalah:
∶
K
1
K
2
4
Gambar 50 Graf .
Jarak terpendek antara
1
dan
2
diperoleh dari panjang path terpendek, yaitu path 8,7.
Langkah 5. Graf merupakan minimum
spanning tree, agar terhubung maka
ditentukan , yaitu himpunan sisi tidak
berarah pada yang berpadanan dengan
yang menghubungkan
1
dan
2
. Pada kasus ini dipilih path 8,7, karena path tersebut
pada berpadanan dengan minimum
spanning tree sehingga graf
= ,
∪ ∪
dengan =
8,7 menjadi
∶ 1
2
3 8
9 7
7 10
4
5 6
7 8
7 6
9 4
Gambar 51 Graf .
Langkah 6. Graf = ,
∪ ∪
∗
dibentuk dan dua sisi ditambahkan dengan arah yang berlawanan untuk setiap sisi
dari minimum spanning tree , sehingga sisi
= 8,7 menjadi sisi berarah
= 8,7 , 7,8 .
∶ 1
2
3 8
9 7
7 10
4
5 6
7 8
7 6
9 4
4
Gambar 52 Graf .
Langkah 7. Penentuan sirkuit Euler pada Gambar 52 dilakukan dengan algoritme van
Aardenne-Ehrenfest - de Bruijn. Spanning arborescence dari graf
berawal dari verteks 5 adalah sebagai berikut:
9
7 8
9 10
7
4 4
5 6
7 1
2
3 8
Gambar 53 Spanning arborescence digraf .
Hasil dari pelabelan dengan algoritme van Aardenne-Ehrenfest - de Bruijn untuk graf
dapat dilihat pada Gambar 54. ∶
L
1
L
1
L
1
L
1
L
1
L
1
L
1
L
1
L
2
L
2
4
5 6
7 1
2
3 8
Gambar 54 Graf yang sudah dilabeli.
Dari Gambar 54 dapat diperoleh sirkuit Euler yang dimulai dari verteks 1, yaitu
1 − 2 − 8 − 7 − 5 − 6 − 4 − 7 − 8 − 3 − 1
dengan total jarak 71.
Aplikasi algoritme Largearcs pada kasus Katering Eco Raos di Jakarta Pusat sebagai
berikut: ∶
4 7
6 7
6 8
9 4
7
9 3
6 7
5 10
4 5
1 3
4 8
7 6
2
Gambar 55 Graf kasus Katering Eco Raos di Jakarta Pusat dengan algoritme
Largearcs. Ket :
Arah distribusi katering yang harus dilewati
Jalur pilihan Jalur distribusi katering
4.2 Penyelesaian SCP dengan Algoritme Smallarcs