Menghitung Ketinggian Rata-Rata Pohon Terurut

dokumen-dokumen yang mirip
Menyelesaikan Topological Sort Menggunakan Directed Acyclic Graph

ANALISIS ALGORITMA PEMBANGUN POHON EKSPRESI DARI NOTASI PREFIKS DAN POSTFIKS

Penggunaan Graf pada Pemetaan Genetik dan Integrasi Peta Genetik

Pemanfaatan Pohon Biner dalam Pencarian Nama Pengguna pada Situs Jejaring Sosial

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

Penggunaan Pohon Biner Sebagai Struktur Data untuk Pencarian

PENERAPAN GRAF DAN POHON DALAM SISTEM PERTANDINGAN OLAHRAGA

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Aplikasi Pohon Pencarian Biner Seimbang sebagai Memo Table Dynamic Programming

Pemanfaatan Pohon dalam Realisasi Algoritma Backtracking untuk Memecahkan N-Queens Problem

Penerapan Algoritma Backtracking pada Pewarnaan Graf

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf

Penerapan strategi runut-balik dalam penyelesaian permainan puzzle geser

Penerapan Teori Graf Pada Algoritma Routing

MEMBANDINGKAN KEMANGKUSAN ALGORITMA PRIM DAN ALGORITMA KRUSKAL DALAM PEMECAHAN MASALAH POHON MERENTANG MINIMUM

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

Aplikasi Pohon pada Pohon Binatang (Animal Tree)

Penerapan Pohon Keputusan dalam Pengambilan Keputusan Terbaik dibidang Pemasaran Produk

Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB

Implementasi Logika Penurunan Persamaan Aritmatika pada Program Komputer

Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut

Kompleksitas Algoritma Pengurutan Selection Sort dan Insertion Sort

Penyelesaian Traveling Salesman Problem dengan Algoritma Heuristik

Aplikasi Pohon dan Graf dalam Kaderisasi

PENERAPAN ALGORITMA BRANCH AND BOUND DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN ANTARKOTA DI JAWA BARAT

Variasi Pohon Pencarian Biner Seimbang

Pemanfaatan Directed Acyclic Graph untuk Merepresentasikan Hubungan Antar Data dalam Basis Data

Algoritma Prim dengan Algoritma Greedy dalam Pohon Merentang Minimum

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1

Algoritma Penentuan Graf Bipartit

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Deteksi Wajah Menggunakan Program Dinamis

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Penerapan Algoritma Greedy untuk Memecahkan Masalah Pohon Merentang Minimum

I. PENDAHULUAN. Gambar 1. Contoh-contoh graf

TUGAS MAKALAH INDIVIDUAL. Mata Kuliah : Matematika Diskrit / IF2153 Nama : Dwitiyo Abhirama NIM :

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

PENGGUNAAN BIG O NOTATION UNTUK MENGANALISA EFISIENSI ALGORITMA

Aplikasi Graf Berarah dan Pohon Berakar pada Visual Novel Fate/Stay Night

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

I. PENDAHULUAN. 1.1 Permainan Rush Hour

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

Pemanfaatan Algoritma Sequential Search dalam Pewarnaan Graf untuk Alokasi Memori Komputer

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI

Pohon Indeks Biner atau Pohon Fenwick untuk menyelesaikan persoalan penjumlahan interval

Penerapan Relasi Rekursif dan Matriks dalam Partisi Bilangan Bulat

Studi Algoritma Optimasi dalam Graf Berbobot

Penerapan BFS dan DFS pada Pencarian Solusi

Aplikasi Pohon Merentang Minimum dalam Rute Jalur Kereta Api di Pulau Jawa

Penerapan Graf pada PageRank

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

BAB 2 LANDASAN TEORI

Graf untuk soal nomor 7

Permasalahan Clique dalam Graf

Implementasi Metode Jumlah Riemann untuk Mendekati Luas Daerah di Bawah Kurva Suatu Fungsi Polinom dengan Divide and Conquer

Penerapan Algoritma Steiner Tree dalam Konstruksi Jaringan Pipa Gas

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

Penggunaan Graf Semi-Hamilton untuk Memecahkan Puzzle The Hands of Time pada Permainan Final Fantasy XIII-2

Penerapan Pohon Keputusan pada Pemilihan Rencana Studi Mahasiswa Institut Teknologi Bandung

Penyandian (Encoding) dan Penguraian Sandi (Decoding) Menggunakan Huffman Coding

Penggunaan Perwarnaan Graf dalam Mencari Solusi Sudoku

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

