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