Senin, 15 Desember 2014

pohon tree



A.      Pohon (Tree)
POHON (TREE)
Defenisi Pohon (Tree) adalah graf terhubung yang tidak mengandung sirkuit. Karena merupakan graf terhubung maka pada pohon selalu terdapat path atau jalur yang menghubungkan kedua simpul di dalam pohon.
 Pohon (tree) merupakan salah satu bentuk khusus dari struktur suatu graf. Misalkan A merupakan sebuah himpunan berhingga simpul (vertex) pada suatu graf G yang terhubung. Untuk setiap pasangan simpul di A dapat ditentukan suatu lintasan yang menghubungkan pasangan simpul tersebut.  Untuk itu perlu diingat kembali bahwa :
·      Suatu Graf G disebut terhubung apabila untuk setiap dua simpul dari graf G selalu terdapat jalur yang menghubungkan kedua simpul tersebut.
·      Sirkuit atau cycle adalah suatu lintasan tertutup dengan derajat setiap simpul dua.
Suatu graf terhubung yang setiap pasangan simpulnya hanya dapat dihubungkan oleh suatu lintasan tertentu, maka graf tersebut dinamakan pohon (tree). Dengan kata lain, pohon (tree) merupakan graf tak-berarah yang terhubung dan tidak memiliki sirkuit.


Karena defenisi pohon mengacu dari teori graf, maka sebuah pohon dapat mempunyai hanya sebuah simpul tanpa sebuah sisipun. Dengan kata lain, jika G=(V,E) adalah pohon, maka V tidak boleh berupa himpunan kosong, namun E boleh kosong. Pada sebagian literatur, pohon yang dimaksudkan oleh Defenisi pohon di atas sering juga disebut pohon bebas (free tree) untuk membedakannya dengan pohon berakar (rooted tree). Pohon berakar akan dibahas lebih lanjut pada materi berikutnya.
Pohon juga seringkali didefinisikan sebagai graf tak-berarah dengan sifat bahwa hanya terdapat sebuah lintasan unik antara setiap pasangan simpul. Tinjau kembali graf G1 di atas. Setiap simpul di G1 terhubung dengan lintasan tunggal. Sebagai contoh, dari b ke f hanya ada satu lintasan, yaitu b, a, d, f. demikian juga untuk setiap pasangan simpul manapun di G1
Teorema 1
Jika T pohon, maka untuk setiap dua titik u dan v yang berbeda di T terdapat tepat satu lintasan (path) yang menghubungkan kedua titik tersebut.
Bukti
Misalkan ada lintasan (path) berbeda yang menghubungkan titik u dan titik v di T, katakanlah e1 dan e2, dengan e1≠e2. Maka e1 dan e2 akan menghubungkan titik u dan titik v, sehingga ada dua lintasan yang terhubung pada kedua titik tersebut dan membentuk sikel. Berdasarkan definisi, T tidak memiliki sikel. Dengan demikian, haruslah e1=e2. Hal ini bertentangan dengan pemisalan bahwa e1≠e2. Jadi, terbukti bahwa setiap dua titik yang berbeda di T memiliki tepat satu lintasan yang menghubungkan kedua titik tersebut.
Teorema 2
Banyaknya titik dari sebuah pohon T sama dengan banyaknya sisi ditambah satu atau ditulis:
Jika T pohon, maka |V (T)| = |E (T)| +1
Bukti
Kita buktikan teorema di atas dengan induksi pada |V(T)|. Jika pohon T mempunyai satu titik, jelas banyak sisi T adalah nol. Jadi teorema benar untuk pohon T dengan satu titik. Asumsikan bahwa pernyataan dalam teorema benar untuk pohon dengan k titik, artinya jika pohon T mempunyai paling banyak k titik, maka |V(T)| = |E(T)| + 1. Akan ditunjukkan bahwa jika pohon T mempunyai k + 1 titik maka |V(T)| = |E(T)| + 1. Misalkan T adalah pohon dengan k + 1 titik dan l adalah sebuah sisi T. Maka T – l memiliki tepat dua komponen T1 dan T2 , dan masing-masing komponen adalah pohon dengan titik kurang dari k + 1.  Sehingga menurut asumsi, |V(Ti)| = |E(Ti)| + 1 ; i = 1,2.
Selanjutnya |E(T)| = |E(T1)| + |E(T2)| + 1, sehingga
      |V(T)| = |V(T1)| + |V(T2)|
     = |E(T1)| + 1 + |E(T2)| + 1
     = (|E(T1)| + |E(T2)| + 1) + 1
     = |E (T)| + 1