Pengaplikasian Logika, Rekursi dan Rekurens, Teori Graf, dan Teori Pohon pada Video Game Professor Layton

PEWARNAAN GRAF SEBAGAI METODE PENJADWALAN KEGIATAN PERKULIAHAN

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

Penerapan Pohon Biner dalam Proses Pengamanan Peer to Peer

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Aplikasi Teori Graf Pada Knight s Tour

Pembuktian Cayley s Formula dengan Prüfer Sequence

Strategi Permainan Menggambar Tanpa Mengangkat Pena

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug

Memanfaatkan Pewarnaan Graf untuk Menentukan Sifat Bipartit Suatu Graf

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour

Struktur Data Pohon Untuk Memodelkan Struktur Data Himpunan

STUDI DAN APLIKASI POHON KEPUTUSAN SEBAGAI SUPPORT TOOL DALAM PENGAMBILAN KEPUTUSAN

Penerapan Algoritma Branch And Bound Dalam Optimasi Assigment Problem

Aplikasi Pohon dalam Pencarian dan Penempatan Buku di Perpustakaan

Pewarnaan Simpul pada Graf dan Aplikasinya dalam Alokasi Memori Komputer

Aplikasi Pohon Keputusan dalam Pemilihan Penerima Beasiswa UKT

BAB II LANDASAN TEORI

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

Aplikasi Pohon dalam Pengambilan Keputusan oleh Sebuah Perusahaan

Pembentukan pohon pencarian solusi dan perbandingan masingmasing algoritma pembentuknya dalam simulasi N-Puzzle

PENERAPAN PEWARNAAN GRAF DALAM PENJADWALAN

Penggunaan Metode Branch And Bound With Search Tree

Pemodelan Pembagian Kelompok Tugas Besar Strategi Algoritma dengan Masalah Sum of Subset

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem)

Penyelesaian Permasalahan Nonogram dengan Algoritma Runut Balik

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

Aplikasi Graf dalam Rute Pengiriman Barang

APLIKASI POHON DALAM PENCARIAN CELAH KEAMANAN SUATU JARINGAN

Penerapan Algoritma Transversal pada Graf dan Algoritma Pencocokan String dalam Sistem Jual-Beli Tiket Bioskop

Branch & Bound. Bahan Kuliah IF2211 Strategi Algoritma Rinaldi Munir & Masayu Leylia Khodra

Rasa ingin tahu adalah ibu dari semua ilmu pengetahuan. Tak kenal maka tak sayang, tak sayang maka tak cinta

Transkripsi:

Menghitung Ketinggian Rata-Rata Pohon Terurut Archie Anugrah - 13508001 Jurusan Teknik Informatika Institut Teknologi Bandung Jalan Ganesha nomor 10, Bandung e-mail: if18001@students.if.itb.ac.id ABSTRAK Dalam makalah ini, penulis membahas tentang salah satu teorema yang tergolong baru dalam teori graf pohon, yaitu teorema fungsi perhitung an ketinggian rata-rata dari pohon terurut. Teorema yang diturunkan oleh N.G. de Brujin, D.E. Knuth, dan S.O. Rice ini menggunakan metoda perhitungan jumlah deret, perhitungan bilangan kompleks, dan aproksimasi Stirling untuk menurunkan teorema fungsi penghitungan ketinggian rata-rata dari pohon terurut. Walaupun penurunan teorema menggunakan aproksimasi, galat yang dihasilkan tergolong kecil (sebanding dengan log n) sehingga dapat diabaikan. Ketinggian rata-rata dari pohon terurut dibutuhkan ketika kita mengaproksimasi kebutuhan memori untuk program yang kita buat, terutama pemrosesan pohon dengan struktur data stack (tumpukan) dan queue (barisan). Aproksimasi kebutuhan penggunaan memori penting untuk menentukan performa dari program yang kita buat (benchmark). Dengan teorema ini, penghitungan ketinggian rata-rata dari pohon dengan simpul tertentu tidak perlu dicari dengan mencoba dan menghitung semua kemungkinan pohon satu per satu yang tentunya akan menghemat waktu yang di butuhk an dalam pencarian ketinggian ratarata dari pohon terurut. 2. Graf berarah (directed graph atau digraph) Graf yang sisinya mempunyai orientasi arah. 1.2 Pohon Gambar 1.Contoh Graf Tak Berarah Gambar 2.Contoh Graf Berarah 1.2.1 Definisi Pohon Pohon didefinisikan sebagai graf tak-berarah terhubung yang tidak mengandung sirkuit. Jadi pohon sebenarnya hanyalah salah satu spesifikasi dari graf. Kata kunci: Fungsi perhitungan ketinggian rata-rata pohon terurut, penurunan teorema, penggunaan perhitungan ketinggian rata-rata pohon terurut. 1. PENDAHULUAN Gambar 3.Contoh Graf Pohon 1.1 Definisi Graf Graf adalah pasangan himpunan (V,E) di mana V adalah himpunan tidak kosong dari vertex(simpul) dan E adalah himpunan sisi yang menghubungkan sepasang simpul dalam graf tersebut. Graf, menurut himpunan sisinya, dibagi menjadi : 1. Graf tak-berarah (undirected graph) Graf yang sisinya tidak mempunyai orientasi arah. Gambar 4.Contoh Graf Bukan Pohon MAKALAH IF2091 STRUKTUR DISKRIT TAHUN 2009

