
Département Informatique
TD 2
Graphes et langages
M2201
2015–2016
Dans ce TD, nous allons étudier des algorithmes pour calculer la fermeture transitive d’un graphe.
Exercice 1 : Comptage de chemins et cycles
Q1 : Dessinez le graphe non orienté qui admet pour matrice d’adjacence la matrice Mci-dessous.
M=
0110
1010
1101
0010
Q2 : Calculez (produit non booléen) M2,M3, puis M+M2.
Q3 : Combien y a-t-il de chaînes de longueur 2 menant 1 à 2 ? 2 à 4 ? 3 à 4 ?
Q4 : Combien y a-t-il de chaînes de longueur ≤2menant 1 à 2 ? 2 à 4 ? 3 à 4 ?
Q5 : Combien y a-t-il de chaînes de longueur 3 menant 2 à 3 ? 2 à 1 ?
Q6 : Combien y a-t-il de cycles de longueur 3 ayant 3 comme sommet de départ ? 4 comme sommet de
départ ?
Q7 : Donnez un exemple de cycle de longueur 4. Est-il élémentaire ?
Q8 : Donnez tous les cycles de longueur 3. (Y en a t-il 1, 2, 3, ou 6 ?)
Q9 : Donnez tous les cycles élémentaires de ce graphe.
Exercice 2 : Calcul de la fermeture transitive d’un graphe
Définition et exemple
Soit G= (X, A)un graphe. On appelle fermeture transitive de Gle graphe T(G) = (X, A0)avec (x, y)∈A0
si et seulement si il existe un chemin entre xet ydans G.
Q10 : Calculez à la main la fermeture transitive du graphe de droite dans la figure 1.
3
1 2
54
(a)
1
2
3
4
5
(b)
1 2
3
45
(c)
Figure 1 – Graphes pour lesquels on veut calculer la fermeture transitive
Calcul matriciel et fermeture transitive
Considérons maintenant un graphe à nsommets représenté par sa matrice d’adjacence Ret soit Rle
graphe associé à cette matrice.
Q11 : Écrivez la formule de calcul d’un coefficient pour le produit booléen de deux matrices.
Q12 : Que représente l’expression Fsuivante ?
F=R∪R2∪. . . ∪ Rn(1)
Q13 : Déduisez un algorithme permettant de calculer la fermeture transitive de R.
Q14 : Quelle est sa complexité ?
Soient S1,S2, . . . les graphes définis de la manière suivante :