Dengan demikian teorema terbukti.
Teorema 3
a.         Bila suatu sisi dihapus dari pohon (dan titiknya tetap), maka diperoleh graph yang tidak terhubung, dan karenanya graph itu bukan pohon.
b.         Bila sebuah sisi ditambahkan pada pohon (tanpa menambah titik baru), diperoleh graph yang memiliki sikel, dan karena itu graph tersebut bukan pohon.
Bukti
Jika sebuah sisi ditambahkan atau dihapuskan dari pohon, graph baru yang diperoleh tidak lagi merupakan pohon, berdasarkan teorema 2. Karena penghapusan sebuah sisi menjadikan graph itu tidak terhubung, dan penambahan sisi membentuk sikel, maka teorema terbukti.
Hutan (forest) merupakan kumpulan pohon yang saling lepas. Dengan kata lain, hutan merupakan graf tidak terhubung yang tidak mengandung sirkuit. Setiap komponen di dalam graf terhubung tersebut adalah pohon. Dengan kata lain kita dapat katakana  (forest) adalah
-  kumpulan pohon yang saling lepas, atau
-  graf tidak terhubung yang tidak mengandung sirkuit. Setiap komponen di dalam graf terhubung tersebut adalah pohon.                                            

            Pada gambar berikut adalah hutan yang terdiri dari 3 buah pohon

B.       Sifat-sifat Pohon

Misalkan G = (V, E) adalah graf tak-berarah sederhana dan jumlah simpulnya n. Maka, semua pernyataan di bawah ini adalah ekivalen:
1.      G adalah pohon.
2.      Setiap pasang simpul di dalam G terhubung dengan lintasan tunggal.
3.      G terhubung dan memiliki m = n – 1 buah sisi.
4.      G tidak mengandung sirkuit dan memiliki m = n – 1  buah sisi.
5.      G tidak mengandung sirkuit dan penambahan satu sisi pada graf akan membuat hanya satu sirkuit.
6.      G terhubung dan semua sisinya adalah jembatan. (jembatan adalah sisi yang bila dihapus menyebabkan graf terpecah menjadi dua komponen)

C.       Pewarnaan Pohon
Dalam pewarnaan pohon, dua buah warna sudah cukup mewarnai simpul-simpul dalam pohon sedemikian sehingga tidak ada dua buah simpul bertetangga mempunyai warna sama
Pewarnaan pada pohon T dilakukan dengan cara berikut:
1.      Petakan warna pertama pada sembarang simpul.
2.      Petakan warna kedua pada simpul-simpul yang bertetangga dengan simpul pertama tadi.
3.      Petakan warna pertama ke semua simpul yang bertetangga dengan simpul-simpul yang telah diwarnai.
Sebagai contoh tinjau graf G1. Simpul-simpul pada graf G1 akan diberi warna dengan warna kuning dan biru. Simpul a dipilih pertama kali untuk diberi warna kuning. Kemudian simpul-simpul tetangga a, yaitu b dan d diberi warna biru. Selanjutnya simpu-simpul yang bertetangga dengan d yaitu c, e dan f diberi warna kuning. Jadi simpul yang berwarna kuning yaitu a, c, e dan f. Sedangkan simpul yang berwarna biru yaitu b dan d.

D.      Pohon Merentang (spanning tree)

