Année universitaire 2014/2015
Site : ⊠Luminy ⊠St-Charles St-Jérôme Cht-Gombert ⊠Aix-Montperrin Aubagne-SATIS
Sujet de : ⊠1er semestre 2ème semestre Session 2 Durée de l’épreuve : 2h
Examen de : L2 Nom du diplôme : Licence d’Informatique
Code du module : SIN3U1 Libellé du module : Algorithmique
Calculatrices autorisées : NON Documents autorisés : OUI, polys et notes de Cours/TD/TP
Dans tout ce qui suit vous utiliserez les notations O(f(n)) et Θ(f(n)) pour décrire le comportement asymp-
totique d’un algorithme (sa complexité).
Arbres binaires d’intervalles.
Un arbre binaire d’intervalles est un arbre binaire dont les noeuds contiennent des intervalles (et non pas de
simples valeurs numériques). Etant donné un noeud p, on note inf (p)et sup(p)les bornes de l’intervalle du
noeud p, et f ilsg(p)et f ilsd(p)respectivement le fils gauche et le fils droit du noeud p. Les noeuds sont
organisés dans l’arbre de façon similaire à un arbre binaire de recherche classique : les intervalles figurant
dans le fils gauche du noeud pont des bornes inf qui sont plus petites ou égales à inf (p), et les intervalles
figurant dans son fils droit ont des bornes inf qui sont strictement plus grandes que inf (p). Les bornes sup
des intervalles n’interviennent donc pas dans la structure de l’arbre.
Le problème qui nous intéresse est de déterminer, pour une valeur xdonnée, s’il existe des intervalles dans
l’arbre qui contiennent x, c’est-à-dire s’il existe un noeud ptel que inf (p)≤x≤sup(p). Pour traiter ce
problème de manière efficace il est utile d’ajouter dans chaque noeud pla valeur maximale des bornes sup des
intervalles figurant dans l’arbre enraciné en p, notée max(p).
Question 1. Construisez l’arbre binaire de recherche correspondant aux insertions des intervalles (19, 22),
(27, 31), (33, 34), (10, 12), (25, 28), (3, 11), (14, 16), et (12, 17) dans cet ordre, partant d’un arbre vide.
Indiquez au-dessus de chaque noeud pla valeur max(p).
Soit pun noeud d’un arbre donné, et xune valeur qui n’appartient pas à l’intervalle [inf (p), sup(p)].
Question 2. Si x > max(f ilsg(p)) est-il utile de chercher xdans le fils gauche de p? Justifiez votre réponse.
Question 3. Supposons maintenant que x≤max(f ilsg(p)) et qu’il existe un intervalle de l’arbre enraciné
en pqui contient x. Montrez qu’alors il existe un intervalle de f ilsg(p)qui contient x.
Question 4. En utilisant les propriétés introduites dans les questions 2 et 3, décrivez un algorithme qui, étant
donnés un arbre aet une valeur x, détermine si il existe un intervalle de aqui contient x. Cet algorithme ne
devra parcourir qu’une seule branche de l’arbre.
Graphes.
Un graphe orienté pondéré Gest donné par la matrice d’incidence suivante, où les sommets du graphe sont
numérotés de 1 à 7 et où il existe un arc du sommet s1vers le sommet s2si et seulement si la case située à
l’intersection de la ligne s1et de la colonne s2contient un entier, égal au poids de l’arc (s1, s2).
1 2 3 4 5 6 7
1 2 20 8
2 11
3 20 10 5
4 3
5 10 4
6 4
7 4 13