Algo Durchmesser von Graphen zu finden ist wie folgt:Finding Durchmesser von Graphen BFS mit
- Run BFS auf jedem arbirtray Vertex und erinnere mich an den letzten Knoten besucht (sagen t)
- Run BFS von t und denke daran, der letzte besuchte Knoten (zB t ')
- Der kürzeste Abstand zwischen t und t' ist der Durchmesser des Graphen.
Das ist, was ich gelernt und es funktionierte gut, bis ich die folgende Grafik gefunden:
A------G-----C------D
|
E------F------B
Wenn ich BFS von A
, ich AGECF"DB"...
laufen zu bekommen, und BFS von B
gibt BFCEDGA....
sollte so d(B,A)=3
sein der Durchmesser.
Aber wenn ich laufen BFS von A
als AGECF"BD"
und als BFS laufen von D
die DCBGFAE
gibt, d(D,E) = 4
sollte der Durchmesser
sein, was falsch gelaufen? Funktioniert dieser Algo nicht immer?