GRAPH
Konsep
Graph adalah suatu diagram yang memuat informasi tertentu.
Contoh :
Struktur organisasi
Struktur organisasi
Contoh Graph
Bagan alir pengambilan mata kuliah
Contoh Graph
Peta
Dasar-dasar Graph
Suatu graph terdiri dari 2 himpunan berhingga, yaitu himpunan titik/vertex (V(G)) dan himpunan garis/edge (E(G)).
Graf yang tidak mempunyai vertex (sehingga tidak mempunyai edge) disebut graf kosong.
Jika semua edgenya berarah maka disebut graph berarah (directed graph) Jika semua edgenya tidak berarah
Jika semua edgenya tidak berarah disebut graph tak berarah (undirected graph)
Edge yang berhubungan dengan satu vertex disebut loop.
Dasar-dasar Graph (2)
Dua edge berbeda yang menghubungkan vertex yang sama disebut garis paralel.
Dua vertex dikatakan berhubungan (adjacent) jika ada edge yang menghubungkan keduanya.
Vertex yang tidak mempunyai edge yang berhubungan dengannya disebut isolated vertex.
dengannya disebut isolated vertex.
Sebuah graf yang tidak mempunyai loop dan tidak mempunyai rusuk-rusuk yang sejajar disebut graf sederhana.
Jika terdapat sebuah edge e yang menghubungkan verteks v dan w, kita tulis e = (v,w). Dalam konteks ini, (v,w)
menyatakan sebuah edge antara v dan w dalam sebuah graph.
Graph Berarah
Sebuah graf terarah atau digraf G terdiri dari suatu himpunan V dari verteks dan suatu
himpunan E dari edge sedemikian rupa
sehingga setiap edge e E menghubungkan pasangan verteks terurut.
himpunan verteks-verteks V = {v1, v2, v3, v4, v5}
dan himpunan edge
E = {e1, e2, e3, e4, e5, e6}
v1 v2 v3
v4 v5 e2 e1 e3
e4 e5
e6
Weighted Graph
Sebuah graf dengan bilangan-bilangan pada edge-nya disebut graf berbobot (weighted
graph). Dalam sebuah graf berbobot,
panjang lintasan adalah jumlah bobot edge panjang lintasan adalah jumlah bobot edge dalam lintasan.
a b
c
d e
8 4
4
9 2 6
5 12 3
Derajat Suatu Titik
Derajat titik v adalah jumlah garis yang
berhubungan dengan titik v dan garis suatu loop dihitung 2 kali.
Derajat total G adalah jumlah derajat semua titik dalam G
dalam G
v1 v2
v3
v5
v4
v6 e1
e2
e5 e4
e3 D(v1)=4 D(v4)=2
D(v2)=2 D(v5)=1 D(v3)=1 D(v6)=0
Derajat total = 4+2+1+2+1+0 = 10
Walk
Misalkan v
0dan v
nadalah verteks-verteks
dalam sebuah graf. Sebuah walk dari v
0ke v
ndengan panjang n adalah sebuah barisan
berselang-seling dari n+1 verteks dan n edge yang berawal dengan verteks v
0dan berakhir yang berawal dengan verteks v dan berakhir dengan verteks v
n,
(v
0, e
1, v
1, e
2, …, v
n-1, e
n, v
n)
dengan e
iinsiden pada verteks v
i-1dan v
iuntuk
i = 1,2, …, n.
Path dan Sirkuit
Path adalah walk dari v ke w yang semua edgenya berbeda.
Path sederhana adalah path dari v ke w yang semua vertexnya berbeda.
Sirkuit/cycle adalah path yang dimulai dan diakhiri pada
Sirkuit/cycle adalah path yang dimulai dan diakhiri pada vertex yang sama.
Sirkuit sederhana adalah sirkuit yang semua vertexnya berbeda.
Contoh
v1
v2
v3 v4
v6 v5
e1 e2
e8 e3
e7
e9
e6 e10
e5 e4
Dari graph diatas tentukan barisan vertex dan edge berikut apakah a. v1 e1 v2 e3 v3 e4 v3 e5 v4 Path dari v1 ke v4
b. v1 e1 v2 e3 v3 e5 v4 e5 v3 e6 v5 Walk dari v1 ke v5 c. v2 e3 v3 e5 v4 e10 v5 e6 v3 e7 v6 e8 v2 Sirkuit
d. v2 e3 v3 e5 v4 e10 v5 e9 v6 e8 v2 Sirkuit sederhana Dari graph diatas tentukan barisan vertex dan edge berikut apakah Walk, path, path sederhana, sirkuit, sirkuit sederhana.
Graph terhubung dan Tidak Terhubung
Dua vertex v dan w dalam G dikatakan terhubung bila dan hanya bila ada walk dari v ke w.
Graf G dikatakan terhubung (connected) bila dan hanya bila setiap 2 vertex terhubung.
Graf G dikatakan tidak terhubung (unconnected) bila
Graf G dikatakan tidak terhubung (unconnected) bila dan hanya bila ada 2 vertex yang tidak terhubung.
Connected Graph Unconnected graph
Euler Path dan Cycle
Euler path adalah sebuah path pada graph G yang melewati setiap edge/garis tepat 1 kali dan melewati setiap vertex/titik paling sedikit sekali.
Euler cycle/sirkuit adalah euler path yang
kembali ke vertex awal.
Permasalahan 7 Jembatan Konigsberg
B A
D
C
A
B C
D
Masalah : mungkinkah seseorang berjalan mengelilingi kota yang dimulai dan diakhiri pada tempat yang sama, dengan melintasi ketujuh jembatan masing-masing tepat 1 kali ?
Apakah graph tersebut merupakan sirkuit EULER ?
D
Teorema Euler
Jika graph G memiliki vertex berderajat ganjil, maka tidak ada euler cycle dalam G.
Jika G adalah sebuah connected graph dan setiap vertexnya berderajat genap, maka terdapat EULER CYCLE dalam G.
CYCLE dalam G.
Jika graph G memiliki lebih dari 2 vertex berderajat ganjil, maka tidak ada euler path.
Jika G connected graph dan memiliki tepat 2 vertex berderajat ganjil, maka ada EULER PATH yang
berawal di satu vertex berderajat ganjil dan berakhir di vertex berderajat ganjil lainnya.
Contoh
A
B C
D E
Euler path :
E – D – B – A – C – D
A
1 2
3
4
5
Euler cycle :
1 – 3 – 4 – 5 – 3 – 2 – 1
Algoritma Fleury
Algoritma untuk mencari EULER CYCLE dalam sebuah connected graph yang tidak memiliki vertex berderajat ganjil.
Langkah-langkah :
Pilih sembarang vertex (v).
Pilih sembarang vertex (v).
Dari v, pilih sebuah edge yang bukan merupakan cut edge (bridge). Beri tanda pada edge tersebut.
Melalui edge tersebut, telusuri vertex lainnya.
Ulangi langkah 2 dan 3 hingga semua edge terlewati dan berakhir di vertex awal (v).
Contoh
A B
C D
E F
A B
C D
E F
A B
C D
E F
A B A B
A B
C D
E F
A B
A B
C D
E F
A B
C D
E F
A B
C D
E F
A B A B
C D
A B
C D
Hamilton Path dan Cycle
Hamilton path adalah path dalam sebuah graph yang melewati tiap vertex tepat 1 kali dan tidak harus melalui semua garis.
Hamilton cycle adalah hamilton path yang kembali ke titik awal
Graph yang mengandung hamilton cycle tidak
memiliki loop dan multiple edge
Contoh
A
B C
D E
Hamilton path : E-D-C-A-B
A
Hamilton cycle : A-B-C-D-A
A B
D C
Teorema Hamilton
Jiia graph G memiliki hamilton cycle maka setiap vertex berderajat :
d(v) >= n/2, n adalah jumlah vertex
Misal m adalah jumlah edge pada G. Jika
Misal m adalah jumlah edge pada G. Jika graph G memiliki hamilton cycle maka :
m >= ½(n
2-3n+6)
Masalah Perjalanan Wiraniaga
Jika kita menganggap verteks-verteks dalam graf berbobot
sebagai kota dan bobot edge sebagai jarak, masalah perjalanan wiraniaga adalah mencari sebuah rute terpendek sehingga
wiraniaga tersebut dapat mengunjungi setiap kota satu kali, berawal dan berakhir pada kota yang sama.
a 2 b Siklus Hamilton Panjang
a b
c
d 3
2 11 3
11
(a, b, c, d, a) (a, b, d, c, a) (a, c, b, d, a) (a, c, d, b, a) (a, d, b, c, a) (a, d, c, b, a)
2+3+3+2 = 10 2+11+3+11 = 27 11+3+11+2 = 27 11+3+11+2 = 27 2+11+3+11 = 27 2+3+3+2 = 10
Kita lihat bahwa siklus Hamilton (a, b, c, d, a) dan (a, d, c, b, a) merupakan
Shortest Path Problem
Suatu permasalahan untuk mendapatkan path terpendek dari suatu titik awal ke titik akhir.
Contoh : sebuah perusahaan telepon akan memasang kabel telepon yang akan
menghubungkan beberapa kota. Cari jalur terpendek yang menghubungan seluruh kota terpendek yang menghubungan seluruh kota tersebut.
Algoritma penyelesaian :
Warshall
Dijkstra
Menggunakan weighted graph, yaitu graph yang edge-nya memiliki bobot/nilai (misal : biaya, waktu, jarak, dsb).
Algoritma Dijkstra
1. Buat tabel, kolom berisi semua vertex dalam graph.
2. Isi baris pertama dengan nilai NOL untuk vertex awal, vertex lain yang beradjacent dengan vertex awal = bobot edgenya dan
~ untuk vertex lain yang tidak beradjacent dengan vertex awal.
Lalu beri label yang berisi path dari setiap vertex tersebut.
3. Pilih bobot vertex yang paling kecil dan beri tanda,
Pilih vertex yang beradjacent dengan vertex terpilih, yang belum
4. Pilih vertex yang beradjacent dengan vertex terpilih, yang belum pernah dilalui dan hitung bobotnya.
5. Tulis label yang berisi path yang telah dilalui pada tiap bobot vertex yang beradjacent
6. Ulangi langkah 3-5 sampai semua vertex dalam graph dilalui.
Contoh
b
c
d
e f
g a h
7 8
2 4
7 3
4 6
4 6 3
3 5 1
1 2
2
a b c d e f g h Visited vertex
aa
0 (a) 8 (ab) 1 (ac) 4(ad) 2 (ae) 7(af) ~ ~ c
0 8 (ab) - 4 (ad) 2 (ae) 7 (af) ~ 4(ach) e
0 8 (ab) - 4 (ad) - 7(af) ~ 3 (aeh) h
0 8 (ab) - 4 (ad) - 6 (aehf) 9(aehg) - d
0 6 (adb) - - - 6 (aehf) 9(aehg) - b
0 - - - - 6 (aehf) 9(aehg) - f
Latihan
1. Untuk graf G = (V,E) dalam Gambar berikut
a b
c d
e
Nyatakan apakah lintasan yang diberikan dalam graf tersebut merupakan sebuah path sederhana, sebuah cycle, sebuah cycle sederhana.
a. (b,b) d. (a,d,c,b,e) b. (a,b,c,d,e) e. (d,c,b)
c. (b,c,d,a,b,e,d,c,b) f. (e,d,c,d) 6.
c d
Latihan
2 . Misalkan graf G = (V,E) Buktikan bahwa G mempunyai siklus Euler.
Carilah sebuah siklus Euler untuk G.
v1
v2
v3 v5
v6 v4 v7
Latihan
3. Untuk graf tak terarah G terdiri dari
himpunan verteks-verteks V = {a, b, c, d, e, f, g, h, i, j}dan himpunan rusuk-rusuk E = {(a,b), (b,c), (c,h), (h,j), (j,i), (i,d), (d,a), (a,e), (e,b), (b,g), (g,c), (a,i), (i,e), (e,f), (f,g), (g,h), (i,f), (b,g), (g,c), (a,i), (i,e), (e,f), (f,g), (g,h), (i,f), (f,j)}.
a. Gambarlah graf G.
b. Carilah sebuah siklus Hamilton.
Latihan
4. Carilah panjang lintasan terpendek dan sebuah lintasan terpendek di antara setiap pasang verteks dalam graf berbobot tersambung tersebut.
1. a, f 2. a, g 3. a, z 4. b, j 5. h, d
a
b c
e f g
z 3
4
5
7
5 2
4
2
2
4
6
3
d
5
5
3
4
6
7
4
2 6 5