1.2.2 Definisi Pohon Berakar Pohon berakar (rooted tree) adalah pohon yang satu buah simpulnya diperlakukan sebagai akar dan sisi-sisinya diberi arah sehingga menjadi graf berarah. Menurut perjanjian, dalam melukiskan pohon berakar, kita tidak perlu menggambarkan panah dari graf berarah. 1.3 Ketinggian Rata-rata Pohon Terurut Rumus ketinggian rata-rata dari pohon terurut adalah rumus yang dikembangkan oleh N.G. de Brujin, D.E.Knuth, dan S.O.Rice untuk menghitung rata-rata ketinggian dari pohon terurut dengan jumlah simpul tertentu. Misalkan, kita diberikan 4 buah simpul yang akan dibuat menjadi pohon maka kita dapat membuat beberapa tipe pohon, seperti : Gambar 5.Contoh Pohon berakar 1.2.3 Definisi Pohon Terurut Pohon terurut (ordered tree) adalah pohon berakar yang urutan anak-anaknya penting. Gambar 6.Keterurutan Pohon 1.2.4 Definisi Tinggi Pohon Level (aras) adalah tingkatan dari pohon dimana penomoran level bermula dari akar yang diberi nilai 1. Gambar 8.Beberapa kemungkinan pohon 4 simpul Di contoh diatas, baru disebutkan contoh-contoh pohon biner saja, belum lagi untuk pohon n-ary lainnya sehingga akan terbentuk begitu banyak kemungkinan pohon dengan ketinggian yang berbeda-beda untuk jumlah simpul yang tertentu. Untuk menghitung rata-rata ketinggian dari pohon, biasanya digunakan pendekatan brute force. Pendekatan ini dikerjakan dengan mengkonstruksi semua pohon yang mungkin dari jumlah simpul yang ada. Setelah semua pohon terbentuk, ketinggian masing-masing pohon dihitung, dijumlah, lalu dirata-rata. Metoda ini memang dapat menghasilkan nilai rata-rata yang bisa dibilang akurat, tetapi algoritma ini membutuhkan waktu yang lama dan tidak efisien karena sifat dari fungsi-fungsi yang menggunakan pendekatan brute force memiliki kompleksitas waktu eksponensial. Kita butuh menghitung ketinggian pohon untuk menghitung jumlah memori yang dibutuhkan untuk memroses pohon tertentu (misalkan algorima memroses pohon ekspresi yang harus mengkonversi pohon biner kedalam stack terlebih dahulu). Ketinggian rata-rata dapat digunakan untuk memrediksi berapa jumlah memori yang kira-kira diperlukan untuk pohon dengan simpul tertentu. Jadi terlihat bahwa kebutuhan pengihtungan ketinggian pohon rata-rata ini berhubungan erat dengan pengujian ketahanan algoritma tertentu dalam menangani data pohon, sehingga tidaklah efektif bila kita harus menggunakan brute force dalam pencarian ketinggian pohon terurut rata-rata. Gambar 7.Le vel Pohon Ketinggian adalah aras paling maksimal dari suatu pohon tertentu. Contoh : Pohon pada gambar 7 memiliki ketinggian 4. 2. METODE 2.1 Penurunan Rumus Misalkan ketinggian pohon disimbolkan sebagai A h (z).

