Anda di halaman 1dari 17

1

VIII Lintasan Terpendek Banyak aplikasi teori graf yang membutuhkan pengertian graf berbobot. Definisi (19): Sebuah graf G = (V, E) disebut sebuah graf berbobot (weight graph), apabila terdapat sebuah fungsi bobot bernilai real W pada himpunan E, W : E R, nilai W(e) disebut bobot untuk sisi e, e E. Graf berbobot tersebut dinyatakan pula sebagai G = (V, E, W). Graf berbobot G = (V, E, W) dapat menyatakan suatu sistem perhubungan udara, di mana V = himpunan kota-kota E = himpunan penerbangan langsung dari satu kota ke kota lain W = fungsi bernilai real pada E yang menyatakan jarak atau ongkos atau waktu suatu sistem jaringan komputer, di mana V = himpunan komputer E = himpunan jalur komunikasi langsung antar dua komputer W = fungsi bernilai real pada E yang menyatakan jarak atau ongkos atau waktu Dengan adanya bobot pada setiap sisi, maka timbul persoalan menentukan lintasan terpendek (shortest path) antara dua verteks dalam sebuah graf berbobot. Lintasan terpendek dapat berarti jalur termurah atau terdekat atau tercepat tergantung

pada makna dari fungsi bobot yang bersangkutan. Terdapat beberapa algoritma untuk mencari lintasan terpendek antara dua verteks dalam sebuah graf berbobot, salah satunya adalah algoritma Dijkstra. Ide dasar dari algoritma tersebut adalah sebagai berikut: Misalkan dalam sebuah graf berbobot G = (V, E, W) ingin dicari suatu lintasan terpendek P(a, z) dari verteks a V ke verteks z V. Untuk itu, dicari dahulu lintasan terpendek dari a ke suatu verteks lain b di V, P(a, b), kemudian dicari lagi lintasan terpendek P(a, c) dari a ke suatu verteks lain lagi c di V, dan seterusnya. Lalu berhenti apabila lintasan P(a, z) telah diperoleh. Caranya adalah sebagai berikut: 1) Selama proses berlangsung ditentukan dua himpunan S V dan B V, dengan S B = V dan S B = , dan S = himpunan verteks-verteks yang sudah diketahui lintasan terpendeknya dari a B = himpunan verteks-verteks yang belum diketahui lintasan terpendeknya dari a 2) Setiap sisi memiliki bobot tertentu, sisi yang tidak ada diberi bobot tak berhingga (). 3) Misalkan B adalah suatu subset dari V dan a B, dan S = V - B. Lintasan terpendek dari a ke salah satu verteks di B dapat ditentukan sebagai berikut: Untuk setiap verteks t B, diberi label L(t) yang menyatakan panjang suatu lintasan terpendek di antara semua lintasan dari a ke t yang tidak melibatkan verteks lain di B, (boleh melibatkan verteks lain di S), L(t) disebut label untuk t terhadap S. 4) Ambil verteks t1 di B yang memiliki label terkecil di antara semua label-label verteks di B, maka L(t1) adalah panjang lintasan terpendek dari a ke t1

Bukti: Misalkan L(t1) bukan panjang lintasan terpendek dari a ke t1, maka ada suatu lintasan P(a, t1) dari a ke t1 yang panjangnya kurang dari L(t1). Lintasan P(a,t1) ini pasti melibatkan satu atau lebih verteks di B1 = B - {t1}. Andaikan u adalah verteks pertama di B1 yang ditemui dalam lintasan P(a,t1) itu. Hal ini berarti bahwa L(u) < L(t1) Kontradiksi dengan L(t1) merupakan label terkecil di antara label-label verteks di B. 5) Cara efisien untuk menentukan label baru dari label sebelumnya adalah sebagai berikut: Misalkan semua verteks di B telah memiliki label terhadap suatu S, dan x adalah vertek di B dengan label terkecil. Bentuk S = S {x} dan B = B - {x}, maka label L(t) untuk verteks t di B terhadap S adalah L(t) = min [L(t), L(x) + W(x, t)] karena, lintasan terpendek dari a ke t tanpa melibatkan verteks lain di B dapat merupakan lintasan yang tidak melibatkan x dan vertek lain di B, maka L(t) bisa = L(t), lintasan yang terdiri dari suatu lintasan dari a ke x yang tidak melibatkan verteks di B kemudian diteruskan oleh sisi dari x ke t, maka L(t) bisa = L(x) + W(x, t). Contoh: C.46. Diberikan sebuah graf berbobot G = (V, E, W), dengan V = {a,b,c,d,e,z}, b d E = {(a,b),(a,c),(b,c),(b,d),(b,e), a z (c,e),(d,e),(d,z),(e,z)} c e dan W(a,b) = 1, W(a,c) = 4, W(b,c) = 2, W(b,d) = 7, W(b,e) = 5, W(c,e) = 1, W(d,e) = 3,

