Pertemuan : 2 Dosen : Nesi Syaftri, S.K S.Kom, om, M.Cs
Graph Graph Graph
digunakan untuk merepresentasikan merepresentasikan obek!obek diskrit dan hubungan antara obek!obek tersebut. Gambar berikut ini sebuah graph yang menyatakan peta aringan a"an raya yang menghubungkan seum"ah kota di Pro#insi Pro#insi $a%a &engah. &engah.
Graph Graph Graph
digunakan untuk merepresentasikan merepresentasikan obek!obek diskrit dan hubungan antara obek!obek tersebut. Gambar berikut ini sebuah graph yang menyatakan peta aringan a"an raya yang menghubungkan seum"ah kota di Pro#insi Pro#insi $a%a &engah. &engah.
Graph Rembang Brebes
Tegal
Pemalang
Demak
Kendal
Kudus
Semarang
Pekalongan Slawi
Blora Temanggung Wonosobo
Purwokerto
Purwodadi
Salatiga
Purbalingga Sragen Banjarnegara
Kroya Cilacap
Boyolali
Solo Sukoharjo
Kebumen
Magelang Klaten Purworejo Wonogiri
Komponen da"am Graph: Simpu" 'vertex ( menyatakan titik)node) kota Sisi 'edge( menyatakan a"ur ) a"an
Defnisi Graph Graph G * 'V , E(, yang da"am ha" ini: V * himpunan tidak!kosong dari simpu"! simpu" 'vertices( * + v , v 2 , ... , vn E * himpunan sisi 'edges( yang menghubungkan sepasang simpu" * +e , e2 , ... , en -
Contoh Graph 1
1
1
e1
e4
e1
e3
2
3
e2
2 e5
4
G G
3 e6 e7
4
e4 e3
e2
2 e5
e7
4
G2
3
e6
e8
Menentukan Simpu" dan Sisi pada Graph Graph G,
G, ada"ah graph dengan ,
2
.
/
Simpul(V) * + , 2, , / Sisi(E) * + ', 2(, ', (, '2, (, '2, /(, ', /( -
Graph Graph
G2
G2 ada"ah graph dengan V * + , 2, , / E * + ', 2(, '2, (, ', (,
e e2
2
e
e/
e1
e0
e /
', (, '2, /(, ', /(, ', /( * + e, e2, e, e/, e0, e1, e-
Graph Graph
G.
G. ada"ah graph dengan
e
e
2
e e
/
', (, '2, /(, ', /(,
2
e e
e
V * + , 2, , / E * + ', 2(, '2, (, ', (,
0
1 e
/
3
', /(, ', ( * + e, e2, e, e/, e0, e1, e, e3-
Graph Graph
G2
e e2
2
e
e/
e1
e0
e /
Pada G2, sisi e. * ', ( dan sisi e/ * ', ( dinamakan sisi-ganda 'multiple edges atau paralel edges( karena kedua sisi ini menghubungi dua buah simpu" yang sama, yaitu simpu" dan simpu" .
Graph Graph
G.
e
e
2
e e
2
e e
e
/
0
1 e
/
3
Pada G., sisi e3 * ', ( dinamakan gelang atau kalang 'loop( karena ia bera%a" dan berakhir pada simpu" yang sama.
Jenis-Jenis Graph a. 4erdasarkan ada tidaknya ge"ang atau sisi
ganda pada suatu graph, maka graph digo"ongkan menadi dua enis: . Graph sederhana 'simple graph(. 2. Graph tak-sederhana 'unsimple-graph(.
Graph sederhana 'simple graph( Graph yang tidak mengandung ge"ang maupun sisi!ganda dinamakan graph sederhana. G ada"ah 5ontoh graph sederhana
,
2
.
/
Graph tak-sederhana 'unsimple-graph) Graph yang mengandung sisi ganda atau ge"ang dinamakan graph tak!sederhana 'unsimple graph(. G2 dan G ada"ah 5ontoh graph tak!sederhana
e e2
2 e0
e
e/
e1 e /
2
e/ e e e2 e1 e0 e /
e3
Jenis-Jenis Graph b. 4erdasarkan um"ah simpu" pada suatu graph, maka se5ara umum graph dapat digo"ongkan menadi dua enis: . Graph berhingga 'limited graph( 2. Graph tak-berhingga 'unlimited graph(
Graph berhingga 'limited graph( Graph berhingga ada"ah graph yang um"ah simpu"nya, n, berhingga.
Graph tak-berhingga 'unlimited graph( Graph yang um"ah simpu"nya, n, tidak berhingga banyaknya disebut graph takberhingga.
Jenis-Jenis Graph 5. 4erdasarkan orientasi arah pada sisi, maka se5ara umum graph dibedakan atas 2 enis: . Graph tak-berarah 'undirected graph( 2. Graph berarah 'directed graph atau digraph(
Graph tak-berarah 'undirected graph( Graph yang sisinya tidak mempunyai orientasi arah disebut graph tak!berarah. Graph G,, G2, dan G. ada"ah graph tak! berarah. 1
1
e1
1
e4
e1
e3
2
3
e2
2 e5
4
3 e6 e7
4
e4 e3
e2
2 e5
3
e6 e7
4
e8
Graph berarah 'directed graph atau digraph( Graph yang setiap sisinya diberikan orientasi arah disebut sebagai graph berarah. 1 1 2
3
4
'a( G/ G0
'a( graph berarah, berarah
2
3
4
'b(
'b( graph!ganda
Jenis-Jenis Graph d. 4erdasarkan Ni"ai yang ada pada edge: • Graph 4erbobot
yaitu graph yang pada setiap sisinya terdapat ni"ai bi"angan rii" yang menyatakan sebuah bobot • Graph &idak berbobot yaitu graph yang pada setiap sisinya tidak terdapat sebuah bi"angan, sehingga bobot pada setiap sisi akan dinyatakan dengan ni"ai 6 atau
Lintasan (Path) &inau
graph G: "intasan , 2, /, ada"ah "intasan dengan barisan sisi ',2(, '2,/(, '/,(. ,
Panjang
lintasan ada"ah um"ah sisi da"am "intasan tersebut. 7intasan , 2, /, pada G memi"iki panang . 2
.
/
Siklus (Cycle) atau Sirkuit (Circuit ) 7intasan
yang bera%a" dan berakhir pada simpu" yang sama disebut sirkuit atau siklus.
Panjang
sirkuit ada"ah um"ah sisi da"am sirkuit tersebut. Sirkuit , 2, , pada G memi"iki panang .
&inau
graph G: , 2, , ada"ah sebuah sirkuit. ,
2
.
/
8epresentasi Graph da"am Matrik
Sebuah graph dapat direpresentasikan da"am bentuk Matrik 9da5en5y, dengan 5ara sbb: .Matrik yang terbentuk ada"ah matrik buur sangkar nn, sesuai banyaknya simpu" ) #erte yang ada. 2.;"emen yang ada pada setiap matrik
dipero"eh berdasarkan bobot yang ada pada masing!masing sisinya dan berdasarkan orientasi arah darai graph tersebut.
Contoh Graph 4erarah! 4erbobot # #2 # #2 # #/ #0
# #/
#0
Contoh Graph &idak 4erarah!&idak berbobot # #2 # #2 # #/ #0
# #/
#0
Pertemuan : ,/
Pendahu"uan • 9"goritma greedy merupakan metode yang
pa"ing popu"er untuk meme5ahkan persoa"an optimasi. • Persoa"an optimasi 'optimization problems(: persoa"an yang menuntut pen5arian so"usi optimum. Persoa"an optimasi ada dua ma5am: • Maksimasi 'maximization( • Minimasi 'minimization(
•
So"usi optimum 'terbaik( ada"ah so"usi yang berni"ai minimum atau maksimum dari sekumpu"an a"ternati< so"usi yang mungkin.
;"emen persoa"an optimasi: • kenda"a 'constraints( •
So"usi yang memenuhi semua kenda"a disebut solusi layak 'feasible solution(. So"usi "ayak yang mengoptimumkan
Contoh masa"ah sehari!hari yang menggunakan prinsip greedy : Memi"ih
beberapa enis in#estasi 'penanaman
moda"( Men5ari
a"ur tersingkat dari kota asa" ke kota yang dituu
4ermain
kartu remi
Cara Kera 9"goritma Greedy . 2. a. b.
5.
.
&entukan node a%a" dan node tuuan 7akukan beru"ang!u"ang: Menentukan kandidat: Periksa semua sisi yang terhubung "angsung dengan node a%a". b. Menentukan kandidat so"usi ! pi"ih sisi yang memi"iki bobot pa"ing ke5i". ! hitung panang "intasan sementara d'i(. Menentukan so"usi terpi"ih ! Cek node akhir => node tuuan ! set node a%a" * node akhir terpi"ih 7akukan tahap no.2 sampai node tuuan ketemu
8umus d'i( * d'i!( ? bobot node terpi"ih'i(