L3 Informatique Année 2016-2017
AMD5
TD no2 : parcours en largeur de graphes non orientés
Exercice 1 : parcours en largeur
Appliquer aux deux graphes ci-dessous l’algorithme de parcours en largeur à partir du
sommet 1. Pour chaque graphe, donner l’arbre résultant de ce parcours.
1 2
34 6
7
58
1
2
3
6
7
5
8
4
9
10
11
Un graphe un autre graphe
Exercice 2 : parcours et matrice d’adjacences
Quel est la complexité de l’algorithme de parcours en largeur d’un graphe si celui-ci est
représenté par une matrice d’adjacences ?
Exercice 3 : plus courts chemins
Proposer un algorithme de complexité linéaire en (n+m)(nombre de sommets plus
nombre d’arêtes) qui calcule le plus court chemin dans un graphe entre deux sommets
donnés.
Exercice 4 : composantes connexes
Proposer un algorithme de complexité linéaire en (n+m)(nombre de sommets plus
nombre d’arêtes) qui calcule les composantes connexes d’un graphe.
Exercice 5 : cycle
Proposer un algorithme renvoyant, s’il existe, un cycle de longueur minimale passant par
un sommet sdonné dans un graphe G. Prouver sa correction.
1
L3 Informatique Année 2016-2017
Exercice 6 : diamètre d’un graphe
Le diamètre d’un graphe est la plus grande distance possible qui puisse exister entre deux
de ses sommets. On rappelle que la distance δ(a, b)entre deux sommets aet bd’un graphe
est la longueur d’un plus court chemin entre ces deux sommets.
On note PL(G,s) l’algorithme de parcours en largeur d’un garphe Gdepuis son sommet s
et on suppose que PL(G,s) retourne le dernier sommet visité. Voici alors un algorithme
pour calculer le diamètre d’un arbre T, ou, plus précisément, une paire (u, v)de sommets
tel que le diamètre de Tsoit δ(u, v).
prendre un sommet s quelconque de T
u = PL(T,s)
v = PL(T,u)
return (u,v)
Soient aet bdeux sommets de Ttel que le diamètre de Tsoit égal à δ(a, b). Nous allons
montrer que cet algorithme est correct.
On appelle feuille diamétrale une feuille de l’arbre telle qu’il existe un diamètre ayant
cette feuille pour extrémité.
1. Montrer que pour tout s,P L(T, s)est une feuille de T
2. Montrer que aet bsont des feuilles de T
3. Montrer que si uest une feuille diamétrale et v=P L(T, u)alors δ(u, v)est le dia-
mètre de T
On veut maintenant montrer que, pour tout s,u=P L(T, s)est une feuille diamétrale
4. Quelles relations a-t-on entre δ(s, a),δ(s, b)et δ(s, u)?
5. Traiter le cas u=a, le cas u=bet le cas a=b
On suppose donc maintenant que les trois feuilles a,uet bsont différentes. L’arbre T
restreint aux chemins entre ces trois feuilles est donc un Y. On s’intéresse maintenant à
l’arbre Trestreint aux chemin entre set ces trois feuilles.
6. Supposons que ss’insère sur la branche du Y contenant u(soit sest sur le chemin,
soit il s’y insère par un chemin qui transforme le Y en H). Montrer que cela produit
une contradiction
7. Supposons que ss’insère ailleurs : soit au centre du Y, soit sur la branche de a, soit sur
celle de b, par un chemin ou bien il est directement dessus. Dans tous ces cas montrer
que uest une feuille diamétrale.
8. Conclure.
Et est-ce encore vrai sur les graphes en général ?
9. Montrer que cet algorithme ne marche pas sur les graphes en général.
10. Malgré tout, montrer que si on applique à un graphe Gl’algorithme ci-dessus, alors
δ(u, v)6diam(G)62δ(u, v)diam(G)est le diamètre de G. On dit alors que δ(u, v)
est une 2-approximation du diamètre.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !