Tree Minimum Cost Spanning Tree Muhamad Sandy Hasanudin, 10112139 Program Studi Teknik Informatika, Universitas Komputer Indonesia Email :
[email protected]
Deskripsi Masalah Minimum Cost dari pohon merentang adalah sebuah pohon merentang, hanya saja bobot atau panjang yang terasosiasi dengan sisi-sisi pada pohon adalah yang minimum. Contoh kasus di mana kita mempunya gugusan pulau-pulau dan kita menginginkan setiap pulau terhubung dengan sebuah jembatan sebagai penghubungnya, sehingga kita dimungkinkan seseorang bepergian dari satu pulau ke pulau yang lainnya dalam gugusan tersebut. Minimum Cost spanning tree mempunyai pengaplikasian yang luas pada berbagai bidang. Minimum Cost spanning tree dapat menyelesaikan banyak masalah-masalah yang rumit di dunia nyata, seperti : 1. Jarak minimum untuk bepergian ke semua kota dalam satu waktu (Travelling salesman problem) 2. Pada desain sirkuit elektronik, untuk menghubungkan n-1 kabel, menggunakan sedikit kabel. 3. Pohon merentang juga mencari pengaplikasian mereka dalam memperoleh himpunan bebas sirkuit dari sebuah jaringan listrik. Tujuan Pembuatan jurnal ini bertujuan untuk mencari pohon merentang minimum menggunakan algoritma
Prim,
begitupun
dengan
kelemahan
dari
algoritma
tersebut.
Contoh
pengaplikasiannya pada sebuah program yang dijalankan dengan komputer untuk menyelesaikan sebuah kasus pohon merentang. Kemudian menghitung kecepatan dari algoritma Prim tersebut dalam menyelesaikan suatu permasalahan. Landasan Teori Algoritma Prim merupakan greedy method yang membantu kita mendapatkan sebuah pohon merentang minimum. Algoritma prim menggunakan konsep set. Memproses Graf dengan
mengurutkan sisi-sisi. Algoritma ini memproses sisi-sisi pada Graf secara acak dengan membangun disjoint dari set-set. Algoritma prim mengkonstruksi sebuah pohon merentang minimum melalui urutan dari pembentangan subtree. Subtree awal pada sebuah urutan terdiri dari single vertex yang terseleksi dari set V dari simpul-simpul Graf. Pada setiap iterasi, algoritma ini membentangkan pohon dengan menggunakan teknik greedy dengan mengaitkannya pada simpul yang terdekat yang tidak terdapat pada pohon yang dibuat (dengan simpul yang terdekat berarti simpul tersebut tidak terhubung pada simpul yang ada di tree dengan sisi berbobot minimum). Algoritma ini akan berhenti sampai semua simpul Graf telah dimasukkan ke dalam tree yang dibuat dan saling terhubung tanpa membentuk sirkuit. Sejak algoritma ini membentangkan tree, untuk setiap simpul pada setiap terasi total dari semua iterasi adalah n-1, di mana n adalah jumlah seluruh simpul pada Graf. Algoritma Prim : Prim’s (E, cost, n, t) { /*Let (K, L) is being an edge of minimum cost in E; mincost:=cost[K,L]; t[1,1]:=K; t[1,2]:=L; for i:=1 to n do if(cost[i,L])<(cost[I,K]) then near[i]:=L; else near[i]:=K; near[K]:=near[L]:=0; for i:=2 to n-1 do {
/* Let j be an index such that near [J]≠ 0 and cost [j, near[j]] is minimum; t[i,1]:=j; t[I,2]:=near[j]; mincost:=mincost+cost[j,near[j]]; near[j]:=0; for K:=1 to n do if(near[K] ≠) and (cost[K,near[K]]>cost[K,j]) then near[K]:=j Endfor } return mincost; } Analisis Solusi Pada bagian ini akan dipaparkan sebuah penyelesaian dari sebuah masalah menggunakan algoritma prim. Misal ada sebuah pohon merentang :
Representasi secara matriks :
0
10
0
30
45
0
10
0
50
0
40
25
0
50
0
0
35
15
30
0
0
0
0
20
45
40
35
0
0
55
0
25
15
20
55
0
Langkah 0 :
Graf yang terkoneksi satu sama lain. Langkah 1 : Algoritma prim bergerak dari node 0 sebagai langkah awal : S = {0}
Langkah 2
Mencari bobot sisi yang paling minimum dari node awal lalu memasukkannya ke dalam tree yang akan dibuat : S ={0,1}
Langkah 3 Mencari bobot sisi yang paling minimum dari sisi yang bertetanggaan (akan tetapi belum ada dalam tree) lalu memasukkannya ke dalam tree yang akan dibuat : S = {0,1,5}
Langkah 4 Mencari bobot sisi yang paling minimum dari sisi yang bertetanggaan (akan tetapi belum ada dalam tree) lalu memasukkannya ke dalam tree yang akan dibuat :
S = {0,1,5,2}
Langkah ke 5 Mencari bobot sisi yang paling minimum dari sisi yang bertetanggaan (akan tetapi belum ada dalam tree) lalu memasukkannya ke dalam tree yang akan dibuat : S = {0,1,5,2,3}
Langkah 6 Mencari bobot sisi yang paling minimum dari sisi yang bertetanggaan (akan tetapi belum ada dalam tree) lalu memasukkannya ke dalam tree yang akan dibuat : S = {0,1,5,2,3,4}
Kesimpulan Algoritma prim beroperasi pada 2 disjoint dari sisi pada Graf. Algoritma Prim mampu menyelesaikan suatu permasalahan dengan waktu yang lebih baik jika banyak simpul dan sisi sedikit. Algoritma prim ini hanyalah salah satu dari algoritma-algoritma untuk menyelesaikan masalah minimum cost spanning tree, waktu penyelesaiannya masih n-1 mana ada algoritma yang lebih baik yaitu algoritma krusial dengan kompleksitas waktu O(n log n). Referensi 1. Abhilasha R, Minimum Cost Spanning Tree Using Prim’s Algorithm. International Journal of Advance Research in Computer Science and Management Studies, Volume 1, Issue 1, June 2013. 2. Levitin, Anany. Introduction to The Design and Analysis of Algorithms 3rd Edition. New Jersey. Pearson Education. 3. Munir, Rinaldi. Matematika Diskrit. Bandung. Penerbit Informatika. 2012.