diu eil bloc 5 · 2020-06-19 · diu eil bloc 5 graphes - définitions, algorithmes élémentaires...

47
DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord DIU EIL, Dpt Info UCBL 2019-2020

Upload: others

Post on 09-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

DIU EIL bloc 5Graphes - Définitions, algorithmes élémentaires

Laure Gonnordhttp://laure.gonnord.org/pro/

[email protected]

DIU EIL, Dpt Info UCBL

2019-2020

Page 2: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Crédits : O. Bournez pour Polytechnique : définition, parcours ;avec son aimable autorisation.

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 2 / 47 �

Page 3: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Programmes

1 Programmes

2 Définitions : graphes, graphes orientés

3 Deux représentations des graphes

4 Parcours

5 Arbres

6 Clôture transitive

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 3 / 47 �

Page 4: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Programmes

Extraits du programme SNT Seconde

FIGURE – Extraits du programme de SNT

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 4 / 47 �

Page 5: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Programmes

Extrait du programme de NSI Terminale

FIGURE – Extraits du programme de NSI Terminale sur les graphes

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 5 / 47 �

Page 6: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Définitions : graphes, graphes orientés

1 Programmes

2 Définitions : graphes, graphes orientésGraphes, graphes orientés

3 Deux représentations des graphes

4 Parcours

5 Arbres

6 Clôture transitive

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 6 / 47 �

Page 7: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Définitions : graphes, graphes orientés Graphes, graphes orientés

1 Programmes

2 Définitions : graphes, graphes orientésGraphes, graphes orientés

3 Deux représentations des graphes

4 Parcours

5 Arbres

6 Clôture transitive

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 7 / 47 �

Page 8: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Un graphe oriente

Un graphe oriente (digraph) est donne par un coupleG = (V ,E ), ou

I V est un ensemble.I E ⊂ V × V .

Exemple:I V = {0, 1, . . . , 6}.I E = {(0, 1), (3, 4), (5, 1), (6, 3), (6, 4), (6, 6)}.

0

1

2

3

4

5

6

3

Définitions : graphes, graphes orientés Graphes, graphes orientés

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 8 / 47 �

Page 9: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Vocabulaire

0

1

2

3

4

5

6

Les elements de V sont appeles des sommets (parfois aussides nœuds).

Les elements e de E sont appeles des arcs.

Si e = (u, v), u est appele la source de e, v est appele ladestination de e.

Remarque:I Les boucles (les arcs (u, u)) sont autorisees.

4

Définitions : graphes, graphes orientés Graphes, graphes orientés

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 9 / 47 �

Page 10: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Un graphe

Un graphe1 est donne par un couple G = (V ,E ), ouI V est un ensemble.I E est un ensemble de paires {u, v} avec u, v ∈ V .

On convient de representer une paire {u, v} par (u, v) ou(v , u).

Autrement dit, (u, v) et (v , u) denotent la meme arete.

Exemple:I V = {0, 1, . . . , 6}I E = {(0, 1), (3, 4), (5, 1), (6, 3), (6, 4)}.

0

1

2

3

4

5

6

1Lorsqu’on ne precise pas, par defaut, un graphe est non-oriente.5

Définitions : graphes, graphes orientés Graphes, graphes orientés

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 10 / 47 �

Page 11: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Vocabulaire

0

1

2

3

4

5

6

Les elements e de E sont appeles des aretes. Si e = (u, v), uet v sont appeles les extremites de e.

Remarque: (sauf autre convention explicite)I Les boucles ne sont pas autorisees.

6

Définitions : graphes, graphes orientés Graphes, graphes orientés

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 11 / 47 �

Page 12: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Vocabulaire (cas non-oriente)

0

1

2

3

4

5

6

u et v sont dits voisins s’il y a une arete entre u et v .

Le degre de u est le nombre de voisins de u.

7

Définitions : graphes, graphes orientés Graphes, graphes orientés

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 12 / 47 �

Page 13: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Vocabulaire (cas non-oriente)

0

1

2

3

4

5

6

Un chemin du sommet s vers le sommet t est une suitee0, e1, · · · , en de sommets telle que e0 = s, en = t,(ei−1, ei ) ∈ E , pour tout 1 ≤ i ≤ n.

I n est appele la longueur du chemin, et on dit que t estjoignable a partir de s.

I Le chemin est dit simple si les ei sont distincts deux-a-deux.I Un cycle est un chemin de longueur non-nulle avec e0 = en.

Le sommet s est dit a distance n de t s’il existe un chemin delongueur n entre s et t, mais aucun chemin de longueurinferieure.

8

Définitions : graphes, graphes orientés Graphes, graphes orientés

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 13 / 47 �

