Loading AI tools
Z Wikipedii, wolnej encyklopedii
Algorytm Bellmana-Forda – algorytm służący do wyszukiwania najkrótszych ścieżek w grafie ważonym z wierzchołka źródłowego do wszystkich pozostałych wierzchołków[1].
Rodzaj | |
---|---|
Struktura danych | |
Złożoność | |
Czasowa |
|
Pamięciowa |
|
Idea algorytmu opiera się na metodzie relaksacji (dokładniej następuje relaksacja razy każdej z krawędzi).
W odróżnieniu od algorytmu Dijkstry, algorytm Bellmana-Forda działa poprawnie także dla grafów z wagami ujemnymi (nie może jednak wystąpić cykl o łącznej ujemnej wadze osiągalny ze źródła). Za tę ogólność płaci się jednak wyższą złożonością czasową. Działa on w czasie [1].
Algorytm może być wykorzystywany także do sprawdzania, czy w grafie występują ujemne cykle osiągalne ze źródła[1].
Na algorytmie Bellmana-Forda bazuje protokół RIP - Routing Information Protocol[2].
Dla grafu G, funkcji wagowej w i wierzchołka s otrzymamy tablicę d[u] odległości każdego wierzchołka grafu od wierzchołka s.
Bellman-Ford(G,w,s): dla każdego wierzchołka v w V[G] wykonaj d[v] = nieskończone poprzednik[v] = niezdefiniowane d[s] = 0 dla i od 1 do |V[G]| - 1 wykonaj dla każdej krawędzi (u,v) w E[G] wykonaj jeżeli d[v] > d[u] + w(u,v) to d[v] = d[u] + w(u,v) poprzednik[v] = u
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.