File

advertisement
GRAPH
1
Konsep


Graph adalah suatu diagram yang memuat
informasi tertentu.
Contoh :

Struktur organisasi
2
Contoh Graph

Bagan alir pengambilan mata kuliah
3
Contoh Graph

Peta
4
5
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
disebut graph tak berarah (undirected
graph)
Edge yang berhubungan dengan satu
vertex disebut loop.
6
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.
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.
7
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.
v1


himpunan verteks-verteks
e3
V = {v1, v2, v3, v4, v5}
dan himpunan edge
v4
E = {e1, e2, e3, e4, e5, e6}
e2 v2
e1
v3
e5
e6
e4
v5
8
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
dalam lintasan.
8
a
c
2
4
d
3
4
b
6
9
5
12
e
9
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
e3
e2
v3
e4
v5
v1
v2
e1
v4
D(v1)=4
D(v2)=2
D(v3)=1
D(v4)=2
D(v5)=1
D(v6)=0
e5
v6
Derajat total = 4+2+1+2+1+0 = 10
10
Walk

Misalkan v0 dan vn adalah verteks-verteks
dalam sebuah graf. Sebuah walk dari v0 ke vn
dengan panjang n adalah sebuah barisan
berselang-seling dari n+1 verteks dan n edge
yang berawal dengan verteks v0 dan berakhir
dengan verteks vn,
(v0, e1, v1, e2, …, vn-1, en, vn)
dengan ei insiden pada verteks vi-1 dan vi untuk
i = 1,2, …, n.
11
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
vertex yang sama.
Sirkuit sederhana adalah sirkuit yang semua vertexnya
berbeda.
12
Contoh
e4
e5
v3
v4
e2
e3
v1
e7
v2
e1
e6
e10
e8
v6
e9
v5
Dari graph diatas tentukan barisan vertex dan edge berikut apakah
Walk, path, path sederhana, sirkuit, sirkuit sederhana.
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
13
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
dan hanya bila ada 2 vertex yang tidak terhubung.
Connected Graph
Unconnected graph
14
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.
15
Permasalahan 7 Jembatan Konigsberg
A
A
B
C
B
C
D
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 ?
16
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.
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.
17
Contoh
E
Euler path :
E–D–B–A–C–D
D
B
C
A
2
4
3
1
Euler cycle :
1–3–4–5–3–2–1
5
18
Algoritma Fleury


Algoritma untuk mencari EULER CYCLE dalam
sebuah connected graph yang tidak memiliki
vertex berderajat ganjil.
Langkah-langkah :




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).
19
A
B
Contoh
D
C
F
E
A
B
D
C
E
A
E
A
B
E
A
B
F
E
A
E
A
B
F
F
B
D
C
F
D
C
E
B
B
D
C
F
D
C
F
D
C
E
A
B
D
C
F
D
C
A
E
A
F
B
D
C
E
F 20
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
21
Contoh
E
Hamilton path : E-D-C-A-B
D
B
C
A
A
B
Hamilton cycle : A-B-C-D-A
D
C
22
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
graph G memiliki hamilton cycle maka :
m >= ½(n2-3n+6)
23
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.
2
a
3
11
d
3
Panjang
(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
b
11
2
Siklus Hamilton
c
Kita lihat bahwa siklus Hamilton (a, b, c, d, a) dan (a, d, c, b, a) merupakan
siklus Hamilton dengan panjang minimum untuk G.
24
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
tersebut.
Algoritma penyelesaian :



Warshall
Dijkstra
Menggunakan weighted graph, yaitu graph yang
edge-nya memiliki bobot/nilai (misal : biaya, waktu,
jarak, dsb).
25
Algoritma Dijkstra
1.
2.
3.
4.
5.
6.
Buat tabel, kolom berisi semua vertex dalam graph.
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.
Pilih bobot vertex yang paling kecil dan beri tanda,
Pilih vertex yang beradjacent dengan vertex terpilih, yang belum
pernah dilalui dan hitung bobotnya.
Tulis label yang berisi path yang telah dilalui pada tiap bobot
vertex yang beradjacent
Ulangi langkah 3-5 sampai semua vertex dalam graph dilalui.
26
c
Contoh
7
b
c
d
e
f
3
7
2
a
5
1 2
8a
b
e
2
3
4
4
d
6
g
h
1
f
h
3
4
6
g
Visited vertex
a
1 (ac) 4(ad) 2 (ae)
7(af)
~
~
c
-
4 (ad) 2 (ae)
7 (af)
~
4(ach)
e
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
0
-
-
-
-
-
9(aehg)
-
g
0 (a)
8 (ab)
0
8 (ab)
0
27
Latihan
1. Untuk graf G = (V,E) dalam Gambar berikut
a
b
e
d
c
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.
28
Latihan
2. Misalkan graf G = (V,E) Buktikan
bahwa G mempunyai siklus Euler.
Carilah sebuah siklus Euler untuk G.
v1
v2
v5
v3
v6
v4
v7
29
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),
(f,j)}.
a. Gambarlah graf G.
b. Carilah sebuah siklus Hamilton.
30
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
b
3
a
5
e
5
4
2
5
c
2
f
4
7
h
5
2
3
6
d
7
g
2
4
4
i
3
6
6
4
j
z
5
31
Download