Page 14: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Composantes connexes (cas non-oriente)

Prop. La relation “etre joignable” est une relationd’equivalence.

Les classes d’equivalence sont appelees les composantesconnexes.

0

1

2

3

4

5

6

Un graphe est dit connexe s’il n’y a qu’une seule classed’equivalence.

I Autrement dit, tout sommet est joignable a partir de toutsommet.

9

Définitions : graphes, graphes orientés Graphes, graphes orientés

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 14 / 47 �

Page 15: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Les graphes sont partout!

Beaucoup de problemes se modelisent par des objets et desrelations entre objets.

Exemples:I Le graphe routier.I Les reseaux informatiques.I Le graphe du web.

Beaucoup de problemes se ramenent a des problemes sur lesgraphes.

Theorie des graphes:I Euler, Hamilton, Kirchhoff, Konig, Edmonds, Berge, Lovasz,

Seymour,. . .

Les graphes sont omnipresents en informatique.

10

Définitions : graphes, graphes orientés Graphes, graphes orientés

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 15 / 47 �

Page 16: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Deux représentations des graphes

1 Programmes

2 Définitions : graphes, graphes orientés

3 Deux représentations des graphes

4 Parcours

5 Arbres

6 Clôture transitive

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 16 / 47 �

Page 17: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Representation des graphes: matrice d’adjacence

Matrice d’ajacence. Pour G = (V ,E ), V = {1, 2, . . . , n}, onrepresente G par une matrice M n × n.

Mi ,j =

