Etude de la suppression de clés dans les arbres lexicographiques équilibrés



Documents pareils
ARBRES BINAIRES DE RECHERCHE

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Les structures de données. Rajae El Ouazzani

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Once the installation is complete, you can delete the temporary Zip files..

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Définitions. Numéro à préciser. (Durée : )

Les arbres binaires de recherche

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com

Arbres binaires de recherche

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Styler un document sous OpenOffice 4.0

Principe de symétrisation pour la construction d un test adaptatif

Cours Excel : les bases (bases, texte)

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Logiciel SCRATCH FICHE 02

Formats d images. 1 Introduction

Tutoriel de connexion au site du Royal Moana (ver 1.5)

Encryptions, compression et partitionnement des données

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

INF601 : Algorithme et Structure de données

Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position

Infolettre #18 : Les graphiques avec Excel 2010

Differential Synchronization

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

GUIDE Excel (version débutante) Version 2013

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

NOTICE DE MISE A JOUR - ODYSSEY

INTELLIGENCE ECONOMIQUE : ENJEUX ET RETOUR D EXPERIENCE PILOTE DANS SEPT PMI DE BOURGOGNE

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Insérer des images dans Base

ÉPREUVE COMMUNE DE TIPE Partie D

LES TOUT PREMIERS PAS

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Création de Sous-Formulaires

1. Base de données SQLite

Algorithmique, Structures de données et langage C

La fonction exponentielle

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

TP Contraintes - Triggers

COURS AUTOCAD. Création et utilisation des blocs. b leclerc. ERP Jean Moulin METZ

Deuxième Licence en Informatique Data Warehousing et Data Mining La Classification - 1

Les indices à surplus constant

OpenOffice Base Gestionnaire de Base de Données

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Rapport de Post- Campagne 1

Nom : Groupe : Date : 1. Quels sont les deux types de dessins les plus utilisés en technologie?

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

MIS 102 Initiation à l Informatique

L équilibre Ressources Emplois de biens et services schématisé par une balance

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

L exclusion mutuelle distribuée

CI1 - A quel besoin répond un objet technique?

ESPACE COLLABORATIF SHAREPOINT

Initiation à l algorithmique

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

IFT785 Approches Orientées Objets. FINAL Été Remise : Jeudi 19 août 2002 à 9h00 am

Cahier des charges Remontée des ventes

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version /11/05

Forthcoming Database

Rapport d activité. Mathieu Souchaud Juin 2007

Bases de programmation. Cours 5. Structurer les données

Manuel. Administration P.CONSEIL. 12 avril Statut :

Comment consolider des données

COMPTABILITE SAGE LIGNE 30

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bernard HAMM, Évelyne LAVOISIER

$SSOLFDWLRQGXNULJHDJHSRXUOD FDOLEUDWLRQPRWHXU

Algorithmique et structures de données I

Une ergonomie intuitive

Notice de paramétrage Version 1.1

Documentation utilisateur. [EIP] TransLSF

Synthèse «Le Plus Grand Produit»

Comment faire un Mailing A partir d une feuille Calc

Précision d un résultat et calculs d incertitudes

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Création et Gestion des tables

1. Installation du Module

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Logiciel PICAXE Programming Editor

Transmission d informations sur le réseau électrique

Probabilités Loi binomiale Exercices corrigés

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Notice d Utilisation du logiciel Finite Element Method Magnetics version 3.4 auteur: David Meeker

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur.

Excel 2010 Module 13. Comment créer un tableau d amortissement dégressif d une immobilisation. Enseignant : Christophe Malpart

Débuter avec Excel. Excel

Guide d installation du logiciel Proteus V.8 Sous Windows Vista, 7, 8

Photoactivatable Probes for Protein Labeling

Comment Utiliser les Versions, les Modification, les Comparaisons, Dans les Documents

Mise en place Active Directory, DNS Mise en place Active directory, DNS sous Windows Serveur 2008 R2

Transcription:

Université de Tours UFR Sciences & Techniques Av. Monge, Parc de Grandmont 37200 TOURS, FRANCE Tél. (33)2-47-36-70-20 www.univ-tours.fr http://depinfo.univ-tours.fr Département d Informatique Projet d algorithmique Etude de la suppression de clés dans les arbres lexicographiques équilibrés Auteur : Encadrant : Jonathan Courtois François Bret jonathan.courtois@caramail.com bret@isis.univ-tours.fr Florent Renault Université François Rabelais, Tours Renault.Florent@Gmail.com Version du 17 janvier 2006

