La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IUT de Reims-Châlons-Charleville rue des crayères, BP 1035 51687 Reims Cedex 2 Introduction à la Théorie des Graphes Olivier Nocent

Présentations similaires


Présentation au sujet: "IUT de Reims-Châlons-Charleville rue des crayères, BP 1035 51687 Reims Cedex 2 Introduction à la Théorie des Graphes Olivier Nocent"— Transcription de la présentation:

1 IUT de Reims-Châlons-Charleville rue des crayères, BP Reims Cedex 2 Introduction à la Théorie des Graphes Olivier Nocent

2 IUT de Reims-Châlons-Charleville [ ]2 Cest déjà Noël Le cours « Introduction à la Théorie des Graphes » (au format PowerPoint et Acrobat Reader) est disponible sur lintranet du Département Informatique GRATUIT

3 IUT de Reims-Châlons-Charleville [ ]3 Un peu dHistoire… La ville de Koeninsberg (aujourdhui Kaliningrad) est traversée par la Pregel, qui coule de part et dautre de lîle de Kneiphof, et possède sept ponts. Question posée à Euler en 1736 : Peut-on visiter tous les quartiers de la ville en traversant chaque pont quune seule fois ? a b d c

4 IUT de Reims-Châlons-Charleville [ ]4 Applications Cartographie Réseau routier, réseau internet, … Économie – Gestion Planning de livraisons, gestion de flots, ordonnancement, … Chimie – Biologie Modélisation de molécules, ADN, … Sciences Sociales Généalogie, phénomènes de masse, conflits, … Linguistique Grammaire, Compilation, … Intelligence Artificielle Comportement, …

5 IUT de Reims-Châlons-Charleville [ ]5 Théorie des ensembles [D1]Un ensemble est une collection dobjets. Un ensemble fini se définit à partir de lénumération de ses éléments. X = {x 1,x 2, …,x n } Lensemble vide est noté. [D2]La cardinalité dun ensemble X, notée |X| ou Card X, est le nombre des éléments de X. Pour un ensemble infini X, |X| =. [D3]P(X) est lensemble des parties (sous-ensembles) de X. [E1]X = {a,b,c} P(X) = {,{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c} } [T1]Cardinalité de P(X) : |X| = n |P(X)| = 2 n.

6 IUT de Reims-Châlons-Charleville [ ]6 Théorie des ensembles [D4]La formule x X signifie que x appartient à lensemble X. La formule x X signifie que x nappartient pas à lensemble X. [D5]Soient A,B P(X). A est inclus dans B, noté A B, si tous les éléments de A sont des éléments de B. A B x A x B A est égal à B, noté A = B, si A est inclus dans B et B inclus dans A. A = B A B et B A

7 IUT de Reims-Châlons-Charleville [ ]7 Opérations ensemblistes [D6]Soient A,B P(X). On peut construire de nouveaux éléments de P(X) à laide des opérations suivantes : La réunion de A et B A B = { x X : x A ou x B } Lintersection de A et B A B = { x X : x A et x B } La différence de A et B A - B = { x X : x A et x B } X – A est aussi appelé le complémentaire de A dans X.

8 IUT de Reims-Châlons-Charleville [ ]8 Parties de X à k éléments [D7]P k (X) est lensemble des parties (sous-ensembles) de X à k éléments. [E2]X = {a,b,c} P 1 (X) = { {a},{b},{c} } P 2 (X) = { {a,b},{a,c},{b,c} } P 3 (X) = { {a,b,c} } [T2]Réunion des parties de X à k éléments : |X| = n P(X) = P 1 (X) P 2 (X) … P n (X)

9 IUT de Reims-Châlons-Charleville [ ]9 Produit cartésien densembles [D8]Soient A,B P(X). On définit le produit cartésien de A et B, noté A B, de la façon suivante : A B = { (a,b) : a A et b B } Un élément de lensemble A B est appelé un couple. A B A B a b (a,b) Par abus de notation, lensemble X n est le résultat de n produits cartésiens de X. [E3]X 2 = X X X 3 = X X X X 4 = X X X X

