Anda di halaman 1dari 17

Teori graf dan otomata

Penelitian dan pengembangan algoritma kruskal

Anggota Kelompok 7:
1. Abdul Rozak Baharudin – 05111840000148
2. Anfasa Aliffian – 05111840000160
3. Brananda Denta – 05111840000143
4. Dohan Pranata W. – 05111840000139
01 Pendahuluan
Bagaimana cara mendapatkan jalur
dengan biaya paling sedikit?

Terdapat 2 algoritma klasik untuk menentukan permasalahan tersebut, yaitu


Algoritma Prim dan Algoritma Kruskal.

● Algoritma Kruskal adalah?


● Ditemukan oleh?
● Muncul pertama kali?
● Ide dasar dari Algoritma Kruskal?
● Algoritma lain untuk permasalahan tersebut?
02 Landasan
Teori
Prosedur Ide dasar
algoritma algoritma dua
kruskal cabang kruskal
Prosedur Algoritma Kruskal
● Mensortir semua edge dalam urutan berat yang tidak menurun. 

● Pilih edge terkecil. Periksa apakah himpunan tree membentuk loop


dengan spanning tree yang terbentuk sejauh ini. Jika loop tidak
terbentuk, maka tambahkan edge selanjutnya. Jika membentuk loop
maka periksa edge lain. 

● Ulangi Langkah kedua sampai edge mencapai (V-1) pada spanning


tree
Ide dasar algoritma dua
cabang kruskal
● Adanya graf terhubung G = {V, E}
● Set vertex dibagi rata menjadi N kelas.
● Pada graf G1 = {V, E1}, suatu hal dapat menangani setiap sisi dengan
menaikkan urutan nilai yang dimilikinya.
● Melakukan operasi sebelumnya hingga masing-masing sisi E1 telah ditinjau.
● Lalu dilanjutkan untuk semua sisi E2 di G2 = {V, E2}.
● Melakukan operasi sebelumnya hingga masing-masing sisi E2 telah ditinjau.
03 Uji coba dan
pembahasan
UJI COBA DAN PEMBAHASAN

Prosedur algoritma Contoh prosedur perbandingan kruskal


kruskal dua cabang algoritma kruskal dua peningkatan dan klasik
cabang
// Algoritma Kruskal dua cabang untuk membangun pohon rentang minimum
// Input: grafik G=<V, E>, nilai tengah K
// Output: Et, himpunan edge minimum spanning tree yang menyusun G
Pilih nilai tengah K dari E
E dibagi menjadi E1 yang terdiri atas edge yang beratnya kurang dari K
dan E2 terdiri atas edge yang beratnya lebih dari atau sama dengan K, Kemudian E1 diurutkan sesuai
dengan urutan berat dari yang terkecil ke yang terberat.
Prosedur algoritma Et←Ø; encounter←0
//Menginisialisasi set vertex pohon dan besar himpunan
kruskal dua cabang k←0
//Menginisialisasi jumlah edge yang telah diinisialisasi
while encounter<|V|-1 do //Handle edges in E1
k←k+1
if Et∪{ei} No loop
Et←Et {i}; encounter←encounter+1
while encounter<|V|-1 do//Handle edges in E2
k←k+1
if Et∪{ei} No loop
Et←Et {ei}; encounter←encounter+1
Return Et
Contoh prosedur algoritma kruskal dua
cabang
1. Dapatkan array A = {3, 1, 4, 4, 6, 5, 5, 6, 2, 8}
Gambar 2 2. Pilih 5 sebagai nilai tengah K dari array A, maka A akan dibagi menjadi A1 = {1,
3, 4, 4, 2} dan A2 = {6, 5, 5, 6, 8}
3. Sisi yang sesuai ditetapkan E1 = {(b, c), (e, f), (a, b), (b, f), (c, f)} dan
E2 = {(a, f), (d, f), (a, e), (c, d), (d, e)}
4. Menangani E1: - Tangani sisi (b,c) untuk Gambar 2
- Tangani sisi (e, f) untuk Gambar 3
- Tangani sisi (a, b) untuk Gambar 4
Gambar 3
- Tangani sisi (b, f) untuk Gambar 5
5. Menangani E2 : - Tangani sisi (d, f) untuk Gambar 6

Gambar 4
Gambar 5 Gambar 6
Gambar

Gambar 2
Gambar 1 Gambar 3

Gambar 4 Gambar 5 Gambar 6


Perbandingan kruskal dua cabang dan
kruskal klasik
Kompleksitas waktu dari algoritma klasik Kruskal yang diperlukan untuk menyelesaikan harga
minimum dari spanning tree yaitu jika dilihat berdasarkan algoritma sebelumnya yaitu:
O(|E|log|E|)

Kompeksitas waktu untuk algoritma pengembangan kruskal pada normal case yaitu |E1| = e1,
|E2| = e2, jadi E1 + E2 = e

Untuk kasus ekstrim, Jumlah maksimum dari waktu yang diperlukan dari konstruksi inisial yang
disusun yaitu : (2 e1 – log e1 – 1) + (2 e2 – log e2 – 1)

Waktu maksimum untuk membentuk susunan yang ada adalah e1 log e1 + e2 log e2, hampir
sama dengan waktu yang diperlukan pada konstruksi inisial, sehingga total waktu maksimum
untuk penerapan dari Algoritma Kruskal yaitu :
BT1 = e + e + 2e(e1-1)log e1 + log e2 – 2(e2-1), dalam perputaran yang normal.
04 Kesimpulan
Kesimpulan

• Algoritma Kruskal dua cabang merupakan pengembangan dari algo-


ritma Kruskal klasik.

• Dalam kasus ekstrim, kompleksitas waktu dari algoritma Kruskal


dua cabang lebih besar daripada algoritma Kruskal klasik.

• Dalam kasus normal, kompleksitas waktu dari algoritma Kruskal


dua cabang lebih cepat dari algoritma Kruskal klasik.
#DaftarPustaka
1. Huang, R.M. 2011. An Improved Kruskal Algorithm—Two Branch Kruskal
Algorithm. Chinese Scientific Papers Online, 1-13. 
2. Levitin, A. 2015. Algorithm Design and Analysis Basics. 3rd Edition,
Tsinghua University Press, Beijing. 
3. Wang, W. and Meng, S.Y. 2010. Research and Improvement of Algorithm.
Journal of Chongqing University of Arts and Science (Natural Science
Edition), 29, 25-27. 
4. Hu, Z.Q. 2008. The Realization and Analysis of Kruskal Algorithm. Computer
Knowledge and Technology, 11, 311-312. 
5. Yang, X.Y. and Qian, N. 2009. Improvement of Kruskal Algorithm and
Realization of VB. Journal of Chuzhou Vocational & Technical College, 8, No.
1. 
6. Cormen, T.H., Leiserson, C.E., Rivest, R.L. and Stein, C. 2007. Introduction to
Algorithms. 2nd Edition. Mechanical Industry Press, Beijing, 344-352. 
7. Liang, X.C. 2008. Application of Minimum Spanning Tree in Network Design.
Journal of Suzhou Education Institute, No. 2, 150-153.
TERIMA KASIH

Anda mungkin juga menyukai