Kapan pohon rentang minimum untuk grafik tidak unik


22

Diberikan grafik berbobot dan tidak terarah G: Kondisi mana yang harus benar sehingga ada beberapa pohon rentang minimum untuk G?

Saya tahu bahwa MST itu unik ketika semua bobotnya berbeda, tetapi Anda tidak bisa membalikkan pernyataan ini. Jika ada tepi muliple dengan bobot yang sama dalam grafik, mungkin ada beberapa MST tetapi mungkin juga hanya ada satu:

masukkan deskripsi gambar di sini

Dalam contoh ini, grafik di sebelah kiri memiliki MST yang unik tetapi yang kanan tidak.

Yang paling dekat yang bisa saya temukan untuk menemukan kondisi untuk keunikan MST adalah sebagai berikut:

Pertimbangkan semua siklus tanpa tali (siklus yang tidak mengandung siklus lain) dalam grafik G. Jika dalam salah satu siklus ini, tepi tertimbang maksimum ada beberapa kali, maka grafik tidak memiliki pohon rentang minimum yang unik.

Ide saya adalah untuk siklus seperti ini

masukkan deskripsi gambar di sini

dengan n simpul, Anda dapat meninggalkan persis salah satu ujung dan masih memiliki semua simpul yang terhubung. Oleh karena itu, Anda memiliki banyak pilihan untuk menghilangkan ujung dengan bobot tertinggi untuk mendapatkan MST, sehingga MST tidak unik.

Namun, saya kemudian datang dengan contoh ini:

masukkan deskripsi gambar di sini

Anda dapat melihat bahwa grafik ini memang memiliki siklus yang sesuai dengan kondisi saya: (E, F, G, H) tetapi sejauh yang saya lihat, pohon rentang minimum adalah unik:

masukkan deskripsi gambar di sini

Jadi sepertinya kondisi saya tidak benar (atau mungkin tidak sepenuhnya benar). Saya sangat menghargai bantuan apa pun dalam menemukan kondisi yang diperlukan dan cukup untuk ketidakunikan pohon spanning minimum.


1
Siklus terkecil Anda dikenal sebagai siklus chordless (kurang lebih).
Yuval Filmus

Jawaban:


10

pada gambar pertama: grafik kanan memiliki MST yang unik, dengan mengambil sisi dan dengan berat total 2.( F , G )(F,H)(F,G)

Mengingat grafik dan biarkan menjadi minimum spanning tree (MST) di .M = ( V , F ) GG=(V,E)M=(V,F)G

Jika ada tepi dengan bobot sehingga menambahkan ke MST kami menghasilkan siklus , dan biarkan juga menjadi tepi-bobot terendah. dari , maka kita dapat membuat MST kedua dengan menukar tepi dari dengan bobot tepi dengan . Dengan demikian kita tidak memiliki keunikan.w ( e ) = m e C m F C F C m ee={v,w}EFw(e)=meCmFCFCme


Anda benar, saya mengoreksi grafik itu dalam pertanyaan sekarang. Apakah Anda tahu jika ini adalah kondisi yang paling umum sehingga MST tidak unik? Atau bisakah itu juga ditentukan tanpa perlu terlebih dahulu menemukan MST?
Keiwan

1
@ Keiwan Saya percaya bahwa jika Anda mempertimbangkan pertanyaan ini maka kondisi yang dijabarkan dalam jawaban ini juga merupakan kondisi yang diperlukan untuk memiliki beberapa MST. Dengan kata lain: grafik memiliki beberapa MST jika dan hanya jika konstruksi yang digariskan oleh HueHang dapat dilakukan. G
Bakuriu

1
m tidak perlu menjadi bobot tepi terendah dari F∩C. Bahkan, itu hanya bisa menjadi berat tepi tertinggi, jika tidak, M tidak akan seminimal mungkin. Misalkan ada tepi e 'dengan w (e') = m '> m = w (e) di F∩C. Kemudian menukar e untuk e 'akan meninggalkan pohon spanning dengan berat total kurang dari M, bertentangan dengan minimal M.
Chad

2

Jawaban sebelumnya menunjukkan algoritma untuk menentukan apakah ada beberapa MST, yang, untuk setiap sisi tidak dalam G , menemukan siklus yang dibuat dengan menambahkan e ke MST yang dikomputasi dan memeriksa apakah e bukan tepi terberat unik dalam siklus itu. Algoritma itu kemungkinan akan berjalan dalam waktu O ( | E | | V | ) .eGeeO(|E||V|)

Algoritma yang lebih sederhana untuk menentukan apakah ada beberapa MST G- kompleksitas waktuO(|E|log(|V|)) .

 1. Jalankan algoritma Kruskal pada untuk menemukan MST m .Gm

 2. Coba jalankan algoritma Kruskal di lagi. Dalam menjalankan ini, setiap kali kita memiliki pilihan di antara tepi bobot yang sama, pertama-tama kita akan mencoba tepi yang tidak dalam m , setelah itu kita akan mencoba tepi di m . Setiap kali kami menemukan tepi yang tidak dalam m menghubungkan dua pohon yang berbeda, kami mengklaim bahwa ada beberapa MST, yang mengakhiri algoritme.Gmmm

 3. Jika kami telah sampai di sini, maka kami mengklaim bahwa memiliki MST yang unik.G

Proses algoritma Kruskal yang biasa membutuhkan waktu . Pilihan tambahan tepi yang tidak dalam m dapat dilakukan dalam waktu O ( | E | ) . Jadi algoritma ini mencapai kompleksitas waktu O ( | E | log ( | V | ) ) .O(|E|log(|V|))mO(|E|)O(|E|log(|V|))

Mengapa algoritma ini dapat menentukan apakah ada beberapa MST?