Table des matières Introduction 1 1 Présentation des arbres équilibrés 2 1.1 Les arbres....................................... 2 1.2 Arbres équilibrés................................... 3 2 Insertion dans un arbre équilibré 4 2.1 Insertion à gauche................................... 4 2.2 Insertion à droite................................... 7 2.3 Pas de troisième rotation.............................. 9 3 Cahier des charges 10 4 Travail réalisé 11 4.1 Suppression à gauche................................. 11 4.2 Suppression à droite................................. 15 4.3 Expérimentation................................... 18 Conclusion 19 ii

Table des figures 1 Etude de l insertion en cours de L2 math...................... 1 1.1 Un exemple d arbre.................................. 2 1.2 Arbre dégénéré.................................... 3 1.3 Arbre équilibrer.................................... 3 2.1 Insertion à gauche bal=1............................... 4 2.2 Insertion à gauche bal=0............................... 5 2.3 Insertion à gauche bal=-1 avec rotation simple gauche............... 5 2.4 Insertion à gauche bal=-1.............................. 6 2.5 Rotation double gauche................................ 6 2.6 Insertion à droite bal=-1............................... 7 2.7 Insertion à droite bal=0............................... 7 2.8 Insertion à droite bal=1 avec rotation simple droite................ 8 2.9 Insertion à droite bal=1............................... 8 2.10 Rotation double droite................................ 9 4.1 Suppression à gauche bal=-1............................. 11 4.2 Suppression à gauche bal=0............................. 12 4.3 Suppression à gauche bal=1 avec rotation simple droite.............. 12 4.4 Suppression à gauche bal=1............................. 13 4.5 Rotation double droite................................ 13 4.6 Suppression à gauche bal=1 avec rotation simple droite bis............ 14 4.7 Suppression à droite bal=1.............................. 15 4.8 Suppression à droite bal=0.............................. 15 4.9 Suppression à droite bal=-1 avec rotation simple gauche............. 16 4.10 Suppression à droite bal=-1............................. 16 4.11 Rotation double gauche................................ 17 4.12 Suppression à droite bal=-1 avec rotation simple gauche bis........... 17 iii

Introduction En cours, nous avons étudié les différents types d arbres et en particulier les arbres lexicographiques. Nous avons été amené à effectuer différentes opérations sur ces arbres comme l insertion ou la suppression de clés. L exercice le plus difficile est de maintenir l arbre équilibré après l ajout ou la suppression de clés. Nous avons déjà eu l occasion de traiter en cours l insertion de clés dans un arbre lexicographique équilibré, ainsi le but de ce projet et de réaliser une suppression de clés dans un arbre équilibré. C est-à-dire que l arbre lexicographique doit conserver ses propriétés après la suppression. Fig. 1 Etude de l insertion en cours de L2 math 1

CHAPITRE 1 Présentation des arbres équilibrés 1.1 Les arbres Expliquons rapidement la notion d arbre. Un arbre est soit un arbre atomique (une feuille), soit un noeud et une suite de sous-arbres. Graphiquement, un arbre est représenté comme suit : Fig. 1.1 Un exemple d arbre Le noeud N1 est la racine de l arbre, N4, N5, N6, N7 sont les feuilles, N2, N3 les noeuds internes. Contrairement à la botanique, on dessine les arbres avec la racine en haut et les feuilles vers le bas en informatique. Une propriété fondamentale d un arbre est qu un noeud n a qu un seul père. Nous utiliserons des arbres avec une seule valeur dans chaques noeuds, cependant il est possible d en mettre plusieurs. La hauteur d un noeud est la longueur du chemin qui le joint à la racine, ainsi la racine est elle même de hauteur 0, ses fils de hauteur 1 et les autres noeuds de hauteur supérieure à 1. 2

