Matematika Diskrit Suryadi MT Tree
Pendahuluan Pohon (tree) T adalah: Graph sederhana yang untuk setiap pasang simpul/verteks v dan w terdapat satu jalur dari v ke w, atau Graph yang terhubung dan tidak mengandung sirkuit.
Karakteristik Tree Teorema : Suatu graph T dengan n simpul adalah Pohon jika : a) T terhubung dan acyclic (“acyclic” = tidak mengandung sirkuit) b) T terhubung dan memiliki n-1 ruas c) T acyclic dan memiliki n-1 ruas
Contoh :
Pohon Berakar Suatu pohon berakar (rooted tree) adalah pohon dengan satu simpul/verteks yang ditunjuk sebagai akar (root).
Level dari simpul & Height dari Tree Misalkan T adalah rooted tree: Level l(v) dari simpul v adalah panjang jalur dari simpul v ke root. Height h dari rooted tree T adalah maksimum dari semua level setiap simpul pada T. h = max { l(v) } v V(T) Contoh : height dari rooted tree (gambar disebelah) adalah 3
Pemakaian Pohon Berakar (Struktur Organisasi)
Pemakaian Pohon Berakar (Sistem File Komputer)
Pemakaian Pohon Berakar (Saturated Hydrocarbon )
Pemakaian Pohon Berakar (Huffman Codes) Cara untuk menyatakan sebuah karakter dalam komputer adalah menggunakan fixed-length bit strings Misal: ASCII (American Standard Code for Information Interchange) menyatakan setiap karakter dengan panjang 7 bit
Pemakaian Pohon Berakar (Huffman Codes) (Lanjutan) Karakter Kode ASCII A 100 0001 B 100 0010 C 100 0011 1 011 0001 2 011 0010 ! 010 0001 * 010 1010
Pemakaian Pohon Berakar (Huffman Codes) (Lanjutan) Huffman Code adalah salah satu alternatif selain ASCII untuk menyatakan karakter dalam bentuk bit string Idenya adalah menggunakan string bit yang sedikit untuk menyatakan karakter yang sering digunakan dan string bit yang banyak untuk karakter yang jarang digunakan Dapat dinyatakan dengan rooted tree
Pemakaian Pohon Berakar (Huffman Codes) (Lanjutan) Karakter Kode A 1 O 00 R 010 S 0110 T 0111
Membangun Huffman Codes Optimal Contoh: Diberikan tabel karakter dan frekuensi kemunculannya Algoritma Karakter Frekuensi A 15 O 10 R 5 S 3 T 2
Pembentukan Huffman Codes Optimal 15 20 1 1 15 10 5 2 3 15 10 1 Karakter Kode 1 A 1 O 00 R 010 S 0110 T 0111 1 15 10 5 Apakah unik ???
Terminology Parent/Orang tua Ancestor/nenek moyang Child/anak Descendant/keturunan Siblings/saudara Simpul Terminal/daun Simpul Internal/cabang Subtrees
Terminology Misal T adalah tree dengan root v0 dan x,y,z adalah simpul pada T serta (v0, v1, v2, …, vn ) jalur pada T maka : vn-1 adalah Parent dari vn. v0, v1, v2, …, vn adalah Ancestor dari vn. vn adalah Child dari vn-1. Jika x adalah ancestor dari y, maka y disebut Descendant dari x. Jika x dan y adalah child dari z, maka x dan y disebut Siblings. Jika x tidak punya child maka x disebut simpul Terminal (leaf). Jika x bukan simpul terminal maka x disebut simpul Internal (branch). Subtrees dari pohon berakar T pada x adalah graph (V,E) dengan x V dan simpul lainnya descendant dari x serta E = {e | ruas pada jalur dari x ke simpul lainnya pada V }
Simpul Internal dan Terminal Simpul Internal adalah simpul yang memiliki paling sedikit satu child. Simpul Terminal adalah simpul yag tidak memiliki child. Contoh : Lihat Gambar di sebelah ! Tree tersebut mempunyai 4 simpul internal dan 4 simpul terminal
Subtree suatu subtree dari tree T adalah tree T' sehingga berlaku : V(T') V(T) , dan E(T') E(T)
Contoh Diketahui Tree T berikut : Uranus Aphrodite Kronos Atlas Prometheus Eros Zeus Poseidon Hades Ares Apollo Athena Hermes Heracles
Contoh (lanjutan) Parent dari Eros adalah Ancestor dari Hermes adalah : Subtree berakar pada Kronos : Aphrodite Zeus , Kronos dan Uranus Kronos Zeus Poseidon Hades Ares Apollo Athena Hermes Heracles
Spanning tree Diketahui graph G dan tree T adalah spanning tree dari G jika : T adalah subgraph dari G dan T mengandung semua simpul dari G
Spanning tree search Breadth-first search method (BFS) Depth-first search method (backtracking)/DFS
Metode Breadth-first search (BFS) Ide dari metode ini adalah memproses semua simpul/verteks pada level yang sama baru kemudian ke level berikutnya Contoh: Misal urutannya adalah abcdefgh
Metode Breadth-first search (BFS) Ambil a sebagai root Maka spanning tree yang terbentuk adalah:
Metode Depth-First Search (DFS) Untuk Graph yang sama dengan urutan abcdefgh Pilih verteks a sebagai root kemudian tambahkan ruas/edge (a,x) dengan x minimal, yaitu (a,b) Tambahkan ruas/edge (b,d), (d,c), (c,e), (e,f) dan (f,h) Dari verteks h, tidak dapat ditambahkan edge lagi, maka lakukan backtrack ke parent f dan pilih edge yangf lain. Ternyata tidak ada. Lakukan kembali backtrack ke parent e pilih edge (e,g) Setelah ini tidak ada lagi edge yang dapat ditambahkan dengan syarat tidak terjadi sirkuit
Metode Depth-First Search (DFS) Hasil spanning tree dengan metode DFS
Minimal Spanning trees Bila G graph berbobot dan terhubung maka minimum spanning tree adalah Suatu spanning tree dari G yang memiliki bobot minimum.
Algoritma Prim’s Step 0: ambil satu simpul sembarang, sebagai simpul awal (sebut a). T = {a}. Step 1: cari ruas dengan bobot terkecil yang incident ke a. Tambahkan simpul yang terdapat pada ruas tsb ke T (misal simpul b T = {a, b}. Step 2: cari ruas dgn bobot terkecil yang incident ke a atau b. Tambahkan simpul yang terdapat pada ruas tsb ke T (misal simpul c T = {a, b, c}. Step 3: ulangi Step 2, pilih ruas dgn bobot terkecil lainnya dan tidak mengandung sirkuit, sampai semua simpul terpilih. Hasilnya berupa subgraph T adalah minimum spanning tree.
Algoritma Kruskal’s Step 1: buat graph yang hanya terdiri dari semua simpul dari G. Step 2: cari ruas dengan bobot terkecil. Tambahkan ruas tersebut ke graph awal, dan jangan membentuk sirkuit. Step 3: ulangi Step 2 sampai semua simpul terhubung (sebanyak n-1 penambahan ruas). Hasil akhirnya akan membentuk minimum spanning tree.
Contoh : Diketahui graf G sebagai berikut dan tentukan Minimal Spanning Tree-nya..!
Solusinya (Algortima Prim’s) 10 1 2 3 35 25 4 5 20 6 15 Bobot Minimal Spanning Tree nya = 10 + 25 + 15 + 20 + 35 = 105
Sisi-sisi diurut menaik: Bobot 10 15 20 25 30 35 40 45 50 55 10 1 2 3 35 25 4 5 20 6 Bobot Minimal Spanning Tree nya = 10 + 15 + 20 + 25 + 35 = 105 15
Binary tree binary tree (Pohon Biner) adalah pohon yang setiap simpulnya mempunyai 0, 1 atau 2 child.
Full binary tree Full binary tree (Pohon Biner Lengkap) adalah binary tree yang setiap simpulnya mempunyai 0 atau 2 child.
Full binary tree (Lanjutan) Teorema : jika T adalah full binary tree dengan k simpul internal maka : T memiliki k + 1 simpul terminal, dan Total jumlah simpulnya adalah 2k + 1. Contoh : T dengan k = 4 simpul internal (a, b, c and f) 5 simpul terminal (d, e, g, h and i) dan totalnya adalah 9 simpul.
Height dan simpul terminal Teorema: jika suatu binary tree dengan height h memiliki t simpul terminal, maka log t < h, dengan log adalah logaritma berbasis 2. Ekivalen dengan t < 2h. Contoh : h = 4 and t = 7. maka benar berlaku : t = 7 < 16 = 24 = 2h
A case of equality Jika semua t simpul terminal dari full binary tree T dengan level = height = h, maka : t = 2h. Contoh : Height h = 3, Banyaknya simpul terminal t = 8 t = 8 = 23 = 2h
Binary search trees Data diasosiasikan dengan simpul Urutkan data secara alpabetikal, demikian sehingga untuk setiap simpul v, data disebelah kiri v lebih kecil dari data di v Dan data disebelah kanan v lebih besar dari data di v Contoh: "Computers are an important technological tool"
Tree Traversal 1: Pre-order traversal 2: In-order traversal
More on tree traversals 3: Post-order traversal 4: Reverse post-order traversal
Ekspresi Aritmatik Standar: bentuk infix (A+B) C – D/ E in-order & tanda kurung: (((A + B) C) – (D / E)) Bentuk Postfix: A B + C D E / - Bentuk Prefix: - + A B C / D E
Contoh : Diketahui notasi infix dari ekspresi : ((x + y)^2) + ((x – 4)/3 Notasi postfix yaitu : xy+2^x4-3/+ Notasi prefix yaitu : +^+xy2/-x43
Contoh : + - * 2 3 5 / ^ 2 3 4 Diketahui notasi prefix dari ekspresi : Tentutkan nilainya … !
Contoh : Diketahui notasi postfix dari ekspresi : 7 2 3 * - 4 ^ 9 3 / + Tentutkan nilainya … !
Dengan sungguh-sungguh Penutup Selamat Belajar Dengan sungguh-sungguh Semoga Tambah sukses Dalam UAS nanti…