BAB 2 LANDASAN TEORI 2.1. Konsep Dasar Graph Sebelum sampai pada pendefenisian masalah lintasan terpendek, terlebih dahulu pada bagian ini akan diuraikan mengenai konsep-konsep dasar dari model graph dan representasinya dalam memodelkan masalah lintasan terpendek. Definisi 2.1. Sebuah graph G adalah pasangan (V,E) dimana V adalah himpunan tak kosong yang anggotanya disebut verteks dan E adalah himpunan yang anggotanya adalah pasangan tak berurut dari verteks V yang disebut edge. Secara umum graph dapat digambarkan dengan suatu diagram dimana verteks ditunjukkan sebagai titik yang dinotasikan dengan v i, i = 1, 2,,P dan edge digambarkan dengan sebuah garis lurus atau garis lengkung yang menghubungkan dua verteks (v i, v j ) dan dinotasikan dengan e k. Sebagai ilustrasi dapat dilihat gambar 2.1. yaitu suatu graph yang mempunyai lima verteks dan enam edge. V 1 e 4 V 3 V e1 e e 3 e 6 V 2 e 2 V 4 Gambar 2.1. Graph Dengan Verteks dan 6 Edge
Definisi 2.2. Suatu digraph G terdiri dari himpunan verteks-verteks V(G):{v 1, v 2, }, himpunan edge-edge E(G):{e 1, e 2, }, dan suatu fungsi Ψ yang mengawankan setiap edge dalam E(G) ke suatu pasangan berurutan verteks ( v i, v j ). Jika e k = (v i, v j ) adalah suatu edge dalam G, maka v i disebut verteks awal e k dan v j disebut verteks akhir e k. Arah edge adalah dari v i ke v j. Perhatikan digraph G pada gambar 2.2. dibawah ini. v 2 v 1 e 1 e 4 v 3 e 6 e 3 e 2 e7 e 8 v 6 v 4 e 9 v Gambar 2.2. Digraph Jika G adalah graph (berarah atau tidak) dengan verteks V dan edge E, maka dapat ditulis G=(V,E). 2.2. Graph Berlabel Hubungan antar verteks-verteks dalam graph perlu diperjelas. Hubungan tidak cukup hanya menunjukkan verteks-verteks mana yang berhubungan langsung, tetapi juga seberapa kuat hubungan itu. Sebagai contoh, andaikata suatu graph menyatakan peta suatu daerah. Verteks-verteks graph menyatakan kota-kota yang ada di daerah tersebut. Edge-edge dalam graph menyatakan jalan yang menghubungkan kota-kota tersebut. Informasi tentang peta daerah perlu diperjelas dengan mencantumkan jarak antara 2 kota yang berhubungan. Informasi tentang jarak dibutuhkan karena dalam graph, letak verteks dan panjang edgenya tidak menyatakan jarak 2 kota yang
sebenarnya seperti halnya dengan peta yang sebenarnya. Jadi setiap garis dalam graph berhubungan dengan suatu label yang menyatakan bobot garis tersebut. Definisi 2.3. Graph Berlabel (weighted graph) adalah suatu graph tanpa edge paralel dimana setiap edgenya berhubungan dengan suatu bilangan riil tak negatif yang menyatakan bobot edge (w(e)) tersebut. Jumlah bobot semua edge disebut Total Bobot. Matriks yang bersesuaian dengan graph berlabel G adalah matriks hubung A = (a ij ) dengan a ij = bobot edge yang menghubungkan verteks v i dengan verteks v j. Jika verteks v i tidak berhubungan langsung dengan verteks v j maka a ij =, dan a ij = 0 jika i = j. Contoh 2.1. Dalam suatu propinsi, ada 8 kota (v 1, v 2,, v 8 ) yang akan dihubungkan dengan jaringan listrik. Biaya pemasangan jaringan listrik yang mungkin dibuat antar 2 kota adalah sebagai berikut : Edge e 4 e 7 e 2 e 8 e 9 e 1 e 3 e 10 e e 11 e 6 Kota yang dihubungkan v2 v 3 v 4 v 6 v 1 v 7 v 3 v 4 v 3 v v 1 v 2 v 1 v 4 v 6 v 8 v 7 v 8 v v 6 v 6 v 7 Biaya per satuan 3 4 1 1 1 1 1 18 a. Graph berlabel untuk menyatakan jaringan listrik di 8 kota dapat digambarkan pada gambar 2.3. dibawah ini. Angka dalam kurung menyatakan bobot edge yang bersangkutan. Bobot tersebut menyatakan biaya pengadaan jaringan listrik.
v 1 e 2 () e 3 (1) v 7 v 4 e 6 (18) e (1) e 7 (4) e 1 (1) e 8 () v 2 e 4 (3) v 3 e 9 () v 8 e 10 (1) v 6 e 11 (1) v Gambar 2.3. Graph Jaringan listrik di 8 kota b. Matriks hubung untuk menyatakan graph berlabel pada gambar 2.3. adalah matriks A = (a ij ) dengan a ij = Jarak verteks vi dengan v j jika ada edge yang menghubungkan verteks v i dengan v j Jika tidak ada edge yang menghubungkan 0 jika i = j 1 verteks v i dengan v j v 1 v 2 v 3 v 4 v v 6 v 7 v 8 v 1 0 1 1 v 2 1 0 3 v 3 3 0 A = v 4 1 0 4 v 0 1 v 6 4 1 0 18 1 v 7 18 0 1 v 8 1 1 0
2.3. Path Minimum Salah satu aplikasi graph berarah berlabel yang sering dipakai adalah mencari path terpendek diantara 2 verteks. Apabila masalahnya adalah mencari jalur tercepat, path terpendek tetap dapat digunakan dengan cara mengganti nilai edge. Definisi 2.4. Misalkan G adalah suatu graph. Dimana v dan w adalah 2 verteks dalam G. Suatu Walk dari v ke w adalah barisan verteks-verteks berhubungan dan edge secara berselang-seling, diawali dari verteks v dan diakhiri pada verteks w. Walk dengan panjang n dari v ke w ditulis : v 0 e 1 v 1 e 2 v 2 v n-1 e n v n dengan v 0 = v; v n = w; v i-1 dan v i adalah verteks-verteks ujung edge e i. Path dengan panjang n dari v ke w adalah walk dari v ke w yang semua edgenya berbeda. Path dari v ke w dituliskan sebagai v = v 0 e 1 v 1 e 2 v 2 v n-1 e n v n = w dengan e i e j untuk i j. Definisi 2.. Lintasan adalah suatu barisan edge ( e e,..., e ) i, 1 i2 i k sedemikian rupa sehingga verteks terminal e berimpit dengan verteks awal i j i( j +1 ) e untuk 1 j k 1. Contoh 2.2. e 4 e 2 e 3 v 3 e v 4 v 1 v 2 e 6 e 1 e 8 e 7 e 10 v 6 v Gambar 2.4. Graph Dengan 6 Verteks dan 10 Edge e 9 Pada gambar 2.4. diatas terdapat : a. Semua edge berbeda (e 1, e 3, e 4, dan e masing-masing muncul sekali). Ada verteks yang berulang (v 3 muncul 2 kali). Verteks awal dan verteks akhir tidak
sama verteks awal = v 1 dan verteks akhir = v 4 ). Barisan ini merupakan Path dari v 1 ke v 4 dengan panjang 4. b. Ada edge yang muncul lebih dari sekali, yaitu e (muncul 2 kali) berarti barisan tersebut merupakan walk dari v 1 ke v dengan panjang. 2.4. Representasi Graph Dalam Matriks Matriks dapat digunakan untuk menyatakan suatu graph. Dengan menyatakan graph sebagai suatu matriks, maka perhitungan-perhitungan yang diperlukan dapat dilakukan dengan mudah. Kesulitan utama merepresentasikan graph dalam suatu matriks adalah keterbatasan matriks untuk mencakup semua informasi yang ada dalam graph. Akibatnya ada bermacam-macam matriks untuk menyatakan suatu graph tertentu. Tiap-tiap matriks tersebut mempunyai keuntungan yang berbeda-beda dalam menyaring informasi yang dibutuhkan pada graph. Misalkan G adalah sebuah graph dengan verteks-verteks v 1, v 2,, v m dan edge-edge e 1, e 2,, e n. Definisi 2.6. Matriks adjacency Misalkan A = (a ij ) adalah matriks m x m yang didefinisikan oleh a ij = 1 jika {u, v} adalah edge, yaitu vi adjacent terhadap v 0 lainnya Maka A disebut matriks adjacency dari G. Perhatikan a ij = a ji, sehingga A adalah sebuah matriks simetris. (Didefinisikan sebuah matriks adjacency untuk sebuah multigraph dengan pemisalan a ij menyatakan jumlah edge {v i, v j }.) j Definisi 2.7. Matriks Insiden Misalkan M = (m ij ) adalah matriks m x n yang didefinisikan oleh m = 1 verteks vi adalah incident pada edge e j. 0 lainnya Maka M disebut matriks incidence dari G.
Perhatikan gambar 2.6 berikut ini. e v 1 e 2 v e 6 e 1 e 3 e 7 v 4 e 8 v 2 e 4 v 3 Gambar 2.. Graph Dengan Verteks dan 8 Edge Pada gambar 2.. Matriks adjacency A = (a ij ) dari graph G. Karena G mempunyai verteks maka A akan menjadimatriks x. Dimana a ij = 1 jika ada sebuah edge antara v i dan v j, dan a ij = 0 jika lainnya. Ini akan menghasilkan matriks berikut : v1 v 2 v 3 v 4 v v 1 0 1 1 1 1 A = v 2 1 0 1 0 0 v 3 1 1 0 1 1 v 4 1 0 1 0 1 v 1 0 1 1 0 Pada gambar 2.. Matriks Incidence M = (m ij ) dari graph G. Karena G mempunyai verteks dan 8 edge maka M akan menjadi matris x 8. Dimana m ij =1 jika verteks v i anggota dari edge e j dan m ij = 0 untuk lainnya. Ini akan menghasilkan matriks berikut.
e 1 e 2 e 3 e 4 e e 6 e 7 e 8 v 1 1 1 1 0 1 0 0 0 A = v 2 1 0 0 1 0 0 0 0 v 3 0 0 1 1 0 0 1 1 v 4 0 0 0 0 1 1 0 1 v 0 1 0 0 0 1 1 0 Misalkan G adalah sebuah graph berarah. Sebuah edge berarah e = [u,v] dikatakan mulai pada verteks awal u dan berahkhir di verteks akhir v, dan u dan v dikatakan adjacent. 2.. Graph Multi Tahap Graph multi tahap (multistage graph) adalah graph yang tiap simpul di dalam graph tersebut menyatakan status, sedangkan V1, V2, menyatakan tahap. V 1 V 2 V 3 V 4 V 2 6 9 3 1 7 10 12 4 8 11 Gambar 2.6. Graph Multi Tahap (Multistage Graph)
2.6. Shortest Path Setiap path dalam digraph mempunyai nilai yang dihubungkan dengan nilai path tersebut, yang nilainya adalah jumlah dari nilai edge path tersebut. Dari ukuran dasar ini dapat dirumuskan masalah seperti mencari lintasan terpendek antara dua vertek dan meminimumkan biaya. Banyak bidang penerapan mensyaratkan untuk menentukan lintasan terpendek berarah dari asal ke tujuan di dalam suatu distribusi aliran berarah. Algoritma yang diberikan dapat dimodifikasi dengan mudah untuk menghadapi lintasan berarah pada setiap iterasinya. Suatu versi yang lebih umum dari masalah lintasan terpendek adalah menentukan lintasan terpendek dari sembarang verteks menuju ke setiap verteks lainnya. Pilihan lain adalah membuang kendala tak negatif bagi jarak. Suatu kendala lain dapat juga diberlakukan dalam suatu masalah lintasan terpendek. Andaikan diberikan sebuah graph G dalam tiap edge (x,y) dihubungkan dengan verteks a (x,y) mewakili panjang dari edge. Dalam beberapa hal, panjang sebenarnya mewakili biaya atau beberapa nilai lainnya. Panjang dari lintasan adalah menentukan panjang jumlah dari masing-masing edge yang terdiri dari lintasan. Untuk 2 verteks s dan t dalam G, ada beberapa lintasan dari s ke t. Masalah lintasan terpendek meliputi pencarian lintasan dari s ke t yang mempunyai lintasan terpendek dan biaya termurah. Pada persoalan ini akan terdorong untuk menyelesaikan suatu persoalan untuk menentukan lintasan terpendek dan biaya termurah dalam suatu jaringan dengan mengimplementasikannya ke dalam graf multi tahap dengan menggunakan algoritma dynamic programming Definisi 2.8. Lintasan terpendek antara dua verteks dari s ke t dalam jaringan adalah lintasan graph berarah sederhana dari s ke t dengan sifat dimana tidak ada lintasan lain yang memiliki nilai terendah.
Contoh 2.3. 2 X 1 1 2 2 3 X 3 X 2 X 4 1 3 X X 7 X 8 3 4 1 X 6 Gambar 2.7. Shortest Path (Garis Tebal) Pada gambar 2.7. dapat dilihat bahwa setiap edge terletak pada path-path dari titik 1 ke titik. Edge merepresentasikan saluran dengan kapasitas tertentu (contohnya, air) dapat dialirkan melalui saluran. Sedangkan verteks merepresentasikan persimpangan saluran. Air mengalir melalui verteks pada verteks yang dilalui Lintasan terpendek dari verteks pada graph di atas adalah P = {1 4, 4 } dengan kapasitas 4.