{1 si (i , j) ∈ E0 sinon

I Si graphe value: Mi,j = v(i , j).

0

1

2

3

4

5

6

0 1 0 0 0 0 01 0 0 0 0 1 00 0 0 0 0 0 00 0 0 0 1 0 10 0 0 1 0 0 10 1 0 0 0 0 00 0 0 1 1 0 0

35

Deux représentations des graphes

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 17 / 47 �

Page 18: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Representation des graphes: liste de successeurs

On associe a chaque sommet i , la liste des sommets j tels que(i , j) ∈ E .

0

1

2

3

4

5

6

L[0] = (1)

L[1] = (0, 5)

L[2] = ()

L[3] = (4, 6)

L[4] = (3, 6)

L[5] = (1)

L[6] = (3, 4)

37

Deux représentations des graphes

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 18 / 47 �

Page 19: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Meilleure representation?

Matrice: memoire O(n2) (mieux pour graphes denses).

Listes: memoire O(n + m) (mieux pour graphes creux).

ou n nombre de sommets, m nombre d’aretes.

Le mieux?: cela depend du contexte.

38

Deux représentations des graphes

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 19 / 47 �

Page 20: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Deux représentations des graphes

Matrice vs. liste d’adjacence

Pour G = (V,E) :

Liste d’adjacence : chacun connaît ses voisins.

Matrice d’adjacence : toutes les transitions/distancesdirectes.

Complexités spatiales différentes.

Travail d’analyse essentiel !

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 20 / 47 �

Page 21: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Deux représentations des graphes

Quelques trucs pour analyser

Lien entre |E| et |V |?Toujours :

|E| 6 |V |2

Connexes :|V | − 1 6 |E|

Planaires :|E| 6 3 |V | − 6

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 21 / 47 �

Page 22: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Deux représentations des graphes

Python, liste d’adjacence

Liste d’adjacence implémentée par un dictionnaire :

g = { " a " : [ " d " ] ," b " : [ " c " ] ," c " : [ " b " , " d " , " e " ] ," d " : [ " a " , " c " ] ," e " : [ " c " ] ," f " : [ ]

}

Accéder à ma liste de voisins : g["c"]. ici les étiquettes (label)sont des chaînes, ce qui n’est pas forcément une bonne idée

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 22 / 47 �

Page 23: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Deux représentations des graphes

Python, liste d’adjacence 2/2

Attention à l’ajout d’une arête dans le cas non-orienté :

i f ver tex1 i n s e l f . __graph_dic t :s e l f . __graph_dic t [ ver tex1 ] . append ( ver tex2 )

else :s e l f . __graph_dic t [ ver tex1 ] = [ ver tex2 ]

i f ver tex2 i n s e l f . __graph_dic t :s e l f . __graph_dic t [ ver tex2 ] . append ( ver tex1 )

else :s e l f . __graph_dic t [ ver tex2 ] = [ ver tex1 ]

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 23 / 47 �

Page 24: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Deux représentations des graphes

Passage d’une représentation à une autre

À Implémenter (c’est au programme de Terminale !)

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 24 / 47 �

Page 25: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Parcours

1 Programmes

2 Définitions : graphes, graphes orientés

3 Deux représentations des graphes

4 Parcours

5 Arbres

6 Clôture transitive

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 25 / 47 �

Page 26: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Parcours generique

ParcoursGenerique(G,s):

L := {s}B := Voisins(s)

Tant que B 6= ∅I choisir u dans BI L := L ∪ {u}.I B := B − {u}.I B := B ∪ (Voisins(u)− L)

41

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 26 / 47 �

Page 27: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Application 1: numerotation

ParcoursNumerotation(G,s):

num := 0

numero[s] := num; num := num + 1.

L := {s}B := Voisins(s)

Tant que B 6= ∅I choisir u dans BI numero[s] := num; num := num + 1.I L := L ∪ {u}.I B := B − {u}.I B := B ∪ (Voisins(u)− L)

42

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 27 / 47 �

Page 28: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Application 2: composantes connexes

UneComposante(G,s):

L := {s}B := Voisins(s)

Tant que B 6= ∅I choisir u dans BI L := L ∪ {u}.I B := B − {u}.I B := B ∪ (Voisins(u)− L)

Retourner L

ComposantesConnexes(G)

Tant que V 6= ∅I Choisir s dans VI L := UneComposante(G , s)I Afficher LI V := V − L

43

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 28 / 47 �

Page 29: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Plan

Rappels: les graphes

Rappels: Les arbresLes arbres binairesParcours d’arbres

Representation des graphesMatrice d’adjacencesListe de successeurs

Parcours de graphesParcours generiqueParcours en largeur BFSParcours en profondeur DFS

Calcul de distancesAlgorithme de Bellman-FordAlgorithme de DijsktraAlgorithme de Floyd Warshall

44

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 29 / 47 �

Page 30: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Parcours en largeur BFS

B est implemente par une file (FIFO = First In First Out).

On explore les sommets par niveau: le niveau k correspondaux sommets a distance k du sommet s.

Exemple:

45

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 30 / 47 �

Page 31: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

BFS sur l’exemple precedent: (a), (b) et (c) montre les niveauxsuccessifs qui sont consideres. Les sommets sont visites dansl’ordre 1, 2, 3, 4, 5, 7, 8, 6.

Pour chaque k ≥ 1, le niveau k correspond aux sommets adistance exactement k de s.

Il y a un chemin de s vers t si et seulement si t apparaıt dansun certain niveau. Si t apparaıt au niveau k, alors t est adistance k de s.

Soit x et y deux sommets aux niveaux Li et Lj avec(x , y) ∈ E . Alors i et j different d’au plus 1.

46

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 31 / 47 �

Page 32: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Plan

Rappels: les graphes

Rappels: Les arbresLes arbres binairesParcours d’arbres

Representation des graphesMatrice d’adjacencesListe de successeurs

Parcours de graphesParcours generiqueParcours en largeur BFSParcours en profondeur DFS

Calcul de distancesAlgorithme de Bellman-FordAlgorithme de DijsktraAlgorithme de Floyd Warshall

47

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 32 / 47 �

Page 33: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Parcours en profondeur DFS

DFS(s)

Marquer s comme “explore” et ajouter s a L.

Pour chaque arete (s, v) ∈ EI si v n’est pas marque “explore” alors

• appeler recursivement DFS(v)

48

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 33 / 47 �

Page 34: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Sur le graphe precedent, les sommets sont visites cette fois dansl’ordre 1, 2, 3, 5, 4, 6, 7, 8. Le dessin plus bas montre les sommetsdans l’ordre ou ils sont decouverts.

49

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 34 / 47 �

Page 35: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Si on appelle T l’arbre couvrant produit (celui qui contient“l’histoire du parcours”: on decrete que v a u comme pere si l’arete(u, v) a permis de decouvrir v), on a:

Pour chaque appel recursif DFS(u), tous les sommets qui sontmarques “explores” entre l’invocation de l’appel et son retoursont des descendants de u dans l’arbre T produit.

Soit T un arbre DFS, et x et y deux sommets dans T , avec(x , y) ∈ E qui n’est pas une arete de T . Alors soit x est unancetre de y , soit le contraire.

50

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 35 / 47 �

Page 36: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Implementer BFS(s)

Discovered [s] := true; Discovered [v ] := false pour v 6= s.

L[0] = {s}; i:=0 // Layer counter

Set T = ∅ // Arbre

Tant que L[i ] 6= ∅I L[i + 1] := ∅I Pour chaque u ∈ L[i ]

• Pour chaque arete (u, v) ∈ E• Si Discovered [v ] == false alors• Discovered[v]:=true;• Ajouter (u, v) a l’arbre T (π(v) = u).• Ajouter v a L[i + 1]• Fin si

I Fin pourI i:=i+1

Fin tant que

Temps O(n + m), ou n est le nombre de sommets, et m le nombred’aretes avec une representation par liste de successeurs.

51

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 36 / 47 �

Page 37: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Implementer DFS(s)

Discovered [s] := true; Discovered [v ] := false pour v 6= s.

Creer S comme la pile contenant uniquement l’element s

Tant que S 6= ∅I Prendre le sommet u de SI Si Discovered [u] == false alors

• Discovered [u] := true• Pour chaque arete (u, v) ∈ E• Ajouter u a la pile S• Fin pour

I Fin si

Fin while

Temps O(n + m), ou n est le nombre de sommets, et m le nombred’aretes, avec une representation par liste de successeurs.

52

Parcours

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 37 / 47 �

Page 38: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Parcours

Applications des parcours

Numérotation (vue plus haut).

Découverte de cycles.

Numérotation en niveaux . . .

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 38 / 47 �

Page 39: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Arbres

1 Programmes

2 Définitions : graphes, graphes orientés

3 Deux représentations des graphes

4 Parcours

5 Arbres

6 Clôture transitive

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 39 / 47 �

Page 40: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Arbres

Remarque en passant

La définition inductive des arbres (cf slides de N. Pronost), estclairement plus efficace.

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 40 / 47 �

Page 41: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Les arbres

sont partout!

Un graphe2 connexe sans cycle est appele un arbre (libre).

Un graphe2 sans-cycle est appele une foret:I chacune de ses composantes connexes est un arbre.

Des qu’on a des objets, des relations entre objets, et pas decycle, on a donc un arbre ou une foret.

0

1

2

3

4

5

6

Les arbres sont omnipresents en informatique.

2non-oriente.16

Arbres

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 41 / 47 �

Page 42: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Les arbres sont partout!

Un graphe2 connexe sans cycle est appele un arbre (libre).

Un graphe2 sans-cycle est appele une foret:I chacune de ses composantes connexes est un arbre.

Des qu’on a des objets, des relations entre objets, et pas decycle, on a donc un arbre ou une foret.

0

1

2

3

4

5

6

Les arbres sont omnipresents en informatique.

2non-oriente.16

Arbres

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 42 / 47 �

Page 43: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Les arbres sont partout!

Un graphe2 connexe sans cycle est appele un arbre (libre).

Un graphe2 sans-cycle est appele une foret:I chacune de ses composantes connexes est un arbre.

Des qu’on a des objets, des relations entre objets, et pas decycle, on a donc un arbre ou une foret.

0

1

2

3

4

5

6

Les arbres sont omnipresents en informatique.

2non-oriente.16

Arbres

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 43 / 47 �

Page 44: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Une caracterisation & Quelques proprietesSoit G = (V ,E ) un graphe3. Les proprietes suivantes sontequivalentes:

G est un arbre (libre).

Deux sommets quelconques de V sont connectes par ununique chemin simple.

G est connexe, mais ne l’est plus si on enleve n’importelaquelle de ses aretes.

G est connexe, et |E | = |V | − 1.

G est sans cycle, et |E | = |V | − 1.

G est sans cycle, mais ne l’est plus si l’on ajoute n’importequelle arete.

0

1

2

3

4

5

6

3non-oriente.17

Arbres

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 44 / 47 �

Page 45: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Clôture transitive

1 Programmes

2 Définitions : graphes, graphes orientés

3 Deux représentations des graphes

4 Parcours

5 Arbres

6 Clôture transitive

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 45 / 47 �

Page 46: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Clôture transitive

Clôture transitive.Attention il manque une flèche sur le dessin de droite !

Le graphe G+ = (V,E+) de la clôture transitive du grapheorienté G = (V,E) est tel que E+ est le plus petit ensembled’arêtes satisfaisant :

E ⊆ E+

(x, y) ∈ E+ and (y, z) ∈ E+ ⇔ (x, z) ∈ E+

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 46 / 47 �

Page 47: DIU EIL bloc 5 · 2020-06-19 · DIU EIL bloc 5 Graphes - Définitions, algorithmes élémentaires Laure Gonnord ... sont autorise es. 4 DéfinitionsGraphes, graphes orientés Laure

Clôture transitive

Un premier algorithme pour la clôture

Attention ici la multiplication n’est pas forcément celle que l’on croit

Si E est la matrice d’adjacence du graphe initial :E+ = E + E2 + . . . En−1.I Cela donne un algo en O(n4).

I Mieux? oui ; en O(n3), avec Floyd Warshall, voir plus tard !

Laure Gonnord (DIU-EIL) Univ Lyon1 2019-2020 � 47 / 47 