P o h o n Oleh: Panca Mudji Rahardjo Definisi Pohon Adalah graf tak berarah terhubung yang tidak mengandung sirkuit. Contoh: G 1 dan G 2 pohon, G 3 dan G 4 bukan pohon. 1
Definisi Hutan (forest) Adalah kumpulan pohon yang saling lepas. Contoh: hutan yang terdiri dari 3 pohon Sifat-sifat pohon Misalkan T=(V,E) adalah graf tak-berarah sederhana dan jumlah simpulnya n. Maka, semua pernyataan dibawah ini adalah ekivalen: T adalah pohon, Setiap pasang simpul di dalam T terhubung dengan lintasan tunggal, T terhubung dan memiliki m = n 1 buah sisi, T tidak mengandung sirkuit dan memiliki m = n 1 buah sisi, T tidak mengandung sirkuit dan penambahan satu sisi pada graf akan membuat hanya satu sirkuit, T terhubung dan semua sisinya adalah jembatan (jembatan adalah sisi yang bila dihapus menyebabkan graf terpecah menjadi dua komponen). 2
Pohon rentang Misalkan G = (V,E) adalah graf tak berarah terhubung yang bukan pohon, yang berarti G terdapat beberapa sirkuit. G dapat diubah menjadi pohon T = (V 1,E 1 ) dengan cara memutuskan sirkuit yang ada. T disebut pohon rentang G bila V 1 = V dan E 1 E. Pohon rentang adalah upagraf rentang yang berupa pohon dari graf terhubung. Pohon rentang Graf lengkap G dan empat buah pohon rentangnya, T 1, T 2, T 3 dan T 4 3
Pohon rentang Cabang (branch) Adalah sisi pohon rentang,, yaitu sisi dari graf semula. Tali-hubung (chord atau link) Adalah sisi dari graf yang tidak terdapat di dalam pohon rentang. Komplemen pohon Adalah himpunan tali-hubung beserta simpul yang bersisian dengannya. Pohon rentang Untuk graf terhubung G dengan n buah simpul dan m buah sisi: Jumlah cabang = n 1 Jumlah tali-hubung = m-n+1m Untuk graf tak terhubung dengan k komponen, m buah sisi dan n buah simpul: Jumlah cabang = n k Jumlah tali-hubung = m n + k 4
Pohon rentang Rank graf G Adalah jumlah cabang pada pohon rentang dari sebuah graf G Nullity graf G Adalah jumlah tali-hubung pada graf G. Rank + nullity = jumlah sisi graf G Fundamental circuit Adalah sirkuit yang terbentuk dengan penam- bahan sebuah tali-hubung pada pohon rentang Pohon rentang minimum Jika G adalah graf berbobot, maka bobot pohon rentang T dari G didefinisikan sebagai jumlah bobot semua sisi di T. Di antara semua pohon rentang di G, pohon rentang yang berbobot minimum, disebut pohon rentang minimum. Terdapat dua buah algoritma: Algoritma Prim, Algoritma Kruskal. 5
Pohon rentang minimum (a) (b) Graf yang menyatakan jaringan jalur kereta api. Bobot pada tiap sisi menyatakan panjang rel kereta api (x 100 km) Pohon rentang yang mempunyai jumlah jarak minimum Algoritma Prim Langkah 1: Ambil sisi dari graf G yang berbobot minimum, masukkan ke dalam T. Langkah 2: Pilih sisi (u,v) yang mempunyai bobot minimum dan bersisian dengan simpul di T, tetapi (u,v) tidak membentuk sirkuit di T. Tambahkan (u,v) ke dalam T. Langkah 3: Ulangi langkah 2 sebanyak n-2 n 2 kali. 6
Algoritma Prim Contoh Algoritma Kruskal Langkah 0: Pengurutan sisi graf dari bobot kecil ke bobot besar Langkah 1: T masih kosong Langkah 2: Pilih sisi (u,v) dengan bobot minimum yang tidak membentuk sirkuit di T. Tambahkan (u,v) ke dalam T. Langkah 3: Ulangi langkah 2 sebanyak n 1 kali. 7
Pohon berakar Adalah pohon yang satu buah simpulnya diperlakukan sebagai akar dan sisi-sisinya sisinya di beri arah sehingga menjadi graf berarah. Akar mempunyai derajat masuk sama dengan nol,, dan simpul-simpul lainnya berderajat masuk sama dengan satu. Daun (simpul terminal): adalah simpul dengan derajat keluar sama dengan nol. Pohon berakar (a) (b) Pohon berakar, Sebagai perjanjian, tanda panah pada sisi dapat dibuang. 8
Pohon berakar Pohon dan dua buah pohon berakar yang dihasilkan dari pemilihan dua simpul berbeda sebagai akar. Pohon berakar (terminologi) Anak (child) dan orang tua (parent) Simpul Y dikatakan anak simpul X jika ada sisi dari simpul X ke simpul Y. X disebut orangtua Y. Contoh: b,c,d adalah anak simpul a. 9
Pohon berakar (terminologi) Lintasan (path) Lintasan dari simpul v 1 ke simpul v k adalah runtutan simpul-simpul v 1, v 2, v k sedemikian sehingga v i adalah orangtua dari v i+1 untuk 1 i k Contoh: lintasan dari a ke j, adalah a,b,e,j. Pohon berakar (terminologi) Keturunan dan leluhur Jika terdapat lintasan dari simpul X ke simpul Y di dalam pohon, maka X adalah leluhur simpul Y, dan Y adalah keturunan simpul X. Contoh: d adalah leluhur simpul m. 10
Pohon berakar (terminologi) Saudara kandung (sibling) Simpul yang berorangtua sama adalah saudara kandung satu sama lain. Contoh: h saudara kandung i, tetapi bukan saudara kandung k. Pohon berakar (terminologi) Upapohon (subtree) Misal X adalah simpul di dalam pohon T. Yang dimaksud upapohon,, dengan X sebagai akarnya, ialah upagraf T =(VT =(V,E ), sedemikian hingga V V mengandung X dan semua keturunannya dan E E mengandung sisi-sisi dalam semua lintasan yang berasal dari X. 11
Pohon berakar (terminologi) Upapohon (subtree) Upapohon T =(VT =(V,E ) ) dengan b sebagai akarnya Pohon berakar (terminologi) Derajat (degree) Derajat sebuah simpul adalah jumlah upapohon (atau jumlah anak) pada simpul tersebut. Contoh: derajat a adalah 3, derajat b adalah 2, derajat d adalah 1, derajat c adalah 0. 12
Pohon berakar (terminologi) Daun (leaf) Simpul yang berderajat nol (tidak mempunyai anak). Contoh: simpul h,i,j,f,c,l,dan m adalah daun. Pohon berakar (terminologi) Simpul dalam (internal nodes) Adalah simpul yang mempunyai anak. Contoh: simpul b,d,e,g, dan k adalah simpul dalam. 13
Pohon berakar (terminologi) Aras (level) atau tingkat Akar mempunyai aras = 0, sedangkan aras simpul lainnya = 1 + panjang lintasan dari akar ke simpul tersebut. Pohon berakar (terminologi) Tinggi (height) atau kedalaman (depth) Aras maksimum suatu pohon disebut tinggi atau kedalaman pohon tersebut. Atau tinggi pohon adalah panjang maksimum lintasan dari akar ke daun. 14
Pohon terurut Adalah pohon berakar yang urutan anak-anaknya anaknya penting. Pada pohon terurut, urutan anak-anak dari simpul dalam dispesifikasikan dari kiri ke kanan. Contoh: (a) urutan anak simpul 1 adalah 2,3,4. (b) urutan anak simpul 1 adalah 3,4,2. Pohon m-arym Adalah pohon berakar yang setiap simpul cabangnya mempunyai paling banyak m buah anak. m=2 disebut biner, m=3 disebut pohon 3-ary3 Pohon m-ary m dikatakan teratur atau penuh (full) jika setiap simpul cabangnya mempunyai tepat m anak. 15
Pohon m-arym Pohon parsing dari kalimat a tall boy wears a red hat Pohon m-arym Jumlah daun pada pohon m-ary m teratur. Pada pohon m-ary m teratur dengan tinggi h, jumlah daun adalah m h. Contoh: pohon 3-ary 3 teratur dengan jumlah daun = 3 2 = 9 16
Pohon m-arym Jumlah seluruh simpul pada pohon m-ary m teratur dengan tinggi h: S = m 0 + m 1 + m 2 +... + m h = h+ 1 m 1 m 1 Pohon m-arym Hubungan antara jumlah daun simpul dalam pada pohon m-ary m teratur : ( m 1) i = t 1 Dimana: m = jumlah anak i = jumlah simpul dalam dengan m anak t = jumlah daun 17
Pohon m-arym Pohon pertandingan turnamen tenis dengan sistem gugur Pohon biner Merupakan kasus khusus pohon m-ary m jika m = 2, setiap simpul cabang mempunyai maksimum dua buah anak. Gambar 7.16 18
Pohon biner Pohon condong kiri, pohon condong kanan. Pohon biner Pohon biner penuh. 19
Pohon biner Pohon biner seimbang Pada beberapa aplikasi, diinginkan tinggi upapohon kiri dan tinggi upapohon kanan seimbang, yaitu beda maksimal 1. Untuk menyeimbangkan tinggi keduanya, tingi pohon secara keseluruhan harus dibuat seminimal mungkin. Untuk memperoleh tinggi minimum, setiap aras harus mengandung jumlah simpul sebanyak mungkin, dengan menyebarkan setengah dari jumlah simpul di upapohon kiri dan setengah dari jumlah simpul di upapohon kanan. Pohon biner T1 dan T2 adalah pohon seimbang, sedangkan T3 bukan pohon seimbang. 20
In progress. 21