10 IUT de Reims-Châlons-Charleville [ ]10 Application sur X [D9]Une application univoque sur X associe à tout élément x de X un unique élément (x) de X. ( : X X) [E4]La fonction x sin x est une application univoque sur. [D10]Une application multivoque sur X associe à tout élément x de X un sous-ensemble (x) déléments de X. ( : X P(X)) [E5]Si X est lensemble des personnes dune même famille. Lapplication qui à un individu x associe lensemble de ses enfants est une application multivoque sur X.

11 IUT de Reims-Châlons-Charleville [ ]11 Graphe [D11]Un graphe G est défini par : Un ensemble de sommets X. Une application multivoque sur X qui, à chaque sommet x, associe le sous-ensemble (x) des sommets atteignables depuis x. (x) est lensemble des successeurs de x. On utilise alors la notation : G = (X, ) [D12]Lordre du graphe G, noté |G|, est le nombre de sommets du graphe. (|G| = |X| )

12 IUT de Reims-Châlons-Charleville [ ]12 Lien entre successeurs et prédécesseurs A partir de lensemble des successeurs de chaque sommet x de X, on peut définir lensemble des prédécesseurs de x : [D13]Un sommet y est un prédécesseur du sommet x si x appartient à lensemble des successeurs de y. Lensemble des prédécesseurs de x est donné par la formule suivante : -1 (x) = { y X : x (y) } [E6]X = {a,b,c,d,e} (a) = {d} -1 (a) = { x X : a (x) } = {b,e} (b) = {a} -1 (b) = { x X : b (x) } = {e} (c) = {e} -1 (c) = { x X : c (x) } = {d} (d) = {c,e} -1 (d) = { x X : d (x) } = {a} (e) = {a,b} -1 (e) = { x X : e (x) } = {c,d}

13 IUT de Reims-Châlons-Charleville [ ]13 Graphe non orienté [D14]Un graphe G = (X, ) est non orienté si : Pour tout sommet x de X, chacun de ses successeurs y a x pour successeur. x X : y (x) x (y) [E7]Soit X lensemble des étudiants présents. (x) est lensemble des voisins de létudiant x sur la même rangée. Dans un graphe non orienté, les relations bilatérales entre sommets sont décrites par les arêtes de A P 2 (X). On note alors G = (X,A). wy xz (x) = {w,y} (y) = {x,z} arête {x,y}

14 IUT de Reims-Châlons-Charleville [ ]14 Graphe orienté [D15]Un graphe G = (X, ) est orienté si il nest pas non orienté. [E8]Soit X lensemble des étudiants présents. (x) est lensemble des voisins de droite de létudiant x sur la même rangée. Dans un graphe orienté, les relations unilatérales entre sommets sont décrites par les arcs de U X 2. On note alors G = (X,U). [D16]Dans un arc (x,y) de U, x est lextrémité initiale et y est lextrémité terminale. w y x z (x) = {y} (y) = {z} arc (x,y)

15 IUT de Reims-Châlons-Charleville [ ]15 Illustration [E9]X = {a,b,c,d,e,f} (a) = {d} (b) = {a} (c) = {e} (d) = {c,e} (e) = {a,b} (f) = Graphe orienté ou non orienté ? X = {a,b,c,d,e,f} U = { (a,d), (b,a), (c,e), (d,c), (d,e), (e,a), (e,b) } ad b f e c

16 IUT de Reims-Châlons-Charleville [ ]16 Adjacence de sommets [D17]Deux sommets x i et x k de X sont adjacents si x i est un successeur de x k ou si x k est un successeur de x i. x i adjacent à x k x i (x k ) ou x k (x i ) Dans un graphe non orienté : a A : a = {x i, x k } Dans un graphe orienté : u U : u = (x i, x k ) ou u = (x i, x k )

