Examen - AEIP6

publicité
Examen
Maı̂trise d’Informatique — UPMC
Filière Algorithmique et Programmation.
Module Algorithmique avancée
Septembre 2003
1
Arbres binaires de recherche α-équilibrés
Cet exercice traite des arbres binaires α-équilibrés, où α est une constante de l’intervalle [1/2, 1[.
Un arbre binaire T est α-équilibré si et seulement si il vérifie les conditions suivantes :
– taille (G) ≤ α ∗ taille (T ) et taille (D) ≤ α ∗ taille (T )
– G et D sont α-équilibrés,
où G et D sont les sous-arbres gauche et droit de T et où taille est la fonction qui renvoie le
nombre d’éléments d’un arbre.
NB. Pour décrire les algorithmes demandés dans l’exercice, on utilisera de préférence les
primitives sur les arbres binaires (dont la liste a été fournie en cours) auxquelles on adjoindra
la primitive :
taille : ABR → IN
taille(T) renvoie le nombre d’éléments de l’arbre T .
1. Donner un exemple d’arbre binaire 21 -équilibré de taille 19 et un exemple d’arbre binaire
1
2
3 -équilibré (mais non 2 -équilibré) de taille 19.
2. Arbres binaires
1
2 -équilibrés
(a) Un arbre binaire T est dit bien équilibré si et seulement si ses sous-arbres gauche et
droit sont eux-mêmes bien équilibrés et si leurs tailles diffèrent d’au plus 1. Montrer
qu’un arbre binaire est 12 -équilibré si et seulement si il est bien équilibré.
(b) Montrer que tout arbre binaire de recherche 12 -équilibré est un arbre AVL. La réciproque
est-elle vraie ? Justifier la réponse donnée.
3. Arbres binaires de recherche
1
2 -équilibrés
(a) Donner un algorithme qui transforme un arbre binaire de recherche quelconque en un
tableau ordonné. Quelle est la complexité de cet algorithme ?
(b) Donner un algorithme qui transforme un tableau ordonné en un arbre binaire de
recherche 12 -équilibré. Quelle est la complexité de cet algorithme ?
(c) En déduire un algorithme qui transforme un arbre binaire de recherche quelconque en
un arbre binaire de recherche 21 -équilibré. Quelle est la complexité de cet algorithme
(en temps et en place) ?
4. Arbres binaires de recherche α-équilibrés
(a) Soit T un arbre binaire α-équilibré de hauteur h et de taille n. Montrer que :
1
n ≥ ( )h .
α
(b) En déduire la complexité d’une recherche dans un arbre binaire de recherche
α-équilibré de taille n.
1
2
Calcul d’enveloppe convexe
L’enveloppe convexe d’un ensemble S est notée EC(S). Soit S un ensemble d’au moins quatre
points. On suppose que S possède :
– un seul point A d’abscisse minimale x min
– un seul point B d’ordonnée minimale y min
– un seul point C d’abscisse maximale x max
– un seul point D d’ordonnée maximale y max .
Soit R1 (xmin , ymin ), R2 (xmax , ymin ), R3 (xmax , ymax ), R4 (xmin , ymax ) les quatre coins du rectangle englobant l’ensemble S. Soit
– S10 l’ensemble des points de S qui sont strictement à l’intérieur du triangle AR 1 B,
– S20 l’ensemble des points de S qui sont strictement à l’intérieur du triangle BR 2 C,
– S30 l’ensemble des points de S qui sont strictement à l’intérieur du triangle CR 3 D,
– S40 l’ensemble des points de S qui sont strictement à l’intérieur du triangle DR 4 A.
Soit S1 = S10 ∪ {A, B}, soit S2 = S20 ∪ {B, C}, soit S3 = S30 ∪ {C, D}, et soit S4 = S40 ∪ {D, A}.
1. Donner un algorithme de calcul de EC(S 1 ).
2. Montrer que EC(S) est l’union de EC(S 1 ), EC(S2 ), EC(S3 ) et EC(S4 ).
3. En déduire une méthode de calcul de EC(S) et écrire l’algorithme correspondant.
4. Déterminer la complexité de cet algorithme.
On pourra utiliser l’inégalité n 1 log n1 +n2 log n2 ≤ (n1 +n2 ) log(n1 +n2 ) sans la démontrer.
5. Question facultative [bonus] Étudier le problème dans le cas général (sans faire d’hypothèse sur le nombre de points extrémaux).
2
Téléchargement