08/03/19

Théorie des graphes

BFS -> carte des distances -> Dijkstra -> Bellman Ford

BFS: distmap(G=(V,E), s V) avec s: source sans poids







exemple



s

s



1

1



s->1





3

3



s->3





1->3





2

2



1->2





3->2





4

4



3->4





2->4





4->2





Pseudo code pour remplir la liste des successeurs à parcourir:

distmap(G=(V,E), s V):
v V, dist[v] =
– dist[s] = 0
– todo = [s]
– while todo []:
------ x = todo.pop_front()
------ for y δ+(x):
---------- if (dist[y] == ):
------------ dist[y] <- dist[x] + 1
------------ todo.push_back(y)
– return dist

Dijkstra simplifié:
entrée: graphe pondéré, avec poids positifs, s V
sortie: dist[y] la distance entre s et y

Algo de Ballman-Ford