- Chapitre 1. Présentation des arbres équilibrés 1.2 Arbres équilibrés 3 1.2 Arbres équilibrés La notion d arbre équilibré a été introduite en 1962 par deux russes Adel son-vel skii et Landis, et depuis ces arbres sont connus sous le nom d arbres AVL. Un arbre AVL vérifie la propriété fondamentale suivante : la différence entre les hauteurs des fils gauches et des fils droits de tout noeud ne peut excéder 1, nous appellerons cette différence : la balance. La balance peut prendre trois valeurs différentes {-1,0,1}. Ainsi l arbre ci-dessous est dégénéré (non équilibré), problème au noeud 16 qui a une balance de -2, un rééquilibrage sera alors nécessaire. Celui qui le suit représente le même arbre mais cette fois de façon équilibré. Fig. 1.2 Arbre dégénéré Fig. 1.3 Arbre équilibrer On peut montrer que la hauteur d un arbre AVL de N noeuds est de l ordre de log N, ainsi le temps mis pour la recherche d une clé sera en O(log N). Il faut donc maintenir l équilibre de tous les noeuds au fur et à mesure des opérations d insertion ou de suppression d un noeud dans un arbre AVL. Pour y arriver, on suppose que tout noeud contient un champ balance contenant la différence de hauteur entre le fils droit et le fils gauche. Nous présenterons dans un premier temps l opération d insertion dans un arbre AVL que nous avons apprise en cours.

CHAPITRE 2 Insertion dans un arbre équilibré L insertion se fait comme dans un arbre de recherche standard, sauf qu il faut maintenir l équilibre. Pour cela, il est commode que la fonction d insertion mette a jour les balances une fois l insertion effectuée. Quand il peut y avoir un déséquilibre trop important entre les deux fils du noeud où l on insère un nouvel élément, il faut recréer un équilibre par une rotation simple ou une rotation double. Etudions tout de suite en détail le cas de l insertion à gauche. 2.1 Insertion à gauche On peut voir en vert l état de l arbre avant l insertion, et en rouge les modifications que le programme effectuera pour rééquilibrer l arbre. Il s agit ici d une étude théorique qui présente les différents cas selon les valeurs des balances. Dans ce premier cas, la balance est à 1, on veut insérer une clé à gauche donc la hauteur de gauche augmente de 1, elle passe de h à h+1 et la balance devient 0, or comme la balance était de 1, la hauteur de droite était déjà à h+1, ce qui signifie que la hauteur du noeud précédent reste inchangé à h+2. Comme la hauteur est la même, il n est pas nécessaire de rééquilibrer d avantage. Fig. 2.1 Insertion à gauche bal=1 4

- Chapitre 2. Insertion dans un arbre équilibré 2.1 Insertion à gauche 5 Cette fois ci, la balance est de 0, les hauteurs à droite et a gauche sont donc égales, en insérant une clé à gauche, la hauteur du sous arbre gauche augmente de 1 (h à h+1), et la balance passe alors à la valeur -1. La hauteur du noeud précédent est alors changée, elle passe de h+1 à h+2, il faut donc continuer de rééquilibrer. Fig. 2.2 Insertion à gauche bal=0 Passons maintenant à un cas plus difficile, le cas de la balance -1 pour une insertion à gauche. En insérant à gauche et donc en augmentant la hauteur, cette balance va passer à la valeur -2 ce qui est impossible, il va donc rééquilibrer grace à une rotation. La valeur de cette unique balance ne nous suffit pas, nous avons également besoin de la valeur de la balance de son fils gauche. En effet si le fils gauche à une balance de -1 également, nous allons pouvoir appliquer une rotation simple gauche comme l on peut le voir sur le schéma suivant, ce qui va permettre d obtenir des balances possibles et même de garder la même hauteur sur le noeud de départ, il ne sera donc pas nécesssaire de continuer de rééquilibrer. Fig. 2.3 Insertion à gauche bal=-1 avec rotation simple gauche

- Chapitre 2. Insertion dans un arbre équilibré 2.1 Insertion à gauche 6 Lorsque la balance du fils gauche est cette fois à 1, le même problème va se poser et une rotation est obligatoire, cependant la rotation simple gauche ne permet pas le rééquilibre, c est pourquoi, une seconde rotation à été inventée. La rotation double gauche permet en effet le rééquilibre de l arbrre et des balances ainsi qu un arrêt du rééquilibrage. Un tableau détaillant les valeurs des balances du fils droit du premier fils gauche est dessinée pour une meilleure compréhension au niveau des hauteurs. Fig. 2.4 Insertion à gauche bal=-1 Fig. 2.5 Rotation double gauche

