SPANNING TREE
Kelompok 5
Anggota Kelompok 5
1 Aqilah Kamalia
24010116120015
2 Elsaday Salsabilla
24010116120025
5 Anggun Anisa
24010116130076
POHON
(TREE)
TREE
________________________
Pohon (Tree)
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
“ “ “ “
“ “ “ “
Gambar (a) dan (b) merupakan pohon, sedangkan Gambar (c) dan (d) bukan pohon, karena Gambar (c)
graphnya tidak terhubung, sedangkan Gambar (d) graphnya memiliki sikel.
SPANNING TREE
________________________
Spanning Tree
Contoh Graf
dan Spanning
Treenya
METODE MENCARI
SPANNING TREE
________________________
Dimulai dengan memilih setiap sikel dalam G dan menghilangkan atau menghapus
satu dari garis-garis ini (jika tidak ada sikel, graf G tersebut merupakan spanning
tree). Karena kita tidak dapat memutuskan sebuah graf dengan menghapus hanya
satu sisi dari suatu sikel, kita masih memiliki graf yang terhubung. Ulangi langkah i
ni sampai tidak ada sikel yang tersisa.
Pilih satu garis dari G pada setiap saat pemilihan garis tidak membentuk suatu
sikel. Ulangi langkah ini sampai semua titik termuat.
1. 2.
Building-up
Method
3. 4.
CENTERS AND
BICENTERS
________________________
Ketika membuktikan hasil yang melibatkan pohon, kita sering merasa nyaman untuk me
mulai di tengah-tengah dan bergerak keluar, melanjutkan membangun pohon. Ini merupa
kan pendekatan yang digunakan oleh Arthur Cayley pada tahun 1870 ketika dia menghitu
ng jumlah molekul kimia dengan formua yang diberikan dengan membangunnya langkah
demi langkah. Baru-baru ini, konsep pohon seimbang telah digunakan dalam komputasi
dimana membangun sebuah pohon sehingga berbagai bagian pohon yang muncul dari
setiap titik seimbang, yaitu melibatkan jumlah simpul yang sama.
Metode 1
Hapus semua titik dengan derajat satu bersama-sama dengan
garis yang incident. Ulangi langkah ini sampai diperoleh satu
titik tunggal (center) atau dua titik yang adjacent (bicenter).
Center dan
Bicenter
COUNTING TREES
Bukti :
Pembuktian Teorema Cayley ini dapat dilakukan dengan korespondensi satu-ke-satu antara
pohon berlabel dengan barisan bilangan bulat positif (Prufer’s sequences)
Membangun korespondensi satu-ke-satu antara pohon berlabel
dengan n simpul dan barisan (a1, a2, a3, .., an-2), di mana setiap ai
adalah salah satu bilangan bulat 1,2,3, .., n (memungkinkan
pengulangan).
Prufer’s
Construction
Langkah 1 Lihat simpul derajat 1 dan pilih satu dengan label terkecil
Langkah 2 Lihat simpul yang berdekatan dengan yang baru saja dipilih dan letak-
kan labelnya di posisi pertama yang tersedia dalam barisan
Langkah 3 Hapus simpul yang dipilih pada langkah 1 dan tepi insidennya,
meninggalkan pohon yang lebih kecil.
Ulangi Langkah 1-3 untuk pohon yang tersisa, terus sampai hanya ada dua
Proses simpul yang tersisa. Pada saat ini terjadi, barisan Prufer yang diperlukan akan
dibangun
1
Contoh
Proses 1: Konstruksi dari pohon berlabel menjadi barisan
Konstruksi dari barisan menjadi pohon berlabel
Langkah 1 Gambar n simpul, beri label dari 1 ke n dan buat daftar angka dari 1
hingga n
Langkah 2 Tentukan bilangan terkecil yang ada dalam daftar tetapi tidak dalam
barisan Prufer, dan juga tentukan bilangan pertama dalam barisan; kemudian
tambahkan sisi yang menggabungkan simpul-simpul tersebut dalam gambar
Langkah 3 Hapus bilangan pertama pada langkah 2 dari daftar dan bilangan lain-
nya pada langkah 2 dari barisan, meninggalkan daftar dan urutan yang lebih sedi
kit
Ulangi Langkah 2 dan 3 untuk daftar bilagan dan barisan bilangan yang tersisa,
Proses terus sampai hanya ada dua label yang tersisa dalam daftar. Kemudian, gabung-
kan dengan simpul-simpul pada gambar sesuai dengan dua label sisanya
2
Contoh
Proses 2: Konstruksi dari barisan menjadi pohon berlabel
Diketahui barisan (2, 2, 1, 5, 5) , akan dicari pohon berlabel yang bersesuaian dengannya. Sediakan lebih dahulu daftar {1,
2, 3, 4, 5, 6, 7 } , sebab 7 – 2 = 5.
Depth - Langkah 2 Ambil simpul dari awal antrian, lalu cek apakah simpul m
erupakan solusi
First Langkah 3 Jika simpul merupakan solusi, pencarian selesai dan hasi
l dikembalikan.
Search Langkah 4 Jika simpul bukan solusi maka ambil simpul dibawahnya
dan ulangi langkah kedua.
(DFS) Langkah 5 Jika antrian kosong dan tidak ditemukan solusi, maka ber
alih menggunakan backtracking (pencarian akan dilakukan hingga tid
ak ada simpul yang tersisapada jalur tersebut).
Gambar berikut ini menjelaskan bagaimana algoritma DFS.
Breadth-First Search (Pencarian Melebar Pertama)
Pada metode BFS, semua simpul pada level n akan dikunjungi terlebi
h dahulu sebelum mengunjungi simpul – simpul pada level n+1. Penc
arian dimulai dari simpul awal terus ke level ke-1 dari kiri ke kanan, ke
mudian berpindah ke level berikutnya demikian pula dari kiri ke kanan
sampai ditemukannya solusi.
Breadth -
First
Search
(BFS)
Langkah – langkah algoritma BFS
Search Langkah 5 Jika antrian kosong dan setiap simpul sudah dicek, penc
arian selesai dan mengembalikan hasil solusi tidak ditemukan.
(BFS) Langkah 6 Ulangi pecarian dari langkah kedua.
Gambar berikut ini menjelaskan bagaimana algoritma BFS
Pohon Rentang Minimum
(minimum spanning tree)
________________________
Jika G adalah graf berbobot, maka bobot pohon rentang T dari G dide
finisikan sebagai jumlah bobot semua sisi di T. Semua pohon rentang
di G, pohon rentang yang berbobot minimum dinamakan pohon renta
ng minimum (minimum spanning tree). Jenis ini mempunyai terapan y
ang luas.
CONTOH
• Graph • Pohon merentang minimum
Algoritma Greedy untuk membangun Pohon Merentang Minimum
Ada beberapa algoritma greedy yang dapat digunakan untuk menghasilkan pohon merentang mini
mum, tiga algoritma di antaranya, yang menghasilkan pohon merentang minimum, yaitu :
• Algoritma pertama memulai dengan himpunan sisi dari pohon yang kosong, kemudian menamb
ahkan satu per satu sisi dari himpunan sisi graf E secara menaik (dari sisi yang berbobot paling
kecil). Sisi e ditambahkan ke selama tidak terbentuk sirkuit dengan sisi-sisi yang telah ditamba
hkan sebelumnya. Jika terbentuk sirkuit, maka sisi yang baru ditambahkan tersebut dihapus da
n proses dilanjutkan ke sisi berbobot terkecil berikutnya sampai semua sisi telah diproses. Pen
dekatan semacam ini disebut Algoritma Kruskal.
• Algoritma greedy lainnya yang termasuk sederhana adalah algoritma yang mirip dengan Algorit
ma Djikstra dalam pencarian rute terpendek, tetapi lebih mudah. Algoritma ini memulai dengan
salah satu simpul s dan mencoba secara “greedy” untuk menghasilkan pohon dari v ke luar. Pa
da setiap tahap ditambahkan satu simpul ke himpunan simpul S (yang sekarang berisi s) yang t
erhubung ke simpul s dengan bobot terkecil dan memasukkan sisi tersebut ke dalam pohon me
rentang yang dibuat. Algoritma ini disebut Algoritma Prim.
Cara 1 • Algoritma yang ketiga adalah algoritma greedy yang seperti proses kebalikan dari algoritma Kr
uskal. Secara spesifik, algoritma in dimulai dari graf G = (V,E) yang lengkap kemudian mengha
pus satu per satu sisi dalam E secara menurun (mulai dari yang terbesar). Sisi e dihapus sela
ma graf tidak menjadi terputus/tidak terhubung. Jika graf menjadi terputus, sisi e tidak dihapus,
dan proses dilanjutkan ke sisi berbobot terbesar berikutnya hingga semua sisi selesai diproses.
Algoritma ini tidak dinamai dengan nama tertentu, tetapi umumnya disebut sebagai Algoritma
Reverse-Delete.
Algoritma Prim untuk Pohon Jumlah Minimal
Dengan algoritma ini akan ditemukan pohon jumlah minimal (jika ada) untuk seb
uah graph berbobot G dengan n titik. Dalam algoritma ini S adalah himpunan titik
dan T adalah himpunan sisi.
Pada langkah 3 algoritma Prim pemilihan suatu sisi dengan satu titik di S dan titik
lain tidak di S menjamin tidak adanya sikel yang terbentuk dengan pengumpulan
sisi-sisi di T, jadi pada akhir setiap iterasi langkah 3, sisi di T dan titik di S
membentuk pohon.
Penyelesaian dengan Algoritma Prim
• Graph • Pohon merentang
minimum
1 10 2 1 10 2
50
30 45 40 3 45 3
35 35
4 4
25 25
5 5
20 55 20 55
15 15
6 6
Algoritma Kruskal untuk Pohon Jumlah Minimal
Algoritma ini akan mendapatkan pohon jumlah minimal, jika ada, untuk graph
berbobot G yang memiliki n titik, dengan n > 2. Dalam algoritma ini, S adalah
himpunan titik dan T adalah himpunan sisi.
Langkah 1 (mulai). Jika tidak ada sisi, G tidak terhubung, dan karena itu tidak
memiliki pohon jumlah minimal. Jika tidak demikian, ambil sebuah sisi dengan
bobot terkecil (rangkaian dapat diputuskan secara sembarang). Tempatkan sisi itu
di T dan titiknya di S.
Langkah 2 (pemeriksaan untuk penyelesaian). Jika T memuat n - 1 sisi, maka
berhentilah; sisi-sisi di T dan titik-titik di S membentuk pohon jumlah minimal. Jika
tidak demikian lanjutkan ke langkah 3.
Langkah 3 (ambil sisi berikutnya). Tentukan sisi-sisi berbobot terkecil yang tidak
Cara 2 membentuk sikel dengan sembarang sisi yang ada di T. Jika tidak ada sisi seperti
itu, G tidak terhubung dan tidak memiliki pohon jumlah minimal. Jika tidak
demikian, pilih satu sisi sejenis itu (rangkaian dapat diputus secara sembarang),
dan tempatkan sisi itu di T dan titiknya di S. Kembalilah ke langkah 2.
Penyelesaian dengan Algoritma Kruskal
• Graph • Pohon merentang
minimum
1 10 2 1 10 2
50
30 45 40 3 45 3
35 35
4 4
25 25
5 5
20 55 20 55
15 15
6 6
Perbandingan Algoritma Prim dan Kruskal