1 / 17

Théorie des graphes

Théorie des graphes. Plan du cours. Que peut-on faire avec la théorie des graphes ? Concepts généraux en théorie des graphes 2. Le problème du plus court chemin 3. Flots et réseaux de transport. Le problème du plus court chemin. Définition Exemples de formulation avec pcch

radha
Télécharger la présentation

Théorie des graphes

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Théorie des graphes

  2. Plan du cours • Que peut-on faire avec la théorie des graphes ? Concepts généraux en théorie des graphes 2. Le problème du plus court chemin 3. Flots et réseaux de transport

  3. Le problème du plus court chemin • Définition • Exemples de formulation avec pcch • Graphes sans circuit • Graphes à valuations quelconques - Algorithme de Ford - Algorithme de Bellman-Kalaba • Graphes à valuations positives • Algorithme de Moore-Dijkstra (1959)

  4. Graphe orienté valué Un graphe orienté valuéG est défini par : • Un ensemble de sommetsX. • Un ensemble d’arcsU  X2. • Une valuationV : U  R qui à chaque arc du graphe associe une valeur réelle (longueur, poids..).

  5. Exemple de graphe orienté valué 7 a d 4 2 3 f 1 4 3 e 5 1 c b

  6. Le problème du plus court chemin Définition

  7. B E H C F I K A G J D Le problème du plus court chemin Exemples • Exemple 1 : Construire une autoroute entre deux villes A et K • Arcs = tronçons possibles de l’autoroute • Valuation des arcs peut être • coût de réalisation correspondant • longueur du trajet • …

  8. Le problème du plus court chemin Exemples • Exemple 2 : Chemin le plus fiable dans un réseau de télécommunication • Arêtes = liens physiques • Valuation des arêtes (i,j) est pij: fiabilité du lien (la probabilité pour que le lien fonctionne) • La fiabilité d’un chemin est le produit des probabilités des liens qui le constituent • Le problème devient un problème de pcch en remplaçant chaque probabilité par aij = - log pij

  9. Le problème du plus court chemin Exemples • Exemple 3 : Problème de sac à dos • Un sac à dos de capacité b • n objets j=1…n • aj : poids de l’objet j • pj : profit de l’objet j • Objectif : déterminer un sous ensemble d’objets de profit maximal respectant la capacité du sac. • Maximiser j pjxj • s.c. • j aj xj  b • avec xij = 1 si l’objet est choisi et 0 sinon

  10. Le problème du plus court chemin Exemples • Exemple 3 : Problème de sac à dos • n(b+1) sommets notés j(k), j=1,2,…,n et k=0,1,…,b • Un sommet origine s et un sommet destination t • Un sommet j(k) a deux arcs entrants (s’ils existent): • Un arc de (j-1)(k) valué par 0 • Un arc de (j-1)(k-aj) valué par pj • Deux arcs de s vers 1(0) et 1(a1) valués par 0 et p1 • Un arc de valuation 0 entre chaque sommet n(k) et t • Un chemin de s à j(k) correspond a un sous ensemble des j premiers objets dont le poids total est égal à k. La longueur du chemin est la valeur du sous ensemble

  11. Chemin de poids minimal Algorithme de Ford Initialisation λ1 = 0 ;  j ≠1λj= +∞ λj= λi+ wij • (xi , xj) U : λj > λi + wij FIN OUI NON

  12. Chemin de poids maximal Algorithme de Ford Initialisation λ1 = 0 ;  j ≠1λj= - ∞ λj= λi+ wij • (xi , xj) U : λj < λi + wij FIN OUI NON

  13. Chemin de poids minimal Algorithme de Bellman-Kalaba Initialisation k = 0 λ1(k)= 0 ;  j ≠ 1λj(k)= +∞ k = k + 1 λ1(k) = 0 ;  j ≠ 1λj(k)= min {λi(k-1) + wij } • xj X : λj (k) ≠λj(k-1) FIN NON OUI

  14. Chemin de poids maximal Algorithme de Bellman-Kalaba Initialisation k = 0 λ1(k)= 0 ;  j ≠ 1λj(k)= - ∞ k = k + 1 λ1(k) = 0 ;  j ≠ 1λj(k)= max {λi(k-1) + wij } • xj X : λj (k) ≠λj(k-1) FIN NON OUI

  15. Algorithme de Dijkstra • détermine les plus courts chemins d'un sommet x1 à tous les autres sommets d'un graphe G= (X,U). Il suppose que les longueurs sur les arcs sont positives ou nulles. L'idée de cet algorithme est de partager les sommets en deux groupes: ceux dont on connaît la distance la plus courte au sommet x1 (ensemble D) et ceux dont on ne connaît pas cette distance. On part avec x1 dans D et tous les autres sommets n’appartenant pas à D. Tous les sommets ont une distance infinie (p(x) = +oo) avec le point x1, excepté le point x1 lui-même qui a une distance nulle (p(x1) = 0). A chaque itération, on choisit le sommet x qui a la plus petite distance au sommet x1 . Ce sommet est déplacé dans D. Ensuite, pour chaque successeur y de x, on regarde si la distance la plus courte connue jusque là entre x1 et y ne peut pas être améliorée en passant par x. Si c'est le cas, p(y) est modifiée. Ensuite, on recommence avec un autre sommet.

  16. Chemin de poids minimal Algorithme de Dijkstra Initialisation D = { x1 } ; λ1 = 0 ;  j ≠ 1λj= w1j λk= min λj xj  D D = D { xk } ; λj= min {λj , λk + wkj }  xj  D xn D FIN NON OUI

  17. Chemin de poids minimal Obtention du chemin à partir des poids minimaux Initialisation xk = xn ; C = ( xn ) Chercher xj X : λk= λj + wjk xk = xj C = ( xk , C ) xk = x1 FIN NON OUI

More Related