17 IUT de Reims-Châlons-Charleville [ ]17 Matrice dadjacence dans un graphe orienté [T3]Deux sommets x i et x j sont adjacents sssi A ij = 1 ou A ji = 1. [T4]La matrice dadjacence dun graphe non orienté G = (X,A) est symétrique. x1x1 x2x2 …xnxn 00x1x1 10x2x2 … A =… … 0xnxn A ij = 1 si (x i,x j ) U = 0 sinon

18 IUT de Reims-Châlons-Charleville [ ]18 Degré dun sommet dans un graphe orienté [D18]Un arc u U est un arc incident à x vers lextérieur si lextrémité initiale de u coïncide avec le sommet x X. On note U x + lensemble des arcs incidents à x vers lextérieur. Un arc u U est un arc incident à x vers lintérieur si lextrémité terminale de u coïncide avec le sommet x X. On note U x - lensemble des arcs incidents à x vers lintérieur. [D19]Le demi-degré extérieur de x, noté d + (x), est le nombre darcs incidents à x vers lextérieur. d + (x) = |U x + |. Le demi-degré intérieur de x, noté d - (x), est le nombre darcs incidents à x vers lintérieur. d - (x) = |U x - |. Le degré de x, noté d(x), est le nombre des arcs ayant une extrémité coïncidant avec x. d(x) = d - (x) + d + (x).

19 IUT de Reims-Châlons-Charleville [ ]19 Illustration graphique ad b f e c Demi-degré extérieur de e : d + (e) = 2 Demi-degré intérieur de e : d - (e) = 3 Degré de e : d (e) = 2 + 3

20 IUT de Reims-Châlons-Charleville [ ]20 Degré dun sommet et matrice dadjacence x1x1 …xkxk …xnxn 00x1x1 …… A =1…0…0xkxk …… 10xnxn d - (x k ) d + (x k )

21 IUT de Reims-Châlons-Charleville [ ]21 Adjacence darcs (Graphe orienté) [D20]Deux arcs u i et u k de U sont semi-adjacents sils ont un sommet en commun. Deux arcs u i et u k de U sont adjacents si lextrémité finale de u i coïncide avec lextrémité initiale de u k. [E10]G = (X,U) un graphe orienté avec X = {x,y,z} et U = {u,v,w} Les arcs u et v sont adjacents. Les arcs u et w sont semi-adjacents. Les arcs v et w sont aussi adjacents. xyz u v w

22 IUT de Reims-Châlons-Charleville [ ]22 Chaînes et Chemins (Graphe orienté) [D21]Une chaîne c est une séquence (u 1, u 2, …, u m ) darcs telle que : u k est semi-adjacente à u k+1 pour k, 0 < k < m. Une chaîne simple est une chaîne dont les arêtes sont toutes distinctes. Un cycle est une chaîne simple dont lextrémité initiale du premier arc u 1 coïncide avec lextrémité finale du dernier arc u m. [D22]Un chemin c est une séquence (u 1, u 2, …, u m ) darcs telle que : u k est adjacente à u k+1 pour k, 0 < k < m. Un chemin simple est un chemin dont les arêtes sont toutes distinctes. Un circuit est un chemin simple dont lextrémité initiale du premier arc u 1 coïncide avec lextrémité finale du dernier arc u m.

23 IUT de Reims-Châlons-Charleville [ ]23 Retour à Koeninsberg [D23]Une chaîne eulerienne est une chaîne simple contenant toutes les arêtes dun graphe non orienté G = (X,A). a b d c [T5](Euler)Il nexiste pas de chaîne eulerienne dans le graphe de Koeninsberg.

24 IUT de Reims-Châlons-Charleville [ ]24 Lien entre chemins et matrice dadjacence Carré de la matrice dadjacence A 2 = A A A 2 ij = A i1 A 1j + … + A ik A kj + … + A in A nj 0 si A ik = 1 et A kj = 1 six i a pour successeur x k x k a pour successeur x j A 2 ij = nombre de chemins de longueur 2 de x i vers x j [T6]Si A est la matrice dadjacence dun graphe orienté G = (X,U). A p ij = nombre de chemins de longueur p de x i vers x j.

