Berikut ini adalah bukti yang mengikuti rangkaian solusi MIT yang tertaut dalam pertanyaan awal dengan lebih dekat. Untuk lebih jelasnya, saya akan menggunakan notasi yang sama yang mereka gunakan sehingga perbandingan bisa lebih mudah dibuat.
ababp(a,b)d(a,b)s≠a,bs=abud(s,u)=maxxd(s,x)
Lemma 0: Baik dan adalah simpul daun.ab
Bukti: Jika mereka bukan simpul daun, kita bisa meningkatkan dengan memperluas titik akhir ke simpul daun, bertentangan dengan menjadi diameter.d(a,b)d(a,b)
Lemma 1: .max[d(s,a),d(s,b)]=d(s,u)
Bukti: Misalkan demi kontradiksi bahwa baik dan benar-benar kurang dari . Kami melihat dua kasus:d(s,a)d(s,b)d(s,u)
Kasus 1: path tidak tidak mengandung simpul . Dalam hal ini, tidak boleh diameter. Untuk melihat alasannya, mari menjadi simpul unik pada dengan jarak terkecil ke . Kemudian, kita melihat bahwa , karena . Demikian pula, kita juga akan memiliki . Ini bertentangan dengan menjadi diameter.p(a,b)sd(a,b)tp(a,b)sd(a,u)=d(a,t)+d(t,s)+d(s,u)>d(a,b)=d(a,t)+d(t,b)d(s,u)>d(s,b)=d(s,t)+d(t,b)>d(t,b)d(b,u)>d(a,b)d(a,b)
Kasus 2: jalur berisi simpul . Dalam hal ini, lagi tidak bisa menjadi diameter, karena untuk beberapa simpul sedemikian sehingga , keduanya dan akan lebih besar dari .p(a,b)sd(a,b) ud(s,u)=maxxd(s,x)d(a,u)d(b,u)d(a,b)
Lemma 1 memberikan alasan mengapa kita memulai pencarian Breadth-First kedua pada titik terakhir yang ditemukan dari BFS pertama. Jika adalah simpul unik dengan jarak kemungkinan terbesar dari , maka oleh Lemma 1, itu harus menjadi salah satu titik akhir dari beberapa lintasan dengan jarak yang sama dengan diameter, dan karenanya BFS kedua dengan sebagai root dengan jelas menemukan diameter. Di sisi lain, jika ada setidaknya satu simpul lain sehingga , maka kita tahu bahwa diameternya adalah , dan tidak masalah apakah kita memulai BFS kedua di atau .u s u v d ( s , v ) = d ( s , u ) d ( a , b ) = 2 d ( s , u ) u vuusuvd(s,v)=d(s,u)d(a,b)=2d(s,u)uv