W(d,z) = 2, W(e,z) = 6. Jawab: Misalkan S = {a,b} dan B = {c,d,e,z}. Untuk menentukan label untuk c terhadap S, dicari semua lintasan dari a ke c yang tidak melibatkan verteks lain di B, di sini hanya ada dua,yaitu: Lintasan a,c dengan panjang W(a,c) = 4, dan Lintasan a,b,c dengan panjang W(a,b) + W(b,c) = 1 + 2 = 3, jadi, L(c) = min(4, 3) = 3. Lintasan dari a ke d yang tidak melibatkan verteks lain di B hanya ada satu, yaitu lintasan a,b,d dengan panjang W(a,b) + W(b,d) = 1 + 7 = 8, jadi, L(d) = 8. Lintasan dari a ke e yang tidak melibatkan verteks lain di B hanya ada satu, yaitu lintasan a,b,e dengan panjang W(a,b) + W(b,e) = 1 + 5 = 6, jadi, L(e) = 6. Lintasan dari a ke z yang tidak melibatkan verteks lain di B tidak ada, atau dapat diambil lintasan a,b,z dengan W(b,z) = , berarti panjang lintasan tersebut adalah W(a,b) + W(b,z) = 1 + = , jadi L(e) = . Di antara L(c), L(d), L(e) dan L(z), yang terkecil adalah L(c), maka panjang lintasan terdendek dari a ke c adalah L(c) = 3. Bentuk S = S {c} = {a,b,c}dan B = B - {c} = {d,e,z} maka L(d) = min [L(d), L(c) + W(c,d)] = min [8, 3 + ] = 8 L(e) = min [L(e), L(c) + W(c,e)] = min [6, 3 + 1] = 4 L(z) = min [L(z), L(c) + W(c,z)] = min [, 3 + ] = Jadi panjang litasan terpendek dari a ke e adalah 4.

Algoritma Dijkstra untuk mencari panjang lintasan terpendek dari vertek a ke vertek z di sebuah graf berbobot G = (V, E, W) 1) Pertama-tama misalkan S = {a} dan B = V - {a}. Untuk setiap verteks t di B tentukan, L(t) = W(a,t), (W(a,t) = bila (a,t) E). 1) Pilih verteks x di B yeng memiliki label terkecil terhadap S. 1) Jika x adalah verteks yang ingin dicapai, yaitu z, maka stop. Jika tidak, bentuk S = S {x} dan B = B - {x}. Untuk setiap verteks t di B tentukan labelnya terhadap S dengan rumus L(t) = min [L(t), L(x) + W(x,t)] 4) Ulangi langkah 2) dan 3) dengan memakai S sebagai S dan B sebagai B. C.47. Tentukan lintasan terpendek dari verteks a ke verteks z dan panjangnya pada graf berbobot G = (V,E,W), dengan V = {a,b,c,d,e,z}, b d E = {(a,b),(a,c),(b,c),(b,d),(b,e), a z (c,e),(d,e),(d,z),(e,z)} c e dan W(a,b) = 1, W(a,c) = 4, W(b,c) = 2, W(b,d) = 7, W(b,e) = 5, W(c,e) = 1, W(d,e) = 3, W(d,z) = 2, W(e,z) = 6. Jawab: Pertama-tama ambil S = {a} dan B = V - {a} = {b,c,d,e,z}. Untuk setiap verteks t di B, diberikan label L(t) dan label pendamping a , L(b) = W(a,b) = 1, (1, a ) b d (,a ) L(c) = W(a,c) = 4, L(d) = W(a,d) = , a z (,a ) L(e) = W(a,e) = ,

L(z) = W(a,z) = .

(4, a ) c

e (,a )

Tahap 1: Label terkecil adalah L(b) = 1, maka ambil x = b, dan bentuk S = S {b} = {a,b} dan B = B - {b} = {c,d,e,z}. Untuk setiap verteks t di B, diberikan label L(t) dan label pendamping a,b , L(c) = min [L(c), L(b) + W(b, c)] = min [4, 1 + 2] = 3, L(d) = min [L(d), L(b) + W(b, d)] = min [, 1 + 7] = 8, L(e) = min [L(e), L(b) + W(b, e)] = min [, 1 + 5] = 6 L(z) = min [L(z), L(b) + W(b,z)] = min [, 1 + ] = (1,a ) b a (3,a,b ) c d (8,a,b ) z (,a,b ) e (6,a,b )

