Saya percaya ini benar tetapi belum bisa mendapatkan bukti formal juga. Tetapi apakah benar bahwa spanning tree minimum dapat dicapai dengan menerapkan algoritma Kruskal? Demikian pula, apakah ini benar untuk algoritma Prim?
EDIT: Untuk lebih tepatnya, saya ingin tahu jika diberi MST untuk grafik yang terhubung, tidak terarah, berbobot, apakah dijamin bahwa ada urutan langkah-langkah menggunakan Kruskal atau Prim yang menghasilkan MST ini. Misalnya ada pilihan yang berbeda untuk Kruskal ketika ada banyak sisi dengan berat yang sama. Demikian pula untuk Prim.
algorithms
graphs
minimum-spanning-tree
domoremath
sumber
sumber
Jawaban:
Seperti yang ditunjukkan oleh komentar Raphael dan komentar j_random_hacker , jawabannya adalah positif. Faktanya, setiap MST dapat dijangkau oleh algoritma MST apa pun dengan beberapa pengecualian kecil.
Untuk grafik , dua fungsi bobot pada semua sisi (ke bilangan real) didefinisikan sebagai (lemah) yang kompatibel-perbandingan (satu sama lain) jika kita dapat memperpanjang urutan lemah yang ketat pada tepi yang disebabkan oleh fungsi bobot mana pun ke ketat yang sama pesanan total. Yaitu, kita dapat menyusun aturan pengikatan yang konsisten dengan masing-masing fungsi bobot sehingga hasil perbandingan dari dua sisi dengan satu fungsi berat dan aturan pengikatannya sama dengan hasil oleh fungsi bobot lainnya dan pengikatannya. melanggar peraturan.G
Bukti lemma 1 dibiarkan sebagai latihan yang mudah.
(Petunjuk) Bukti: Salah satu pendekatan adalah untuk memverifikasi kondisi 5 lemma 1. Pendekatan lain adalah untuk memverifikasi kondisi 2 lemma 1 dengan menunjukkan bahwa di setiap kumpulan tepi, tepi paling ringan oleh juga merupakan tepi paling ringan oleh w 1 ,w2 w1
Algoritma berbasis perbandingan pada grafik didefinisikan sebagai perbandingan-kompatibel jika untuk setiap dua (berat) fungsi perbandingan-kompatibel berat di semua sisi, kita dapat menjalankan algoritma dengan satu fungsi bobot dengan cara yang dapat diulang tanpa perubahan apa pun. dengan fungsi berat lainnya. Secara khusus, kedua run dari algoritma akan memiliki output yang sama.G
Harap dicatat bahwa kebanyakan jika tidak semua algoritma MST dapat dinyatakan dalam dua rasa. Rasa pertama mengasumsikan bahwa tepi yang berbeda dari memiliki bobot yang berbeda, yang digunakan ketika perhatian utama adalah menemukan satu MST (yang sebenarnya juga merupakan MST unik). Rasa kedua memungkinkan tepi G yang berbeda memiliki bobot yang sama. Tentu saja dalam jawaban ini, di mana perhatian utama adalah untuk menemukan semua MST, kami hanya akan peduli algoritma MST dalam citarasa kedua.G G
Algoritma MST yang kompatibel dengan perbandingan dapat menemukan semua MST.
Untuk membuktikan proposisi di atas, kita hanya perlu sedikit menyesuaikan bagian, "Kruskal dapat menemukan setiap MST" dalam perhitungan jumlah MST . Untuk setiap MST dari G dengan fungsi bobot w 1 , pilih bobot positif yang lebih ringan daripada perbedaan absolut antara pasangan bobot tepi yang tidak sama. Jika kita mengurangi bobot itu dari bobot setiap sisi dalam m tanpa mengubah bobot sisi lainnya, kita memperoleh fungsi bobot baru, katakanlah, w 2 . Jika tepi e 1 lebih ringan dari e 2 oleh w 1 , e 1 harus lebih ringan darim G w1 m w2 e1 e2 w1 e1 oleh w 2 juga. Oleh lemma 2, w 1 dan w 2 kompatibel-perbandingan. Perhatikan bahwa m adalah MST unik dengan w 2 . (Salah satu cara untuk menunjukkan keunikan ini adalah dengan membuktikan bahwa setiap kali berat satu tepi MST berkurang, setiap MST dengan fungsi bobot baru harus mengandung sisi itu.) Jadi, menjalankan algoritme apa pun pada w 2 akan menemukan m . Karena algoritma ini kompatibel dengan perbandingan, kita dapat menjalankan algoritma dengan cara yang sama dengan w 1 atau dengan w 2 . Karena proses tersebut akan menemukan MST unik, m withe2 w2 w1 w2 m w2 w2 m w1 w2 m , ia akan menemukan m juga dengan w 1 .w2 m w1
Setiap algoritma MST kompatibel dengan perbandingan
Proposisi di atas terdengar berlebihan. Ya, oleh setiap algoritma MST, maksud saya setiap algoritma MST berbasis perbandingan umum yang telah saya lihat, tidak termasuk yang tampaknya patologis seperti salah atau memiliki langkah yang tidak perlu. Karena algoritma MST yang kompatibel dengan perbandingan dapat menemukan semua MST, setiap algoritma MST dapat menemukan semua MST. Secara khusus, masing-masing dari empat algoritma MST klasik , yaitu algoritma Borůvka, Prim, Kruskal dan reverse-delete dapat menemukan semua MST.
Berikut adalah tiga algoritma MST yang lebih kompatibel dengan perbandingan.
Algoritma MST berikut ini tidak kompatibel dengan perbandingan.
Harap dicatat bahwa kedelapan algoritma MST yang disebutkan di atas adalah berbasis perbandingan.
Bagaimana cara menunjukkan suatu algoritma yang kompatibel dengan perbandingan?
Saya akan menggunakan algoritma Kruskal sebagai contoh. Berikut adalah deskripsi Algoritma Kruskal (dalam rasa kedua) pada diarahkan graf terhubung berbobot .G
Mari dan w 2 menjadi dua fungsi berat badan perbandingan-kompatibel pada G . Algoritma Kruskal melibatkan fungsi bobot hanya pada langkah yang "memilih tepi dengan bobot minimum dari S ". Kondisi 2 dari lemma 1 memberi tahu kita bahwa kita dapat memilih tepi paling ringan yang umum pada langkah ini. Kita kemudian dapat memeriksa dengan mudah dengan induksi bahwa kita dapat menjalankan semua langkah dengan cara yang sama dengan w 1 dan dengan w 2 . Jadi algoritma Kruskal adalah kompatibel-perbandingan.w1 w2 G S w1 w2
Suatu algoritma kompatibel-perbandingan jika, secara longgar, dapat dijelaskan dalam tiga jenis langkah.
Kondisi yang memadai ini mencakup algoritma Borůvka, Prim, Kruskal, reverse-delete, delete-heavy-edge, dan add-non-heavy-edge. Perhatikan bahwa untuk menyesuaikan kondisi yang memadai ini, kita mungkin harus mengubah deskripsi algoritma tertentu tanpa memengaruhi set MST yang dapat dijangkau. Karena perkecualian algoritma Kruskal yang memiliki derajat bias kompatibel-komparatif, izinkan saya menekankan kondisi yang cukup ini dijelaskan dalam istilah longgar
sumber