Uploaded by vicky.sherline

Teori Graf Pohon - Kelompok 5

advertisement
TREE DAN
SPANNING TREE
Kelompok 5
Anggota Kelompok 5
1
2
Aqilah Kamalia
24010116120015
Elsaday Salsabilla
24010116120025
3
Sherline Vicky Aisyiyah
24010116140046
4
Shafira Meiria Rahmasari
24010116140048
5
Anggun Anisa
24010116130076
POHON
(TREE)
TREE
________________________
Pohon (Tree)
Didefinisikan sebagai graf terhubung yang tidak memiliki sirkuit (sikel).
Karena merupakan graf terhubung, maka pohon selalu terdapat jalur
(path) yang menghubungkan setiap dua simpul dalam pohon.
Teorema
Misalkan G = (V,E) adalah graf tak-berarah sederhana dan jumlah simpul n,
maka semua pernyataan dibawah ini adalah ekuivalen:
1.
2.
3.
4.
5.
G adalah pohon
Setiap pasang simpul di dalam G terhubung dengan lintasan tunggal
G terhubung dan memiliki m = n-1 buah sisi
G tidak mengandung sirkuit dan memiliki m = n-1 buah sisi
G tidak mengandung sirkuit dan penambahan satu sisi pada graf akan
membuat hanya satu sirkuit
6. G terhubung dan semua sisinya adalah jembatan
Terorema diatas dapat dikatakan sebagai definisi lain dari pohon
Contoh
Pohon
“
“
“
“
“
“
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
Diberikan G graf terhubung. Spanning tree dalam G adalah subgraf G
yang memuat semua titik dari G dan juga merupakan suatu pohon.
CONTOH GRAF
Contoh Graf
dan Spanning
Treenya
DAN
SPANNING TREENYA
METODE MENCARI
SPANNING TREE
________________________
Pohon merentang diperoleh dengan
memutus sirkuit di dalam graf
Cutting Down Method (Metode Pemotongan)
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.
Contoh Metode Cutting Down:
Cutting
Down
Method
1.
2.
3.
Building-up Method (Metode Pembangunan)
Pilih satu garis dari G pada setiap saat pemilihan garis tidak membentuk suatu
sikel. Ulangi langkah ini sampai semua titik termuat.
Contoh Metode Building-up:
1.
Building-up
Method
3.
2.
4.
CENTERS AND
BICENTERS
________________________
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).
Tree dengan suatu center disebut tree central dan tree
dengan suatu bicenter disebut tree bicentral.
METODE 1
Contoh Center:

Contoh
Center dan
Bicenter

Contoh Bicenter:


