Algorithmes de Graphes, HLIN501 Ann´ee 2015-2016
Examen.
L3 Info, L3 Math-Info.
- Examen -
- Dur´ee : 2 heure - Aucun document n’est autoris´e -
Janvier 2016
Le barˆeme est indicatif. Les exercices peuvent ˆetre trait´es dans un ordre quelconque.
Toutes les r´eponses doivent ˆetre claires et justifi´ees.
- Exercice 1 - Parcours - (4 points)
La grille triangulaire T5est le graphe dessin´e ci-dessous. On souhaite effectuer des parcours de cette grille.
s
En cas de choix sur un possible successeur d’un sommet xau cours du parcours on choisira le premier
sommet libre dans le sens direct (anti-horaire) en partant de pere(x). Pour partir de la racine son choisira
en premier le voisin de ssitu´e `a sa droite.
a. Effectuer un parcours en profondeur sur T5issu de sen respectant la r`egle ci-dessus. On ne repr´esentera
que l’arbre de parcours obtenu (sur le graphe original) en indiquant l’ordre de d´ecouverte.
b. Effectuer un parcours en largeur sur T5issu de sen respectant la r`egle ci-dessus. On ne repr´esentera
que l’arbre de parcours obtenu (sur le graphe original) en indiquant l’ordre de d´ecouverte.
c. Pour nquelconque, calculer le niveau maximal obtenu lors d’un parcours en largeur de Tn, calcul´e
comme pr´ec´edemment.
d. Pour nquelconque, calculer le niveau maximal obtenu lors d’un parcours en profondeur de Tn, calcul´e
comme pr´ec´edemment.
- Exercice 2 - Plus longs chemins dans les graphes orient´es acycliques - (9 points)
a. On consid`ere un graphe orient´e Dacyclique (c’est-`a-dire sans cycle orient´e). Rappeler la d´efinition d’un
tri-topologique de D.
b. Soit D1le graphe orient´e de sommets {a, b, c, d, e, f, g, h}et d’arcs {ab, ae, be, bd, ca, cd, ed, f a, gc, gh, he}.
Calculer un tri-topologique de D1en expliquant la m´ethode utilis´ee.
c. On veut calculer la longueur d’un plus long chemin oriene dans graphe orient´e acyclique. Pour cela on
consid`ere l’algorithme PLC d´etaill´e ci-dessous.
Faire tourner l’algorithme PLC sur le graphe D1de la question pr´ec´edente.
d. On a vu en TD un algorithme permettant de calculer un tri topologique d’un graphe acyclique D
en temps O(n+m) o`u net md´esignent respectivement le nombre de sommets et d’arcs de D. En
supposant que cet algorithme est utilis´e `a la ligne 1 de l’algorithme PLC, calculer, en justifiant, la
complexit´e de PLC.
e. Prouver la validit´e de l’algorithme PLC (on pourra montrer par r´ecurrence sur ique apr`es l’´etape ide
la boucle ligne 2, l(vi) contient la longueur d’un plus long chemin de Dterminant en vi).
1
Algorithmes de Graphes, HLIN501 Ann´ee 2015-2016
Examen.
L3 Info, L3 Math-Info.
Algorithme : PLC
Donn´ees : Un graphe orient´e acyclique Dsur nsommets cod´e par listes de voisins entrants.
esultat : La longueur d’un plus long chemin oriene de D.
1Calculer v1, . . . , vnun tri topologique de D;
2pour ide 1 `a nfaire
3l(vi)0;
4pour vjvoisin entrant de vi(avec j < i donc) faire
5si l(vj)+1> l(vi)alors
6l(vi)l(vj) + 1;
7retourner max{l(vi) : i= 1, . . . , n};
f. Modifier l’algorithme PLC pour faire afficher un plus long chemin orient´e du graphe acyclique donn´e
en entr´ee.
g. Moelisation : Matriochka ! Une boˆıte B(l, L, h) est un parall´el´epip`ede rectangle dont les dimensions
sont l,Let h, avec par convention lLh. La boˆıte B(l1, L1, h1)s’emboˆıte dans la boˆıte B(l2, L2, h2)
si l1< l2,L1< L2et h1< h2.´
Etant donn´ee un ensemble de nboˆıtes, donner un moyen algorithmique
de calculer la plus longue s´equence de boˆıtes pouvant s’emboˆıter.
- Exercice 3 - Plus courts chemins - (7 points)
On consid`ere le graphe orient´e et pond´er´e ci-dessous :
s
c d
ba
8
4
7
2
3
7
6
2
a. Question de cours : rappeler l’algorithme de Dijkstra : ce qu’il prend en entr´ee, produit en sortie, son
pseudo-code et sa complexit´e.
b. Utiliser cet algorithme sur le graphe ci-dessus afin de d´eterminer une arborescence des plus courts
chemins issue de s. Indiquer bri`evement les ´etapes de calcul.
c. La longueur de l’arc cb augmente pour passer `a 10 unit´es de longueur. En expliquant, recalculer une
arborescence des plus courts chemins issue de sdans ce nouveau graphe sans relancer l’algorithme de
Dijsktra.
d. Plus g´en´eralement, ´ecrire un algorithme qui :
- prend en entr´ee un graphe orient´e Dcod´e par listes de voisins entrants et
valu´e positivement sur les arcs par une fonction l, un sommet sde D, une
arborescence Tdes plus courts chemins de Dissue de set la fonction de distance
dassoci´ee, yune feuille de Tde p`ere xet un r´eel positif p.
- retourne une arborescence des plus courts chemins issue de sdans le graphe
Do`u la longueur de l’arc xy a augment´e de p.
- s’ex´ecute en temps O(n) (donc ne relance pas l’algorithme de Dijsktra...).
e. Prouver la validit´e de l’algorithme pr´ec´edent.
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 !