25 IUT de Reims-Châlons-Charleville [ ]25 Fermeture transitive [D24]Soit G = ( X, U ) un graphe orienté dordre n. La fermeture transitive T du graphe est une matrice définie comme suit : T = A + A 2 + A 3 + … + A n-1 [T7]T ij correspond au nombre de chemins (de longueur inférieure ou égal à n-1) depuis x i vers x j dans le graphe G. [T8]Si T ij = 0 alors il nexiste aucun chemin de x i vers x j dans le graphe G.

26 IUT de Reims-Châlons-Charleville [ ]26 Complexité du calcul de la fermeture transitive [T9]La complexité du calcul de la fermeture transitive est dordre 4 : le temps de calcul est proportionnel à n 4 où n est lordre du graphe (nombre de sommets du graphe). T = A + A 2 + A 3 + … + A n-1 [Preuve de T9] Le calcul de la fermeture transitive T nécessite : (n-2) multiplications de matrices –(n-2)n 3 additions et (n-2)n 3 multiplications (n-2) additions de matrices –(n-2)n 2 additions Finalement, 2 (n-2)n 3 + (n-2)n 2 kn 4 opérations. nn2n2 n3n3 n4n

27 IUT de Reims-Châlons-Charleville [ ]27 Optimisation du calcul de la fermeture transitive [D25]Une matrice booléenne est une matrice dont les coefficients sont des variables booléennes (V pour Vrai, F pour Faux). [D25b] Une matrice de fermeture transitive représentée par une matrice booléenne permet uniquement de savoir sil existe un chemin entre deux sommets du graphe. Mais on ignore combien? ABA B VVVV VFVF FVVF FFFF

28 IUT de Reims-Châlons-Charleville [ ]28 Optimisation du calcul de la fermeture transitive [A1]Algorithme de Warshall Pour i de 1 à n Pour j de 1 à n Pour k de 1 à n T ij = T ij (T ik T kj ) [T10]La complexité de lalgorithme de Warshall est dordre 3. [Preuve de T10] Le calcul de la fermeture transitive T nécessite : n 3 OU logique, n 3 ET logique Finalement, 2n 3 opérations.

29 IUT de Reims-Châlons-Charleville [ ]29 Parcours (en profondeur) dun graphe Objectif : déterminer lensemble des sommets atteignables depuis un sommet source s. [A2]Algorithme (récursif) de parcours dun graphe Visiter les successeurs du sommet s Visiter un sommet t Début Si t na pas encore été visité Alors Marquer t Visiter les successeurs de t FinSi Fin

30 IUT de Reims-Châlons-Charleville [ ]30 Exemple de parcours en profondeur ad b f c e Déterminer lensemble X a des sommets du graphe atteignables depuis le sommet a. X a = { d, c, b, a, e } Visiter a Visiter d Visiter c Visiter b Visiter e

31 IUT de Reims-Châlons-Charleville [ ]31 Connexité (Graphe orienté) [D26]La longueur dune chaîne (ou dun chemin) c, notée l(c), correspond aux nombres darcs de la chaîne (ou du chemin). [D27]Un graphe est faiblement connexe si, entre deux sommets x i et x j quelconques, il existe une chaîne c = {u 1, …, u m } de sorte que x i est une des extrémités de u 1 et x j une des extrémités de u m. [D28]Un graphe est fortement connexe si, entre deux sommets x i et x j quelconques, il existe un chemin c = {u 1, …, u m } qui commence en x i et se termine en x j.