Ambil S sebagai S dan B sebagai B, begitu pula L(t) sebagai L(t) untuk semua verteks t di B. Tahap 2: Label terkecil adalah L(c) = 3, maka ambil x = c, dan bentuk S = S {c} = {a,b,c} dan B = B - {c} = {d,e,z}. Untuk setiap verteks t di B, diberikan label L(t) dan label pendamping a,b,c , L(d) = min [L(d), L(c) + W(c,d)] = min [8, 3 + ] = 8 L(e) = min [L(e), L(c) + W(c,e)] = min [6, 3 + 1] = 4 L(z) = min [L(z), L(b) + W(c,z)] = min [, 3 + ] = (1,a ) b a (,a,b,c ) d(8,a,b,c ) z

(3,a,b ) c

e (4,a,b,c )

Ambil S sebagai S dan B sebagai B, begitu pula L(t) sebagai L(t) untuk semua verteks t di B. Tahap 3: Label terkecil adalah L(e) = 4, maka ambil x = e, dan bentuk S = S {e} = {a,b,c,e} dan B = B - {e} = {d,z}. Untuk setiap verteks t di B, diberikan label L(t) dan label pendamping a,b,c,e , L(d) = min [L(d), L(e) + W(e,d)] = min [8, 4 + 3] = 7 L(z) = min [L(z), L(e) + W(e,z)] = min [, 4 + 6] = 10 (1,a ) b a (3,a,b ) c d (7,a,b,c,e ) z (10,a,b,c,e ) e (4,a,b,c )

Ambil S sebagai S dan B sebagai B, begitu pula L(t) sebagai L(t) untuk semua verteks t di B. Tahap 4: Label terkecil adalah L(d) = 7, maka ambil x = d, dan bentuk S = S {d} = {a,b,c,e,d} dan B = B - {e} = {z}. Untuk setiap verteks t di B, diberikan label L(t) dan label pendamping a,b,c,e,d , L(z) = min [L(z), L(d) + W(d,z)] = min [10, 7 + 2] = 9 (1,a ) b a d (7,a,b,c,e ) z (9,a,b,c,e,d )

(3,a,b ) c

e (4,a,b,c )

Ambil S sebagai S dan B sebagai B, begitu pula L(t) sebagai L(t) untuk semua verteks t di B. Tahap 5: Label terkecil adalah L(z) = 9, maka ambil x = z, dan sampailah pada tujuan. Jadi panjang lintasan terpendek dari a ke z adalah 9. Dan label pendamping verteks z memberikan lintasan terpendeknya, yaitu a,b,c,e,d,z . Dari komputasi di atas, selain diperoleh lintasan terpendek dari verteks a ke verteks z, juga diperoleh lintasan terpendek dari a ke b : lintasan a,b dengan panjang 1 c : lintasan a,b,c dengan panjang 3 d : lintasan a,b,c,e,d dengan panjang 7 e : lintasan a,b,c,e dengan panjang 4. C.48. Tentukan sebuah lintasan terpendek dari verteks a ke verteks z dan panjangnya pada graf berbobot G = (V,E,W), dengan V = {a,b,c,d,e,f,g,z}, E = {(a,b), (a,c), (b,c), (b,d), (c,d), (c,e), (d,e), (d,f), (e,g), (f,g), (f,z), (g,z)}, dan W(a,b) = 4, W(a,c) = 3, W(b,c) = 2, W(b,d) = 5, W(c,d) =3, W(c,e) = 6, W(d,e) = 1, W(d,f) = 5, W(e,g) = 5, W(f,g) = 2, W(f,z) = 7, W(g,z) = 4. b a d f z

10

IX

Graf Planar

Definisi (20): Sebuah graf G = (V,E) disebut sebuah graf planar apabila graf tersebut dapat digambarkan dalam sebuah bidang datar tanpa ada sisi yang saling berpotongan (kecuali sisi sisi berpotongan pada sebuah verteks). Contoh: C.49. 1) Tunjukkan bahwa graf lengkap dengan 4 verteks K4 adalah planar. Jawab: K4 adalah sebuah graf planar 2) Apakah Q3, yaitu graf berbentuk kubus dimensi 3, merupakan graf planar? Jawab: Q3 adalah sebuah graf planar 3) Apakah graf bipartite lengkap K3,3 planar? Jawab: K3,3 bukan sebuah graf planar. Representasi planar suatu graf (yaitu representasi graf itu pada bidang datar), membagi bidang datar tersebut menjadi daerahdaerah (regions). Contoh: C.50. Graf lengkap dengan 4 verteks membagi bidang datar menjadi 4 daerah: R1, R2, R3, dan R4. Terlihat bahwa Jumlah verteks = v = 4, jumlah daerah = r = 4, jumlah sisi = e = 6. Antara r, v dan e terdapat hubungan r = e - v + 2.

