Bab
3
Teori Graf Teori graf merupakan pokok bahasan matematika yang telah tua usianya (teori ini muncul pertama sekali pada tahun 1736) namun masih dipelajari hingga saat ini, ini disebabkan penerapan teori ini dalam pemrograman komputer. Selain dalam pemrograman komputer teori graf juga diterapkan dalam ilmi kimia, operasi penelitian, teknik elektro, linguistik, dan ekonomi. Graf digunakan untuk merepresentasikan objek-ojek diskrit dan hubungan antara objek-objek tersebut. Beberapa contoh graf yang sering dijumpai dalam kehidupan sehari-hari antara lain: struktur organisasi, bagan alir pengambilan mata kuliah, peta, rangkaian listrik, dan lain-lain. Peta yang merupakan contoh graf yang sering kita perhatikan dapat menolong kita untuk melihat hubungan jalan raya yang menghubungkan kota-kota dalam peta itu, juga dapat dilihat jarak (dalam skala) jalan-jalan itu. Sehingga dengan melihat peta kita dapat menentukan rute perjalanan mana yang harus kita ikuti agar lebih cepat sampai ke tujuan.
Tujuan Instruksional Umum
Bab 3. Teori Graf
100
Agar mahasiswa memahami teori graf dan penerapannya dalam merepresentasikan objek-objek diskrit dan dalam hubungannya pemrograman, misalnya dengan algoritma lintasan terpendek.
Tujuan Instruksional Khusus Setelah mempelajari topik-topik bahasan dalam bab ini, mahasiswa diharapkan mampu: 1. Membedakan directed dan undirected graf. 2. Memahami istilah-istilah dalam graf seperti, edge, verteks, path, graf berarah, graf tidak berarah. 3. Memahami aplikasi siklus Hamilton untuk memecahkan masalah the traveling sales person. 4. Menentukan siklus Euler dan siklus Hamilton dari suatu graf. 5. Menerapkan algoritma Dijkstra untuk memecahkan masalah lintasan terpendek dalam kasus the travelling sales person. 6. Menuliskan representasi matriks menurut adjacency matriks dan incidence matriks. 7. Menentukan dua graf yang diberikan isomorfis dan identik. 8. Memahami aplikasi graf dalam pemograman komputer.
Topik-topik bahasan 3.1. Pendahuluan 3.2. Graf tak-berarah dan berarah 3.3. Lintasan dan siklus 3.4. Siklus Hamilton dan masalah travelling salesperson. 3.5. Algoritma lintasan terpendek. 3.6. Representasi graf 3.7. Keisomorfisan graf 3.8. Graf bidang. 3.9. Bilangan Erdos Ringkasan Bab
Bab 3. Teori Graf
101
Soal-soal Latihan
3.1. Pendahuluan Perhatikan gambar 3.1 di bawah ini. Gambar 3.1 menunjukkan peta lokasi 10 (A, B, C, D, E, F, G, H, I, J) kota dalam suatu propinsi di negara tertentu. A C B
D
E F H
G I
J
Gambar 3.1. Peta 10 kota A, B, C,…, I dalam suatu daerah. Peta di atas dapat digambar ulang sebagai sebuah graf seperti gambar 3.2 berikut: B e3 E e9 F
A
e1
C
e2
e4
e5
e7
e6 e8
D
e10 e12
I
e13
G
e14
J e11 99 H
Gambar 3.2. Graf yang mewakili peta pada gambar 3.1
Bab 3. Teori Graf
102
Dalam graf terdapat titik-titik yang dihubungkan oleh garisgaris. Titik-titik ini disebut verteks (simpul), sedangkan garis-garis ini disebut edges (sisi). Label dari verteks adalah A, B, C, …, J. Verteks-verteks (kota) ini dapat juga disimbolkan dengan A=v0, B=v1, C=v2, …, J=v9 Sedangkan label dari edges adalah e0, e1,…,e13. Jika kita mengadakan perjalanan dari kota A hingga ke J, dengan lintasan tertentu, maka kita mengambil lintasan (path) lengkap. Definisi Graf: Secara sederhana sebuah graf adalah merupakan kumpulan dari verteks-verteks, bersama-sama dengan beberapa edge yang menghubungkan verteks-verteks itu. Sebuah graf adalah sebuah objek G=(V,E), dimana V adalah sebuah himpunan terbatas dan E adalah kumpulan dari subset dari V. Elemen-elemen dari V disebut verteks dan elemen-elemen dari E disebut edges. Dua verteks v,w ∈ V disebut berdekatan (adjacent) jika (v,w) ∈ E; dengan kata lain, jika v dan w dihubungkan dengan sebuah edge.
3.2 Graf tak-berarah dan berarah Graf tak berarah. Sebuah graf tak-berarah G (directed graph) terdiri dari himpunan verteks V (simpul) dan himpunan edges E sedemikian hingga masing-masing edges e ∈ E berhubungan dengan pasangan tak berurutan dengan verteks. Jika ada edge tertentu e menghubungkan verteks v dan w, kita menulis e=(v,w) atau e=(w,v). Dalam konteks ini (v,w) menyatakan sebuah edge antara v dan w dalam graf takberarah dan bukan pasangan teratur. Graf berarah. Sebuah graf berarah G (directed graph) terdiri dari himpunan verteks V (simpul) dan himpunan edges E sedemikian hingga masing-masing edges e ∈ E berhubungan dengan pasangan berurutan dengan verteks. Jika ada edge tertentu e
Bab 3. Teori Graf
103
menghubungkan verteks v dan w, kita menulis e=(v,w). Pada gambar 3.3 berikut ditunjukkan graf berarah. Graf ini merupakan gambar yang sama dengan graf pada gambar 3.2, kecuali dengan adanya panah yang membedakan graf berarah dengan graf tak-berarah. B e3 E e9 F
A
e1
C
e2 e5
e4 e7
e6 e8
D
e10 e12
I
e13
G
e14
J e11 99 H
Gambar 3.3. Graf berarah.
Cara menuliskan graf. Jika G adalah sebuah graf (directed atau undirected graph) berhubungan dengan verteks V dan edges E kita dapat menulis graf tersebut sebagai G=(V,E) ◊ Contoh 3.1. Perhatikan graf pada gambar 3.2. Nyatakan semua edges dalam verteks, dan himpunan E dan V dan nyatakan graf tersebut sebagai graf G. Jawab: e1 = (v0,v1)= (v1,v0) e2 = (v0,v2)= (v2,v0) e3 = (v1,v4)= (v4,v1) e4 = (v1,v3)= (v3,v1) e5 = (v2,v3)= (v3,v2) e6 = (v2,v9)= (v9,v2) e7 = (v4,v3)= (v3,v4) e8 = (v9,v3)= (v3,v9) e9 = (v4,v5)= (v5,v4) e10 = (v4,v6)= (v6,v4) e11 = (v3,v6)= (v6,v3) e12 = (v7,v9)= (v9,v7) e13 = (v5,v8)= (v7,v5) e14 = (v6,v8)= (v8,v6) e15 = (v7,v6)= (v6,v7) E = {e1,e2,e3,e4,e5,e6,e7,e8,e9,e9,e10,e11,e12,e13,e14,e15} V = {v0,v1,v2,v3,v4,v5,v6,v7,v8,v9}
Bab 3. Teori Graf
104
G=({v0,v1,v2,v3,v4,v5,v6,v7,v8,v9}, {e1,e2,e3,e4,e5,e6,e7,e8,e9,e9,e10,e11, e12,e13,e14,e15}) ◊ ◊ Contoh 3.2. Perhatikan graf pada gambar 3.3. Nyatakan semua edges dalam verteks. Jawab. e1 = (v1,v0) e2 = (v0,v2) e3 = (v1,v4) e4 = (v1,v3) e5 = (v2,v3) e6 = (v2,v9) e7 = (v4,v3) e8 = (v3,v9) e9 = (v4,v5) e10 = (v4,v6) e11 = (v3,v6) e12 = (v9,v7) e13 = (v6,v8) e14 = (v8,v6) e15 = (v7,v6) ◊ Jika e1 dan e2 keduanya berhubungan dengan pasangan verteks (v1,v2), maka verteks e1 dan e2 disebut edge paralel (sejajar). Sebuah edge e yang berawal dan berakhir di verteks v, e=(v,v), maka verteks e disebut loop. Jika ada tidak ada satupun edge yang dibuhungkan dengan sebuah verteks v maka verteks v disebut verteks terisolasi (isolated vertex). Sebuah graf yang tidak memiliki edge paralel maupun loop, disebut graf sederhana (simple graph). Sebuah graf dimana semua edgenya merupakan sebuah angka yang menyatakan nilai (panjang) dari edge itu disebut weighted graph (graf bernilai). Panjang suatu lintasan dapat dihitung yaitu merupakan jumlah dari semua edge yang dilalui. ◊ Contoh 3.3. Lihat graf berikut ini. Dari segala kemungkinan lintasan dari a ke e tentukan panjang lintasannya.
Bab 3. Teori Graf
105 b
8 a 4
d
6
2 6
c
3
9 12
5 4 e
Gambar 3.4. Graf untuk contoh soal 3.3. Ada 6 kemungkinan lintasan yang ditabelkan pada tabel berikut. Misalnya untuk lintasan pertama: (a,b)+(b,c)+(c,d)+(d,e) = 8+6+3+4 = 21. Lintasan a,b,c,d,e a,b,d,c,e a,c,b,d,e a,c,d,b,e a,d,b,c,e a,d,c,b,e
Panjang 21 28 24 26 27 22
◊ Contoh soal 3.3 merupakan salah satu penerapan sebuah graf yaitu untuk menentukan lintasan terpendek. Dalam teori graf masalah ini disebut sebagai the travelling salesperson problem. Seorang sales yang ingin menjual produknya kepada pelanggan di sejumlah kota, maka dia akan membentuk sebuah graf untuk semua kota-kota yang akan dikunjungi. Dari segala kemungkinan rute yang akan dilalui, dan dengan mempertimbangkan panjang jalan dari masing-masing rute yang akan dilalui itu, maka dia harus memutuskan rute mana yang harus dilalui agar perjalanannya efisien (lintasan yang dilalui adalah jarak terpendek). ◊
Bab 3. Teori Graf
106
Contoh 3.4: Kemiripan Graf Contoh berikut berhubungan dengan masalah mengelompokkan objek-objek ke dalam kelompok-kelompok didasarkan atas sifat-sifat objek itu. Misalnya suatu masalah akan dikerjakan dengan bahasa BASIC. Orang berbeda akan menuliskan program yang berbeda untuk menyelesaikan hal yang sama. Perbedaan yang dilakukan bisa jadi dalam hal jumlah baris program itu, juga jumlah perintah GOTO yang digunakan dan jumlah panggilan subrutin. Misalkan ada 5 programer menghasilkan 5 program yang diberikan pada tabel berikut:
Program
Jumlah baris
1 2 3 4 5
66 41 68 90 75
Jumlah perintah GOTO 20 10 5 34 12
Jumlah subrutin 1 2 8 5 14
Program ke-1 hingga ke-5 merupakan verteks v1,v2,v3,v4 dan v5. Verteks v berhubungan ketiga sifat-sifat jumlah baris (p1), jumlah GOTO (p2) dan jumlah subrutin(p3). Sedangkan untuk verteks w sifat-sifat itu disimbolkan dengan q1,q2, dan q3. Nilai edge untuk verteks v dan w, s(v,w), didefinisikan sebagai s(v,w) = |p1-q1|+|p2-q2|+|p3-q3|. Nilai dari s(v,w) menyatakan tingkat kemiripan dari dua program. Jika nilai s kecil maka dua program disebut mirip, sedangkan kalau nilai s besar maka dua program tsb tidak mirip. Dari definisi ini dapat dihitung nilai dari masing-masing edge sbb: s(v1,v2) s(v1,v4) s(v2,v3) s(v2,v5) s(v3,v5)
= = = = =
36 42 38 48 20
s(v1,v3) s(v1,v5) s(v2,v4) s(v3,v4) s(v4,v5)
= = = = =
24 30 76 54 46
Bab 3. Teori Graf
107
Bila kriteria nilai kemiripan itu misalnya ditentukan s=25 (rata-rata dari s(v3,v5) = 20 dan s(v1,v5)=30), maka programprogram yang mirip adalah v1,v3 dan v5. sedangkan program 2 dan 4 tidak mirip dengan program yang lain. ◊ Graf lengkap. Graf lengkap dengan n verteks, dinyatakan sebagai Kn, adalah graf sederhana dimana ada edge diantara tiap-tiap pasangan verteks. ◊ Contoh 3.5. Graf berikut adalah graf lengkap K4.
Gambar 3.5. Graf lengkap K4. ◊ Graf bipartisi. Sebuah graf G=(V,E) adalah graf bipartisi jika himpunan verteks V dapat dipartisi menjadi dua sub-himpunan V1 dan V2 sedemikian hingga masing-masing edge E ada pada setiap verteks dalam V1 dan V2. Graf bipartisi lengkap dengan m dan n verteks, disimbolkan Km,n adalah graf sederhana dimana verteksnya dapat dipartisi menjadi dua verteks V1 dengan m verteks dan V2 dengan n verteks dimana ada edge pada setiap pasangan verteks. ◊ Contoh 3.6.
Bab 3. Teori Graf
108
Graf (a) berikut adalah graf bipartisi dimana V1={ v1,v2,v3} dan V2=(v4,v5), sedangkan gambar (b) merupakan graf bipartisi lengkap K2,4. v3 v1
v4
v2
v5
v3
v1
v4
v2
v5 v6
(a)
(b)
Gambar 3.6. Graf bipartisi tidak lengkap (a) dan bipartisi lengkap (b). ◊
3.3 Lintasan dan siklus Misalkan v0 dan v v0 adalah verteks-verteks dalam sebuah graf. Sebuah lintasan dari v v 0 ke v vn dengan panjang n adalah sebuah deretan dengan n+1 verteks dan n edge mulai dari verteks v0 dan berakhir di vn, (v0, e1, v1, e2,…, vn-1,en,vn), dimana edge ei ada pada verteks vi-1 dan vi untuk i=1,2,…,n. ◊ Contoh 3.7. Tentukan sebuah lintasan dengan panjang 4 dari verteks 1 ke verteks 2.
Bab 3. Teori Graf
2
e2
e1
3 e3 e4
e5
1
109
4
e6 5 e 7
e8
7
6
Gambar 3.7. Graf untuk contoh soal 3.7. Lintasan dengan panjang 4 adalah (1,e1,2,e2,3,e3,4,e4,2). ◊ Sebuah graf adalah terhubung jika pada setiap verteks yang diberikan, v dan w, ada lintasan dari v ke w. Contohnya graf pada contoh soal 3.7 adalah graf terhubung karena ada lintasan dari v ke w yang diberikan. Subgraf. Misalkan G=(V,E) adalah sebuah graf. (V’,E’) adalah subgraf dari G jika: a. V’ ⊆ V dan E’ ⊆ E. b. Untuk setiap edge e’∈E, jika e’ menghubungkan v’ dan w’, maka v’,w’∈V’. Lintasan sederhana dan siklus. Misalkan v dan w ada dalam graf G. Sebuah lintasan sederhana dari v ke w adalah sebuah lintasan tanpa ada verteks yang berulang. Sebuah siklus (sirkuit) adalah sebuah lintasan dengan panjang bukan nol dari v ke v tanpa ada edge yang berulang. Sebuah siklus sederhana adalah sebuah siklus dari v ke v dimana, kecuali verteks awal dan terakhir, tidak ada verteks yang berulang.
Bab 3. Teori Graf
110
◊ Contoh 3.8. Perhatikan graf pada gambar 3.7. Tentukan yang mana merupakan lintasan sederhana, siklus dan siklus sederhana? Jawab. Tabel berikut ini meringkaskan lintasan yang merupakan lintasan sederhana, siklus dan siklus sederhana. Lintasan (6,5,2,4,3,2 ,1) (6,5,2,4) (2,6,5,2,4,3 ,2) (5,6,2,5) (7,6) ◊
Lintasan sederhan a?
Siklus?
Siklus sederha na
Tidak Ya Tidak Tidak Ya
Tidak Tidak Ya Ya Tidak
Tidak Tidak Tidak Ya Tidak
Masalah Jembatan Königsberg. Masalah jembatan Königserg adalah masalah yang pertama kali menggunakan graf pada tahun 1736 yang dikemukan oleh Leonhard Euler. Di kota Königserg (sekarang Kaliningrad Rusia) ada dua pulau kecil dalam di dalam sungai Pregel yang dihubungkan sebuah jembatan dan ada empat jembatan lainnya menghubungkan ke dua pulau dengan daratan, seperti ditunjukkan oleh gambar 3.8 berikut. Dimana di samping gambar tersebut diberikan graf yang berhubungan.
Bab 3. Teori Graf
111
A
A C
B
C sungai pregel
B
D
D
Gambar 3.8. Jembatan Könisberg dan representasi grafnya. Siklus Euler Jika sebuah graf G memiliki sebuah siklus Euler, maka G adalah graf terhubung dan setiap verteks memiliki derajat genap. Dengan kata lain jika G adalah graf terhubung dan setiap verteksnya berderajat genap, maka G memiliki siklus Euler. Jika G adalah sebuah graf dengan m edge dan vertices {v1,v2,…,vn}, maka n
∑δ(vi ) = 2m i =1
Dengan kata lain, jumlah derajat dari semua verteks dalam graf itu adalah genap. Bila kita melihat graf di kanan gambar 6.8, dapat dilihat bahwa semua verteks (A, B, C dan D) berderajat ganjil, dimana δ (A) = 3, δ (B) = 5, δ (C) = 3, δ (D) = 3. Sehingga graf tersebut tidak memiliki siklus Euler. Pemberian istilah siklus Euler, untuk menghormati Leonhard Euler yang pertama sekali menulis dan menjelaskan graf berhubungan dengan jembatan Königsberg. ◊ Contoh 3.9.
Bab 3. Teori Graf
112
Misalkan G adalah graf pada gambar 3.8, periksalah apakah G memiliki sebuah siklus Euler? Jika ada sebutkan salah satunya. v1
v2 v3 v5 v4 v6
v7
Gambar 3.8. Graf untuk contoh soal 3.9. Kita melihat bahwa δ (v1)=δ (v2)=δ (v3)=δ (v5)= 4, dan δ (v4) = 6, δ (v6)=δ (v7) = 2. Karena semua verteks berderajat genap maka dari definisi, graf pada gambar 3.8 memiliki siklus Euler, yaitu: (v6,v4,v7,v5,v1,v3,v4,v1,v2, v5,v4,v2,v3,v6). ◊ Sebuah graf mempunyai sebuah lintasan tanpa pengulangan edge dari v ke w (v≠ w) yang berisi semua edge dan verteks jika dan hanya jika graf itu terhubung dan v dan w adalah semua verteks yang memiliki derajat ganjil. Jika sebuah graf G berisi sebuah siklus dari v ke v, maka G berisi sebuah siklus sederhana dari v ke v.
Bab 3. Teori Graf
113
3.4 Siklus Hamilton Masalah siklus Hamilton ini pertama-tama dikemukakan oleh William R. Hamilton sekitar pertengahan 1800 berupa sebuah teka-teki tentang dodekahedron seperti gambar 3.9 berikut.
(a)
(b)
(c)
Gambar 3.9. (a) Dodekahedron, (b) Graf menyatakan (a), (c) Siklus Hamilton. Untuk menghormati Hamilton, siklus dalam sebuah graf G yang berisi masing-masing verteks dalam G tepat satu kali, kecuali verteks yang merupakan awal sikllus yang juga merupakan akhir siklus, disebut siklus Hamilton. Masalah the travelling salesperson berhubungan dengan masalah mendapatkan sebuah siklus Hamilton dalam sebuah graf. Masalahnya adalah, bila diberikan sebuah graf bernilai, maka akan ditentukan siklus Hamilton dengan panjang lintasan minimum. Masalah mendapat siklus Hamilton dalam sebuah graf kelihatannya mirip dengan masalah menentukan siklus Euler dalam sebuah graf. Pada siklus Euler, setiap edge dilewati satu kali saja, sementara pada siklus Hamilton yang dikunjungi satu kali saja adalah verteks, sehingga sebenarnya masalah kedua siklus ini berbeda. ◊ Contoh 3.10.
Bab 3. Teori Graf
114
Tentukan siklus Hamilton pada graf berikut. a
b f
d
c
e
g
Gambar 3.10. Graf untuk contoh soal 3.10 Jawab. Siklus Hamilton untuk graf di atas adalah (a,b,c,d,e,f,g,a). ◊ ◊ Contoh 3.11. Tunjukkan bahwa graf pada gambar 3.11 berikut tidak memiliki sebuah siklus Hamilton. v1 v4
v3
v2
v5
Gambar 3.11: Graf untuk contoh soal 3.11 Karena ada lima verteks maka sebuah siklus Hamilton harus memiliki lima edge. Tetapi karena pada graf di atas siklus yang akan dibentuk harus melewati verteks dua kali hingga kembali verteks semula maka tidak ada siklus Hamilton pada graf tersebut. Misalnya kita mulai dari v1, sehingga harus kembali ke v1, maka siklus yang mungkin dibuat adalah (v1,v2,v3,v4) kalau mau melewati v5 dan harus kembali ke v1 maka v2 harus dilewati 2 kali. Namun kalau langsung ke v1 dari v4, maka v5 tidak akan dilewati, sehingga tidak ada siklus Hamilton dalam graf tersebut. Ada siklus Hamilton pada graf tersebut, maka harus ada edge yang menghubungkan verteks v1 dan v5. ◊
Bab 3. Teori Graf
115
◊ Contoh 3.12. Tunjukkan apakah graf berikut memiliki siklus Hamilton atau tidak. b
a
c
e d g
h
f i
j k
l
m
Gambar 3.12: Graf untuk contoh soal 3.12 Misalkan graf tersebut memiliki siklus Hamilton, maka edge (a,b), (a,g), (b,c) dan (c,k) harus dilalui, karena masingmasing verteks dalam siklus Hamilton memiliki derajat 2. Sehingga edge (b,d) dan (b,f) tidak bagian dari siklus. Maka edge (g,d), (d,e), (e,f) dan (f,k) harus bagian dari siklus. Dengan meilhat graf di atas dapat diyakini bahwa graf tersebut tidak memiliki siklus Hamilton. ◊ ◊ Contoh 3.13: Kode Gray dan Siklus Hamilton Misalkan G1 menyatakan barisan 0,1. Kita mendefinisikan Gn dalam hal Gn-1 dengan aturan-aturan berikut: a). Misalkan GR n −1 menyatakan barisan Gn-1 yang ditulis terbalik.
Bab 3. Teori Graf
116
' b). Misalkan Gn menyatakan barisan yang diperoleh −1 dengan menambahkan imbuhan pada masing-masing anggota Gn −1 dengan 0.
c). Misalkan
Gn" − 1
menyatakan barisan yang diperoleh
dengan menambahkan imbuhan pada masing-masing GR n −1 dengan 1. ' d). Misalkan Gn adalah barisan berisi Gn −1 diikuti oleh
Gn" − 1
.
Maka Gn adalah kode Gray untuk setiap integer n. Maka dari definisi di atas dapat dibentuk kode gray G3 dimulai dengan G1. G1 R G1
0 1
1 0
' G1
00
01
11
10
00
01
11
10
GR 2
10
11
01
00
G'2
00
00
01
01
0
1
1
0
11
11
10
10
11
11
10
10
0
1
1
0
0
1
1
0
00
00
01
01
G1" G1
G"2 G2
Bab 3. Teori Graf
0
1
117
1
0
◊
3.5 Algoritma lintasan terpendek Graf dengan bobot adalah sebuah graf dimana nilai dari edges diberikan dan bahwa panjang dalam sebuah graf berbobot adalah jumlah dari bobot edge dalam lintasan itu. Misalkan w(i,j) adalah bobot dari edge(i,j). Kita ingin menentukan lintasan terpendek antara dua verteks yang diberikan. Berikut ini dituliskan algoritma yang menentukan lintasan terpendek. Algoritma ini dikembangkan oleh E.W. Dikstra, seorang ahli pemrograman berkebangsaan Belanda.
Bab 3. Teori Graf
118
◊ Contoh 3.14. Perhatikan graf berikut pada gambar 3.13(a). Tentukan lintasan terpendek dari A ke D untuk graf tersebut. Verteks yang tidak dilingkari dan memiliki label sementara. Verteks yang dilingkari memiliki label permanen.
Bab 3. Teori Graf
119
Bab 3. Teori Graf
120
Bab 3. Teori Graf
121
Gambar 3.13: Graf-graf untuk Langkah-langkah Dengan Menggunakan Algoritma Dijkstra ◊
3.6 Representasi graf Graf pada umumnya dinyatakan dengan menggambarnya. Berikut ini dijelaskan cara merepresentasikan graf dengan cara formal agar lebih dapat diolah dengan komputer. Ada 3 metode yang dibahas yaitu cara matriks berdekatan (verteks dengan verteks) dan matriks insiden (verteks dengan edge). Matriks berdekatan. ◊ Contoh 3.15. Diberikan matriks pada gambar 3.14 berikut. Buatlah matriks verteks dengan verteks. a
b
c d
e
Bab 3. Teori Graf
122
Gambar 3.14 : Graf untuk contoh soal 3.15. Matriks untuk graf di atas adalah: a b a 0 b 1 c 0 d0 e 1
1 0 1 0 1
c
d
e
0 1 1 0 1
0 0 0 0 1
1 1 1 1 0
◊ Perhatikan bahwa dengan menjumlahkan semua angka pada baris kita dapat menentukan derajat dari masing-masing verteks. Misalnya derajat dari verteks a adalah 2 dan derajat verteks e adalah 4. Perhatikan juga bahwa representasi graf dengan cara ini memungkinkan sebuah loop dapat direpresentasikan, akan tetapi tidak dapat direpresentasikan edge sejajar/paralel. Tetapi jika kita memodifikasi definisi dari matriks berdekatan ini sehingga diperbolehkan menggunakan sembarang bilangan bulat bukan negatif sebagai masukan maka kita dapat merepresentasikan edge sejajar. Matriks berdekatan bukanlah cara yang sangat efisien untuk merepresentasikan sebuah graf. Karena matriks menjadi simetris sepanjang diagonal utamanya, sehingga informasi kecuali pada diagonal utama, muncul dua kali. ◊ Contoh 3.16. Tuliskan matriks berdekatan untuk graf berikut:
Bab 3. Teori Graf
123
b
a c
d
e
Gambar 3.15: Graf untuk contoh soal 3.16 Matriks untuk graf di atas adalah: a b a 0 b 1 c 0 d1 e 0
1 0 1 0 1
c
d
e
0 1 0 1 1
1 0 1 0 0
0 1 1 0 0
◊ Jika A adalah matriks berdekatan dari sebuah graf, maka pangkat dari A: A, A2, A3,… menyatakan jumlah lintasan dengan berbagai panjang. Jelasnya, jika verteks dari graf G diberi label 1,2,3,…, maka elemen ke-ij dalam matriks An sama dengan jumlah lintasan dari i ke j dengan panjang n. Sebagai contoh, dari misalkan matriks di atas adalah A, maka: 0 1 2 A = 0 1 0
1 0 1 0 0 0 1 0 1 1 1 0 1 1x0 0 1 0 0 1 1 1 0 0 0
1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0
Bab 3. Teori Graf
124
a b a 2 b 0 = c 2 d0 e 1
c
d
e
0 2 3 1 1 3 2 0 1 1
0 2 0 2 1
1 1 1 1 2
Dari matriks A2 di atas, perhatikan elemen baris pertama (a) dan kolom ketiga (c), yaitu 2. Berarti ada 2 lintasan dengan panjang 2 (n=2), yaitu (a,b,c) dan (a,d,c). Contoh lain verteks b ke b (baris 2, kolom 2), elemennya adalah 3, maka terdapat 3 lintasan dengan panjang 2, yaitu (b,c,c), (b,a,b) dan (b,e,b). Jika A adalah matriks berdekatan dari sebuah graf sederhana, maka elemen ke-ij dari An sama dengan jumlah lintasan dengan panjang n dari verteks i ke verteks j, n=1,2,3,… Dari contoh di atas, jika matriks dipangkat empat (n=4), maka akan didapat:
A 4 = A 2 .A2
2 0 = 2 0 1
a
0 3 1 2 1
2 1 3 0 1
b
0 2 0 2 1
c
1 2 1 0 1x 2 1 0 2 1
d
a 9 3 11 1 b 3 15 7 11 = c 11 7 15 3 d 1 11 3 9 e 6 8 8 6
0 3 1 2 1
2 1 3 0 1
0 2 0 2 1
1 1 1 1 2
e 6 8 8 6 8
Elemen baris d dan kolom e adalah 6, berarti bahwa ada 6 lintasan dengan panjang 4 dari d ke e, yaitu: (d,a,d,c,e), (d,c,d,c,e), (d,a,b,c,e), (d,c,e,c,e), (d,c,e,b,e) dan (d,c,b,c,e).
Bab 3. Teori Graf
125
Matriks insiden (bersisian). ◊ Contoh 3.17. Diberikan graf berikut: v1 e1
e2
e3
v3 e5
e4
e6
e7 v5
v4
Gambar 3.16 : Graf untuk soal 3.16 Matriks insiden untuk graf di atas adalah: e1 a1 b0 c 0 d 1 e0
e2
e3
e4
e5
e6
e7 0 1 0 0 0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
◊ Matriks insiden memungkinkan kita merepresentasikan edge dan loop. Perhatikan bahwa dalam graf tanpa loop maka masing-masing kolom edge akan memiliki dua angka 1 dan jika jumlah dari baris tertentu menyatakan derajat dari verteks yang dinyatakan dalam baris itu.
3.7 Keisomorfisan graf Misalkan 2 orang diminta untuk menggambar graf pada kertas, dengan instruksi: “gambar dan berikan label lima
x1
Bab 3. Teori Graf
126
verteks a, b, c, d, dan e. Hubungkan a dan b, b dan c, c dan d, d dan e.” Graf yang dihasilkan ke dua orang itu mungkin berbeda seperti pada gambar berikut. Kedua graf itu disebut isomorfis. a
A
x2
b
e
x3
x5 d
y3 C y4
x4
c
E
y1
y2
D
y5 B
Gambar 3.17: 2 graf G1 dan G2 yang isormorfis. Graf G1 dan G2 disebut isomorfis jika ada fungsi pada, satusatu (f) dari verteks-verteks graf G1 ke verteks-verteks graf G2 dan fungsi pada, satu-satu (g) dari edges graf G 1 ke edge graf G2, sehingga sebuah e ada pada v dan w dalam G 11 jika dan hanya jika g(e) ada pada f(v) dan f(w) dalam G2. Pasangan fungsi f dan g disebut keisomorfisan G1 dan G2. Keisomorfisan pada graf gambar 2.17 untuk G1 dan G2 didefinisikan sebagai f(a) = A, f(b) = B, f(c) = C, f(d) = D dan f(e) = E. g(xi) = yi, dimana i = 1, 2, …,5. Jika kita mendefinisikan sebuah relasi R pada himpunan dari graf dengan aturan G1RG2 jika G1 dan G2 adalah isomorfis, R adalah relasi ekuivalen. Masing-masing kelas equivalensi terdiri dari sebuah himpunan graf isomorifis yang mutual. Misalkan G1 dan G2 adalah graf sederhana. Maka pernyataan berikut adalah ekuivalen. (a) G1 dan G2 adalah isomorfis. (b) Ada fungsi f pada,satu-satu dari kumpulan verteks G1 kepada kumpulan verteks G2 yang memenuhi: verteksverteks v dan w bertetangga dalam G1 jika dan hanya jika verteks f(v) dan f(w) adalah bertetangga dalam G2. Graf sederhana G1 dan G2 adalah isomorfis jika dan hanya jika untuk beberapa verteks yang berurutan, matriks yang berdekatan adalah sama.
Bab 3. Teori Graf
127
◊ Contoh 3.18. Lihat gambar 3.17. Tentukan matrik bertetangga untuk graf G1 dan G2. Jawab. Matriks bertetangga untuk graf G1: a b a 0 b 1 c 0 d0 e 1
1 0 1 0 0
c
d
e
0 1 0 1 0
0 0 1 0 1
1 0 0 1 0
Matriks bertetangga untuk graf G2: A A 0 B 1 C 0 D 0 E 1
B 1 0 1 0 0
C 0 1 0 1 0
D 0 0 1 0 1
E 1 0 0 1 0
Kita melihat bahwa kedua matriks adalah sama. ◊ Masalah yang menarik adalah untuk menentukan apakah dua graf isomorfis atau bukan isomorfis. Salah satu cara untuk menunjukkan bahwa dua graf G1 dan G2 bukan isomorfis. Tentukan sifat dari G1 yang mana G2 tidak miliki, tetapi G2 akan miliki jika G1 dan G2 isomorfis. Sifat seperti disebut invariant. Jelasnya, sifat P adalah invarian, jika kapanpun G1 dan G2 adalah graf isomorfis: Jika G1 memiliki sifat P, G2 juga memiliki sifat P. Dari definisi, jika graf G1 dan G2 isomorfis maka ada fungsi pada, satu-satu dari edges (verteks) G1 ke edge (verteks) G2. Sehingga jika G1 dan G2 isomorfis, maka G1 dan G2 memiliki
Bab 3. Teori Graf
128
jumlah edge dan verteks yang sama. Sehingga, jika e dan n adalah bilangan bulat bukan negatif , sifat “memiliki e edge” dan “memiliki n verteks” adalah invarian. ◊ Contoh 3.19. Graf G1 dan G2 berikut bukanlah isomorfis, karena G1 memiliki tujuh edge dan G2 memiliki enam edge dan “memiliki 7 edge” adalah sebuah invarian.
G1
G2
Gambar 3.19: Graf G1 dan G2 yang bukan isomorfis. ◊
3.8 Graf planar Perhatikan gambar berikut ini, misalkan pada tiga kota K1, K2 dan K3 akan dibangun jalan langsung dari masing-masing kota ke semua kota K4 K5, dan K6. Apakah mungkin membangun jalan tersebut tanpa saling-silang? jawabannya adalah tidak mungkin, seperti ditunjukkan dalam gambar 3.20. Dalam hal ini jalan layang tidak dimungkinkan. K1
K4
K2
K3
K5
K6
Gambar 3.20 : Graf yang bukan planar.
Bab 3. Teori Graf
129
Sebuah graf adalah planar jika dapat digambarkan dalam bidang itu tanpa edgenya bersilangan. Masalah graf planar ini diterapkan dalam bidang elektronika, dimana kalau seseorang ingin mendisain rangkaian elektronik harus diusahakan sedemikian rupa agar garisgaris rangkaian tidak saling bersilangan, sehingga seorang ahli disain rangkaian elektronik menghadapi masalah planaritas. Jika sebuah sebuah graf terhubung yang planar dibuat dalam bidang, bidang dibagi kedalam daerah yang disebut muka (faces). Sebuah muka dicirikan dengan sebuah lingkaran yang membentuk batasannya. ◊ Contoh 3.20. Perlihatkan bahwa graf berikut adalah planar. 1 D 6
2 C
B
5
4
A 3
Gambar 3.21: Sebuah graf yang planar Muka A terikat kepada siklus (5,2,3,4,5), dan muka C terikat kepada siklus (1,2,5,1). Sedangkan muka luar D dianggap terikat kepada siklus (1,2,3,4,6,1). Graf di atas memiliki 4 muka (f=4), 8 edge (e=8), dan 6 verteks (v=6). Perhatikan bahwa berikut berikut berlaku: f = e – v + 2. Adalah Euler pada tahun 1752 yang membuktikan kebenaran rumus di atas yang berlaku untuk setiap graf terhubung yang planar. ◊ ◊
Bab 3. Teori Graf
130
Contoh 3.21. Tunjukkan bahwa graf pada gambar 3.20 dan 3.22 tidak planar. b
a
c
e
d
Gambar 3.22: Graf K5 yang bukan planar Pada gambar 3.20, e=9 dan v=6. Karena setiap siklus paling sedikit memiliki 4 edge, maka setiap muka terikat kepada paling sedikit 4 edge. Sehingga jumlah edge yang terikat kepada muka adalah paling sedikit 4f, karena masing-masing edge milik dari paling banyak 2 siklus terikat. Sehingga 2e ≥ 4f, dan 2e ≥ 4 (e-v+2), maka 18 = 2.9 ≥ 4(9-6+2), atau 18 ≥ 20, berarti kontradiksi. Dengan argumen yang sama akan dapat dibuktikan bahwa graf pada gambar 3.22 tidak planar. ◊
3.9 Bilangan Erdos Setiap ahli matematik memiliki sebuah bilangan Erdos. Setiap ahli matematika yang bangka akan dirinya sendiri mengetahui bilangan Erdosnya. Ide bilangan Erdos berasal dari banyak teman dan kolega dari ahli matematika terkenal berkebangsaan Hungari (1913-1996), yang menulis sekitar 1500 artikel matematik berkualitas tinggi. Bilangan Erdos adalah sebuah ukuran dari rasa yang enak, dimana bilangan erdos yang tinggi menyatakan rasa sangat tidak enak. Semua sahabat-sahabat Erdos setuju bahwa hanya Erdos yang memiliki kualifiasi bilangan Erdos = 0. Bilangan Erdos dari ahli matematika yang lain adalah apakah bilangan
Bab 3. Teori Graf
131
integer positif atau tidak terhingga. Karena Erdos telah memberikan kontribusi yang lebih banyak dalam hal matematika diskrit disbanding ahli matematika lainnya, adalah tepat bahwa penggunaan bilangan Erdos didefinisikan dalam hal teori Graf. Misalkan sebuah graf G=(V,E), dimana V adalah himpunan terbatas dari semua ahli matematika, sekarang ini, maupun yang sudah mati. Untuk setiap dua ahli matematika x,y ∈ V, misalkan (x,y) ∈ E jika dan hanya jika x dan y memiliki sebuah artikel matematika dengan penulis bergabung (bersama) dengan yang lain, mungkin dengan ahli matematika yang lain. Graf G dinyatakan dalam fungsi weight w: E →N. Karena Erdos tidak menyenangi semua ketidakadilan, fungsi weight ini didefinisikan dengan menuliskan w({x,y})=1 untuk setiap edge {x,y} ∈ E. Jika kita melihat pada graf ini secara hati-hati, maka tidak sulit untuk merealisasikan bahwa graf ini tidak terhubung. Beberapa ahli matematika tidak memiliki artikel gabungan dengan ahli matematika yang lain, dan yang lain tidak pernah menulis sama sekali. Kemudian, banyak ahli matematika yang berada dalam komponen berbeda dari graf berisi bilangan erdos. Ahli matematika ini semuanya memiliki bilangan erdos ∞. Dan seterusnya didefinisikan bilangan-bilangan Erdos dari semua ahli matematika yang cukup beruntung memiliki komponen yang sama dari graf G seperti Erdos. Misalkan x ≠ Erdos adalah seorang ahli matematika. Panjang dari lintasan ini, yang pasti sebuah bilangan integer, tetapi kebanyakan tertentu jumlahnya, diambil sebagai bilangan Erdos dari ahli matematika x. Setiap ahli matematika yang telah menulis sebuah artikel bersama dengan Paman Paul, dengan siapa Erdos terus dikenal, memiliki bilangan erdos 1. Setiap ahli matematika yang telah menulis sebuah artikel bersama dengan seorang ahli matematika yang lain yang telah menulis sebuah artikel bersama dengan Erdos, tetapi dia sendiri belum pernah menulis artikel bersama dengan Erdos, memiliki bilangan erdos 2. Dan seterusnya.
Bab 3. Teori Graf
132
Ringkasan bab •
Sebuah graf takberarah G terdiri dari kumpulan verteks V(v1,v2,v3,…,vn) atau node dan kumpulan edges E(e1,e2,e3, …,en) sehingga masing-masing edge e∈ E berhubungan dengan sebuah pasangan takberaturan verteks. Sebuah graf berarah G terdiri dari kumpulan verteks V dan kumpulan edges E sehingga edge e∈E berasosiasi dengan pasangan beraturan verteks.
• Graf lengkap dengan n verteks, Kn, adalah graf sederhana dengan n verteks dimana ada edge antara setiap pasangan verteks berbeda. Graf bipartit lengkap dengan verteks m dan n, Kn,m, adalah graf sederhana yang kumpulan verteksnya dipartisi menjadi Vn dengan n verteks, dan Vm dengan m verteks yang mana ada edge antara pasangan verteks v1 dan v2 dimana v1 ada di V1 dan v2 ada di V2. • Sebuah graf sederhana dari v ke w adalah sebuah lintasan tanpa verteks berulang. Sebuah siklus adalah sebuah lintasan dengan panjang bukan nol dari v ke w tanpa edge berulang. sebuah siklus sederhana adalah sebuah siklus dari v ke v, kecuali dari awal dan akhir verteks yang keduanya sama kepada v, tanpa pengulangan verteks. • Jika graf G memiliki sebuah siklus Euler, maka G adalah graf terhubung dan setiap verteks memiliki derajat genap. Derajat suatu verteks adalah banyaknya edges yang terhubung kepada verteks tsb. Dalam setiap graf ada sejumlah genap verteks yang berderajat ganjil. •
Siklus Hamilton, atau the traveling sales person, adalah siklus dimana edge tidak berulang, tetapi semua verteks harus dilalui, kecuali verteks awal. Kubik-n memiliki sebuah siklus Hamilton untuk setiap bilangan integer positif n ≥ 2.
Bab 3. Teori Graf
•
133
Algoritma Djikstra adalah sebuah algoritma untuk menentukan lintasan terpendek pada the travelling sales person problem. Algoritma ini memiliki kompleksitas orde Θ (n2).
• Jika A adalah matriks adjacency dari graf sederhana, maka elemen ke I dari A sama dengan jumlah lintasan dengan panjang n dari verteks I ke verteks j, n=1,2,…. •
Graf secara khusus diaplikasikan dalam masalah menentukan lintasan terpendek (menggunakan algoritma Dijkstra) dan menyelesaikan masalah the travelling salesperson.
Soal-soal Latihan 1. Gambarkan graf K3 dan K5. 2. Tentukan rumus untuk menentukan jumlah edge dalam Kn. 3. Berikan sebuah graf bipartisi selain graf pada contoh soal 3.6. 4. Gambarkan graf K2,3 dan K3,3. 5. Tentukan rumus untuk menentukan jumlah edge dalam Km,n. 6. Tentukan biaya paling kecil yang diperlukan untuk membangun jalan yang menghubungkan kota-kota seperti ditunjukkan graf berikut. Vertek-verteks dalam graf menyatakan kota-kota, sedangkan edge-edge menyatakan biaya membangun jalan yang menghubungkan kota itu.
Bab 3. Teori Graf
134
a b 6
5
10 c
15
30
7
5 9
d
f
12
8
e
20
14
g
7. Tentukan apakah soal (a) hingga (i) graf berikut memiliki (i) lintasan sederhana, (ii) dan (iii) siklus sederhana.
a
b c
d
e
a). (b,b) b). (e,d,c,b) c) . (a,d,c,d,e) d). (d,c,b,e,d) e). (,c,d,a,,e,d,c,b) f). (b,c,d,e,,b) g). (a,d,c,b,e) h). (d) i). (d,c,b) 8. Untuk masing-masing soal (a) s/d (j) berikut, gambarlah sebuah yang memiliki sifat-sifat seperti diberikan atau jelaskan mengapa tidak ada mungkin ada graf tersebut. a). Enam verteks masing-masing berderajat 3. b). Lima verteks masing-masing berderajat 3. c). Empat verteks masing-masing berderajat 1 d). Enam verteks; empat edge e). Empat edge; empat verteks yang memiliki derajat 1,2,3,4. f). Empat verteks memiliki derajat 1,2,3,4.
Bab 3. Teori Graf
135
g). Graf sederhana; enam verteks yang memiliki derajat 1,2,3,4,5,5. h). Graf sederhana; lima verteks yang memiliki derajat 2,3,3,4,4. i). Graf sederhana; lima verteks yang memiliki derajat 2,2,4,4,4. 9. Tentukan semua siklus sederhana yang pada graf di bawah ini. 10. Tentukan apakah graf berikut memiliki siklus Euler atau tidak. Jika ada tunjukkan salah satunya. d
c
e b
a
f
g
b b
f
d c
a h
(a)
g
e i
j
a
e
i
d
c
j
f
g
h
k
(b)
11. Kapankah sebuah graf lengkap Kn berisi sebuah siklus Euler? 12. Kapankah sebuah graf bipartit lengkap Km,n berisi sebuah siklus Euler? 13. Tentukan apakah pernyataan berikut benar atau salah. Jika salah berikan contoh yang membenarkannya: a. Misalkan G adalah graf dan v dan w adalah verteks yang berbeda. Jika ada lintasan dari v ke w, maka ada lintasan sederhana dari v ke w. b. Jika sebuah graf berisi sebuah siklus yang berisi semua edge, siklus itu adalah siklus Euler.
Bab 3. Teori Graf
136
14. Misalkan G adalah graf terhubung. Misalkan juga bahwa sebuah edge e ada dalam siklus. Tunjukkan bahwa jika e dibuang G masih graf terhubung. 15. Tunjukkan bahwa ada 125 spanning tree yang berbeda dari graf lengkap K5.