32 IUT de Reims-Châlons-Charleville [ ]32 Composantes connexes dun graphe [D29]Une composante faiblement connexe dun graphe est un sous- ensemble Y de X tel que : entre deux sommets x i et x j quelconques de Y, il existe une chaîne c = {u 1, …, u m } de sorte que x i est une des extrémités de u 1 et x j une des extrémités de u m. [D30]Une composante fortement connexe dun graphe est un sous- ensemble Y de X tel que : entre deux sommets x i et x j quelconques de Y, il existe un chemin c = {u 1, …, u m } qui commence en x i et se termine en x j. [D31]Une composante fortement connexe maximale (cfcm) dun graphe est le plus grand sous-ensemble Y de X qui soit fortement connexe.

33 IUT de Reims-Châlons-Charleville [ ]33 Recherche de cfcm dans un graphe orienté [A3]Algorithme de recherche dune cfcm depuis un sommet s Marquer le sommet s du signe + - Tant que lon peut modifier les signes des sommets Faire Marquer du signe + tout successeur dun sommet marqué dun + Marquer du signe - tout prédécesseur dun sommet marqué dun - FinFaire Lensemble des sommets marqués du signe + - constituent la composante fortement connexe maximale issue du sommet s.

34 IUT de Reims-Châlons-Charleville [ ]34 Exemple de recherche de cfcm ad b f ce cfcm depuis le sommet a : cfcm depuis le sommet d : { a, b, c } { d, e, f }

35 IUT de Reims-Châlons-Charleville [ ]35 Graphe orienté valué [D32]Un graphe orienté valué G est défini par : Un ensemble de sommets X. Un ensemble darcs U X 2. Une valuation V : U R qui à chaque arc du graphe associe une valeur réelle (poids). On utilise alors la notation : G = ( X, U, V )

36 IUT de Reims-Châlons-Charleville [ ]36 Exemple de graphe orienté valué ad b f e c

37 IUT de Reims-Châlons-Charleville [ ]37 Recherche de chemins de poids minimal (resp. maximal) Méthodes en deux étapes : Détermination des poids minimaux (resp. maximaux) de chaque sommet. Obtention du chemin minimal (resp. maximal) à laide des poids des sommets.

38 IUT de Reims-Châlons-Charleville [ ]38 Chemin de poids minimal [A4]Algorithme de Ford Initialisation λ 1 = 0 ; j 1 λ j = + (x i, x j ) U : λ j > λ i + w ij λ j = λ i + w ij FIN OUINON

39 IUT de Reims-Châlons-Charleville [ ]39 Chemin de poids maximal [A5]Algorithme de Ford Initialisation λ 1 = 0 ; j 1 λ j = - (x i, x j ) U : λ j < λ i + w ij λ j = λ i + w ij FIN OUINON

40 IUT de Reims-Châlons-Charleville [ ]40 Chemin de poids minimal [A6]Algorithme de Bellman-Kalaba Initialisation k = 0 λ 1 (k) = 0 ; j 1 λ j (k) = + x j X : λ j (k) λ j (k-1) k = k + 1 λ 1 (k) = 0 ; j 1 λ j (k) = min {λ i (k-1) + w ij } FIN OUI NON

41 IUT de Reims-Châlons-Charleville [ ]41 Chemin de poids maximal [A7]Algorithme de Bellman-Kalaba Initialisation k = 0 λ 1 (k) = 0 ; j 1 λ j (k) = - x j X : λ j (k) λ j (k-1) k = k + 1 λ 1 (k) = 0 ; j 1 λ j (k) = max {λ i (k-1) + w ij } FIN OUI NON

42 IUT de Reims-Châlons-Charleville [ ]42 Chemin de poids minimal [A8]Algorithme de Dijkstra Initialisation D = { x 1 } ; λ 1 = 0 ; j 1 λ j = + x n D λ k = min λ j x j D D = D { x k } ; λ j = min {λ j, λ k + w kj } x j D FIN OUI NON

43 IUT de Reims-Châlons-Charleville [ ]43 Chemin de poids minimal [A9]Obtention du chemin à partir des poids minimaux Initialisation x k = x n ; C = ( x n ) x k = x 1 Chercher x j X : λ k = λ j + w jk x k = x j C = ( x k, C ) FIN OUI NON

