Monceaux ( 9.2) Rappel: TAD: Files avec priorité ( 9.1)

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

ARBRES BINAIRES DE RECHERCHE

Les arbres binaires de recherche

Chapitre 7. Récurrences

Quelques Algorithmes simples

INF601 : Algorithme et Structure de données

L exclusion mutuelle distribuée

Les structures de données. Rajae El Ouazzani

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

Quelques algorithmes simples dont l analyse n est pas si simple

MIS 102 Initiation à l Informatique

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Algorithmique, Structures de données et langage C

0.1 Mail & News : Thunderbird

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

Chapitre 5 : Flot maximal dans un graphe

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

Les systèmes de gestion de version

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

1 Recherche en table par balayage

Compression de Données - Algorithme de Huffman Document de Conception

Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Algorithmique I. Algorithmique I p.1/??

Licence Sciences et Technologies Examen janvier 2010

1 è r e étape : créer sa base de d o n n é e s

Algorithmes de recherche

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

Comment automatiser la création d index multiples avec Word Paul-Henri Dumas - URFIST

Algorithmes récursifs

Limites finies en un point

B-web V4 MANUEL D UTILISATION. Espace de travail. Clear2Pay Belgium SA B-web V4 Manuel d Utilisation: Espace de travail

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

1.6- Génération de nombres aléatoires

ZOTERO Un outil gratuit de gestion de bibliographies

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Service des ressources informatiques - Conseil Scolaire de District Catholique Centre-Sud Page 1

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

v Sygic, a.s. All rights reserverd. Manuel utilisateur

Algorithmes d'apprentissage

Services bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

TP3 : Manipulation et implantation de systèmes de fichiers 1

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Calculateur quantique: factorisation des entiers

Documentation RBS Change E-Commerce Core

4. Les structures de données statiques

MODE OPERATOIRE CIEL GESTION COMMERCIALE VERSION EVOLUTION BTS PME PMI

DOCM Solutions officielles = n 2 10.

Continuité et dérivabilité d une fonction

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

L alternative, c est malin 1. Comment faire plein de choses pour pas cher sur MacIntosh

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

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Fiche 02. PRODUITS La gestion des mandats. Généralités GESTION SIMPLIFIEE GESTION STANDARD AVEC RELANCES

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Raisonnement probabiliste

données en connaissance et en actions?

Etude comparative de différents motifs utilisés pour le lancé de rayon

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Sur cette nouvelle page, cliquez sur commencer l inscription.

Solutions en ligne Guide de l utilisateur

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Chapitre 4 : Édition de fichiers texte - Vi

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Rapport d activité. Mathieu Souchaud Juin 2007

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Cours de Master Recherche

Petit memo rapide pour vous guider dans la gestion des engagements de vos compétitions FFM

Résolution d équations non linéaires

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

TAP-PAR. Test d aptitudes physiques pour paramédics. Description du test

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Organigramme / Algorigramme Dossier élève 1 SI

Parallélisme et Répartition

Tableau de bord. Tableau de bord. Statistiques des contenus de votre site (nb de pages, articles, commentaires...)

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

La société Klippan France dont l usine est à Gournay-en-Bray en Normandie, La société Autoliv S.A. dont l usine est à Seclin dans le Nord, Normandie.

Sujet de rédaction. «Mon histoire»

Sécurité des réseaux IPSec

Programmation linéaire

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Génie Logiciel avec Ada. 4 février 2013

BIRT (Business Intelligence and Reporting Tools)

Gestion de photos avec Picasa

Comparaison de fonctions Développements limités. Chapitre 10

Differential Synchronization

Chapitre 2 Le problème de l unicité des solutions

Mode d emploi de la clef USB de l I.P.I. Philosophie de la clef USB

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

Certificat Big Data - Master MAthématiques

Découvrir l'ordinateur (niveau 2)

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Excel. Identification. Informations sur vos besoins et objectifs. Notions fondamentales. Fiche de validation des besoins en formation Bureautique

Resolution limit in community detection

Algorithmique avec Algobox

Transcription:

(.) Rappel: TAD: Files avec priorité (.) Une file avec priorités garde en mémoire une collection d entrées (items) Chaque item est une paire (clé, élément) Opérations principales: insérer(k,x): insère un entrée ayant la clé k et l élément x enlevermin(): enlève et retourne une entrée de clé minimal Opérations additionnels: minelement(): retourne, sans enlever, un élément de clé minimal mincle(): retourne la clé minimale taille(), estvide() Rappel:Trier en utilisant une file avec priorités On peut utiliser une file avec priorités pour trier un ensemble d éléments comparables ) Insérer les éléments un par un dans la file avec une série d opérations insérer(e,e) ) Enlever les éléments dans l ordre croissant avec une série d opérations enlevermin() Le temps d exécution dépend de l implémentation de la file avec priorités: séquences non ordonnées: Tri-Sélection: complexité O(n ) séquences ordonnées: Tri-Insertion: complexité O(n ) Peut-on faire mieux? Algorithme TriFP(S, C) Entrée séquence S, comparateur C pour les éléments de S Sortie séquence S triée en ordre croissant selon C P! file avec priorité utilisant le comparateur C hile S.estVide () e! S.enlevePremier () P.insérer (e, e) hile P.estVide() e! P.enleverMin() S.insérerFin(e) Un monceau est un arbre binaire gardant des clés en mémoire dans ses noeuds et satisfaisant les propriétés suivantes: (.) Ordre de monceau: pour chacun des noeuds internes différents de la racine, on a clé(v) clé(parent(v)) Arbre binaire complet: soit h la hauteur du monceau, alors Pour i = 0,...,h, il y a i noeuds de profondeur i Au niveau (profondeur) h, les noeuds internes sont situés à la gauche des noeuds externes Le d un monceau est le noeud le plus à droite du niveau h adapté de Goodrich, Tamassia, 00