11

R1

R2

R3 R4

Teorema Euler (10): Misalkan G adalah sebuah graf sederhana planar terhubung dengan v verteks dan e sisi dan representasi planar graf itu membagi bidang datar itu menjadi r buah daerah, maka berlaku r = e - v + 2. Contoh: C.51. Sebuah graf sederhana planar terhubung G memiliki 20 verteks, masing-maing berderajat 3. Berapa daerah yang terjadi pada representasi planar dari graf G itu? Jawab: v = 20, jumlah derajat = 3 x 20 = 60 sedangkan telah diketahui bahwa: jumlah derajat = 2 x jumlah sisi jadi 2 x e = 60, maka e = 30 dari rumus Euler diperoleh : r = e - v + 2 = 30 - 20 + 2 = 12. Definisi (21): Derajat suatu daerah adalah jumlah sisi pada batas daerah itu. Apabila suatu sisi perlu ditelusuri dua kali dalam menelusuri batas daerah tersebut, maka sisi itu memberikan kontribusi 2 kepada derajat daerah tersebut. Contoh:

12

C.52. Derajat masing-masing daerah graf di bawah adalah derajat R1 = 3 R1 derajat R2 = 6 R2 derajat R3 = 7 R3 Teorema Euler I (11): Jika G adalah sebuah graf sederhana planar terhubung dengan v verteks dan e sisi, dengan v 3, maka e 3v 6. Contoh: C.53. Buktikan bahwa K5 tidak planar. Bukti: K5 memiliki jumlah verteks v = 5, jumlah sisi = e = (5 x 4)/2 = 10, maka 3v - 6 = 9 jadi pertaksamaan e 3v - 6, atau 10 9 tidak terpenuhi, maka berdasarkan Teorema (11) K5 tidak planar. Teorema Euler II (12): Jika G adalah sebuah graf sederhana planar terhubung dengan v verteks dan e sisi, dengan v 3, dan tidak memiliki sikuit dengan panjang 3, maka e 2v - 4. Contoh: C.54. Buktikan bahwa K3,3 tidak planar. Bukti: K3,3 memiliki jumlah verteks v = 6, jumlah sisi = e = 3 x 3 = 9, 3v - 6 = 12 di sini pertaksamaan e 3v - 6, atau 9 12 terpenuhi, tetapi tidak berarti bahwa K3,3 planar. K3,3 tidak memiliki sirkuit dengan panjang 3, maka dicoba Teorema (12). Dihitung

13

2v - 4 = 8. Terlihat sekarang bahwa e 2v - 4 tidak terpenuhi, maka K3,3 bukan graf planar. Definisi (22): Dari sebuah graf G = (V, E) dapat diperoleh sebuah graf baru G = (V, E) dengan melakukan operasi berikut: V = V {w}, dengan w V, dan untuk suatu sisi (u, v) di E bentuk E = (E - {(u, v)}) {(w, u), (w, v)}. Dengan perkataan lain, operasinya adalah menambah sebuah verteks baru w ke V dan menghapus sebuah sisi (u, v) E, dan sekaligus menambah dua buah sisi (u, w) dan (v, w) ke E, operasi ini disebut operasi pembelahan elementer (elementary subdivision) terhadap sisi (u, v). Teorema (13): Sebuah graf G yang diperoleh dari sebuah graf planar G dengan melakukan operasi pembelahan elementer berhingga kali juga merupakan sebuah graf planar. Bukti: Coba sendiri. Definisi (22): Dua graf G1 = (V1, E1) dan G2 = (V2, E2) dikatakan homeomorfik jika kedua graf itu dapat diperoleh dari graf yang sama melalui sebarisan operasi pembelahan elementer. Contoh: C.55. Graf G = (V, E) dengan V = {a,b,c,d,e,f,g,h} dan E = {(a,d),(a,f),(b,c),(b,d),(b,g),(c,f),(e,h),(g,h)} dapat diperoleh dari graf G1 = (V1,E1) dengan V1 = {a,b,c,d,e,f,g} dan E1 = {(a,d),(a,f),(b,c),(b,d),(b,g),(c,f),(e,g)}