44 IUT de Reims-Châlons-Charleville [ ]44 Recherche de flots maximaux Objectif : Faire transiter la plus grande quantité (information, marchandise, personnes) dune source vers une destination au sein dun réseau. [D33]Un réseau avec capacités R = (X,U,C) dordre n est un graphe orienté antisymétrique* valué dans lequel : – -1 (x 1 ) = Øx 1 est le sommet entrée (source) – (x n ) = Øx n est le sommet sortie (destination) * (x i,x j ) U (x j,x i ) U (arc à sens unique) Notation : (x i,x j ) U : C(x i,x j ) = C ij capacité de larc (x i,x j )

45 IUT de Reims-Châlons-Charleville [ ]45 Exemple de réseau avec capacités a d b e c [5] [4] [7] [2] [5] [2] [3] SortieEntrée

46 IUT de Reims-Châlons-Charleville [ ]46 Définition du flot réalisable [D34]Un flot F sur un réseau avec capacités R = (X,U,C) est une valuation de lensemble des arcs U. Le flot correspond à la quantité qui transite sur le réseau. Notation : (x i,x j ) U : F(x i,x j ) = F ij flot sur larc (x i,x j ) [D35]Un flot F sur R = (X,U,C) est réalisable sil satisfait les contraintes de : 1.Capacité des arcs Le flot sur un arc ne dépasse pas la capacité de cet arc. 2.Conservation du flux (loi de Kirchoff) La somme des flots entrant dans un sommet est égale à la somme des flots sortant de ce sommet.

47 IUT de Reims-Châlons-Charleville [ ]47 Définition du flot maximal [D36]La valeur dun flot F sur R = (X,U,C) correspond à la quantité totale qui transite sur le réseau. La valeur du flot correspond à la somme des flots sortant de lentrée qui est égale à la somme des flots convergeant vers la sortie (conservation du flux). [D37]Un flot F sur R = (X,U,C) est maximal si F est un flot réalisable qui maximise la valeur du flot.

48 IUT de Reims-Châlons-Charleville [ ]48 Construction du graphe décart [D38]Un arc (x i,x j ) du réseau R = (X,U,C) est saturé par le flot F si : F ij = C ij (capacité maximale atteinte) [D39]Un arc (x i,x j ) du réseau R = (X,U,C) est antisaturé par F si : F ij = 0 (flot inexistant) [D40]A partir du réseau R = (X,U,C) et dun flot F, on peut construire le graphe décart G = (X,F(U),E) qui traduit les augmentations ou diminutions possibles du flot F dans le réseau. (x i,x j ) U : Si F ij < C ij (non saturé) alors (x i,x j ) F(U), E ij = F ij - C ij (augmentation) Si F ij > 0 (non antisaturé) alors (x j,x i ) F(U), E ji = F ij (diminution)

49 IUT de Reims-Châlons-Charleville [ ]49 Exemple de graphe décart ad b c 4 [5] 2 [4] 5 [7] 2 [2] 3 [3] ad b c Réseau R = (X,U,C)Graphe décart G = (X,F(U),E) 4 5 2

50 IUT de Reims-Châlons-Charleville [ ]50 Construction dun flot maximal [A10]Algorithme de Ford-Fulkerson Initialisation du flot F : F ij = 0 (arcs antisaturés) Fin = FAUX Tant que NON Fin Construction du graphe décart G = (X,F(U),E) Recherche dun chemin C dans G depuis lentrée vers la sortie Si C existe Alors Calcul de laugmentation Affectation de laugmentation Sinon Fin = VRAI


Télécharger ppt "IUT de Reims-Châlons-Charleville rue des crayères, BP 1035 51687 Reims Cedex 2 Introduction à la Théorie des Graphes Olivier Nocent"

Présentations similaires


Annonces Google