profondeur 0 h! h Hauteur d un monceau Théorème: Un monceau gardant en mémoire clés h! n clés à une hauteur O(log n) Preuve: On utilise le fait qu un monceau est un arbre binaire complet: Soit h la hauteur du monceau gardant en mémoire n clés Comme on a i clés de profondeur i, pour i = 0,...,h et au moins clé de profondeur h, on a On a donc n ( + + +...+ h )+ =( n h, i.e h logn h! i=0 i )+ Goodrich, Tamassia, 00 et files avec priorités On peut utiliser un monceau pour implémenter une file avec priorités On garde en mémoire dans les noeuds de l arbre les items (clé, élément) On garde en mémoire la position du Pour simplifier, on ne montre que la partie clé des entrées dans les dessins (, Pat) (, Jeff) (, Anne) adapté de Goodrich, Tamassia, 00 (, Lyane) (, Marc) Insertion d éléments dans un monceau L opération insérer(k,x) du TAD files avec priorités correspond à l insertion d un item (k,x) dans le monceau L algorithme d insertion consiste en trois étapes: ) Trouver le noeud d insertion (qui deviendra le nouveau ) ) Insérer (k,x) dans le noeud ) Restorer l ordre dans le monceau noeud d insertion adapté de Goodrich, Tamassia, 00 Trouver le noeud d insertion On peut trouver le noeud d insertion en suivant un chemin de longueur O(log n), où ici, longueur = nombre de noeuds visités À partir du inséré, monter jusqu à ce qu un fils gauche soit atteint (ou jusqu à la racine) Attention! Si on est déjà dans un fils gauche alors, il faut y rester. Si un fils gauche est atteint, alors parcourer l arbre jusqu à son frère droit Si ce noeud est libre, c est le noeud d insertion Sinon, si le fils gauche ou droit de ce noeud est libre, c est le noeud d insertion Sinon, descender vers la gauche, jusqu à ce que vous trouvie une feuille. Le noeud d insertion est le fils gauche de cette feuille. adapté de Goodrich, Tamassia, 00

Restorer l ordre vers le haut Après l insertion d une nouvelle clé k, il est possible que l ordre du monceau soit perturbé L algorithme upheap rétablit l ordre du monceau en faisant monter la clé k, le long du chemin ascendant partant du noeud d insertion et allant jusqu à la racine, avec des opérations d échange de clés (sap) L algorithme upheap se termine quand la clé k atteint la racine ou un noeud dont le parent à une clé plus petite ou égale à k Comme la hauteur du monceau est O(log n), la complexité en temps de upheap est aussi O(log n) Goodrich, Tamassia, 00 Suppression d éléments dans un monceau L opération enlevermin() du TAD files avec priorités correspond à la suppression de la racine d un monceau L algorithme de suppression est constitué de trois étapes: ) Remplacer la clé de la racine par la clé du ) Enlever le ) Restorer l ordre dans le monceau nouveau adapté de Goodrich, Tamassia, 00 Restorer l ordre vers le bas Après le remplacement de la clé de la racine par la clé du dernier noeud, il est possible que l ordre du monceau soit perturbé L algorithme donheap rétablit l ordre du monceau en faisant descendre la clé k, le long du chemin descendant partant de la racine, avec des opérations d échange de clés (sap) L algorithme donheap se termine quand la clé k atteint une feuille ou un noeud dont les fils ont des clés plus grande ou égale à k Implémentation d un monceau On peut représenter un monceau contenant n clés par un vecteur de longueur n+ Pour le noeud au rang i du vecteur: son fils gauche est au rang i son fils droit est au rang i + Comme la hauteur du monceau est O(log n), la complexité en temps de donheap est aussi O(log n) Goodrich, Tamassia, 00 La cellule de rang 0 n est pas utilisée L opération insérer(k,e) correspond à insérer au rang n+ L opération enlevermin retourne l élément au rang 0 Goodrich, Tamassia, 00 0

Tri-Monceau Fusionner deux monceaux Supposons qu on a une liste avec priorités, contenant n éléments, implémentée à l aide d un monceau. Alors, la complexité en espace est de O(n) On nous donne monceaux et une clé k clé: les opérations insérer(k,e) et enlevermin() ont une complexité en temps de O(logn) les opérations taille() et estvide() ont une complexité en temps de O() On crée un nouveau monceau avec la clé k en racine et les deux monceaux comme sous-arbres La complexité en temps du tri de n éléments, avec cette implémentation est de O(n log n) On appelle l algorithme de tri avec monceau, le Tri-Monceau On utilise l algorithme donheap pour mettre en ordre le nouveau monceau adapté de Goodrich, Tamassia, 00 Construire un monceau de bas en haut Exemple: On peut construire un monceau contenant n clés en utilisant une méthode de construction allant du bas vers le haut et comportant log(n) étapes i! i! 0 À l étape i, des paires de monceaux ayant i clés sont fusionnés en monceaux ayant clés i+ i+! 0 adapté de Goodrich, Tamassia, 00 Goodrich, Tamassia, 00

Exemple: (suite) Exemple: (suite) 0 0 0 adapté de Goodrich, Tamassia, 00 0 adapté de Goodrich, Tamassia, 00 Exemple: (suite) 0 Analyse de la complexité en temps Dans le pire des cas, à chaque insertion d un nouveau noeud, on doit pour remettre de l ordre, le faire descendre jusqu aux feuilles (voir dessin). 0 L algorithme de construction de bas en haut à une complexité en temps de O(n) 0 0 adapté de Goodrich, Tamassia, 00 Goodrich, Tamassia, 00