14

dengan melakukan operasi pembelahan elementer terhadap sisi (e,g). a b a b a b G: f g e G1 : f c d g e G2 : f c d e

c d h

Graf G1 = (V1, E1) dapat diperoleh dari graf G2 = (V2, E2) dengan V2 = {a,b,c,d,e,f} dan E2 = {(a,d),(a,f),(b,c),(b,d),(b,e),(c,f)} dengan melakukan operasi pembelahan elementer terhadap sisi (b,e). Graf G2 = (V2, E2) dapat diperoleh dari graf G3 = (V3, E3) dengan V3 = {a,b,c,d,e} dan E3 = {(a,d),(a,c),(b,c),(b,d),(b,e)}, dengan melakukan operasi pembelahan elementer terhadap sisi (a,c). G3 : a b G4 : a b c d e c e

Graf G3 = (V3, E3) dapat diperoleh dari graf G4 = (V4, E4) dengan V4 = {a,b,c,e} dan E4 = {(a,b),(a,c),(b,c),(b,e)}, dengan melakukan operasi pembelahan elementer terhadap sisi (a,b). Jadi lima graf G, G1, G2, G3, G4 saling homeomorfik. Teorema Kuratowski (14): Sebuah graf G = (V, E) adalah tidak planar jika dan hanya jika G mengandung sebuah subgraf yang homeomorfik dengan K3,3 atau K5. Contoh:

15

C.56. Apakah graf G = (V,E) planar bila V = {a,b,c,d,e,f,g,h,i,j,k} dan E = {(a,b),(a,c),(a,g),(a,i),(b,c),(b,g),(b,i),(b,j),(c,d),(c,h), (c,i),(c,j),(d,e), (e,f),(f,g),(g,h),(g,i),(g,k),(i,k)}? Jawab: a a i b i b k j g h c g c f e d f e d Graf G Graf G1

G mengandung subgraf G1 = (V1,E1) dengan V1 = {a,b,c,d,e,f,g,i} dan E1 = {(a,b),(a,c),(a,g),(a,i),(b,c),(b,g), (b,i),(c,d),(c,i),(d,e),(e,f),(f,g),(g,i)} Sedangkan graf G1 homeomorfik dengan K5.

16

X Pewarnaan Graf Dalam mewarnai suatu peta, dua daerah (negara atau propinsi) yang memikili batas bersama biasanya diberi warna yang berbeda. Maka timbul pertanyaan berapa jumlah warna yang diperlukan untuk mewarnai suatu peta agar daerah-daerah yang memiliki batas yang sama tidak berwarna sama? Setiap peta dapat direpresentasikan oleh sebuah graf, di mana verteksnya merepresentasikan daerah, dan sebuah sisi menghubungkan 2 verteks yang memiliki batas bersekutuan. Dua daerah yang hanya bersinggungan di satu titik tidak dianggap memiliki batas persekutuan. Contoh: C.57. Graf G1 dan G2 masing-masing menyatakan peta di sampingnya. G1 : G2 : A C A B C B D DE

Jadi persoalan mewarnai peta setara dengan persoalan mewarnai verteks-verteks sehinga tidak ada dua verteks yang bersisian berwarna sama. Definisi (23): Jumlah warna yang paling kecil yang dibutuhkan untuk mewarnai sebuah graf agar tidak ada dua verteks yang bersisian berwarna sama disebut bilangan kromatik (chromatic number) dari graf tersebut.

17

Contoh: C.58. Tentukan bilangan kromatik dari Kn dan Km,n. Jawab: Bilangan kromatik dari Kn adalah n dan bilangan kromatik dari Km,n adalah 2. C.59. Tentukan bilangan kromatik dari graf G = (V, E) dengan V = {a,b,c,d,e,f,g} dan b e E = {(a,b),(a,c),(b,c),(b,d),(b,e), (c,d), (c,f),(d,e),(d,f),(e,f),(e,g),(f,g)} a d g Jawab: Bilangan kromatik dari G adalah 3. c f

C.60. Tentukan bilangan kromatik dari graf G = (V, E) dengan V = {a,b,c,d,e,f,g} dan b e E = {(a,b),(a,c),(a,g),(b,c),(b,d),(b,e), (c,d),(c,f),(d,e),(d,f),(e,f),(e,g),(f,g)} a d g c f Jawab: Bilangan kromatik dari G adalah 4. Teorema Empat Warna (Four coloring) (15): Bilangan kromatik dari suatu graf planar adalah lebih kecil atau sama dengan 4.

Anda mungkin juga menyukai