Misalkan kita memiliki MST yang tidak sama dengan m . Cukup untuk menunjukkan bahwa algoritma yang berjalan pada G tidak akan mencapai langkah 3, karena tepi ditemukan pada akhir langkah 2, yang tidak dalam m dan menghubungkan dua pohon yang berbeda akan dimasukkan dalam MST yang dihasilkan seandainya kami menjalankan Kruskal's algoritma untuk penyelesaian. Misalkan w menjadi bobot terbesar sedemikian rupa sehingga untuk setiap tepi yang beratnya kurang dari w , ia berada di m jika dan hanya jika berada di m . Karena m dan m memiliki jumlah sisi berat yang sama dengan w , maka terdapat tepi sisi beratmmGmwwmmmmw yang ada di m tetapi tidak di m . Jika algoritme telah keluar sebelum memproses tepi dari tepi tersebut, kami selesai. Kalau tidak, anggap algoritma akan memproses tepi pertama e ′ di antara tepi itu sekarang. Misalkan S adalah himpunan semua tepi yang telah dipertahankan sejauh ini untuk dimasukkan dalam MST yang dihasilkan. S m . Karena algoritme belum selesai memproses tepi bobot w tidak dalam m seperti e ,algoritmatersebut harus belum mulai memproses tepi bobot w dalam m . Jadi tepi di SwmmeSSmwmewmSberatnya kurang dari . Itu berarti S m . Ingatlah bahwa e ada di m . Karena { e } S m , di mana m adalah pohon, e harus menghubungkan dua pohon yang berbeda dalam S dan algoritme keluar pada titik ini.wSm.em{e}SmmeS

Catatan tentang pengembangan lebih lanjut
Langkah 1 dan langkah 2 dapat disisipkan sehingga kita dapat menghentikan algoritme sesegera mungkin tanpa memproses tepi bobot yang lebih besar.
Jika Anda ingin menghitung jumlah MST, Anda dapat memeriksa jawaban tentang cara menghitung jumlah MST .


1

Biarkan menjadi grafik terhubung tanpa batas (berhingga sederhana) berbobot tidak berarah dengan setidaknya dua simpul. Biarkan ST berarti spanning tree dan MST berarti spanning tree minimum. Biarkan saya mendefinisikan beberapa istilah yang kurang umum dulu.G

  • Tepi adalah siklus-terberat unik jika merupakan tepi terberat unik dalam beberapa siklus.
  • Edge adalah non-cycle-terberat jika itu tidak pernah menjadi edge terberat dalam siklus apa pun.
  • Sebuah tepi adalah unik-potong-paling ringan jika itu adalah tepi paling ringan unik untuk memotong beberapa.
  • Tepi adalah non-cut-lightest jika itu tidak pernah menjadi tepi yang paling ringan untuk memotong apapun.
  • Dua STs bersebelahan jika setiap ST memiliki tepat satu sisi yang tidak di ST lainnya.
  • MST adalah MST yang terisolasi jika tidak berdekatan dengan MST lain (ketika kedua MST dianggap sebagai ST).

Kapan ada lebih dari satu pohon spanning minimum?

G

  • Ada dua MST yang berdekatan.
  • Tidak ada MST yang terisolasi.
  • Ada ST yang seringan atau lebih ringan dari semua ST yang berdekatan dan yang seringan satu ST yang berdekatan.
  • Ada keunggulan yang bukan merupakan siklus terberat maupun non-siklus terunik.
  • Ada sisi yang tidak unik-potong-ringan atau non-potong-ringan

Kebaruan dari jawaban ini sebagian besar adalah dua penokohan terakhir. Yang kedua dari karakterisasi terakhir dapat dianggap sebagai langkah selanjutnya dari pendekatan OP . Tiga penokohan pertama bersama-sama dapat dianggap sebagai versi sedikit lebih baik dari jawaban dtt .

G

Kapan pohon spanning minimum unik?

G

  • Keunikan MST : Ada MST yang unik.
  • Tidak ada MST yang berdekatan : tidak ada MST yang berdekatan.
  • Satu MST yang terisolasi : ada MST yang terisolasi.
  • Satu minimum ST lokal : ada ST yang lebih ringan dari semua ST yang berdekatan.
  • Extreme cycle edge : setiap edge adalah unik-siklus-terberat atau non-siklus-terberat.
  • Extreme cut edge : setiap tepi unik-potong-ringan-atau non-potong-ringan

Inilah buktiku.

"Keunikan MST" => "Tidak ada MST yang berdekatan": jelas.

"Tidak ada MST yang berdekatan" => "Satu MST yang terisolasi": jelas.

"Satu MST yang terisolasi" => "Satu ST minimum lokal": MST yang terisolasi lebih ringan daripada semua ST yang berdekatan.

m

  • mlmllclmmm1m2m1m2lcm1m2lmm1m2lGmmmmlll
  • mhmhmchchmmhhmmmmhhhch

"ST minimum lokal" => "Extreme cut edge": Bukti dibiarkan sebagai latihan.

meememm

"Extreme cut edge" => "Keunikan MST": Bukti dibiarkan sebagai latihan.

Rantai implikasi di atas membuktikan teorema tersebut.

Sekali lagi, kebaruan dari jawaban ini sebagian besar adalah properti "edge cycle edge" dan properti "edge cut edge", yang menggunakan konsep, non-cycle-terberat dan non-cut-lightest. Saya belum melihat konsep-konsep itu di tempat lain, walaupun mereka cukup alami.


Berikut adalah dua pengamatan menarik terkait.

  • ee e e
  • ee e e

Dua kondisi yang cukup tetapi tidak perlu untuk MST unik

ab1,bc1,cd1,da2,ac2

1,1,2

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.