ALGORITMA GREEDY : MINIMUM SPANNING TREE

Slides:



Advertisements
Presentasi serupa
Algoritma Greedy.
Advertisements

Pertemuan 8 STRUKTUR POHON (TREE).
PERTEMUAN 14 POHON (TREE).
Tugas #3 File soal UTS sudah dikirim ke alamat masing-masing.
GRAPH Kata Graph di dalam Matematika mempunyai bermacam- macam arti. Biasanya di kenal kata Graph atau Grafik Fungsi, ataupun relasi. Untuk itu kali ini.
GRAF TIDAK BERARAH PART 2 Dosen : Ahmad Apandi, ST
Aplikasi Algoritma Greedy pada Permainan Othello (Riversi)
Bahan Kuliah IF2211 Strategi Algoritma
Algoritma Greedy (lanjutan)
Bab IX P O H O N waniwatining.
BAB 9 POHON.
P O H O N.
PART 4 TREE (POHON) Dosen : Ahmad Apandi, ST
Divide and Conquer.
Design and Analysis Algorithm
5. Pohon Merentang Minimum
Pertemuan 23 Minimum Cost Spanning Tree
BAB 9 POHON.
Pertemuan 24 BRANCH AND BOUND (2)
Penerapan Metode PRIM Pada Minimum Spanning Tree dengan Verika N. D
Analisa Algoritma Greedy Algorithm
Algoritma Greedy.
Algoritma Greedy (lanjutan)
Perbandingan Algoritma Brute Force dan Depth First Search (DFS) dalam Kasus Travelling Salesman Problem (TSP) Ervin Yohannes ( )
PEWARNAAN GRAF.
Model Arus Jaringan.
TEORI GRAPH (LANJUTAN)
Algoritma Greedy.
Algoritma Greedy Team Fasilkom.
Pohon Matematika Diskrit
Bahan Kuliah IF2211 Strategi Algoritma
P O H O N ( T R E E ) Fitri Utaminingrum
TERAPAN POHON BINER.
Graf Berlabel Graf Euler Graf Hamilton
Greedy Pertemuan 7.
MATERI PERKULIAHAN ANALISIS ALGORITMA
Modul 5 Algoritma & Struktur Data
Kelas : 3IA07 Nama : Agus Soetanto
Pertemuan 12 METODA GREEDY lanjutan….
Algoritma Greedy (lanjutan)
ALGORITMA GREEDY, KRUSKAL, MINIMUM SPANNING TREE
MATERI PERKULIAHAN ANALISIS ALGORITMA
Kuliah ke 6 Strategi Algoritma
Program Dinamis (Dynamic Programming)
Teknik Informatika STT Watukancana Purwakarta
Algoritma Prim Algoritma Kruskal Algoritma Dijkstra
Matematika Diskrit Semester Ganjil TA Short Path.
STRUKTUR DATA Struktur Data Graf.
P O H O N ( T R E E ) Fitri Utaminingrum
Trees Directed Graph Algoritma Dijkstra
Program Dinamis (Dynamic Programming)
P O H O N ( T R E E ) Fitri Utaminingrum
Quiz 2 Logika.
Informed (Heuristic) Search
Algoritma Greedy Wahyul Wahidah Maulida, ST., M.Eng.
Masalah Penugasan (Assignment Problem)
Pohon Merentang Matematika Diskrit.
ALGORITMA GREEDY : MINIMUM SPANNING TREE
Minimal Spanning Tree Problem
RANCANGAN APLIKASI JAVA APPLET DALAM ANALISA Agung Nugraha Fasa,
Model Jaringan.
POHON DAN APLIKASI GRAF
Program Dinamis (Dynamic Programming)
Analisis Algoritma E. Haodudin Nurkifli Teknik Informatika
Jenis-jenis Graf Tertentu Oleh: Mulyono & Isnaini Rosyida
Quiz 2 Logika.
Program Dinamis (Dynamic Programming)
Anyquestion?.
Aplikasi Graph Minimum Spaning Tree Shortest Path.
Graf dan Analisa Algoritma
Transcript presentasi:

ALGORITMA GREEDY : MINIMUM SPANNING TREE Teknik Informatika Universitas Ahmad Dahlan Perbandingan Kruskal dan Prim

Agenda Pendahuluan Dasar Teori Contoh Penerapan Algoritma Analisis perbandingan algoritma Prim dan Kruskal Kesimpulan

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 Algorimta 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 solin Algoritma Solin untuk MST merupakan kebalikan dari algoritma Kruskal, yaitu membuat tree didahului dengan melakukan pengurutan garis dari garis yang mempunyai bobot terbesar. Algoritma Solin tidak akan dibahas lebih lanjut dalam makalah ini.

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 : Masukkan terdiri dari beberapa baris bilangan Masukan : Masukkan 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 masukkan Keluaran: Hasil keluaran hampir sama dengan masukkan. 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

Solusi Dengan algoritma yang sudah diberikan, kita bisa menyelesaikan permasalahan ini, salah satunya dengan menggunakan bahasa pemrograman Pascal. Dua contoh kode di bawah ini merupakan contoh solusi dari permasalahan pemasangan kabel telepon diatas. Dalam kode yang dibuat dibawah ini, graf dan pohon direpresentasikan dalam representasi himpunan. Hal ini dilakukan untuk mempermudah pengkodean. Demo Program

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

Contoh 2, bisa kita gambarkan dengan teknik yang berbeda. Langkah Algoritma Prim Algoritma Kruskal Terpilih (Simpul) Sisi Terbentuk Terpilih (Sisi) Simpul Masuk 1 - (1,4) {1,4} 4 {(1,4)} (3,5) {1,3,4,5} 2 6 {(1,4), (4,6)} (4,6) {1,3,4,5,6} 3 {(1,4), (4,6), (1,2)} (1,2) {1,2,3,4,5,6} 5 {(1,4), (4,6), (1,2), (2,5)} (2,5) {(1,4), (4,6), (1,2), (2,5), (5,3)} (2,3) Ditolak 7 {(1,4), (4,6), (1,2), (2,5), (5,3), (5,7) } (5,7) {1,2,3,4,5,6,7}

Analisis perbandingan algoritma Prim dan Kruskal Jika kita melihat algoritma Prim dan Kruskal yang telah disebutkan di atas serta dengan melihat potongan kode yang telah dibuat, kita bisa memeperkirakan waktu yang dibutuhkan untuk menjalankan program tersebut.

Jadi perkiraan total waktu yang dibutuhkan : Sehingga kompleksitas algoritmanya: O(V2), dengan V menyatakan banyaknya simpul.

Untuk algoritma Kruskal: Jadi perkiraan total waktu yang dibutuhkan : TK(V,E) = E 2log E + 1 + E(1+1) + V(1+1) = E 2log E + 2V + 2E + 1 Sehingga kompleksitas algoritmanya: O(E log E + V), dengan E menyatakan banyaknya sisi dan V menyatakan banyaknya simpul.

untuk melihat kecepatan dari program ini, cukup melihat waktu perkiraan T(V,E) saja. Dari tabel terlihat bahwa secara umum, algoritma Kruskal bisa berjalan lebih cepat dibanding algoritma Prim.

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.

Referensi Rinaldi Munir, 2010, Diktat Kuliah Strategi Algoritma ITB Gilles Brassard, 1996, Fundamental Of Algoritmh, Prentice Hall, New Jersey Cormen et al, 2009, Introduction to Algorithms : thrid edition, MIT