- Prim: algoritma untuk memperoleh Minimum Spanning Tree (MST) pada graf berbobot, tak berarah, dan terhubung, yang meminimalkan jumlah bobot tepi.
- Operasi: Proses ini dimulai dari sebuah node dan memperluas pohon dengan secara iteratif memilih sisi dengan bobot terendah yang menghubungkan node yang telah diproses dengan node yang belum diproses, sehingga menghindari siklus.
- Kompleksitas: O(n²) dengan matriks kedekatan atau O(a log n) dengan heap; Prim biasanya lebih baik pada graf padat daripada Kruskal.
- Aplikasi: desain jaringan, sistem kelistrikan, distribusi air/gas, visi mesin dan bioinformatika, optimalisasi biaya dan sumber daya.

Algoritma Prim adalah salah satu metode paling populer untuk menyelesaikan masalah Minimum Spanning Tree (MST). Jenis masalah ini muncul di banyak bidang, seperti desain jaringan telekomunikasi , sistem kelistrikan , dan jaringan distribusi. Jika Anda tertarik untuk memahami secara mendalam bagaimana algoritma ini bekerja, Anda telah datang ke tempat yang tepat. Di sini, kita akan menguraikan segala sesuatu tentang algoritma Prim, mulai dari sejarahnya hingga implementasi teknis dan aplikasi praktisnya.
Meskipun algoritma ini awalnya dikembangkan pada tahun 1957 oleh Robert Prim , relevansinya tidak berkurang seiring waktu. Ini adalah algoritma penting dalam analisis graf, terutama dalam menemukan solusi efisien untuk menghubungkan semua simpul graf dengan biaya serendah mungkin. Selain itu, kemudahan implementasinya menjadikannya ideal untuk mempelajari teknik optimasi graf dalam panduan komprehensif kami untuk programmer.
Apa itu Algoritma Prim?
Algoritma Prim adalah teknik untuk menemukan Pohon Rentang Minimum (MST) dari graf berbobot tak berarah yang terhubung. MST adalah pohon yang menghubungkan semua simpul graf menggunakan jumlah bobot tepi terkecil yang mungkin . Masalah ini sangat penting dalam bidang seperti optimasi jaringan, karena membantu meminimalkan sumber daya seperti kabel , pipa , atau bahkan rute transportasi.
Ide utama algoritma ini adalah membagi simpul-simpul dalam sebuah graf menjadi dua himpunan: yang telah diproses dan yang belum diproses . Kemudian, sisi terpendek yang menghubungkan kedua himpunan tersebut dipilih secara iteratif, dengan memastikan tidak terbentuknya siklus. Pada akhirnya, himpunan sisi yang terpilih membentuk MST (Minimum Spanning Tree) dari graf tersebut.
Sejarah dan Konteks
Robert Prim mengembangkan algoritma ini pada tahun 1957, tetapi asal-usulnya bahkan lebih jauh ke belakang, yaitu pada tahun 1926, ketika Otakar Boruvka mengerjakan masalah elektrifikasi di Cekoslowakia. Pada tahun 1956, Joseph Kruskal juga memperkenalkan metodenya sendiri untuk menyelesaikan masalah Minimum Spanning Tree. Meskipun kedua algoritma tersebut menyelesaikan masalah yang sama, algoritma Prim sangat efektif untuk graf yang padat.
Selama tahun 1960-an dan 1970-an, algoritma tersebut dipelajari dan disempurnakan oleh para matematikawan di Bell Labs , yang berkontribusi pada pengembangan teknik-teknik canggih untuk masalah optimasi kombinatorial.
Operasi Algoritma
Algoritma dimulai dengan memilih simpul awal apa pun dalam grafik dan menambahkan sisinya ke himpunan koneksi yang mungkin. Kemudian, pada setiap langkah:
- Pilihan sudah dibuat tepi terpendek yang menghubungkan simpul yang sudah diproses dengan simpul yang belum diproses.
- Node yang belum diproses yang dihubungkan oleh tepi yang dipilih ditandai sebagai diproses.
- Proses berlanjut hingga semua node selesai diproses.
Himpunan sisi terakhir membentuk Pohon Rentang Minimum, yang terkait dengan metode lain seperti algoritma Wilson.
Kompleksitas dan Perbandingan dengan Kruskal
Salah satu aspek algoritma Prim yang paling banyak dipelajari adalah efisiensinya . Dalam sebuah graf dengan n simpul dan a sisi, kompleksitasnya dapat bervariasi tergantung pada implementasinya:
- Menggunakan matriks ketetanggaan: HAI(n²)
- Menggunakan gundukan: O(log n)
Sebagai perbandingan, algoritma Kruskal memiliki kompleksitas O(a log n) , meskipun ini bergantung pada teknik pengurutan yang digunakan. Algoritma Prim umumnya lebih efisien untuk graf padat, sedangkan algoritma Kruskal lebih disukai untuk graf jarang.
Algoritma Pseudocode
Cara mudah untuk memahami algoritma ini adalah melalui pseudokode dan contoh algoritma matematika :
Prim (grafik): Mulai set yang diproses dengan node awal Selama ada node yang belum diproses: Temukan tepi terpendek yang menghubungkan kedua set Tambahkan tepi ke MST Tandai node sebagai telah diproses Kembalikan MST
Aplikasi praktis
Algoritma Prim memiliki banyak kegunaan di dunia nyata, termasuk:
- Desain jaringan telekomunikasi: Tentukan cara yang paling efisien untuk menghubungkan jaringan server atau stasiun pangkalan.
- Sistem kelistrikan: Mengurangi biaya pemasangan kabel pada instalasi listrik.
- Distribusi air atau gas: Mengoptimalkan infrastruktur pipa.
Misalnya, perusahaan televisi kabel dapat menggunakan algoritma ini untuk meminimalkan panjang kabel yang dibutuhkan untuk menghubungkan semua pelanggan di area perumahan.
Metode ini juga telah digunakan di bidang yang lebih kompleks, seperti analisis citra dalam visi komputer , pelipatan protein dalam bioinformatika, dan pendekatan untuk masalah NP-Hard seperti masalah pedagang keliling.
Berkat keserbagunaan dan kemampuan adaptasinya , algoritma Prim tetap menjadi alat fundamental dalam optimasi masalah yang berkaitan dengan graf.