Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Trees Directed Graph Algoritma Dijkstra

Presentasi serupa


Presentasi berjudul: "Trees Directed Graph Algoritma Dijkstra"— Transcript presentasi:

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

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

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

4 Contoh Sebuah tree mempunyai 2n buah vertex berderajat 1, 3n 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 (2n x 1) + (3n x 2) + (n x 3) = 2 |E| 11n = 2 |E| …………………………… (1) Jumlah edge pada sebuah tree adalah jumlah vertex minus satu, sehingga : |E| = (2n + 3n + 1n) – 1 = 6n – 1 …………………(2) Persamaan (1) dan (2) menjadi : 11n = 2 (6n – 1) 11n = 12n – 2 n = 2 Jadi : Jumlah vertex pada tree 6n = 6 x 2 = 12 buah vertex Jumlah vertex 6n – 1 = 11 buah vertices

5 Graf lengkap G dengan 4 buah spanning tree-nya: T1, T2, T3 dan T4
Spanning tree dari graf G adalah spanning subgraf yang berbentuk tree G T1 T2 T3 T4 Graf lengkap G dengan 4 buah spanning tree-nya: T1, T2, T3 dan T4 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

6 Jika n buah vertex dan m buah edge maka :
Untuk graf terhubung : Jumlah branch : n – 1 Jumlah link : m – n + 1 Untuk graf tak-terhubung dengan k komponen : Jumlah branch : n – k Jumlah link : m – n + k Rank graf G adalah : Jumlah cabang(branch) pada spanning tree dari sebuah graf G Nullity graf G adalah : 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 : Sirkuit yang terbentuk dengan penambahan sebuah link pada spanning tree

7 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-simpul, disebut ruas berarah  Arc / arkus Sehingga sebuah digraf dinotasikan sebagai D ( V, A )

8 Sebuah graf berarah D(V,A), dengan : V = { 1, 2, 3, 4 } A = { (1,4), (2,1), (2,1), (4,2), (4,3), (2,3), (2,2) } 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. 4 3 2 1

9 Istilah-Istilah dalam Digraf
Derajat ke luar (out degree) suatu vertex adalah banyaknya arc yang mulai / keluar dari vertex tersebut Derajat ke dalam (in degree) suatu vertex adalah banyaknya arc yang berakhir / masuk ke vertex tersebut Vertex berderajat ke dalam = 0 disebut sumber (source), sedangkan simpul berderajat ke luar = 0 disebut muara (sink). 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.

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

11

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

13 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.

14 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.

15 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.

16 Urutan logika dari algoritma Dijkstra
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.

17 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

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

19 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).

20 Node 2 diset menjadi node keberangkatan dan 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).

21 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).

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

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


Download ppt "Trees Directed Graph Algoritma Dijkstra"

Presentasi serupa


Iklan oleh Google