Definisi Misalkan G adalah sebuah graph. Sebuah pohon di G yang memuat semua titik G disebut pohon rentang (spanning tree) dari G.
Contoh
Misalkan kita mempunyai graph G seperti pada gambar 4.6 di bawah ini. Terdapat 3 pohon rentang dari graph G, yaitu graph A, B, dan C. Tampak jelas bahwa graph A, B, dan C masing-masing memuat semua simpul dari graph G serta mengandung sisi-sisi dari G demikian sehingga tidak terbentuk sikel.
Teorema 6
Graph G terhubung jika dan hanya jika G memuat pohon rentang.
Bukti
Jika graph G memuat pohon rentang, jelas G terhubung. Kita buktikan konvers pernyataan ini dengan induksi pada |E(G)|. Jika G terhubung dan |E(G)| = 0, maka G = K1, sehingga jelas G memuat pohon rentang.
Asumsikan: setiap graph terhubung dengan k + 1 sisi, maka G memuat pohon rentang.
Pandang sebuah graph terhubung G dengan k + 1 sisi. Jika G tidak memuat sikel, maka G sebuah pohon rentang. Jika G memuat sikel, dan misalkan e adalah sebuah sisi dari sikel di G, maka graph G1 = G - e terhubung dengan k sisi. Sehingga berdasarkan asumsi, G1 memuat pohon rentang. Sebut T, pohon rentang di G1. Jelas, T adalah juga pohon rentang dari G. Teorema terbukti.
Sebuah graph terhubung mungkin memuat lebih dari satu pohon rentang, seperti terlihat pada Gambar. Graph G memuat pohon rentang T1, T2, dan T3.
Jadi, pohon merentang:
·         Pohon merentang dari graf terhubung adalah subgraf merentang yang berupa pohon.
·         Pohon merentang diperoleh dengan memutus  sirkuit di dalam graf.
                       
                G                             T1                        T2                          T3                   T4

  • Setiap graf terhubung mempunyai paling sedikit satu buah pohon merentang.
  • Graf tak-terhubung dengan k komponen mempunyai k buah hutan merentang yang disebut hutan merentang (spanning forest).

Pohon Rentang Minimum

·         Graf terhubung-berbobot mungkin mempunyai lebih dari 1 pohon merentang
·         Pohon rentang yang berbobot minimum – dinamakan pohon merentang minimum (minimum spanning tree)

Dalam kehidupan nyata, salah satu contoh aplikasi spanning tree adalah menentukan rangkaian jalan dengan jarak total seminimum mungkin yang menghubungkan semua kota sehingga setiap kota tetap terhubung satu sama lain.
Dalam menentukan suatu minimum spanning tree dari suatu graf terhubung, kita dapat menentukannya dengan mengunakan dua cara yaitu algoritma Prim dan algoritma Kruskal.
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. Masukkan (u, v) ke dalam T

Langkah 3:  ulangi langkah 2









CONTOH

Langkah                     Sisi               Bobot                 Pohon rentang


Pohon merentang minimum yang dihasilkan: 
Pohon merentang minimum yang dihasilkan: 

Bobot = 10 + 25 + 15 + 20 + 35 = 105

 