- Chapitre 2. Insertion dans un arbre équilibré 2.2 Insertion à droite 7 2.2 Insertion à droite Le principe de l insertion à droite est bien entendu symétrique à celui de l insertion à gauche, il n est donc pas nécessaire de détailler l ensemble des cas. Cependant nous avons cru bon de schématiser quand même les différents cas. Premier cas d insertion à droite lorsque la balance est à -1, la balance s équilibre à 0 et il n est pas nécessaire de rééquilibré. Fig. 2.6 Insertion à droite bal=-1 Deuxiéme cas, la balance est à 0, il est donc nécessaire de rééquilibrer car la hauteur du noeud supérieur change. Fig. 2.7 Insertion à droite bal=0

- Chapitre 2. Insertion dans un arbre équilibré 2.2 Insertion à droite 8 Rotation simple droite lorsque la balance est à 1 et le fils gauche à 1 également. Il n est pas nécessaire de rééquilibrer ensuite. Fig. 2.8 Insertion à droite bal=1 avec rotation simple droite Rotation double droite lorsque la balance est à 1 et le fils gauche à -1. Le rééquilibrage n est toujours pas nécessaire pour la suite. Fig. 2.9 Insertion à droite bal=1

- Chapitre 2. Insertion dans un arbre équilibré 2.3 Pas de troisième rotation 9 Fig. 2.10 Rotation double droite 2.3 Pas de troisième rotation Pour le cas de l insertion à gauche (respectivement à droite), lorsque la balance prend la valeur -1 à gauche (respectivement 1 à droite), on pourrait s attendre à une troisième rotation pour le cas où le fils gauche (respectivement le fils droit) prendrait la valeur 0. Pour cela il faudrait que ce fils gauche (respectivement fils droit) fasse passer le message au noeud du dessus On continue de se rééquilibrer. Or lorsque ce message est passé, le fils gauche a déjà été rééquilibré et sa balance est à -1 à gauche (respectivement 1 à droite). Ce cas n existe donc pas, c est pourquoi il n y a pas de troisième rotation.

CHAPITRE 3 Cahier des charges Analyse demandée : On a analysé, en cours, l insertion d une clé dans un arbre lexicographique équilibré. Si une clé est supprimée, il faut s assurer que l arbre conserve ses propriétés. On demande d analyser, cas par cas, toutes les possibilités de suppression d une clé dans un tel arbre, en rétablissant, si nécessaire, l équilibre de l arbre. Cette analyse sera consignée ( texte et figures ) dans un document au format.doc,.rtf ou.pdf, à l exclusion de tout autre format. Les noms des auteurs seront intégrés en tête du document. Implémentation demandée : En utilisant le logiciel IPcute, on mettra en oeuvre une implémentation de l analyse ci-dessus en Pascal. On prendra soin, après avoir construit un arbre équilibré, de supprimer successivement un ensemble de clés illustrant chaque cas de l analyse. Le source du programme sera expliqué par des commentaires intelligents. Les procédures ou fonctions n auront pas plus de 15 lignes de long. Les noms des auteurs seront intégrés en tête du programme. Expérimentation demandée : On cherche à savoir quel est le pourcentage moyen de rotations quand on supprime N clés. On va donc insérer N clés dans un arbre, puis supprimer ces mêmes clés dans un ordre aléatoire et incrémenter un compteur de rotations pendant la phase de suppression des clés. En déduire le pourcentage demandé pour différentes valeurs de N. Recopier et compléter le programme ci-dessus. 10

CHAPITRE 4 Travail réalisé Le travail demandé est donc la suppression d une clé dans un arbre lexicographique équilibré, en s assurant que l arbre conserve ses propriétés, c est à dire son caractére lexicographique ainsi que son équilibre. Nous allons donc éxaminer le cas de la suppression à gauche puis à droite, à l aide de schémas détaillés comme on à pu le faire pour expliquer l insertion d une clé. 4.1 Suppression à gauche Les schémas sont construits de la même façon que précédement. On peut voir en vert l état de l arbre avant la suppression, et en rouge les modifications que le programme effectuera pour rééquilibrer l arbre. Il s agit ici d une étude théorique qui présente les différents cas selon les valeurs des balances. Dans ce premier cas, la valeur de la balance est à -1, en supprimant une clé à gauche, la hauteur de gauche diminue et la valeur de la balance passe à 0. La hauteur du noeud précédent diminue également, il faut donc continuer de rééquilibrer par la suite. Fig. 4.1 Suppression à gauche bal=-1 11

