Trees Directed Graph Algoritma Dijkstra Teori Graf Teknik

  • Slides: 23
Download presentation
Trees Directed Graph Algoritma Dijkstra Teori Graf Teknik Informatika STT Wastukancana Purwakarta

Trees Directed Graph Algoritma Dijkstra Teori Graf Teknik Informatika STT Wastukancana Purwakarta

Trees • Pohon (tree) adalah graf tak-berarah terhubung (connected) yang tidak mengandung sirkuit a

Trees • Pohon (tree) adalah graf tak-berarah terhubung (connected) yang tidak mengandung sirkuit a b c d e f G 1 G 2 G 1 dan G 2 adalah pohon (tree) a b c d e f G 3 G 4 G 3 dan G 4 adalah bukan pohon • Hutan (forest) adalah graf tak terhubung yang tidak mengandung sirkuit, dalam hal ini setiap komponen di dalam graf terhubung tersebut adalah pohon

Sifat-sifat Tree Misalkan G = (V, E) adalah graf tak-berarah sederhana dan jumlah vertexnya

Sifat-sifat Tree Misalkan G = (V, E) adalah graf tak-berarah sederhana dan jumlah vertexnya n, maka : 1. G adalah pohon 2. Setiap pasang vertex di dalam G terhubung dengan lintasan tunggal 3. G terhubung dan memiliki m = n -1 buah edge 4. G tidak mengandung sirkuit dan memiliki m = n – 1 buah edge 5. G tidak mengandung sirkuit dan penambahan satu edge pada graf akan membuat hanya satu sirkuit 6. G terhubung dan semua edge-nya adalah bridge/jembatan (bridge adalah edge yang bila dihapus menyebabkan graf terpecah menjadi dua komponen)

Contoh Sebuah tree mempunyai 2 n buah vertex berderajat 1, 3 n buah vertex

Contoh Sebuah tree mempunyai 2 n buah vertex berderajat 1, 3 n buah vertex berderajat 2 dan n buah vertex berderajat 3. Tentukan banyaknya vertex dan edge di dalam tree tersebut ! Penyelesaian : Berdasarkan lemma jabat tangan : jumlah semua vertex di dalam graf adalah 2 kali jumlah edge di dalam graf tersebut (2 n x 1) + (3 n x 2) + (n x 3) = 2 |E| 11 n = 2 |E| ……………… (1) Jumlah edge pada sebuah tree adalah jumlah vertex minus satu, sehingga : |E| = (2 n + 3 n + 1 n) – 1 = 6 n – 1 …………………(2) Persamaan (1) dan (2) menjadi : 11 n = 2 (6 n – 1) 11 n = 12 n – 2 n=2 Jadi : Ä Jumlah vertex pada tree 6 n = 6 x 2 = 12 buah vertex Ä Jumlah vertex 6 n – 1 = 11 buah vertices

Spanning Tree • Spanning tree dari graf G adalah spanning subgraf yang berbentuk tree

Spanning Tree • Spanning tree dari graf G adalah spanning subgraf yang berbentuk tree G T 1 T 2 T 3 T 4 Graf lengkap G dengan 4 buah spanning tree-nya: T 1, T 2, T 3 dan T 4 • Setiap graf terhubung mempunyai paling sedikit 1 buah spanning tree • Branch adalah edge dari spanning tree • chord atau link adalah edge yang tidak terdapat pada spanning tree

 • Jika n buah vertex dan m buah edge maka : F Untuk

• Jika n buah vertex dan m buah edge maka : F Untuk graf terhubung : ÄJumlah branch : n – 1 ÄJumlah link : m – n + 1 F Untuk graf tak-terhubung dengan k komponen : ÄJumlah branch : n – k ÄJumlah link : m – n + k • Rank graf G adalah : F Jumlah cabang(branch) pada spanning tree dari sebuah graf G • Nullity graf G adalah : F Jumlah link pada graf G • Sehingga : jumlah edge graf G = rank + nullity • Nullity graf sering diacu sebagai bilangan siklomatik atau bilangan Betti pertama • Sirkuit fundamental (fundamental circuit) adalah : F Sirkuit yang terbentuk dengan penambahan sebuah link pada spanning tree

Directed Graph (Graf Berarah) • Di dalam situasi yang dinamis, seperti pada komputer digital