Jika kita tilik lebih jauh kita akan mendapatkan bahwa p h (-1) adalah bilangan Fibonacci F h dan Kita dapat mencari semua pohon dengan tinggi h+1 dengan menghilangkan akar dan menambahkan upapohon dengan tinggi h, sehingga : Karena ph(z) 2 p h+1 (z) p h-1 (z) = z h-1, maka didapatkan : Karena, A 0 (z) = 0, maka rumus (2) dapat diubah menjadi rumus rekurens untuk A nh Karena ph adalah fungsi polinom berderajat, akar p h (z)=0 adalah (4cos 2 ( )) -1, didapatkan ekspansi parsial sebagai berikut : Karena tidak ada pohon dengan ketinggian > n, maka kita mendapatkan rumusan (rumus ini sebenarnya merupakan rumus total pohon dengan n simpul): Dengan θ jh = dan Jika kita menghitung iterasi (4), maka kita akan mendapat pembagian sebagai berikut : Semua persamaan tersebut akan menghasilkan persamaan : Fungsi diatas dapat ditulis dalam bentuk : Persamaan (14) akan menghasilkan nilai yang konstan untuk n tertentu dan h n. Kasus khusus dari (14) dapat diturunkan menjadi formula asimtotik berikut Dimana Penurunan A nh juga dapat diturunkan dari teori variable kompleks sebagai berikut : Solusi untuk fungsi rekurens tersebut adalah Jika kita menggunakan z = mendapatkan :, kita akan dimana Karena

Kita mendapatkan bahwa u z ketika z < 1, sehingga kita dapat mengubah variable (16) untuk mendapat persamaan berikut Dengan kata lain A nh adalah koefisien dari u n-1 dalam (1-u)(1+u)2n-2. Untuk menyederhanakan fungsi, kita akan memfokuskan pada pohon dengan ketinggian lebih besar dari h. Untuk k deret untuk k untuk ε > 0. Oleh karena itu jumlah dapat diabaikan. Sekarang kita beralih ke fungsi berikut : Sehingga Lagi-lagi untuk k= jadi kita bisa menggunakan persamaan (25) untuk mengekspresikan f dalam g. Tinggi rata-rata pohon dengan node adalah jumlah dari : dimana S n Perilaku dari g b dapat diturunkan dengan menggunakan formula Dimana d(k) menyimbolkan jumlah pembagi positif dari k. Residue saat z=-k adalah Sekarang kita harus mencari fungsi asimptotik dari fungsi berikut : Yang selalu hampir bernilai 0 saat b genap. Jumlah (30) dan (31) untuk semua k 0 memberikan baris asimptotik dari g b (n). Sehingga untuk semua m>0 Dengan menggunakan x = Stirling kita dapat mendapatkan, dengan aproksimasi Kembali ke masalah semula, kita memunyai

Menggunakan persamaan (4), (23), (24), (27) yang sebanding dengan. Jadi, teorema yang didapatkan adalah untuk pohon terurut bersimpul n, didapatkan bahwa tinggi rata-rata sebesar Dimana faktor error sebanding log n yang dapat dibilang kecil. 2.2. Penggunaan Dengan teorema fungsi tinggi rata-rata pohon terurut, kita dapat memrediksikan rata-rata tinggi pohon terurut tanpa menggunakan algoritma yang mencoba semua kemungkinan pohon yang dapat terbentuk. Dengan adanya teorema yang berbentuk fungsi tersebut, lama eksekusi menurun dengan sangat drastis, dari yang sebelumnya menggunakan traversal elemen satu per satu, menjadi sekedar pemanggilan fungsi belaka. Jika dilihat dari penurunan rumus memang, dalam penghitungan digunakan metoda aproksimasi, tetapi galat yang dihasilkan hanya sebanding dengan log n yang menyebabkan galat yang terjadi dapat dibilang kecil dan dapat diabaikan. 3. KESIMPULAN Penurunan fungsi untuk nilai rata-rata tinggi pohon terurut membuat pencarian nilai rata-rata tinggi pohon terurut menjadi efektif karena untuk mencari nilai rata-rata tinggi pohon terurut tidak perlu lagi dicari semua kombinasi pohon satu per satu. REFERENSI [1] Munir, Rinaldi. 2008. Diktat Kuliah IF2091 Struktur Diskrit, edisi keempat.program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung. [2] Read, Ronald C, Graph Theory And Computing, Academic Press, 1972. [3] http://stackoverflow.com/questions/861393/average-heightof-a-binary-search-tree (Waktu akses : 11 Desember 2009, 7:05 PM) [4] http://en.wikipedia.org/wiki/tree_%28graph_theory%29 (Waktu akses : 11 Desember 2009, 7:05 PM)