PENENTUAN PATH TERPENDEK DENGAN ALGORITME DEKOMPOSISI JARVIS-TUFEKCI
Oleh: DWI ADE RACHMA PUTRI G05400050
DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2007
1
ABSTRAK DWI ADE RACHMA PUTRI. Penentuan Path Terpendek dengan Algoritme Dekomposisi Jarvis-Tufekci. Dibimbing oleh FARIDA HANUM dan PRAPTO TRI SUPRIYO. Salah satu masalah arus dalam suatu network adalah penentuan path terpendek. Masalah path terpendek ini merupakan masalah pengoptimuman, karena dengan diperolehnya path terpendek diharapkan dapat mengoptimumkan faktor yang lain (misalkan: waktu dan biaya). Secara umum, masalah path terpendek dalam suatu network ini terbagi menjadi 3 tipe, yakni menentukan (1) path terpendek antara suatu simpul dan simpul lainnya, (2) path terpendek antara suatu simpul dengan semua simpul lainnya, dan (3) path terpendek antara semua pasang simpul yang terdapat pada network tersebut. Salah satu algoritme yang dapat digunakan untuk menentukan path terpendek tipe (1) yakni path terpendek antara suatu simpul dan simpul lainnya adalah algoritme dekomposisi JarvisTufekci. Dalam karya ilmiah ini kedua simpul tersebut masing-masing adalah simpul source (sumber) dan sink (tujuan). Tahapan yang dilakukan dalam algoritme ini adalah mendekomposisi suatu network yang diberikan menjadi beberapa buah subnetwork yang bertindih secara linear (linearly overlapping). Lima tahap utama akan dilakukan dalam menyelesaikan masalah path terpendek dengan algoritme dekomposisi Jarvis-Tufekci ini. Berdasarkan seluruh tahapan algoritme dekomposisi Jarvis-Tufekci ini juga akan dilakukan penghitungan kompleksitasnya.
2
PENENTUAN PATH TERPENDEK DENGAN ALGORITME DEKOMPOSISI JARVIS-TUFEKCI
Oleh: DWI ADE RACHMA PUTRI G05400050
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains pada Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2007
3
Judul Skripsi Nama NIM
: Penentuan Path Terpendek dengan Algoritme Dekomposisi Jarvis-Tufekci : Dwi Ade Rachma Putri : G05400050
Menyetujui: Pembimbing I,
Pembimbing II,
Dra. Farida Hanum, M.Si. NIP. 131 956 709
Drs. Prapto Tri Supriyo, M. Kom. NIP. 131 878 952
Mengetahui: Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Prof.Dr.Ir. Yonny Koesmaryono, MS. NIP. 131 473 999
Tanggal Lulus :
4
PRAKATA Alhamdulillaahirabbil’aalamin, Puji dan Syukur khadirat Allah SWT atas rahmat dan karunia-Nya penulis dapat menyelesaikan penulisan karya ilmiah ini. Pada kesempatan ini penulis ingin mengucapkan terima kasih kepada: 1. Dra. Farida Hanum, M.Si., dan Drs. Prapto Tri Supriyo, M. Kom. selaku dosen pembimbing yang telah banyak membantu, membimbing, memberi saran, kritik, serta kepercayaan dan kesabarannya selama penulis menyelesaikan tugas akhir ini. 2. Drs. Siswandi, M. Si. selaku dosen penguji, terima kasih. 3. Bapak, Mamah, Mbak Ria, Mas Yudi, Atin, Sitta, Athaya, Mas Iwan, dan seluruh keluarga atas do’a, dukungan, kasih sayang dan kesabarannya. 4. Mas Deni, Ibu Susi, Ibu Ade, Mas Yono, seluruh dosen dan staf Departemen Matematika IPB. 5. Nina, Ida, Nia, Echi, Ribut, Choi, Mbak Nine, dan semua teman ’37 yang masih selalu memberikan semangat dukungan, dan persahabatan. 6. Lilis, Sri, Marlin, Indah, Hikmah, Desi, adik-adik angkatan terima kasih atas bantuannya. 7. Seluruh staf dan pengajar Bimbingan Belajar dan Les Privat Bina Ilmu Plus Depok.
Bogor, Januari 2007
Dwi Ade Rachma Putri
5
RIWAYAT HIDUP Penulis dilahirkan di Jakarta pada tanggal 1 Juli 1982 dan merupakan putri kedua dari empat bersaudara pasangan bapak Aris Sunaryo dan ibu Dyah Septi Sumarsiasih. Pada tahun 2000 penulis menyelesaikan pendidikan di Sekolah Menengah Umum Negeri I Bogor. Pada tahun yang sama, penulis diterima di Institut Pertanian Bogor, Departemen Matematika melalui jalur Ujian Masuk Perguruan Tinggi Negeri (UMPTN). Selama menjadi mahasiswa, penulis pernah menjadi pengajar di Bimbingan Belajar dan Les Privat Bina Ilmu Plus Depok.
vi
DAFTAR ISI
Halaman DAFTAR GAMBAR ...................................................................................................................... vii PENDAHULUAN Latar Belakang...................................................................................................................... Tujuan ...................................................................................................................................
1 1
LANDASAN TEORI Graf ....................................................................................................................................... Network................................................................................................................................. Kompleksitas Algoritme ...................................................................................................... Algoritme Dekomposisi Hu .................................................................................................
1 5 9 9
PEMBAHASAN Dekomposisi Network .......................................................................................................... 10 Contoh penerapan algoritme dekomposisi Jarvis-Tufekci untuk menentukan path terpendek .............................................................................................................................. 14 Penghitungan Kompleksitas Algoritme Dekomposisi Jarvis-Tufekci ................................ 18 SIMPULAN..................................................................................................................................... 20 DAFTAR PUSTAKA ..................................................................................................................... 21
vii
DAFTAR GAMBAR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Halaman Graf dengan 4 simpul dan 5 sisi .............................................................................................. 1 G’ subgraf dari G ..................................................................................................................... 2 Graf dengan 2 komponen......................................................................................................... 2 Digraf ....................................................................................................................................... 2 (a) Walk 1−2−3−4−5 adalah contoh walk berarah................................................................. 3 (b) Walk 1−2−3−4−5 adalah contoh walk tidak berarah........................................................ 3 Path .......................................................................................................................................... 3 Contoh subpath ........................................................................................................................ 3 (a) Cycle 1−2−3−1 adalah cycle berarah................................................................................ 3 (b) Cycle 1−2−3−1 adalah cycle tidak berarah ...................................................................... 3 (a) Digraf terhubung............................................................................................................... 4 (b) Digraf takterhubung.......................................................................................................... 4 Digraf terboboti........................................................................................................................ 4 Digraf yang mengandung cycle ............................................................................................... 5 Network .................................................................................................................................... 5 Contoh network yang longgar.................................................................................................. 6 (a) Network dengan cut set..................................................................................................... 6 (b) Network takterhubung setelah cut set dihilangkan........................................................... 6 Contoh minimal cut set pada suatu network............................................................................ 7 Contoh path dengan 3 simpul .................................................................................................. 7 Contoh path dengan 5 simpul .................................................................................................. 7 Ilustrasi m buah subnetwork yang bertindih secara linear (linearly overlapping) ................. 8 Contoh network dengan 3 buah subnetwork............................................................................ 8 Network yang telah terdekomposisi......................................................................................... 8 Ilustrasi hasil akhir tahap dekomposisi pada suatu network menjadi m buah subnetwork yang bertindih secara linear ..................................................................................................... 11 Contoh network N’ yang terbentuk.......................................................................................... 12 Contoh path dalam network terdekomposisi ........................................................................... 13 Network yang akan didekomposisi .......................................................................................... 15 Subnetwork N 1 ........................................................................................................................ 15
26 Subnetwork N 2 ........................................................................................................................ 16 27 Subnetwork N 3 ........................................................................................................................ 17 28 Network N’ yang terbentuk ...................................................................................................... 18
1
PENDAHULUAN Latar Belakang Salah satu masalah arus dalam suatu network adalah penentuan path terpendek. Masalah path terpendek ini merupakan masalah pengoptimuman, karena dengan diperolehnya path terpendek diharapkan dapat mengoptimumkan faktor yang lain (misalkan: waktu dan biaya). Secara umum, masalah path terpendek dalam suatu network ini terbagi menjadi 3 tipe, yakni: (1) path terpendek antara suatu simpul dan simpul lainnya, (2) path terpendek antara suatu simpul dengan semua simpul lainnya, dan (3) path terpendek antara semua pasang simpul yang terdapat pada network tersebut. Pada karya ilmiah ini, yang menjadi masalah utama adalah masalah tipe (1), yaitu mencari path terpendek antara suatu simpul, yaitu source dan suatu simpul lainnya, yaitu sink. Terdapat beberapa algoritme yang dapat digunakan untuk mencari path terpendek, salah satunya adalah algoritme dekomposisi. Algoritme dekomposisi dibahas di dalam [Hu, 1981], [Yen, 1968], dan [Shier et al., 1973].
Namun, tiap prosedur yang diperkenalkan memiliki keuntungan yang berbeda. Prosedur yang diperkenalkan oleh Hu akan tepat bila diaplikasikan pada network yang memiliki struktur linear. Prosedur yang diperkenalkan oleh Shier akan tepat bila diaplikasikan pada network dengan struktur tree. Ada pula prosedur yang akan tepat bila diaplikasikan pada network berbentuk star, yaitu algoritme dekomposisi yang diperkenalkan oleh Land dan Stairs [Land & Stairs, 1967]. Dalam karya ilmiah yang merupakan rekonstruksi dari tulisan Jarvis dan Tufekci [Jarvis & Tufekci, 1982] ini, algoritme yang banyak diterapkan adalah algoritme dekomposisi yang diperkenalkan oleh Hu [Hu, 1981]. Dalam karya ilmiah ini juga dilakukan penghitungan kompleksitas dari algoritme dekomposisi yang digunakan.
Tujuan Tujuan penulisan karya ilmiah ini adalah mempelajari penyelesaian masalah path terpendek antara simpul source (s) dan sink (t) dalam sebuah network dengan menggunakan Algoritme Dekomposisi Jarvis-Tufekci.
LANDASAN TEORI
Dalam mencari path terpendek antara source (s) dan sink (t) dalam sebuah network dengan algoritme dekomposisi, diperlukan beberapa konsep sebagai berikut:
Graf Definisi 1 (Graf) Suatu graf adalah pasangan terurut (V,E) dengan V adalah himpunan berhingga dan takkosong dari elemen-elemen graf, yang disebut simpul (node, verteks), dan E adalah himpunan pasangan takterurut dari simpulsimpul di V. Setiap {p,q}∈E (dengan p,q∈V) dan dikatakan disebut sisi (edge)
menghubungkan simpul p dan simpul q. Sisi {p,q} dapat pula dituliskan dengan pq. (Foulds, 1992) Ilustrasi: G: v1
e1
v2
e3
e2 v3
e4 e5
v4
Gambar 1. Graf dengan 4 simpul dan 5 sisi.
Graf G pada Gambar 1 mempunyai himpunan simpul V={v1, v2, v3, v4} dan himpunan sisi E={e1, e2, e3, e4, e5}.
Ilustrasi: G:
Definisi 2 (Incident) Misalkan diberikan graf G=(V,E). Jika sisi e={p,q}∈E, maka simpul p dan q masingmasing dikatakan incident dengan sisi e. Dapat pula dikatakan bahwa sisi e incident dengan simpul p dan q. (Foulds, 1992)
3
5
2
4
6
Gambar 3. Graf dengan 2 komponen. Graf G pada Gambar 3 memiliki 2 buah komponen, yaitu komponen yang mengandung himpunan simpul {1,2,3,4} dan yang mengandung himpunan simpul {5,6}.
Ilustrasi: Berdasarkan graf pada Gambar 1, maka e1 incident dengan simpul v1 dan v2, e2 incident dengan simpul v1 dan v3, e3 incident dengan simpul v2 dan v3, dan seterusnya.
Definisi 5 (Digraf) Suatu graf berarah/digraf (directed graph) D adalah pasangan terurut (V,A) dengan V adalah himpunan takkosong dan hingga, dan A adalah himpunan pasangan terurut elemenelemen di V. Elemen dari A biasa disebut sisi berarah (arc).
Definisi 3 (Subgraf) Suatu graf G’=(V’,E’) adalah suatu subgraf dari G=(V,E) jika V’⊆ V dan E’⊆ E.
Jika (u,v) (seringkali dituliskan dengan uv) adalah suatu sisi berarah pada digraf, maka u dikatakan predecessor dari v, dan v adalah suatu successor dari u. (Foulds, 1992)
(Ahuja et al., 1993) Ilustrasi:
G:
1
1
6
Ilustrasi: D:
2 5
3
2
4
3
5
1
4
Gambar 4. Digraf.
G’: 6
Untuk digraf pada Gambar 4, V={1,2,3,4,5} dan A={(1,2), (1,3), (2,3), (2,4), (2,5), (3,5), (4,5)}.
1 2
5
Pada sisi berarah (1,2), maka simpul 1 adalah predecessor bagi simpul 2, dan simpul 2 adalah successor bagi simpul 1. Hal yang sama berlaku bagi sisi berarah lainnya.
3
Gambar 2. G’ subgraf dari G.
Definisi 4 (Komponen) Suatu subgraf maksimum yang terhubungkan dari graf G disebut komponen dari G. (Foulds, 1992)
Definisi 6 (Walk) Suatu walk pada suatu digraf D=(V,A) adalah suatu subgraf dari D=(V,A) yang berupa suatu barisan dari simpul dan sisi berarah i1−a1−i2− a2−…−ir−1−ar−1−ir dan untuk semua 1≤ k ≤ r−1 berlaku ak=(ik , ik+1)∈A atau dapat ditulis ak=(ik+1, ik) ∈A.
2
Dapat pula dikatakan bahwa walk adalah suatu himpunan (barisan) dari sisi berarah atau simpul-simpul.
Definisi 8 (Subpath) Suatu subpath dari path v0−v1−v2−.....−vk adalah barisan simpul vi−vi+1−......−vj yang terdapat dalam path tersebut sedemikian sehingga 0 ≤ i ≤ j ≤ k. (Cormen et al., 1990)
Walk dapat dibedakan menjadi 2, yakni: a) Walk berarah yaitu suatu walk yang memiliki satu arah, sehingga untuk sembarang 2 buah simpul ik dan ik+1 yang berurutan pada walk tersebut, (ik , ik+1)∈A. b) Walk tidak berarah yaitu suatu walk yang tidak memenuhi definisi walk berarah. (Ahuja et al., 1993)
Ilustrasi: Dengan menggunakan path pada Gambar 6 dapat diperoleh contoh subpath, yakni: 2
Ilustrasi:
1 2
3
5
Gambar 7. Contoh subpath.
1 3
4 Definisi 9 (Cycle) Suatu cycle adalah suatu path i1−i2−...−ir dan mengandung (i1, ir) atau (ir,i1), atau dapat dituliskan sebagai i1−i2−...−ir−i1. Suatu cycle dapat pula didefinisikan sebagai path yang tertutup.
Gambar 5(a). Walk 1−2−3−4−5 adalah contoh walk berarah. 2
5
1 3
Berdasarkan definisi path, maka cycle dapat dibedakan menjadi 2, yakni: 1) Cycle berarah yaitu path berarah i1−i2−...−ir dan mengandung sisi berarah (ir,i1). 2) Cycle tidak berarah yaitu path tidak berarah i1−i2−...−ir dan mengandung sisi berarah (ir,i1). (Ahuja et al., 1993)
4
Gambar 5(b). Walk 1−2−3−4−5 adalah contoh walk tidak berarah.
Definisi 7 (Path) Suatu path dalam suatu digraf adalah suatu walk dengan semua simpulnya berbeda (tidak ada yang berulang).
Ilustrasi: 1
Berdasarkan definisi walk, maka path dapat pula dibedakan menjadi 2, yakni path berarah dan path tidak berarah. (Ahuja et al., 1993)
2
3
Gambar 8(a). Cycle 1−2−3−1 adalah cycle berarah.
Ilustrasi: 2 1
1 3
5
Gambar 6. Path.
2
Path 1−2−3−5 pada Gambar 6 merupakan contoh path yang dimiliki oleh digraf pada Gambar 4. Path ini merupakan contoh path berarah.
3
Gambar 8(b) Cycle 1−2−3−1 adalah cycle tidak berarah.
3
didefinisikan pula bahwa d(u,u)=0, dan d(u,v)=∞ (takhingga) jika tidak ada sisi berarah yang menghubungkan simpul u dan v tersebut. (Cormen et al., 1990)
Definisi 10 (Digraf Terhubungkan) Suatu digraf D=(V,A) dikatakan terhubungkan (connected), jika terdapat paling sedikit satu buah path yang menghubungkan setiap pasang simpul pada digraf tersebut. Jika tidak, maka digraf tersebut dikatakan takterhubung. (Foulds, 1992)
Ilustrasi: Bardasarkan digraf terboboti pada Gambar 10, maka dapat diperoleh: d(1,1)=0 d(2,3)=1 d(1,2)=1 d(2,4)=5 d(1,3)=3 d(3,3)=0 d(1,4)=∞ d(3,4)=1 d(2,2)=0 d(4,4)=0.
Ilustrasi: 1
2
4
3
5
Gambar 9(a). Digraf terhubung. 1
2
4
3
5
Definisi 13 (Panjang path) Misalkan diberikan path p, v0−v1−v2−.....−vk. Panjang path p adalah jumlah semua panjang sisi berarah yang terdapat pada path tersebut, atau dapat dituliskan sebagai: k
d ( p ) = d (v 0 , v k ) = ∑ d (v i −1 , v i ) .
Gambar 9(b). Digraf takterhubung.
i =1
(Cormen et al., 1990) Ilustrasi: Pada Gambar 10, terdapat beberapa path. Berikut ini panjang path-path yang menghubungkan simpul 1 dan simpul 4 pada digraf pada Gambar 10 tersebut: Panjang path 1−2−4 =d(1,4) =d(1,2)+d(2,4) =1+5 =6 Panjang path 1−3−4 =d(1,4) =d(1,3)+d(3,4) =3+1 =4 Panjang path 1−2−3−4 =d(1,4) =d(1,2)+d(2,3)+d(3,4) =1+1+1 =3.
Definisi 11 (Graf terboboti) Suatu graf G=(V,E) atau digraf D=(V,A) dikatakan terboboti jika terdapat fungsi d:E→R atau d:A→R (dengan R adalah himpunan bilangan real) yang memetakan setiap bilangan real (yang disebut bobot) untuk setiap sisi di E (atau A). Setiap bobot d(uv) dengan uv ∈ E (atau uv ∈ A) biasa dituliskan dengan duv. (Foulds, 1992) Ilustrasi: 2 1 1
5 1
3
4 1 3
Definisi 14 (Path terpendek) Path u−v dikatakan sebagai path terpendek jika path yang menghubungkan simpul u dan simpul v tersebut memiliki panjang minimum di antara path-path u−v lainnya. (Hu, 1981)
Gambar 10. Digraf terboboti.
Definisi 12 (Panjang sisi berarah) Misalkan diberikan suatu digraf terboboti dengan fungsi yang memetakan tiap sisi berarah dengan suatu bilangan real. Maka, bobot ini dapat pula dikatakan sebagai panjang sisi berarah. Panjang sisi berarah yang menghubungkan simpul u dengan v duv=d(u,v), dan dinotasikan dengan
Ilustrasi: Berdasarkan digraf terboboti pada Gambar 10, dan panjang path-path yang menghubungkan simpul 1 dan 4 pada Ilustrasi Definisi 13, maka dapat ditentukan path terpendek yang menghubungkan simpul 1 dan 4 adalah path
4
Berdasarkan Gambar 11, cycle 2−4−3−2 merupakan cycle negatif karena memiliki panjang cycle: d(c) = d(2,4) + d(4,3) + d(3,2) = (−11) + 2 +8 = −1 < 0. Sedangkan cycle 1−3−2−1 merupakan cycle taknegatif (dapat pula dikatakan positif), karena memiliki panjang cycle: d(c) = d(1,3) + d(3,2) + d(2,1) = 5 + 8 + (−10) = 3 ≥ 0.
1−2−3−4, karena memiliki panjang minimum di antara path-path 1−4 lainnya, yaitu 3. Dalam karya ilmiah ini, definisi “panjang” dapat pula diartikan sebagai “jarak”.
Definisi 15 (Matriks jarak) Misalkan D=(V,A) adalah suatu digraf dengan V = {v1 , v 2 ,...., v n } dan A = {a1 , a 2 ,...., a m } . Matriks jarak M didefinisikan dengan M=(mij) dengan mij=d(vi,vj). (Chartrand & Oellermann, 1993) Ilustrasi: Dengan menggunakan digraf terboboti pada Gambar 10, maka dapat diperoleh matriks jarak dari digraf tersebut, yakni sebagai berikut:
Network Definisi 17 Kasus khusus digraf terboboti adalah network (jaringan kerja). Beberapa konsep pada network adalah sebagai berikut: 1. Jika a = (vi,vj) adalah suatu sisi berarah pada digraf D=(V,A), maka a dikatakan sebagai sisi berarah yang menjauhi vi dan mendekati vj. 2. Suatu simpul sehingga tidak ada sisi berarah yang mendekati dirinya disebut dengan sumber (source), sedangkan suatu simpul sehingga tidak ada sisi berarah yang menjauhi dirinya disebut dengan sink 3. Suatu network adalah suatu digraf yang mempunyai tepat satu source dan tepat satu sink.
1⎡ 0 1 3 +∞ ⎤ ⎢ 2 +∞ 0 1 5 ⎥⎥ . M= ⎢ 3 ⎢ +∞ +∞ 0 1 ⎥ ⎢ ⎥ 4 ⎣ +∞ +∞ +∞ 0 ⎦ Definisi 16 (Panjang cycle) Misalkan diberikan suatu cycle berarah c, yaitu v0−v1−v2−.....−vk dengan v0 = vk. Panjang cycle berarah c adalah jumlah panjang seluruh sisi berarah yang terdapat pada cycle tersebut, atau dapat dituliskan sebagai: k
d (c) = ∑ [d (vi −1 , vi ) − d (vi , vi −1 )] .
Pada banyak aplikasi network, paling sedikit terdapat satu aliran/flow yang bergerak dari source ke sink. Flow pada network merupakan bobot pada digraf. (Foulds, 1992)
i =1
Panjang cycle dapat dibedakan sebagai berikut: • Panjang cycle dikatakan negatif jika d(c)< 0 • Panjang cycle dikatakan taknegatif jika d(c) ≥ 0 • Panjang cycle dikatakan positif jika d(c) >0. (Ahuja et al., 1993)
Ilustrasi: 1 3
5
1 8
−10
2
5
3
3
t 2
Gambar 12. Network.
2 −11
2
2
3
s
Ilustrasi:
2
1
4 Definisi 18 (Kerapatan network) Kerapatan suatu network adalah perbandingan banyaknya sisi berarah sebenarnya pada network dengan banyaknya sisi berarah
Gambar 11. Digraf yang mengandung cycle.
5
maksimum yang mungkin terdapat pada network tersebut.
Ilustrasi: N:
s
Jika suatu network N = (V,A) terdiri atas n buah simpul dan n(n−1) buah sisi berarah, maka network seperti itu dikatakan memiliki kerapatan sebesar 100%. Namun, jika suatu network memiliki nilai kerapatan yang lebih kecil dari 0,20 maka network tersebut dikatakan longgar. (Jarvis & Tufekci, 1982)
2
3
4
5
Ilustrasi: N:
6
7
a1
s
a2 a3
1
4
a6
X
8 2
t
3
a5
1
a4
Gambar 14(a). Network dengan cut set.
t 5
a7
s
Gambar 13. Contoh network yang longgar. 1
Network N pada Gambar 13 memiliki n=7 buah simpul yaitu {s,1,2,3,4,5,t}, dan 7 buah sisi berarah yaitu {a1,a2,a3,a4,a5,a6,a7). Banyaknya sisi berarah maksimum yang mungkin terdapat pada network tersebut adalah n(n−1)=7(7−1) =42 buah sisi berarah. Maka, kerapatan network tersebut adalah 7 = 0,17 . Nilai kerapatan yang kurang dari 42 0,20 tersebut menunjukkan bahwa network tersebut merupakan network yang longgar.
8
t Gambar 14(b). Network takterhubung setelah cut set dihilangkan. Pada network N pada Gambar 14(a), himpunan simpul X ={2,3,4,5,6,7} merupakan cut set dari himpunan simpul {s,1}, atau cut set dari himpunan simpul {8,t}. Sedangkan Gambar 14(b) menunjukkan network tersebut menjadi takterhubung, jika himpunan simpul yang merupakan cut set tersebut dihilangkan.
Definisi 19 (Cut set) Misalkan diberikan suatu network terhubung N=(V,A) dan misalkan B dan X merupakan himpunan bagian dari V dengan X ≠ B. Himpunan X dikatakan sebagai cut set dari B jika memenuhi kondisi-kondisi berikut: (a) Jika X dan semua sisi berarah yang incident dengan X dihilangkan, maka network N=(V,A) tersebut menjadi takterhubung, (b) Semua simpul pada B berada pada satu komponen yang sama dan tidak terdapat simpul lain yang bukan anggota B pada komponen ini. (Hu & Torres, 1969)
Definisi 20 (Minimal cut set) Misalkan X adalah cut set dari N. Maka, X dikatakan sebagai minimal cut set jika tidak terdapat himpunan bagian sejati dari X yang juga merupakan cut set. (Hu & Torres, 1969)
6
di k ← min {dik , dij + djk} = min {6,3+2} = min {6,5} =5 ∴ di k ← 5.
Ilustrasi:
s 1 2
3
4
5
Secara umum, operasi tripel dapat digunakan untuk lebih dari 3 simpul.
X1
Ilustrasi: 1 6
7
X2
1 2
8
2
1 4
4
5 3
Untuk menentukan jarak terpendek antara simpul 1 dan simpul 5, maka dilakukan operasi tripel sebagai berikut: • d15 ← min {d15, d12 + d25} • d15 ← min {d15, d13 + d35} • d25 ← min {d25, d24 + d45} = min {+∞, 4 + 3} = min {+∞, 7} =7 • d35 ← min {d35, d34 + d45} = min {2, 1 + 3} = min {2, 4} =2 • d15 ← min {d15, d13 + d35} = min {+∞, 3 + 2} = min {+∞, 5} =5 • d15 ← min {d15, d12 + d25} = min {5, 1 + 7} = min {5, 8} = 5.
Gambar 15. Contoh minimal cut set pada suatu network. Berdasarkan Gambar 15, terlihat bahwa X1={2,3} dan X2={6,7} adalah minimal cut set pada network tersebut. Berbeda halnya dengan cut set pada Gambar 14(a) yang tidak dapat dikatakan sebagai minimal cut set karena masih memiliki himpunan bagian sejati yang juga merupakan cut set.
Definisi 21 (Operasi tripel) Misalkan dij menyatakan panjang/jarak antara simpul i dan simpul j pada digraf D. Maka, didefinisikan operasi tripel sebagai berikut: dik ← min {dik, dij + djk} untuk i ≠ j ≠ k dengan lambang “←” menyatakan “digantikan oleh”. (Hu, 1981)
∴ d15 ← 5. Definisi 22 (Network terdekomposisi) Misalkan Xi adalah himpunan simpul dan diketahui Xi ≠ ∅, untuk setiap i. Suatu network N=(V,A) dikatakan terdekomposisi menjadi m buah subnetwork N 1 , N 2 , N 3 ,..... , N m yang bertindih secara linear (linearly overlapping) jika memenuhi kondisi-kondisi berikut: ; i≠ j (1) X i I X j = Ø
Ilustrasi:
j 2
i 6
3
Gambar 17. Contoh path dengan 5 simpul
t
3
3
k
Gambar 16. Contoh path dengan 3 simpul.
m
Untuk menentukan jarak terpendek antara simpul i dan k pada Gambar 16, maka dilakukan operasi tripel, yakni:
(2) U N i = N i =1
7
⎧ X i −1 ; j =i −1 ⎪ (3) N i I N j = ⎨ X i ; j =i +1 ⎪ Ø ⎩ ; j ≠ (i −1),i,(i +1). (Jarvis & Tufekci, 1982)
N1
N2
X1
Nm
N3
X2
..............
X3
Xm−1
Gambar 18. Ilustrasi m buah subnetwork yang bertindih secara linear (linearly overlapping).
subnetwork yang bertindih secara linear (linearly overlapping).
Berikut ini merupakan ilustrasi sebuah network yang terdekomposisi menjadi 3 buah
Ilustrasi: N:
1
3
5
7
2
4
6
t
X1
X2
s
Gambar 19. Contoh network dengan 3 buah subnetwork.
Network pada Gambar 19, terdekomposisi menjadi 3 buah subnetwork N 1 , N 2 , N 3
Ilustrasi: Misalkan diberikan suatu network N=(V,A) yang terdekomposisi menjadi 2 buah subnetwork sebagai berikut:
dengan himpunan simpul di N 1 = {s,1,2,3,4}, N 2 = {3,4,5,6}, dan N 3 = {5,6,7,8}, dengan X1 = {3,4} dan X2 = {5,6}.
N:
Definisi 23 (Persamaan minisumasi) Misalkan diberikan suatu network N=(V,A) yang terdekomposisi menjadi 2 buah subnetwork N 1 dan N 2 , maka N=N1∪X∪N2 dengan X adalah cut set pada network N. Misalkan pula d uv* menyatakan jarak
2
1 2
s 3
1
2
4
3 3
1
t 5
4
X
terpendek antara simpul u dan simpul v.
Gambar 20. Network yang telah terdekomposisi.
Persamaan minisumasi didefinisikan sebagai berikut: min * d ik* = {d ij + d *jk } j dengan i∈N1, j∈X, dan k∈N2. (Hu & Torres, 1969)
Network N pada Gambar 20 mempunyai 2 buah subnetwork dengan N1={s,1}, X={2,3}, dan N2={4,t}.
8
membutuhkan waktu cnm untuk beberapa konstanta c. Pernyataan ini ekuivalen dengan pernyataan bahwa algoritme tersebut membutuhkan waktu O(nm). Secara formal dapat didefinisikan sebagai berikut: “Suatu algoritme dikatakan bekerja dalam waktu O(f(n)) jika untuk beberapa bilangan c dan no, maka waktu yang diperlukan oleh algoritme tersebut paling banyak adalah cf(n) untuk semua n ≥ no”. (Ahuja et al., 1993)
Untuk mengetahui jarak terpendek dari N1 ke N2 dapat ditentukan dengan menggunakan persamaan minisumasi berikut: * * d s*4 = min[( d s*2 + d 24 ), ( d s*3 + d 34 )] = min [(7 + 7), (3 + 1)] = min [14, 4] =4 d st* = min[( d s*2 + d 2*t ), ( d s*3 + d 3*t )] = min [(7 + 1), (3 + 5)] = min [8, 8] =8 * * ), (d 13* + d 34 )] d 14* = min[( d 12* + d 24 = min [(6 + 7), (2 + 1)] = min [13, 3] =3 d 1*t = min[( d 12* + d 2*t ), (d 13* + d 3*t )] = min [(6 + 1), (2 + 5)] = min [7, 7] = 7.
Algoritme Dekomposisi Hu
Hu adalah salah seorang tokoh yang memperkenalkan algoritme dekomposisi. Dalam karya ilmiah ini algoritme dekomposisi yang diperkenalkan oleh Hu berperan dalam penyelesaian masalah path terpendek pada suatu network yang diberikan. Misalkan diberikan suatu network N=(V,A) yang longgar dan memiliki banyak simpul yang cukup besar (berskala besar). Untuk menyelesaikan masalah path terpendek dalam network tersebut, Hu menggunakan algoritme dekomposisi. Langkah pertama pada algoritme dekomposisi Hu ini adalah mendekomposisi network N=(V,A) yang diberikan menjadi m buah subnetwork N 1 , N 2 , N 3 ,..... , N m yang bertindih secara linear (linearly overlapping).
Kompleksitas Algoritme Definisi 24 (Algoritme) Algoritme adalah suatu tahapan/prosedur untuk menyelesaikan suatu masalah.
Langkah-langkah dari suatu algoritme dibedakan sebagai berikut: 1) Langkah penetapan. Contoh: menetapkan beberapa nilai untuk suatu variabel. 2) Langkah aritmatika/penghitungan. Contoh: penjumlahan, pengurangan, perkalian, dan pembagian. 3) Langkah logika. Contoh: membandingkan 2 buah bilangan. (Ahuja et al., 1993)
Tahapan yang perlu dilakukan dalam mendekomposisi network N=(V,A) tersebut adalah: 1) Suatu himpunan simpul yang merupakan himpunan bagian dari V ditandai sebagai N1. 2) Menentukan himpunan simpul yang merupakan minimal cut set dari N1. 3) Menandai himpunan simpul berikutnya yang merupakan cut set (tidak harus merupakan minimal cut set) dari (N1∪X1) sebagai N2. 4) Menentukan himpunan simpul yang merupakan minimal cut set dari (N1∪X1∪N2) sebagai X2. 5) Hal yang sama dilakukan hingga network tersebut terdekomposisi seluruhnya menjadi m buah subnetwork N 1 , N 2 , N 3 ,..... , N m dengan N 1 = N1 U X 1 ,
Definisi 25 (Kompleksitas Algoritme) Fungsi kompleksitas waktu untuk suatu algoritme adalah fungsi dari ukuran masalah dan waktu yang diperlukan oleh algoritme tersebut untuk menyelesaikan masalah yang diberikan. Untuk selanjutnya, fungsi kompleksitas waktu ini disebut dengan kompleksitas algoritme. (Ahuja et al., 1993)
Definisi 26 ( Notasi “big O”) Notasi “big O” adalah suatu ekspresi yang menyatakan bahwa suatu algoritme
N 2 = X1 U N 2 U X 2 , N 3 = X 2 U N 3 U X 3 , seterusnya hingga
9
dilakukan hingga operasi tripel diaplikasikan pada subnetwork N m . Pada akhir tahap (1) ini diperoleh: M N* N ( N 1 ) , M * ( N 1 U N 2 ) , .......,
N m −1 = X m − 2 U N m −1 U X m −1 ,dan N m = X m−1 U N m . Jadi, N=N1∪X1∪N2∪....∪Xm−1∪Nm.
1
i
dari Ni ke Nj, sedangkan M ( N k ) menyatakan matriks jarak terpendek dari Ni ke Nj yang terletak pada N k . Tahapan yang dilakukan dalam algoritme dekomposisi Hu adalah sebagai berikut: (1) Operasi tripel diaplikasikan pada m buah subnetwork N 1 , N 2 , N 3 ,..... , N m −1 , N m secara bertahap. Jarak terpendek yang subnetwork diperoleh dari suatu menggantikan jarak aslinya pada subnetwork berikutnya (yang akan dikenai operasi tripel), misalkan: yang diperoleh akan M X* X ( N 1 )
m −1 m −1
M X* m −1X m−1 ( N − N m ) . Pada akhir tahap (2)
ini dapat diperoleh: M N* N ( N ) ,......, m −1 m −1 M N* 2 N 2 ( N ) , M N* 1 N 1 ( N ) .
(3) Jarak terpendek antara pasangan simpul yang tidak terdapat pada subnetwork yang sama ditentukan dengan menggunakan persamaan minisumasi. (Hu & Torres, 1969)
1 1
jarak
M X1 X1
N2 N2
(2) Operasi tripel diaplikasikan pada m−1 buah subnetwork N m −1 , N m − 2 ....., N 2 , N 1 secara bertahap. Jarak yang diperoleh pada suatu subnetwork menggantikan jarak pada subnetwork selanjutnya (yang akan dikenai opersi tripel), misalkan: M *X X ( N ) akan menggantikan jarak
j
* ij
menggantikan
1
M N* m−1 N m−1 ( N 1 U N 2 U .... U N m −1 ) , M N* m N m ( N ) .
Misalkan didefinisikan N i = N i − ( X i −1 U X i ) , dan misalkan M N N menyatakan matriks jarak
sebelum
operasi tripel dilakukan pada subnetwork N 2 =N1∪X1∪N2. Hal yang sama
PEMBAHASAN
Berikut ini adalah prosedur yang digunakan dalam algoritme dekomposisi Jarvis-Tufekci dalam menyelesaikan masalah path terpendek pada suatu network.
Dekomposisi Network
Dalam bab ini akan diberikan beberapa asumsi yang diperlukan dan prosedur yang digunakan dalam algoritme dekomposisi Jarvis-Tufekci untuk dapat menyelesaikan masalah path terpendek antara source (s) dan sink (t) pada suatu network. Selain itu, akan diberikan pula contoh penerapan algoritme dekomposisi tersebut dalam suatu network yang diberikan. Pada akhirnya akan diuraikan penghitungan kompleksitas dari algoritme dekomposisi ini.
Misalkan diberikan suatu network berskala besar yang longgar N=(V,A) dengan V={v1,v2,....,vn} dan A adalah himpunan sisi berarah yang terdapat pada network tersebut, dengan tiap sisi berarah yang menghubungkan simpul vi dan simpul vj memiliki panjang yang dinotasikan dengan dij=d(vi,vj). Misalkan network N=(V,A) yang diberikan terdekomposisi menjadi m buah subnetwork N 1 , N 2 , N 3 ,..... , N m yang bertindih secara linear (linearly overlapping). Tahapan yang dilakukan dalam mendekomposisi network N yang diberikan tersebut tidak berbeda dengan tahapan yang dilakukan oleh algoritme Hu, sehingga pada akhir tahap diperoleh N=N1∪X1∪N2∪....∪Xm−1∪Nm yang dapat pula diilustrasikan sebagai berikut:
Penentuan path terpendek antara simpul source dan sink pada suatu network berskala besar dengan menggunakan algoritme dekomposisi Jarvis-Tufekci memerlukan beberapa asumsi berikut: 1) Network yang akan didekomposisi merupakan network yang longgar/tidak rapat. 2) Network tersebut tidak memuat cycle yang negatif.
10
N:
N1
N1
N2
Nm
N3
X1 N2 X2 N3 X3
..............
Xm−1 Nm
Gambar 21. Ilustrasi hasil akhir tahap dekomposisi pada suatu network menjadi m buah subnetwork yang bertindih secara linear. simpul di Ni dengan simpul di Nj. Oleh sebab itu, semua elemen matriks jarak M N N adalah
Misalkan didefinisikan Ni = Ni − ( X i −1 U X i ). Matriks jarak yang terbentuk pada N1 adalah M N1N1 = ( mN1N1 ) dengan tiap elemennya yaitu mN N menyatakan panjang path berarah yang
i
1 1
menghubungkan simpul di N1 dengan simpul di N1 pula. Matriks jarak dari N1 ke N2 adalah dengan tiap m N1 N 2 M N1 N 2 = ( m N 1 N 2 ) menyatakan panjang path berarah yang menghubungkan antara simpul di N1 dengan simpul lainnya di N2. Namun, seperti terlihat dalam ilustrasi pada Gambar 21, maka Ni∩Nj=∅, untuk i ≠ j dengan i, j = 1,2,3,...,m. Hal itu menunjukkan bahwa untuk i ≠ j, tidak ada path berarah yang menghubungkan N1 M N1N1 M N1 X 1 M N1 N 2 M N1 X 2 ......
j
∞ (takhingga). Matriks jarak dari N1 ke X1 adalah M N X = (m N X ) dengan tiap m N X 1 1 1 1 1 1 menyatakan panjang path berarah yang menghubungkan antara simpul di N1 dengan simpul di X1. Hal yang sama dilakukan hingga M N m N m , sehingga pada akhirnya diperoleh matriks jarak dari seluruh subnetwork yang dapat dinyatakan dengan:
M N1 X m − 2
M N 1 N m −1
M N1 X m −1
M N1 N m
X1
M X 1 N1
M X1 X1
M X1N 2
M X1 X 2
......
M X1 X m −2
M X 1 N m −1
M X 1 X m −1
M X1N m
N2
M N 2 N1
M N 2 X1
M N2N2
M N2 X 2
......
M N2 X m−2
M N 2 N m −1
M N 2 X m −1
M N2Nm
X2
M X 2 N1
M X 2 X1
M X 2N2
M X2X2
......
M X 2 X m−2
M X 2 N m −1
M X 2 X m −1
M X 2Nm
......
Nm
M Nm Nm
N1
X1
N2
X2
.......
N m− 1
Xm−1
Nm
(finite) dan ditunjukkan oleh daerah yang diarsir, sedangkan daerah yang tidak diarsir menyatakan matriks jarak yang memiliki elemen takhingga (infinite).
Berdasarkan matriks jarak dari seluruh subnetwork tersebut, maka dapat terlihat bahwa hanya matriks jarak M N N dengan i
Xm−2
i
i=1,2,....,m yang memiliki elemen hingga
11
Berikut ini adalah langkah-langkah yang dilakukan algoritme dekomposisi JarvisTufekci untuk menyelesaikan masalah path terpendek. Tahap I: Langkah pertama pada algoritme dekomposisi Jarvis-Tufekci adalah menggunakan tahap pertama dari algoritme dekomposisi Hu, yakni: Operasi tripel diaplikasikan pada m buah subnetwork N 1 , N 2 , N 3 ,..... , N m −1 , N m secara bertahap. Jarak terpendek yang diperoleh dari suatu subnetwork menggantikan jarak aslinya pada subnetwork berikutnya (yang akan dikenai operasi tripel). Sebagai contoh, matriks jarak M X* X ( N 1 ) yang diperoleh
subnetwork N 2 =N1∪X1∪N2. Hal yang sama dilakukan hingga operasi tripel diaplikasikan pada subnetwork N m , sehingga pada akhir Tahap I ini diperoleh matriks-matriks jarak terpendek berikut: M N* N ( N 1 ) , M * ( N 1 U N 2 ) , ...., 1
N2 N2
1
M N* m−1 N m−1 ( N 1 U N 2 U .... U N m −1 ) , M N* m N m ( N ) .
1 1
akan menggantikan matriks jarak M X X 1 1
Tahap II: Misalkan dij* ( N k ) menyatakan jarak terpendek antara simpul i dan simpul j yang terletak pada N k . Berdasarkan matriks jarak terpendek yang diperoleh pada Tahap I, maka dapat didefinisikan matriks jarak M’=(mij) dengan elemenelemennya sebagai berikut:
sebelum operasi tripel dilakukan pada
⎧ d sj* ( N 1 ) ⎪ * ⎪d ( N 1 U .... U N k ) mij = ⎨ ij d it* ( N ) ⎪ ⎪ ∞ ⎩
; untuk i = s ; j ∈ X 1 , ; untuk i ∈ X k −1 ; j ∈ X k , ; untuk i ∈ X m −1 ; j = t ; selainnya.
dengan mij adalah elemen dari matriks jarak M’ pada baris ke−i, dan kolom ke−j.
(Xi,Xj), (Xm−1,{t}) dengan j=i+1 untuk i=1,2,3,....,m−2. Namun, A’ tidak mengandung himpunan sisi dengan arah sebaliknya, yakni (X1,{s}), (Xj,Xi), (t,Xm−1) dengan j=i+1, sehingga network N’ tidak akan memuat cycle berarah.
Tahap III: Berdasarkan matriks jarak M’, maka terbentuk network N’=(V’,A’) dengan V’={s}∪X1∪X2∪...∪Xm−1∪{t} dan A’ merupakan himpunan sisi berarah ({s},X1), (X1,X2), ....., (Xm−2,Xm−1), (Xm−1,{t}), atau dapat pula didefinisikan A’ adalah himpunan sisi berarah ({s},X1),
Berikut ini akan diberikan contoh network N’ yang terbentuk:
N’:
8
1 5
s
9
2
12
t
6 3 4
X1
10 7
13
11
X2
X3
X4
Gambar 22. Contoh network N’ yang terbentuk.
12
simpul i dan simpul j. Misalkan pula wu menyatakan jarak terpendek simpul source ke simpul u. Penentuan jarak terpendek antara simpul source (s) dan simpul sink (t) dapat dilakukan dengan menggunakan algoritme A [Jarvis & Tufekci, 1982] berikut:
Pada network N’ pada Gambar 22, maka terlihat bahwa himpunan simpul X1={1,2,3,4}, X2={5,6,7}, X3={8,9,10,11}, dan X4={12,13}.
Tahap IV: Berdasarkan jarak dari tiap sisi berarah pada network N’, maka misalkan d ij*
menyatakan
jarak
terpendek
antara
Algoritme A Tahap awal : ws = 0 : wi = d si* ; i∈Xk , k = 1
: (1) Untuk k ⇐ k + 1, jika k = m, Lanjutkan ke (3) min wi + d iq* ; untuk setiap q∈Xk, (2) wq = i ∈ X k −1 lanjutkan ke (1) min (3) wt = w + d it* i ∈ X m −1 i selesai. Jarak terpendek dari s ke t telah diperoleh.
Tahap utama
{
}
{
}
Tahap V: Jarak terpendek antara simpul source dan sink pada network N’ yang diperoleh dari algoritme A pada Tahap IV merupakan panjang path terpendek P’ dalam network N’. Path terpendek P’ tersebut adalah s−x1−x2−......−xm−1−t, dengan xi∈Xi, atau dapat dikatakan bahwa xi merupakan salah satu simpul pada Xi. Path terpendek P’ dalam network N’ ini berpadanan dengan path terpendek sebenarnya dalam network N aslinya. Hal ini sesuai dengan teorema berikut:
Bukti: Misalkan path P yaitu s−i1−i2−.....−iq−t, merupakan path terpendek dalam network N sebenarnya. Path P tersebut harus mengandung paling sedikit satu buah simpul dari setiap Xi dengan i=1,2,3,...,m−1.
Misalkan path P’ s−j1−j2−....−jm−1−t merupakan subpath dari path P sedemikian sehingga simpul jk merupakan simpul pertama pada path P yang juga merupakan anggota Xk. Berikut ini merupakan contoh path dalam suatu network terdekomposisi.
Teorema 1 Jarak terpendek pada network N’=(V’,A’) berpadanan dengan jarak terpendek pada network sebenarnya yaitu N=(V,A). (Jarvis & Tufekci, 1982) Ilustrasi:
1
2
3
s 8
9
10
4 6
11
7
15
12
5
13
X1
16
X2
X3
13
14
X4
X5
t
Gambar 23. Contoh path dalam network terdekomposisi. Berdasarkan contoh path pada Gambar 23, terletak pada ( N 1 U .... U N i ). Pada langkah misalkan diperoleh path P yaitu s−1−2−3−4− akhir, dengan cara yang sama pula, maka 5−6−7−8−9−10−11−12−13−14−15−16−t, dan jarak terpendek antara simpul jm−1 ke simpul path P’ yaitu s−1−3−8−10−16−t. sink (t) pada subnetwork N m dapat ditentukan, sehingga terbentuklah path P’ Hal yang ingin ditunjukkan adalah bahwa yang termuat dalam network N’. Path P’ path P’ mengandung informasi yang s−j1−j2−....−jm−1−t tersebut merupakan path diperlukan untuk menentukan path P dalam ▄ terpendek pada network N’. network N sebenarnya. Berdasarkan Tahap I algoritme dekomposisi Hu, maka jarak terpendek antara simpul source (s) dan simpul j1 yang terletak pada subnetwork N 1 dapat ditentukan. Penentuan jarak terpendek antara simpul s dan simpul j1 tersebut menggunakan operasi tripel pada subnetwork N 1 . Simpul j2 merupakan simpul pertama pada path P yang juga merupakan anggota X2, maka subpath dari path P yang menghubungkan simpul j1 ke simpul j2 akan terletak pada ( N 1 U N 2 ). Dengan mengganti jarak antara simpul-simpul di X1 sebenarnya dengan jarak terpendek yang diperolehnya pada subnetwork N 1 , maka jarak terpendek antara simpul j1 ke simpul j2 pada ( N 1 U N 2 ) dapat ditentukan, yakni dengan mengaplikasikan operasi tripel pada subnetwork N 2 . Dengan menggunakan cara yang sama, maka jarak terpendek antara simpul ji−1 ke simpul ji pada subnetwork N i dapat ditentukan. Subpath tersebut akan Algoritme B Langkah 1
Langkah 2
Jadi, berdasarkan informasi dari path terpendek P’ dalam network N’, maka path terpendek P dapat ditentukan. Path P’ merupakan subpath dari path P dalam network N sebenarnya. Oleh karena itu, dengan memadankan path terpendek P’ tersebut dalam network N akan diperoleh path terpendek P. Berdasarkan tahapan-tahapan algoritme dekomposisi Jarvis-Tufekci, maka seluruh tahapan tersebut dapat pula dinyatakan dengan algoritme B [Jarvis & Tufekci, 1982]. Misalkan diberikan network N=(V,A) yang terdekomposisi menjadi m buah subnetwork N 1 , N 2 , N 3 ,..... , N m yang bertindih secara linear, maka penentuan path terpendek antara simpul source dan simpul sink dapat dilakukan dengan algoritme B berikut:
: Operasi tripel diaplikasikan pada tiap subnetwork N 1 , N 2 , N 3 ,..... , N m secara berurutan. Jarak terpendek yang dihasilkan pada suatu subnetwork akan menggantikan jarak sebenarnya pada subnetwork berikutnya. : Network N’=(V’,A’) dikonstruksi seperti yang telah dijelaskan pada Tahap III algoritme dekomposisi Jarvis-Tufekci. Algoritme A digunakan pada simpulsimpul yang terdapat pada network N’ untuk menentukan jarak terpendek antara simpul s ke simpul t. Jarak ini akan berpadanan dengan jarak sebenarnya pada network N yang asli, sehingga path terpendek pada network N dapat ditentukan. Pada bagian ini akan diberikan contoh penerapan algoritme dekomposisi JarvisTufekci untuk menentukan path terpendek antara source (s) dan sink (t) pada suatu network N=(V,A) yang diberikan.
Berdasarkan algoritme B tersebut, maka penghitungan kompleksitas dari algoritme dekomposisi Jarvis-Tufekci ini dapat dilakukan. Penghitungan kompleksitas akan dibahas pada bab selanjutnya.
Contoh penerapan algoritme dekomposisi Jarvis-Tufekci
14
untuk menentukan path terpendek Misalkan diberikan suatu network N=(V,A) dengan 15 buah simpul. Simpul 1 pada network N merupakan source, dan simpul 13 merupakan sink.
Berikut ini diberikan contoh penyelesaian masalah path terpendek antara simpul source dan sink pada suatu network dengan menggunakan algoritme dekomposisi JarvisTufekci. N: -3
3 -3
1
100
3
6
2
1
3
4
1
15
1
1
7
100
9
10
11
1
1
15
14
d ij* 40 100
13
1 100
1
5
1
-2
8
12
X1
X2
Gambar 24. Network yang akan didekomposisi. Misalkan: N1 = {1,2}, X1 = {3,4,5}, N2 = {6,7,8}, X2 = {9,15,12}, dan N3 = {10,11,14, 13}.
Langkah pertama adalah operasi tripel diaplikasikan pada subnetwork N 1 = N 1 U X 1 , dan matriks jarak terpendeknya ditunjukkan oleh matriks M * ( N1 ).
Tahap I: Operasi tripel diaplikasikan pada m buah subnetwork N 1 , N 2 , N 3 ,..... , N m secara bertahap.
N1 N1
Berikut ini adalah subnetwork N 1 dan matriks jarak terpendek yang diperoleh berdasarkan operasi tripel pada subnetwork tersebut.
N1:
3
−3
1
1
2
100
4
1
100
5 Gambar 25. Subnetwork N 1 . 1
2
3
4
5
1 ⎡ 0 100 − 3 + ∞ 100 ⎤ 2 ⎢⎢+ ∞ 0 + ∞ + ∞ 1 ⎥⎥ M N* N ( N 1 ) = 3 ⎢+ ∞ + ∞ 0 + ∞ + ∞ ⎥. 1 1 ⎥ ⎢ 2 ⎥ 4 ⎢+ ∞ 1 + ∞ 0 5 ⎢⎣+ ∞ + ∞ + ∞ + ∞ 0 ⎥⎦
15
yang akan digantikan oleh jarak pada matriks jarak M X* X ( N 1 ) berikut:
Sebelum mengaplikasikan operasi tripel pada N 2 , maka jarak pada M X X pada subnetwork 1
N 2 diganti dengan M
* X1 X1
(N 1 ) .
Berikut ini adalah matriks jarak M X
M X1 X1
1
1
1 X1
3 4 5 3 ⎡ 0 + ∞ + ∞⎤ 2 ⎥⎥ , M X* 1 X 1 ( N 1 ) = 4 ⎢⎢+ ∞ 0 5 ⎢⎣+ ∞ + ∞ 0 ⎥⎦
:
3 4 5 3 ⎡ 0 + ∞ + ∞⎤ = 4 ⎢⎢+ ∞ 0 + ∞ ⎥⎥ 5 ⎣⎢+ ∞ + ∞ 0 ⎥⎦
N 2:
1
sehingga diperoleh subnetwork N 2 berikut,
3
6
-3 1
15 3
4
9
3
1
7
15
2 1
5
8
−2
12
Gambar 26. Subnetwork N 2 . diperoleh
Dengan mengaplikasikan operasi tripel pada subnetwork N 2 pada Gambar 25, maka dapat
matriks
jarak
3 4 5 6 7 8 9 12 18 20 − 3 15 21 0 19 3⎡ 0 2 1 19 3 4 1 4 ⎢⎢ + ∞ 0 5 ⎢+ ∞ + ∞ 0 + ∞ + ∞ 1 + ∞ − 1 ⎢ 0 18 24 3 22 6 ⎢ + ∞ 21 23 * ⎢ M N 2 N 2 (N 1 U N 2 ) = 7 + ∞ 3 5 4 0 6 7 4 ⎢ 8 ⎢+ ∞ + ∞ + ∞ + ∞ + ∞ 0 + ∞ − 2 9 ⎢+ ∞ 18 20 19 15 21 0 19 ⎢ 12 ⎢+ ∞ + ∞ + ∞ + ∞ + ∞ + ∞ + ∞ 0 ⎢ 15 ⎣+ ∞ 4 6 5 1 7 8 5
Sebelum mengaplikasikan operasi tripel pada subnetwork N 3 , maka jarak pada M X X 2
diganti terlebih * M X 2 X 2 (N1 U N 2 ) .
dahulu
Berikut ini adalah matriks jarak M X 9 12 15
15 + ∞⎤ + ∞⎥⎥ + ∞⎥ ⎥ + ∞⎥ + ∞⎥ ⎥ + ∞⎥ + ∞⎥ ⎥ + ∞⎥ ⎥ 0 ⎦
9 ⎡ 0 + ∞ + ∞⎤ M X 2 X 2 = 12 ⎢⎢+ ∞ 0 + ∞ ⎥⎥ 15 ⎢⎣+ ∞ + ∞ 0 ⎥⎦ yang akan digantikan oleh jarak pada matriks jarak M X* X ( N 1 U N 2 ) berikut: 2 2 9 12 15
2
dengan
2X2
terpendek
M N* 2 N 2 ( N 1 U N 2 ) berikut:
:
16
M
* X2X2
sehingga diperoleh subnetwork N 3 berikut,
9 ⎡ 0 19 + ∞ ⎤ ( N 1 U N 2 ) = 12 ⎢⎢+ ∞ 0 + ∞ ⎥⎥ , 5 0 ⎥⎦ 15 ⎢⎣ 8
N3 :
100
9 1 8
11
15
1
10 40 1
19 5
100
14
13
1
12
Gambar 27. Subnetwork N 3 .
Dengan mengaplikasikan operasi tripel pada subnetwork N 3 pada Gambar 27, maka dapat
diperoleh matriks jarak M N* N ( N ) terpendek 3 3 berikut:
9 15 12 3 8 9⎡ 0 0 5 15 ⎢⎢ 8 ⎢ 12 + ∞ + ∞ 0 ⎢ M N* 3 N 3 ( N ) = 10 ⎢+ ∞ + ∞ + ∞ 2 7 11 ⎢ 10 ⎢ 1 6 14 ⎢ 9 13 ⎢⎣+ ∞ + ∞ + ∞
Setelah diperoleh matriks jarak terpendek dari seluruh subnetwork, yakni M * (N1 ) ,
Tahap II: Berdasarkan matriks-matriks jarak terpendek yang telah diperoleh dari Tahap I, maka dapat terbentuk matriks jarak M’=(mij) yang telah didefinisikan sebelumnya.
1
3
4
10 11 14 13 100 1 2 9⎤ +∞ 9 10 6 ⎥⎥ +∞ +∞ +∞ 1 ⎥. ⎥ 0 + ∞ + ∞ 40⎥ 1 8⎥ +∞ 0 ⎥ 109 10 0 7⎥ + ∞ + ∞ + ∞ 0 ⎥⎦
N1 N1
* M N* 2 N 2 ( N 1 U N 2 ) , dan M N 3 N 3 ( N ) , maka dapat
diperoleh matriks jarak M’ sebagai berikut:
5
17
9
15
12
13
− 3 + ∞ + ∞ + ∞ + ∞ + ∞ + ∞⎤ 0 + ∞ + ∞ 0 + ∞ 19 + ∞⎥ ⎥ + ∞ 0 + ∞ + ∞ + ∞ 1 + ∞⎥ + ∞ + ∞ 0 + ∞ + ∞ − 1 + ∞⎥ ⎥ +∞ +∞ +∞ 0 +∞ +∞ 9 ⎥ ⎥. +∞ +∞ +∞ +∞ 0 +∞ 6 ⎥ 1 ⎥ +∞ +∞ +∞ +∞ +∞ 0 ⎥ +∞ +∞ +∞ +∞ +∞ +∞ 0 ⎦
⎡ 0 ⎢+ ∞ ⎢ ⎢+ ∞ 5 ⎢+ ∞ M '= ⎢ 9 ⎢+ ∞ 15 ⎢⎢+ ∞ 12 ⎢+ ∞ ⎢ 13 ⎣+ ∞ 1 3 4
Berikut ini akan diberikan ilustrasi network N’ yang terbentuk berdasarkan matriks jarak M’ pada Tahap II.
Tahap III: Berdasarkan matriks jarak M’, maka terbentuk network N’.
3
-3
9
0
9
4
1
19
4
15
6
13
1 100 -1
5
1
12
Gambar 28. Network N’ yang terbentuk.
terpendek antara simpul 1 sebagai source dan simpul 13 sebagai sink pada network N’ dapat ditentukan dengan menggunakan algoritme A.
Tahap IV: Berdasarkan jarak dari tiap sisi berarah pada network N’ yang dihasilkan pada Tahap III, maka jarak terpendek antara simpul source dan sink dapat ditentukan, yakni dengan menggunakan algoritme A.
Berikut ini adalah penerapan algoritme A untuk menentukan path terpendek pada network N’ tersebut:
Berdasarkan jarak dari tiap sisi berarah pada network N’ pada Gambar 27, maka path Algoritme A
Langkah 1: Dari baris pada matriks jarak terpendek
M N* 1 N 1 ( N 1 ) , simpul yang berhubungan
dengan simpul 1 (dan juga terdapat pada network N’) adalah simpul 3, 4, dan simpul 5, sehingga diperoleh, w3 = −3, Langkah 2:
Langkah 3:
Dari baris pada M * N
w4 = + ∞, 2
N2
w5 = 100
( N 1 U N 2 ) yang berhubungan dengan simpul 3, 4, dan 5 (dan
juga terdapat pada network N’) adalah simpul 9, 15, dan 12, sehingga diperoleh: w9 = min {−3 + 0, +∞ + 4, 100 + ∞}= −3 w15 = min {−3 + ∞, +∞ + ∞, 100 + ∞}= +∞ w12 = min {−3 + 19, +∞ + 1, 100 – 1}= 16 Dari baris pada M N* N ( N ) yang berhubungan dengan simpul 9, 15, dan 12 (dan 3
3
juga terdapat pada network N’) adalah simpul 13, sehingga diperoleh: w13 = min {−3+9, +∞+6, 16+1}= 6.
18
Berdasarkan algoritme A yang telah dilakukan, maka diperoleh path terpendek P’ pada network N’ yakni path 1−3−9−13, dengan panjang path 6.
sebenarnya, sehingga path terpendek P sebenarnya dapat ditentukan. Bila path P’ dipadankan dengan network N sebenarnya, maka diperoleh path P terpendek yang sebenarnya yakni path 1−3−6−9−11−14 −15−7−4−2−5−8−12−13.
Tahap V: Memadankan path terpendek P’ dalam network N’ dengan path dalam network N
PENGHITUNGAN KOMPLEKSITAS ALGORITME DEKOMPOSISI JARVIS-TUFEKCI Dengan menganggap bahwa suatu network N=(V,A) dengan n buah simpul tersebut didekomposisi menjadi m buah subnetwork N 1 , N 2 , N 3 ,..... , N m yang bertindih secara linear (linearly overlapping) seperti yang telah dijelaskan sebelumnya, maka tanpa menghilangkan sifat keumuman, diasumsikan bahwa: ⎢N1⎢=⎢N2⎢=.....=⎢Nm⎢=u dan ⎢X1⎢= ⎢X2⎢=......= ⎢Xm−1⎢= v, sehingga n = mu + (m−1)v.
Pada N 2 : Terdapat ⎟X1⎟+⎟N2⎟+⎟X2⎟ = v+u+v = u+2v buah simpul, dan dengan menggunakan operasi tripel diperlukan (u+2v)3 operasi penjumlahan dan pembandingan. Sebanyak (u+2v)3 operasi penjumlahan dan pembandingan juga diperlukan pada setiap N k dengan k = 2,3,...,m−1. Sehingga dapat disimpulkan bahwa:
Berdasarkan uraian yang telah dijelaskan sebelumnya, diketahui bahwa untuk mendapatkan jarak terpendek antara semua pasang simpul pada network yang memiliki n buah simpul, dibutuhkan n(n−1)(n−2) aplikasi operasi tripel. Berdasarkan persamaan operasi tripel, setiap penggunaan operasi tripel tersebut, mengandung satu kali operasi penjumlahan dan satu kali operasi pembandingan untuk setiap i dan j, dan berlaku bagi k yang tetap, dengan i ≠ j ≠ k.
Pada N k : Terdapat ⎟Xk−1⎟+⎟Nk⎟+⎟Xk⎟ =v+u+v = u+2v buah simpul dan dengan menggunakan operasi tripel, maka untuk seluruh subnetwork N k dengan k = 2,3,...,m−1 diperlukan sebanyak (m−2)(u+v)3 operasi penjumlahan dan pembandingan. Pada N m : Terdapat ⎟Xm−1⎟+⎟Nm⎟ = v+u = v+u buah simpul, dan dengan menggunakan operasi tripel diperlukan sebanyak (u+v)3 operasi penjumlahan dan pembandingan.
Untuk dapat menentukan path terpendek dari network tersebut diperlukan n(n−1)(n−2) =O(n3) operasi penjumlahan dan perbandingan, sehingga dapat dikatakan bahwa diperlukan sebanyak n3=n.n.n aplikasi penjumlahan dan pembandingan dari operasi tripel tersebut.
Langkah 2: Dengan menggunakan algoritme A, maka path terpendek antara source (s) dan sink (t) pada N’ dapat diperoleh dengan cara: i) Pada setiap eksekusi yang terjadi pada tahap utama algoritme A, diperlukan sebanyak v2 operasi penjumlahan dan pembandingan. Tahap utama ini dilakukan sebanyak (m−2) kali, karena yang ingin ditentukan adalah: min wq = wi + d iq* ; untuk setiap i ∈ X k −1
Banyaknya seluruh operasi penjumlahan dan pembandingan yang dilakukan dapat terlihat dari algoritme B, yakni sebagai berikut: Langkah 1: Pada N 1 : Terdapat ⎟N1⎟+⎟X1⎟ = u+ v buah simpul, dan dengan menggunakan operasi tripel diperlukan (u+v)3 operasi penjumlahan dan pembandingan.
{
}
q∈Xk dengan k=2,3,…,m−1, sehingga
19
pada tahap ini diperlukan (m−2)v2 operasi penjumlahan dan pembandingan. ii) Pada eksekusi yang dilakukan pada tahap terakhir, yakni menentukan wt, hanya diperlukan sebanyak v operasi penjumlahan dan pembandingan. Hal ini dikarenakan, untuk menentukan wt bergantung hanya pada ⎢Xm−1⎢= v.
Dapat disimpulkan bahwa seluruh penjumlahan dan pembandingan yang diperlukan dalam algoritme B adalah sebanyak: mu3+(6m−6)u2v+(12m−8)uv2+(8m+14)v3+ (m−2)v2+v. Berikut ini akan diberikan suatu tabel yang menunjukkan pembandingan kompleksitas antara algoritme dekomposisi Hu, Yen, dan algoritme yang diuraikan oleh Jarvis-Tufekci dalam karya ilmiah ini [Jarvis & Tufekci, 1982].
Jadi, jumlah operasi penjumlahan dan pembandingan yang diperoleh dengan algoritme B tersebut dapat ditentukan. Langkah 1 : (u+v)3+(m−2)(u+v)3+(u+v)3 Langkah 2 : (m−2)v2 + v
Algoritme dekomposisi Hu Yen Jarvis-Tufekci
Tabel 1. Perbandingan penghitungan kompleksitas. Penghitungan kompleksitas Penghitungan kompleksitas saat u = v saat u ≠ v (2m−1)u3 + (m2+11m−15)u2v (4m2+42m−74)u3 + (2m2+18m−35)uv2 + (m2+11m−23)v3 mu3 + (m2+6m−7)u2v + (2m2+10m−20)uv2 (4m2+23m−41)u3 2 3 + (m +6m−14)v mu3 + (6m−6)u2v + (12m−8)uv2 + (8m−14)v3 (27m−28)u3 + (m−2)u2 + u 2 + (m−2)v + v
Selain telah diberikan 2 buah kompleksitas algoritme dekomposisi lainnya (pada Tabel 1) sebagai pembandingan, maka akan diberikan pula kompleksitas dari suatu algoritme lain yang juga dapat digunakan untuk menentukan path terpendek antara source dan sink dalam suatu network. Algoritme tersebut adalah algoritme generic preflow-push yang dalam penghitungannya memerlukan operasi sebanyak 2n2 + 2n2 + 2n2m = O(n2m). [Ahuja et al., 1993]
•
Berikut ini diberikan contoh penghitungan banyaknya operasi yang diperlukan oleh algoritme dekomposisi Jarvis-Tufekci dan algoritme generic preflow-push dalam menentukan path terpendek antara source dan sink pada network yang diberikan pada Gambar 23. • Algoritme dekomposisi Jarvis-Tufekci: Diketahui bahwa u = 3, v = 3, dan m = 3. Oleh karena u = v = 3, maka banyaknya operasi yang diperlukan adalah (27m−28)u3 + (m−2)u2 + u = (27.3−28)33 + (3−2)32 + 3 = (81−28)27 + 9 + 3 = 1431+12 = 1443.
Algoritme generic preflow-push: Misalkan n menyatakan banyaknya simpul dan m menyatakan banyaknya sisi berarah pada network tersebut, maka dapat diketahui n = 13, dan m = 20. Banyaknya operasi yang diperlukan adalah 2n2 + 2n2 + 2n2m = 4 n2 + 2n2m = 4.132 + 2.132.20 = 4.169 + 2.169.20 = 676 + 6760 = 7436.
Berdasarkan penghitungan kompleksitas kedua algoritme tersebut, maka terlihat bahwa dalam menentukan path terpendek antara source dan sink dalam network yang diberikan pada Gambar 23 akan lebih efisien jika menggunakan algoritme dekomposisi JarvisTufekci. Hal itu dikarenakan banyaknya operasi yang diperlukan oleh algoritme dekomposisi Jarvis-Tufekci lebih sedikit daripada yang diperlukan oleh algoritme generic preflow-push. Jika dilakukan pembandingan antara algoritme dekomposisi Yen dengan algoritme
20
dekomposisi Jarvis-Tufekci, maka diperoleh pembandingan sebagai berikut: ( 4m 2 + 23m − 41u 3 )u 3 4m ≅ 1+ . (27 m − 28)u 3 27
SIMPULAN Dalam menyelesaikan masalah path terpendek pada suatu network, salah satu algoritme yang dapat digunakan adalah algoritme dekomposisi.
Kompleksitas algoritme dekomposisi JarvisTufekci saat u ≠ v adalah mu3 + (6m−6)u2v + (12m−8)uv2 + (8m−14)v3 + (m−2)v2 + v, sedangkan saat u = v adalah (27m−28)u3 + (m−2)u2 + u.
Dalam karya ilmiah ini, penentuan path terpendek antara simpul source (s) dan sink (t) menggunakan algoritme dekomposisi JarvisTufekci. Path terpendek diperoleh dengan memadankan path terpendek yang diperoleh pada network N’ yang terbentuk dengan path terpendek pada network N aslinya.
Berdasarkan Tabel 1, dapat terlihat bahwa tingkat efisiensi dari algoritme dekomposisi Jarvis-Tufekci yang diuraikan dalam karya ilmiah ini berbanding lurus dengan banyaknya subnetwork (m) yang terbentuk setelah suatu network didekomposisi.
DAFTAR PUSTAKA shortest paths in a network. IBM. J. Res. Develop 13(4): 387−390.
Ahuja, R. K., T. L. Magnanti, J. B. Orlin, 1993. Network Flow: Theory, Algorithms, and Applications. PrenticeHall, New Jersey.
Jarvis, J. J. & S. Tufekci. 1982. A decomposition algorithm for locating a shortest path between two nodes in a network. Networks 12:161−172.
Chartrand, G. & O. R. Oellermann. 1993. Applied and Algorithmic Graph Theory. McGraw-Hill, Inc. New York.
Land, A. H. & S. W. Stairs. 1967. The extension of the cascade algorithm to large graphs. Manag. Sci. 14:29−33.
Cormen, H.C., C. E. Leisserson, R. L. 1990. Introduction to Rivest. Algorithms. McGraw-Hill, New York.
Tufekci, S. 1983. Decomposition algorithms for finding the shortest path between a source node and a sink node of a network. Naval Research Logistics Quarterly 30:387−396.
Foulds, L. R. 1992. Graph Theory Applications. Springer-Verlag, New York. Hu, T. C. 1981. Combinatorial Algorithms. Addison-Wesley, California.
Yen, J. Y. 1968. On Hu’s algorithm for shortest paths in a network. Oper. Res 16:91−102.
Hu, T. C. & W. T. Torres. 1969. Shortcut in the decomposition algorithm for
21
22