Zrobiłem kilka badań i wydaje mi się, że brakuje mi jednej małej części tego algorytmu. Rozumiem, jak działa wyszukiwanie wszerz, ale nie rozumiem, jak dokładnie doprowadzi mnie do określonej ścieżki, w przeciwieństwie do zwykłego informowania mnie, gdzie może przejść każdy węzeł. Myślę, że najłatwiejszym sposobem wyjaśnienia mojego pomieszania jest podanie przykładu:
Załóżmy na przykład, że mam taki wykres:
Moim celem jest przejście od punktu A do E (wszystkie krawędzie są nieważone).
Zaczynam na A, bo to jest moje pochodzenie. Ustawiam w kolejce A, po czym natychmiast usuwam A z kolejki i eksploruję go. Daje to B i D, ponieważ A jest połączone z B i D. W ten sposób ustawiam w kolejce zarówno B, jak i D.
Wyciągam B z kolejki i badam go i stwierdzam, że prowadzi do A (już zbadanego) i C, więc ustawiam w kolejce C. Następnie usuwam D z kolejki i stwierdzam, że prowadzi to do E, mojego celu. Następnie usuwam C z kolejki i stwierdzam, że prowadzi to również do E, mojego celu.
Wiem logicznie, że najszybszą ścieżką jest A-> D-> E, ale nie jestem pewien, jak dokładnie pomaga wyszukiwanie wszerz - jak mam nagrywać ścieżki tak, że po skończeniu mogę przeanalizować wyniki i zobaczyć że najkrótszą ścieżką jest A-> D-> E?
Zauważ też, że tak naprawdę nie używam drzewa, więc nie ma węzłów „nadrzędnych”, są tylko dzieci.