ALGORITMA GREEDY, KRUSKAL, MINIMUM SPANNING TREE
Pendahuluan Parameter algoritma di ukur dari performa algoritma secara efektif dan efisien Pengambilan jalan tengah yaitu pencarian solusi optimal Salah satu cara pencapaian solusi algoritma optimal adalah dengan metode Greedy Greedy digunakan untuk penyelesaian beberapa masalah antara lain : TSP (Traveling Sallesperson Problem) MST (Minimum spanning Tree) Minimasi waktu dalam sistem (penjadwalan)
Dasar teori Algoritma Greedy Minimum spanning Tree Algoritma Kruskal Algoritma Solin Algoritma Prim
Algoritma Greedy Memecahkan masalah dengan cara step by step, langkahnya sebagai berikut : Memilih langkah yang terbaik pada saat itu tanpa memprediksi kedepanya Memilih optimum lokan dan berakhir pada optimum global Secara umum algoritma greedy disusun oleh elemen- elemen berikut : Himpunan kandidat Himpunan Solusi Fungsi Seleksi (Selection Function) Fungsi Kelayakan (feasible)
Minimum spanning Tree Pencarian biaya yang minimum dari suatu graph sehingga membentuk pohon . Syarat Graph yang dapat dicari minimum spanning treenya : Graph harus terhubung Ruasnya punya bobot Graph tidak berarah Algoritma yang dipakai untuk menentukan minimum spanning tree : Algoritma Kruskal Algoritma Solin Algoritma Prim
Algoritma Kruskal Himpunan sisi dari G diurutkan membesar sesuai bobot sisi tersebut. Buat T dengan memasukan 1 sisi terpendek dari G tersebut. Ulang (banyak sisi T = (banyak simpul G)-1) Ambil sisi selanjutnya dari G. Jika sisi itu tidak membuat sirkuit di T Masukan sisi itu ke T Masukan simpul-simpul sisi itu ke T
Pseudo-code algoritma kruskal
Algoritma Prim’s Ambil sisi graph G yang berbobot minimum, masukan kedalam T. Pilih sisi (u,v) yang memiliki bobot minimum dan bersisian dengan simpul di T. Tetapi (u,v) tidak membentuk sirkuit di T. Tambahkan (u,v) kedalam T. Ulangi langkah ke-2 sebanyak (n-2) kali.
Pseudo-code algoritma prim :
Contoh Penerapan Algoritma pemerintah ingin mengganti sistem jaringan kabel telepon yang sudah ada di satu daerah dengan kabel yang baru. Namun karena ini baru, pemerintah tidak mau ambil resiko mengganti semua kabel yang menghubungkan wilayah satu dengan yang lain. Ia hanya akan memasang jaringan di wilayah itu jika wilayah itu memang belum tersentuh jaringan yang baru. Dengan asumsi, semakin panjang kabel yang dipasang, semakin mahal biaya yang harus dikeluarkan, buatlah jaringan yang dibangun ini memakan biaya sesedikit mungkin.
Masukan : Masukan terdiri dari beberapa baris bilangan Masukan : Masukan terdiri dari beberapa baris bilangan. Baris pertama terdiri dari 2 angka V dan E, masing-masing menyatakan banyaknya wilayah dan banyaknya jalur yang lama. E baris selanjutnya menggambarkan bagaimana wilayah-wilayah yang ada dihubungkan oleh jalur-jalur yang lama. Wilayah diberi nomor mulai dari 1 hingga V. Diberikan pula W pada tiap jalur yang menyatakan panjang jalur tersebut.
Batasan 1 < V <= 100; 1<=E<=100; 1<=W<=3000. Contoh 1 : Contoh 2 4 5 7 11 1 2 10 3 14 15 6 12 9 8
Keluaran: Hasil keluaran hampir sama dengan masukan Keluaran: Hasil keluaran hampir sama dengan masukan. Cukup tampilkan saja panjang kabel minimum yang harus dibuat, kemudian, tampilkan, wilayah, wilayah mana saja yang harus dihubungkan, beserta dengan panjangnya. Hasil maupun urutan dari jaringan yang terbentuk boleh berbeda, namun panjang minimum yang didapat harus sesuai.
Keluaran Contoh 1 Contoh 2 31 39 1 2 10 4 5 3 12 9 6 7
Realisasi Dengan algoritma yang diberikan tersebut serta dengan contoh masukkan yang sudah diberikan, kita bisa menggambarkan bagaimana proses pembentukkan pohon merentang minimum dari dua algoritma yang berbeda tersebut.
Realisasi Algoritma Prim B 10 12 A C 9 D
Realiasi Algoritma Kruskal B 10 12 A C 9 D
Kesimpulan Algoritma Prim dan Algoritma Kruskal dapat menyelesaikan permasalahan pencarian pohon merentang minimum dengan tepat. Algoritma Prim lebih efisien dibanding algoritma Kruskal saat graf yang diberikan memiliki banyak sisi dengan simpul yang sedikit (graf lengkap). Algoritma Kruskal lebih efisien dibanding algoritma Prim saat graf yang diberikan memiliki banyak simpul dengan sisi yang sedikit.