- Chapitre 4. Travail réalisé 4.1 Suppression à gauche 12 Cette fois ci, la balance est de 0, les hauteurs à droite et a gauche sont donc égales, en supprimant une clé à gauche, la hauteur du sous arbre gauche diminue de 1 (h à h-1), et la balance passe alors à la valeur 1. La hauteur du noeud précédent est alors inchangée, il n est donc pas nécessaire de donc continuer de rééquilibrer. Fig. 4.2 Suppression à gauche bal=0 Pour le cas de la balance à 1, des rotations vont également être nécessaires comme lors de l insertion. Prenons ce premier cas avec la balance du fils droit à 1, une rotation est nécessaire car en supprimant à gauche, la première balance aura la valeur 2. Cependant contrairement à l insertion, les rotations sont inversées, et pour une suppression à gauche comme c est le cas ici, il va s agir d une rotation simple droite qui va pemettre le rééquilibre. Cependant après une telle rotation, la hauteur de départ a changée comme on peut le voir sur les schémas ci-dessous, il faut donc continuer de rééquilibrer. Fig. 4.3 Suppression à gauche bal=1 avec rotation simple droite

- Chapitre 4. Travail réalisé 4.1 Suppression à gauche 13 Lorsque la balance du fils droit est cette fois à -1, une rotation double va être nécessaire, mais encore une fois il s agit pour une suppression à gauche de la rotation double droite. Un tableau accompagne toujours les schémas pour étudier les 3 cas de balances du fils gauche du premier fils droit. Notons qu une fois encore il faut continuer de rééquilibrer car la hauteur a changée. Fig. 4.4 Suppression à gauche bal=1 Fig. 4.5 Rotation double droite

- Chapitre 4. Travail réalisé 4.1 Suppression à gauche 14 Cette fois ci, pour la suppression, le cas de la balance à 1 et celle du fils droit à 0 existe. Il est donc nécessaire d effectuer une troisième rotation. Pour ce qui est des pointeurs, il s agit de la même chose que la rotation simple, seules les valeurs des balances vont être modifiées, car on ne tombe pas sur des balances à 0 comme à chaque fois. De plus la hauteur ne va pas être modifiée, le rééquilibrage s arrétera. Fig. 4.6 Suppression à gauche bal=1 avec rotation simple droite bis Si l on examine bien ce travail théorique, on peut voir que la suppression à gauche n est pas tellement différente de l insertion à droite, les rotations sont les mêmes ainsi que les changements de balance, cependant le message qui nous dit s il faut continuer de rééquilibrer ou pas et lui complétement inversé par rapport à l insertion. Même si l on peut croire à un insignifiant changement, celui ci va faire toute la différence dans notre programme.

- Chapitre 4. Travail réalisé 4.2 Suppression à droite 15 4.2 Suppression à droite Le principe de la suppression à droite est également symétrique à celui de la suppression à gauche, les différents cas seront donc rapidement détaillés. Suppression à droite lorsque la balance est à 1, on continue de se rééquilibrer. Fig. 4.7 Suppression à droite bal=1 Balance à 0, la hauteur passe de h à h-1, celle du noeud supérieur ne change pas donc on arrête de se rééquilibrer. Fig. 4.8 Suppression à droite bal=0

- Chapitre 4. Travail réalisé 4.2 Suppression à droite 16 balance à -1 et fils gauche à -1, il s agit donc d une rotation simple gauche qu il faut effectuer avec rééquilibrage ensuite. Fig. 4.9 Suppression à droite bal=-1 avec rotation simple gauche Rotation double gauche lorsque la balance est à -1 et le fils gauche à 1. On doit continuer de rééquilibrer. Fig. 4.10 Suppression à droite bal=-1

- Chapitre 4. Travail réalisé 4.2 Suppression à droite 17 Fig. 4.11 Rotation double gauche Comme pour la suppression à gauche, le cas de la balance à -1 et celle du fils droit à 0 existe. Il est donc nécessaire d effectuer une troisième rotation. On ne change à nouveau que la valeur des balances par rapport à une rotation simple gauche classique et on arrête de rééquilibrer. Fig. 4.12 Suppression à droite bal=-1 avec rotation simple gauche bis

