Memperbarui:
Solusi ini tidak benar.
Solusinya sayangnya hanya benar (dan langsung) untuk pohon! Menemukan diameter pohon bahkan tidak memerlukan ini. Berikut adalah contoh tandingan untuk grafik (diameter 4, algoritma mengembalikan 3 jika Anda memilih ini ):v
Jika grafik diarahkan ini agak rumit, berikut adalah beberapa kertas yang mengklaim hasil lebih cepat dalam kasus padat daripada menggunakan algoritma untuk semua-pasangan jalur terpendek.
Namun poin utama saya adalah tentang kasus grafik tidak terarah dan dengan bobot non-negatif, saya mendengar trik yang bagus beberapa kali:
- Pilih titikv
- Temukan sedemikian rupa sehingga maksimumd ( v , kamu )ud(v,u)
- Temukan sehingga maksimumd ( u , w )wd(u,w)
- Returnd(u,w)
Kompleksitasnya sama dengan dua pencarian pertama kali berturut-turut¹, yaitu jika grafik terhubung².O(|E|)
Tampaknya itu cerita rakyat, tetapi saat ini, saya masih berjuang untuk mendapatkan referensi atau untuk membuktikan koreksinya. Saya akan memperbarui ketika saya akan mencapai salah satu dari tujuan ini. Sepertinya sangat sederhana saya memposting jawaban saya sekarang, mungkin seseorang akan mendapatkannya lebih cepat.
¹ jika grafik ditimbang, wikipedia tampaknya mengatakan tetapi saya hanya yakin tentang .O ( | E | log | V | )O(|E|+|V|log|V|)O(|E|log|V|)
² Jika grafik tidak terhubung Anda mendapatkan tetapi Anda mungkin harus menambahkan untuk memilih satu elemen dari setiap komponen yang terhubung. Saya tidak yakin apakah ini perlu dan bagaimanapun, Anda dapat memutuskan bahwa diameternya tidak terbatas dalam kasus ini.O ( α (O(|V|+|E|)O(α(|V|))