chemins dans les graphes n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
CHEMINS DANS LES GRAPHES PowerPoint Presentation
Download Presentation
CHEMINS DANS LES GRAPHES

Loading in 2 Seconds...

play fullscreen
1 / 12

CHEMINS DANS LES GRAPHES - PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on

CHEMINS DANS LES GRAPHES. Le PCC entre 2 sommets dans un graphe sans poids Le PCC entre un sommet et tous les autres sommets dans un graphe à des poids positifs Le PCC entre un sommet et tous les autres sommets dans un graphe pondéré.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CHEMINS DANS LES GRAPHES' - nasim-farley


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
chemins dans les graphes
CHEMINS DANS LES GRAPHES
  • Le PCC entre 2 sommets dans un graphe sans poids
  • Le PCC entre un sommet et tous les autres sommets dans un graphe à des poids positifs
  • Le PCC entre un sommet et tous les autres sommets dans un graphe pondéré.
  • Le PCC entre un sommet et tous les autres sommets dans un graphe orienté et sans cycle
slide2

GenericShortestPath(G, s)

Dist= ∞ for u in G

Dists = 0

P = 

Ps = s

Q = 

Q.append(s)

whileQ:

z = Q.get_and_delete()

forxin Adjz:

If Distx > Distz+w(z, x): /edge (z,x) is « tense»

Distx = Distz+w(z, x)

Px = z

Q.append(x)

Return < P, D >

le plus court chemin entre 2 sommets
Le plus court chemin entre 2 sommets
  • Données: Un grapheG avec des arêtes (arcs) sans poidset 2 sommetss et t de de G.
  • But: Le plus court chemin entre s et t.

Complexité: O(V+E)

slide4

ShortestPath(G, s)

Dist= ∞ for u in G

Dists = 0

P = 

Ps = s

Q = 

Q.append(s)

whileQ:

z = Q.pop()

forxin Adjz:

If Px == 0: /edge (z,x) is « tense»!!!!

Distx = Distz+1

Px = z

Q.append(x)

returnpath(P,s,t)

le plus court chemin dijkstra
Le plus court chemin: Dijkstra
  • Données: Un grapheG avec des arêtes (arcs) à des poidspositifset un sommets.
  • But: Le plus court chemin entre s et les autres sommets du graphe.

Complexité: O(V2+E) // O((V+E)log V) // O(E+Vlog V)

slide6

The algorithm DIJKSTRA(G,s)

Dist= infinity for u in G

Dists=0

Ps=s

Q = V

whileQ:

z = Q.delete_min()

forxin Adjz:

Relax(z, x)

...

Return <P, Dist>

slide7

Dijkstra1 (G.w, s)

Dist= ∞for u in G

Dists = 0

Ps = s

Q = Makeheap(V) (usingdist-values as keys)

whileQ:

z = Q.deletemin_key()

forxin Adjz:

If Distx > Distz+w(z, x):

Distx = Distz+w(z, x)

Px= z

Q.decrease_key(x)

slide8

Dijkstra2 (G.w, s)

Dist= ∞ for u in G

M = 0 for u in G

P= 

Dists = 0

Ms=1

Ps = s

Q.add(s)

whileQ:

z = Q.delete_min()

forxin Adjz:

If Distx > Distz+c(z, x)

Distx = Distz+c(z, x)

Px= z

If Mx==0:

Mx=1

Q.add(x)

elifQ.decrease_key(x)

slide9

Le plus court chemin: Bellman-Ford

Données: Un graphevaluéG et un sommets sans cycle négatif.

But: Le plus court chemin entre s et les autres sommets du graphe.

Complexité: O(VE)

slide10

Bellman-Ford (G.w, s)

Dist= ∞ for u in G

M = 0 for u in G

P = 

Dists=0

Ms=1

Ps=s

Q.enqueue(s)

whileQ:

z = Q.dequeue()

Mz=0

forxin Adjz:

If Distx > Distz+w(z,x)

Distx = Distz+w(z,x)

Px= z

if Mx==0:

Mx=1

Q.enqueue(x)

le chemin le plus court dags
Le chemin le plus court: DAGs
  • Données: Un grapheorienté et sans cycle G, et un sommetsde G.
  • But: Le plus court chemin entre s et les autres sommets du graphe.

Complexité: O(V+E)

slide12

SHORTEST_PATHS_DAGs(G.w, s)

Dist= ∞for u in G

Dists =0

Ps = s

Q = Topological_sort(G)

whileQ:

z = Q.pop()

forxin Adjz:

If Distx > Distz+w(z, x)

Distx = Distz+w(z, x)