Directed Graph (Graf Berarah) • Di dalam situasi yang dinamis, seperti pada komputer digital ataupun pada sistem aliran (flow system), konsep graf berarah lebih sering digunakan dibandingkan dengan konsep graf tak berarah. • Suatu graf berarah (Directed Graph, yang dikenal sebagai Digraf) D terdiri dari 2 himpunan : (1). Himp. V, yang elemennya disebut simpul Vertex / point / titik / node (2). Himp. A, yang merupakan pasangan terurut dari simpul, disebut ruas berarah Arc / arkus • Sehingga sebuah digraf dinotasikan sebagai D ( V, A )

Sebuah graf berarah D(V, A), dengan : V = { 1, 2, 3, 4

Sebuah graf berarah D(V, A), dengan : V = { 1, 2, 3, 4 } A = { (1, 4), (2, 1), (4, 2), (4, 3), (2, 2) } 1 4 2 3 Arc (2, 2) disebut self-loop, sedangkan arc (2, 1) muncul 2 kali, disebut arc sejajar atau arc berganda Apabila arc suatu graf berarah mempunyai suatu bobot, graf berarah tersebut dinamakan suatu jaringan atau network.

Istilah-Istilah dalam Digraf o Derajat ke luar (out degree) suatu vertex adalah banyaknya arc

Istilah-Istilah dalam Digraf o Derajat ke luar (out degree) suatu vertex adalah banyaknya arc yang mulai / keluar dari vertex tersebut o Derajat ke dalam (in degree) suatu vertex adalah banyaknya arc yang berakhir / masuk ke vertex tersebut o Vertex berderajat ke dalam = 0 disebut sumber (source), sedangkan simpul berderajat ke luar = 0 disebut muara (sink). o Pengertian Walk, Trail, Path (Jalur) dan Sirkuit (Cycle) berlaku pula pada graf berarah, dimana harus sesuai dengan arah arc. Kalau tidak sesuai dengan arah arc-nya, maka disebut sebagai semi walk, semi path atau semi trail.

 • Pada digraf terdapat 3 pengertian keterhubungan, yakni : o Terhubung lemah, jika

• Pada digraf terdapat 3 pengertian keterhubungan, yakni : o Terhubung lemah, jika terdapat suatu semi path antara setiap 2 vertex dari D. o Terhubung unilateral, jika antara setiap 2 vertex u dan v dari D, terdapat path dari u ke v atau dari v ke u. o Terhubung kuat, jika antara setiap 2 vertex u dan v dari D, terdapat path dari u ke v dan dari v ke u.

Matriks Digraf • Misalkan D(V, A) suatu digraf dengan vertex v 1, v 2,

Matriks Digraf • Misalkan D(V, A) suatu digraf dengan vertex v 1, v 2, … , vm. Matriks M berukuran (mxm) merupakan matriks (matriks adjacency) dari D, dengan mendefinisikan sebagai berikut : o M = (Mij), dengan mij banyaknya arc yang mulai di vi dan berakhir di vj

Shortest Path • Jalur terpendek (shortest path) antara dua vertex dari s ke t

Shortest Path • Jalur terpendek (shortest path) antara dua vertex dari s ke t dalam jaringan adalah lintasan graph berarah sederhana dari s ke t dengan sifat dimana tidak ada lintasan lain yang memiliki nilai terendah. • Untuk setiap node s dan t dapat terjadi beberapa lintasan, di mana lintasan dengan bobot minimum disebut sebagai lintasan atau rute terpendek. • Bobot di sini dapat berupa jarak, waktu tempuh, atau ongkos transportasi dari suatu node ke node lainnya yang berbentuk rute tertentu. • Salah satu nya menggunakan Algoritma Dijkstra.

Algoritma Dijkstra • Algoritma ini bertujuan untuk menemukan jalur terpendek berdasarkan bobot terkecil dari

Algoritma Dijkstra • Algoritma ini bertujuan untuk menemukan jalur terpendek berdasarkan bobot terkecil dari satu titik ke titik lainnya. • Misalkan titik mengambarkan gedung dan garis menggambarkan jalan, maka algoritma Dijkstra melakukan kalkulasi terhadap semua kemungkinan bobot terkecil dari setiap titik.

 • Pertama-tama tentukan titik mana yang akan menjadi node awal, lalu beri bobot

• Pertama-tama tentukan titik mana yang akan menjadi node awal, lalu beri bobot jarak pada node pertama ke node terdekat satu per satu, Dijkstra akan melakukan pengembangan pencarian dari satu titik ke titik lain dan ke titik selanjutnya tahap demi tahap.

Urutan logika dari algoritma Dijkstra 1. 2. 3. Beri nilai bobot (jarak) untuk setiap

Urutan logika dari algoritma Dijkstra 1. 2. 3. Beri nilai bobot (jarak) untuk setiap titik ke titik lainnya, lalu set nilai 0 pada node awal dan nilai tak hingga terhadap node lain (belum terisi) Set semua node “Belum terjamah” dan set node awal sebagai “Node keberangkatan” Dari node keberangkatan, pertimbangkan node tetangga yang belum terjamah dan hitung jaraknya dari titik keberangkatan. Sebagai contoh, jika titik keberangkatan A ke B memiliki bobot jarak 6 dan dari B ke node C berjarak 2, maka jarak ke C melewati B menjadi 6+2=8. Jika jarak ini lebih kecil dari jarak sebelumnya (yang telah terekam sebelumnya) hapus data lama, simpan ulang data jarak dengan jarak yang baru.

4. 5. Saat kita selesai mempertimbangkan setiap jarak terhadap node tetangga, tandai node yang

4. 5. Saat kita selesai mempertimbangkan setiap jarak terhadap node tetangga, tandai node yang telah terjamah sebagai “Node terjamah”. Node terjamah tidak akan pernah di cek kembali, jarak yang disimpan adalah jarak terakhir dan yang paling minimal bobotnya. Set “Node belum terjamah” dengan jarak terkecil (dari node keberangkatan) sebagai “Node Keberangkatan” selanjutnya dan lanjutkan dengan kembali ke step 3

Contoh: 1. Node awal 1, Node tujuan 5. Setiap edge yang terhubung antar node

Contoh: 1. Node awal 1, Node tujuan 5. Setiap edge yang terhubung antar node telah diberi nilai 2

2. Dijkstra melakukan kalkulasi terhadap node tetangga yang terhubung langsung dengan node keberangkatan (node

2. Dijkstra melakukan kalkulasi terhadap node tetangga yang terhubung langsung dengan node keberangkatan (node 1), dan hasil yang didapat adalah node 2 karena bobot nilai node 2 paling kecil dibandingkan nilai pada node lain, nilai = 7 (0+7).

3. Node 2 diset menjadi node keberangkatan ditandai sebagi node yang telah terjamah. Dijkstra

3. Node 2 diset menjadi node keberangkatan ditandai sebagi node yang telah terjamah. Dijkstra melakukan kalkulasi kembali terhadap node-node tetangga yang terhubung langsung dengan node yang telah terjamah. Dan kalkulasi dijkstra menunjukan bahwa node 3 yang menjadi node keberangkatan selanjutnya karena bobotnya yang paling kecil dari hasil kalkulasi terakhir, nilai 9 (0+9).

4. Perhitungan berlanjut dengan node 3 ditandai menjadi node yang telah terjamah. Dari semua

4. Perhitungan berlanjut dengan node 3 ditandai menjadi node yang telah terjamah. Dari semua node tetangga belum terjamah yang terhubung langsung dengan node terjamah, node selanjutnya yang ditandai menjadi node terjamah adalah node 6 karena nilai bobot yang terkecil, nilai 11 (9+2).

5. Node 6 menjadi node terjamah, dijkstra melakukan kalkulasi kembali, dan menemukan bahwa node

5. Node 6 menjadi node terjamah, dijkstra melakukan kalkulasi kembali, dan menemukan bahwa node 5 (node tujuan ) telah tercapai lewat node 6. Jalur terpendeknya adalah 1 -3 -6 -5, dan niilai bobot yang didapat adalah 20 (11+9). Bila node tujuan telah tercapai maka kalkulasi dijkstra dinyatakan selesai.

Latihan Tentukan jalur terpendek menggunakan algoritma Dijkstra ! 4 x 4 3 6 u

Latihan Tentukan jalur terpendek menggunakan algoritma Dijkstra ! 4 x 4 3 6 u a 2 y Sumber 3 2 3 b 2 Muara 1 3 2 c z 5 v