Algoritma Kruskal

 ( Langkah 0: sisi-sisi dari graf sudah diurut menaik berdasarkan bobotnya – 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

Contoh:







Sisi-sisi diurut menaik:


Pohon merentang minimum yang dihasilkan :
 

E.       Pohon Berakar
Pada kebanyakan aplikasi pohon, simpul tertentu diperlakukan sebagai akar (root). Sekali sebuah simpul ditetapkan sebagai akar, maka simpul-simpul lainnya dapat dicapai dari akar dengan memberi arah pada sisi-sisi pohon yang mengikutinya.
Definisi:
Pohon yang sebuah simpulnya diperlakukan sebagai akar dan sisi-sisinya diberi arah menjauh dari akar dinamakan pohon berakar (rooted tree).
Akar mempunyai derajat-masuk sama dengan nol dan simpul-simpul lainnya derajat-masuk sama dengan satu. Simpul yang mempunyai derajat-keluar sama dengan nol disebut daun atau simpul terminal. Simpul yang mempunyai derajat-keluar tidak sama dengan nol disebut simpul dalam atau simpul cabang. Setiap simpul di pohon dapat dicapai dari akar dengan sebuah lintasan tunggal (unik). Gambar 9.9(a) adalah contoh pohon berakar dengan  adalah simpul akarnya. Sebagai konvensi, arah sisi di dalam pohon tidak perlu digambar, karena setiap simpul di dalam pohon berakar selalu dari  atas ke bawah. Gambar 9.9(b) menunjukkan hal ini

Gambar 9.9 (a) pohon berakar, (b) sebagai konvensi, arah panah pada sisi dapat dibuang.
Sembarang pohon tak-berakar dapat diubah menjadi pohon berakar dengan memilih sebuah simpul sebagai akar. Pemilihan simpul yang berbeda menjadi akar menghasilkan pohon berakar yang berbeda pula. Gambar 9.10 memperlihatkan dua pohon akar yang berbeda dari pengubahan sebuah pohon tak-berakar. Pohon berakar pertama memilih  sebagai akar sedangkan pohon akar kedua memilih  sebagai akar.

Gambar 9.10 (kiri) Pohon dan (kanan) dua buah pohon berakar yang dihasilkan dari pemilihan dua simpul berbeda sebagai akar.
F.       Terminologi Pada Pohon Berakar
Keseluruhan sisa bab ini akan menggunakan istilah “pohon berakar” untuk membedakannya dengan “pohon” tidak berakar (free tree).
Sebagaimana pada graf, kita akan sering menggunakan terminologi yang berhubungan dengan pohon. Di bawah ini didaftarkan beberapa terminologi yang penting pada pohon berakar. Untuk ilustrasi, pohon pada Gambar 9.12 dipakai sebagai untuk menjelaskan terminologi yang dimaksudkan. Simpul-simpul pada pohon diberi label untuk mengacu simpul mana yang dimaksudkan. Kebanyakan terminologi pohon yang ditulis di bawah ini diadopsi dari terminologi botani dan silsilah keluarga.
Anak (child atau children) dan Orangtua (parent)
Misalkan  adalah sebuah simpul di dalam pohon berakar. Simpul  dikatakan anak simpul  jika ada sisi dari simpul  ke . Dalam hal demikian,  disebut orangtua (parent) . Pada Gambar 9.11, , , dan  adalah anak-anak simpul , dan  adalah orang tua dari anak-anak itu.  dan  adalah anak-anak simpul , dan  adalah orangtua dari  dan .  adalah anak simpul , dan  adalah orangtua dari . Simpul , , , , dan  tidak mempunyai anak
Gambar 9.11 Pohon berakar yang digunakan untuk menjelaskan terminologi pohon.
Lintasan (path)
Lintasan dari simpul  ke simpul  adalah runtutan simpul , , ...,  sedemikian sehingga  adalah orang tua dari  untuk . Dari pohon pada Gambar 9.11, lintasan dari   ke  adalah , , , . Panjang lintasan adalah jumlah sisi yang dilalui dalam suatu lintasan, yaitu . Panjang lintasan dari  ke  adalah 3.

Keturunan (descendant) dan Leluhur (ancestor)
Jika terdapat lintasan dari simpul  ke simpul  di dalam pohon, maka  adalah leluhur dari simpul , dan  adalah keturunan dari simpul . Pada gambar 9.11, b adalah leluhur simpul , dan dengan demikian  adalah keturunan dari .

Saudara Kandung (sibling)
Sampul yang berorangtua sama adalah saudara kandung . Tetapi,  bukan saudara kandung , karena orangtua mereka berbeda.

Upa Pohon (subtree)
Misalkan  adalah simpul di dalam pohon . Yang dimaksud dengan upapohon dengan  sebagai akarnya ialah upagraf  sedemikian sehingga  mengandung  dan semua keturunannya dan  mengandung sisi-sisi dalam semua lintasan yang berasal dari . Sebagai contoh,  adalah upapohon dari pohon pada gambar 9.12 dengan  dan  dan  adalah simpl akarnya. Terdapat banyak upapohon . Dengan pengertian di atas, jika  adalah simpul, maka akar tiap-tiap upapohon dari  disebut anak, dan  adalah orangtua setiap akar pohon.
Gambar 9.12 Upapohon

Tidak ada komentar:

Posting Komentar