COUNTING TREES
Counting trees digunakan untuk mencari banyaknya pohon dalam
suatu graf berlabel dengan n simpul
Teorema Cayley
Ada sebanyak nn-2 pohon berlabel dengan n simpul yang beda
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
Konstruksi dasar pembuktian dengan korespondensi satu-ke-satu
Konstruksi dari pohon berlabel menjadi barisan
Langkah 1 Lihat simpul derajat 1 dan pilih satu dengan label terkecil
Langkah 2 Lihat simpul yang berdekatan dengan yang baru saja dipilih dan letakkan 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.
Proses
1
Ulangi Langkah 1-3 untuk pohon yang tersisa, terus sampai hanya ada dua
simpul yang tersisa. Pada saat ini terjadi, barisan Prufer yang diperlukan akan
dibangun
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 lainnya pada langkah 2 dari barisan, meninggalkan daftar dan urutan yang lebih sedi
kit
Proses
2
Ulangi Langkah 2 dan 3 untuk daftar bilagan dan barisan bilangan yang tersisa,
terus sampai hanya ada dua label yang tersisa dalam daftar. Kemudian, gabungkan dengan simpul-simpul pada gambar sesuai dengan dua label sisanya
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.
1.
Barisan: (2, 2, 1, 5, 5)
Daftar: {1, 2, 3, 4, 5, 6, 7 }
2. Barisan: (2, 1, 5, 5)
Daftar: {1, 2, 4, 5, 6, 7}
3.
Barisan: (1, 5, 5)
Daftar: {1, 2, 5, 6, 7 }
4. Barisan: (5, 5)
Daftar: {1, 5, 6, 7}
5.
Barisan: (5)
Daftar: {5, 6, 7 }
6. Barisan: (-)
Daftar: {5, 7}
Dengan adanya konstruksi korespondensi satu-ke-satu tersebut, langsung dapat
dilihat bahwa, bila dipunyai pohon berlabel maka dapat dibentuk barisannya. Dan
apabila dipunyai barisan (a1, a2, a3, …, an-2)
maka dapatlah dibentuk pohon ber-
labelnya. Buktinya langsung diperoleh dari barisan. Barisan (a1, a2,
a3, …, an-2)
memuat (n-2) suku dan tiap-tiap suku mempunyai kemungkinan untuk mengambil
nilai 1, 2, 3, 4, 5, ...., n. Sehingga jumlah total kemungkinan pohon berlabelnya
ada nn-2 buah
SEARCHING TREE
________________________
Penulusuran atau pencarian pohon (tree) dapat dilakukan dengan dua
algoritma yaitu algoritma BFS (Breadth – First Search) dan algoritma
DFS (Depth – First Search).
Depth-First Search (Pencarian Mendalam Pertama)
Pada DFS, proses pencarian akan dilaksanakan pada semua anakny
a sebelum dilakukan pencarian ke simpul – simpul yang selevel. Penc
arian dimulai dari simpul akar ke level yang lebih tinggi. Proses ini diul
angi terus hingga ditemukannya solusi.
Langkah 1 Tentukan simpul awal.
Depth First
Search
(DFS)
Langkah 2 Ambil simpul dari awal antrian, lalu cek apakah simpul m
erupakan solusi
Langkah 3 Jika simpul merupakan solusi, pencarian selesai dan hasi
l dikembalikan.
Langkah 4 Jika simpul bukan solusi maka ambil simpul dibawahnya
dan ulangi langkah kedua.
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
Langkah 1 Masukkan simpul ujung (akar) ke dalam antrian.
Langkah 2 Ambil simpul dari awal antrian, lalu cek apakah simpul m
erupakan solusi
Breadth First
Search
(BFS)
Langkah 3 Jika simpul merupakan solusi, pencarian selesai dan hasi
l dikembalikan.
Langkah 4 Jika simpul bukan solusi masukkan seluruh simpul yang
bertetangga dengan simpul tersebut (simpul anak) ke dalam antrian.
Langkah 5 Jika antrian kosong dan setiap simpul sudah dicek, penc
arian selesai dan mengembalikan hasil solusi tidak ditemukan.
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.
Cara 1
•
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.
•
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.
Cara 1
Langkah 1 (mulai). Pilih titik U, dan misalkan S = {U} serta T = { }
Langkah 2 (pemeriksaan untuk menyelesaikan). Jika S memuat semua titik G, ke
mudian berhenti; sisi di T dan titik di S membentuk pohon jumlah minimal untuk G
Langkah 3 (pilih sisi berikutnya). Jika S tidak memuat semua titik G, tentuka
n sisi-sisi yang memiliki satu titik di S dan titik lainnya tidak di S. Jika tidak ada
sisi seperti itu, G tidak terhubung dan tidak memiliki pohon jumlah minimal.
Jika tidak demikian, pilih satu sisi seperti itu yang berbobot terkecil (rangkaian
dapat diputuskan secara sembarang), dan tempatkan di T serta titiknya di S
(salah satunya sudah di S). Kembalilah ke langkah 2.
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
1
• Pohon merentang
minimum
10
30
45
4
2
50
40
35
55
2
45
3
35
25
5
15
6
10
4
25
20
1
55
20
5
15
6
3
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.
Cara 2
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
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
1
• Pohon merentang
minimum
10
30
45
4
2
50
40
35
55
2
45
3
35
25
5
15
6
10
4
25
20
1
55
20
5
15
6
3
Perbandingan Algoritma Prim dan Kruskal
• Algoritma Prim lebih efisien dibanding algoritma Kru
skal saat graf yang diberikan memiliki banyak sisi de
ngan simpul yang sedikit (graf lengkap).
• Algoritma Kruskal lebih efisien dibanding algoritma P
rim saat graf yang diberikan memiliki banyak simpul
dengan sisi yang sedikit.
Thank you
Download