- Chapitre 4. Travail réalisé 4.3 Expérimentation 18 4.3 Expérimentation Le but de cette expérimentation est de déterminer le pourcentage moyen de rotations quand on insère n clés dans un arbre et qu on les supprime dans un ordre aléatoire. Afin de trouver ce pourcentage nous avons réalisé une procédure appelée CompteRot. Cette procédure a pour paramètre l arbre p, le nombre n de clés à insérer, le nombre iter d itérations et le booléen cont. L entier iter va permettre de supprimer les n clés dans un ordre différent à chaque fois. Le but étant d obtenir le résultat le plus juste possible en faisant ensuite la moyenne des rotations. Afin de supprimer les clés dans un ordre aléatoire nous avons réalisé une boucle qui va réorganiser les clés de l arbre dans un ordre aléatoire. En effet les valeurs sont ajoutées dans un tableau v lors de l insertion. Une boucle place ensuite ces mêmes valeurs dans un tableau w mais dans un ordre différent. Il ne reste plus ensuite qu à supprimer les valeurs dans l ordre du tableau w. Une variable globale nbrot est incrémentée à chaque exécution d une fonction de rotation. On calcul le pourcentage de rotations en fonction du nombre n de clés que l on sauvegarde. Une fois le nombre de suppressions différentes ( iter ) effectuées on fait la moyenne des pourcentages et on affiche le résultat sur l écran texte. Il est évident que plus iter sera grand, plus le résultat sera précis. Après plusieurs essais avec un nombre n de clés différent, on obtient un pourcentage proche de 50%.

Conclusion En conclusion, le projet est arrivé à terme et le programme qui permet de supprimer des clés dans un arbre lexicographique équilibré tout en gardant ses propriétés est opérationel. Il nous a permi une refléxion supplémentaire en ce qui concerne l analyse théorique avec l apparition d un nouveau cas et donc d une troisième rotation. Le fonctionnemment du programme à été long a venir avec de nombreux bugs et problèmes tout au long de son implémentation. La prise en main du logiciel Dia qui sert a faire des graphiques et qui nous a permi de schématiser les arbres à été un plus dans notre apprentissage. La partie expérimentation nous a apporté une information supplémentaire : le pourcentage moyen de rotations lorsque l on supprime un nombre n de clés est d environ 50%. 19

Index Arbres équilibré, 4 Arbres équilibrés, 2, 3 AVL, 3 Balance, 3, 4 Dégénéré, 3 Expérimentation, 10, 18 Feuilles, 2 Hauteur, 2, 3, 6, 12 Insertion, 4, 7 Noeud, 2 Noeuds internes, 2 Racine, 2 Rotation double, 6, 8, 13, 16 Rotation simple, 5, 8, 12, 16 Sous-arbres, 2 Suppression, 11, 15 Troisième rotation, 9, 14 20

Etude de la suppression de clés dans les arbres lexicographiques équilibrés auteurs : Jonathan Courtois, Florent Renault - Année : 2005-2006 Résumé : Ce projet d algorithmique concerne les arbres équilibrés (AVL) introduits en 1962 par deux russes Adel son-vel skii et Landis. En cours, nous avons étudié l insertion de clés dans ces arbres équilibrés avec conservation du caractère lexicographique et de l équilibre de l arbre grace à la balance. Le but de ce projet été de maintenir l arbre équilibré après la suppression de clés et d éfféctuer une Expérimentation qui consiste à voir quel est le pourcentage moyen de rotations quand on supprime n clés dans un arbre. Mots clé : Projet d algorithmique, Arbres équilibrés, Suppression de clés, Lexicographique, Expérimentation, Pourcentage de rotations Abstract : This algorithmic project is about balanced trees which were introduced in 1962 by two Russians : Adel son-vel skii and Landis. We have already study keys insertion into balanced trees with care of keeping them lexicographic and balanced. The aim of the project was to keep the tree balanced after deleting keys. Furthermore, we have made a small experience which consists in calculate the average percentage of rotations when deleting n keys in a tree. Keywords : Project of algorirthmic, Balanced trees, Deletion of keys, Lexicographical, Experiment, Percentage of rotations Rapport effectué par Courtois Jonathan et Renault Florent License 2 Math - Parcours Ingénieur Polytech http://www.univ-tours.fr http://www.polytech.univ-tours.fr