Les méthodes de tri externes (suite)

Documents pareils
Bases de données documentaires et distribuées Cours NFE04

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

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

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Exo7. Limites de fonctions. 1 Théorie. 2 Calculs

Les arbres binaires de recherche

1 Recherche en table par balayage

C f tracée ci- contre est la représentation graphique d une

Chapitre 5 : Flot maximal dans un graphe

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

Système binaire. Algèbre booléenne

données en connaissance et en actions?

Représentation des Nombres

CCP PSI Mathématiques 1 : un corrigé

TSTI 2D CH X : Exemples de lois à densité 1

Limites finies en un point

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

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

L exclusion mutuelle distribuée

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

Chapitre 7. Récurrences

Formats d images. 1 Introduction

Les algorithmes de base du graphisme

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Probabilités sur un univers fini

«Cours Statistique et logiciel R»

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

MESURE DE LA TEMPERATURE

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Feuille TD n 1 Exercices d algorithmique éléments de correction

Planche n o 22. Fonctions de plusieurs variables. Corrigé

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

Chapitre 2 Les ondes progressives périodiques

Chapitre 6. Fonction réelle d une variable réelle

MIS 102 Initiation à l Informatique

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

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

Résolution d équations non linéaires

EXCEL et base de données

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

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

Correction de l examen de la première session

Cours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

DUT Techniques de commercialisation Mathématiques et statistiques appliquées

Algorithmique et Programmation

Chp. 4. Minimisation d une fonction d une variable

Résolution de systèmes linéaires par des méthodes directes

Partie 1 - Séquence 3 Original d une fonction

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

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

TABLE DES MATIÈRES. PRINCIPES D EXPÉRIMENTATION Planification des expériences et analyse de leurs résultats. Pierre Dagnelie

Arbres binaires de décision

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Licence Sciences et Technologies Examen janvier 2010

Continuité et dérivabilité d une fonction

Systèmes de transmission

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Algorithmes de recherche

Algèbre binaire et Circuits logiques ( )

Algorithmique et programmation : les bases (VBA) Corrigé

FONCTION DE DEMANDE : REVENU ET PRIX

ibridge la clé USB pour appareils ios.

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Les Bases. Messaoudi Khaled, Boukelal Hanane (Etudiants Informatique ) 2015.

Les nombres entiers. Durée suggérée: 3 semaines

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Exercices Corrigés Premières notions sur les espaces vectoriels

3 ème 2 DÉVELOPPEMENT FACTORISATIONS ET IDENTITÉS REMARQUABLES 1/5 1 - Développements

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Comment évaluer une banque?

Limitations of the Playstation 3 for High Performance Cluster Computing

FctsAffines.nb 1. Mathématiques, 1-ère année Edition Fonctions affines

CHAPITRE VIII : Les circuits avec résistances ohmiques

Architecture des Systèmes d Information Architecture des Systèmes d Information

Texte Agrégation limitée par diffusion interne

CH.6 Propriétés des langages non contextuels

Quelques tests de primalité

Introduction à MATLAB R

Mesurer les performances (CPU) sous Linux

Algorithmes récursifs

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

INF601 : Algorithme et Structure de données

Le transistor bipolaire

Vers l'ordinateur quantique

Mathématiques financières

Cours 7 : Utilisation de modules sous python

Chapitre 1 Régime transitoire dans les systèmes physiques

MANUEL DE L'UTILISATEUR PROTECTION SOFTWARE POUR DISQUES DURS EXTERNES FREECOM. Rev. 024

Programmation linéaire

DÉRIVÉES. I Nombre dérivé - Tangente. Exercice 01 (voir réponses et correction) ( voir animation )

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Recherche dans un tableau

Pour l épreuve d algèbre, les calculatrices sont interdites.

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

FORMATION EXCEL NIVEAU 2

Transcription:

Les méthodes de tri externes (suite)

Les algorithmes de fusion Les algorithmes de tri externes sont basés sur la fusion de fichiers ordonnés. La fusion de deux (ou plus) fichiers ordonnés consiste à produire un fichier ordonné comportant l union des enregistrements des fichiers de départ. La fusion peut se réaliser avec une complexité linéaire en fonction de la taille des fichiers à fusionner.

Principe de l algorithme de fusion on compare les deux enregistrements courants, le plus petit de ces deux enregistrements est ajouté en fin du fichier résultat, on passe à l enregistrement suivant dans le fichier qui contenait le plus petit des deux enregistrements. Le processus est répété jusqu à ce que l on atteigne la fin d un des deux fichiers. Il suffit ensuite de copier le reste de l autre fichier en fin du fichier résultat.

Le concept d arbre de sélection Si l on fusionne M fichiers, a chaque élément lu il est nécessaire de faire M 1 comparaisons. Ces comparaisons sont en bonne partie redondantes et il est possible de les éviter à l aide d une structure de données appelée arbre de sélection. Un arbre de sélection est un arbre binaire dont chaque noeud comporte la valeur du plus petit de ses deux successeurs. Lorsque l on change la valeur d une des M feuilles d un arbre de sélection, la mise à jour de l arbre ne nécessite que log(m) comparaisons.

Fusion avec arbre de sélection Si on donne aux feuilles les valeurs des premiers enregistrements de M fichiers à fusionner, une étape de l algorithme de fusion consiste à ajouter l enregistrement désigné par la racine de l arbre de sélection en fin du fichier résultat, remplacer la valeur de la feuille correspondante par l enregistrement suivant dans le fichier qui lui est associé, mettre à jour l arbre de sélection. La mise à jour de l arbre consiste à modifier la valeur des noeuds situés sur la branche joignant la feuille à la racine. Il ne faudra donc effectuer que log 2 M comparaisons

Exemple : 85 53 18 08 52 51 45 09 06 92 90 33 17 19 15 08 91 77 76 06 17 15 06 15 06 85 53 18 08 52 51 45 09 92 90 33 17 19 15 91 77 76 08 09 17 15 08 15 45 09 08 92 90 85 53 18 52 51 33 17 19 15 91 77 76 18 09 17 15 09 15 09...

Le tri par fusion : point de départ Le point de départ est un fichier accessible séquentiellement. On dispose de la possibilité d utiliser un nombre m de fichiers auxiliaires. Les enregistrements du fichier de départ peuvent se présenter sous la forme de groupe d enregistrements ou séries triées soit présentes naturellement, soit obtenues par un tri en mémoire centrale.

Le tri par fusion équilibré à n voies On dispose de 2n fichiers auxiliaires répartis en 2 groupes de n. L algorithme comporte deux phases. 1. La phase d initialisation. Les séries triées initiales de longueur l sont réparties entre les n premiers fichiers auxiliaires. Appelons ceux-ci les fichiers d entrée.

2. La phase de fusion. Cette phase nécessite généralement plusieurs passes. Lors d une passe i : (a) On fusionne chaque groupe de n séries de longueur ln (i 1) constitué des séries de position identique dans chaque fichier d entrée. On répartit les séries résultantes de longueur ln i entre les n autres fichiers auxiliaires (les fichiers de sortie). (b) Dans le cas où tous les fichiers d entrée n ont pas le même nombre de séries, on ignore les séries manquantes. Lors de chaque nouvelle passe, on inverse le rôle des fichiers d entrée et de sortie. 3. Le tri s achève lorsque l on n obtient plus qu une seule série.

Exemple : 10 séries à trier, 4 fichiers auxiliaires. Passes Fichiers Séries A 1 s 1 s 3 s 5 s 7 s 9 0 A 2 s 2 s 4 s 6 s 8 s 10 (Initialisation) A 3 A 4 A 1 1 A 2 A 3 s (1,2) s (5,6) s (9,10) A 4 s (3,4) s (7,8) A 1 s (1,2,3,4) s (9,10) 2 A 2 s (5,6,7,8) A 3 A 4 A 1 3 A 2 A 3 s (1,2,3,4,5,6,7,8) A 4 s (9,10) A 1 s (1,2,3,4,5,6,7,8,9,10) 4 A 2 A 3 A 4

Le tri non équilibré On dispose de t fichiers auxilliaires. On réparti les t fichiers auxilliaires en 2 groupes respectivement de p et t p fichiers.

Exemple : 10 séries et 5 = 3 + 2 fichiers auxilliaires. Passes Fichiers Séries A 1 s 1 s 4 s 7 s 10 A 2 s 2 s 5 s 8 0 A 3 s 3 s 6 s 9 (initialisation) A 4 A 5 A 1 A 2 1 A 3 A 4 s (1,2,3) s (7,8,9) A 5 s (4,5,6) s 10 A 1 s (1,2,3,4,5,6) A 2 s (7,8,9,10) 2 A 3 A 4 A 5 A 1 A 2 3 A 3 A 4 s (1,2,3,4,5,6,7,8,9,10) A 5

Le tri par fusion : analyse Le but est de calculer le nombre de passes de fusion nécessaires lorsque l on utilise deux groupes de p et de (t p) fichiers auxiliaires. Soit e le nombre total d enregistrements à trier et l la longueur des séries. Le nombre initial de séries s est donné par : s = e l.

Le tableau ci-dessous indique le nombre de passes de fusion nécessaires en fonction de ce nombre initial de séries. Nombre de passes Nombre initial de séries 1 1 < s p 2 p < s p(t p) 3 p(t p) < s p 2 (t p) 4 p 2 (t p) < s p 2 (t p) 2. 2k p k (t p) k 1 < s p k (t p) k (1) 2k + 1 p k (t p) k < s p k+1 (t p) k (2).

Analyse : Tri équilibré à p voies Soit p = t/2 et soit n le nombre de passes nécessaires. On a donc n = 2k dans le cas pair (équation (1)) et n = 2k + 1 dans le cas impair (équation (2)). En remplaçant k par n 2 équations deviennent : dans (1) et par n 1 2 dans (2), ces p n 1 < s p n.

Sachant que log a b = b log a, cette dernière inégalité peut se réécrire (n 1) log p < log s n log p ou encore (n 1) < log s log p n. D où, sachant que log a log b = log b a, (n 1) < log p s n. Dès lors, n le nombre total de passes de fusion pour le tri équilibré à p voies vaut logp s.

Analyse : Tri non équilibré Supposons, par exemple, que le nombre de passes n est impair (n = 2k + 1). En remplaçant k par n 1 2 dans l équation (2), celle-ci s écrit : p n 1 2 (t p) n 1 2 < s p n+1 2 (t p) n 1 2 ou encore, étant donné que log ab = log a + log b : (n 1) log p(t p) < log s (n 1) log p(t p) + log p.

En divisant par log p(t p), on a : (n 1) < log s log p(t p) (n 1) + log p. log p(t p) Vu que pour p [2, t 2], on a 0 < log p < 2, log p(t p) on peut dire qu en général le nombre de passes nécessaires vaut : log log s p(t p). Par un raisonnement similaire, on obtient le même résultat lorsque n est pair.

Analyse : valeur optimale de p Essayons de déterminer la valeur optimale de p qui permet, étant donné un nombre fixé de passes, de trier un nombre maximum de séries. Soit le cas où le nombre de passes n est pair (n = 2k). L équation (1) indique que le nombre maximum de séries est : p k (t p) k

En dérivant par rapport à p, il vient kp k 1 (t p) k p k k(t p) k 1 = 0 ou encore kp k 1 (t p) k 1 (t 2p) = 0. Ainsi, le choix optimal pour p est : p = t 2.

Le tri polyphase

Le tri polyphase : motivation Dans le cas de 3 fichiers auxiliaires, une passe sur deux est une passe sans fusion. Une passe sans fusion est un simple recopiage et ne fait pas vraiment progresser le tri. Il est possible d éviter les recopiages sans fusion en utilisant une répartition non uniforme des séries lors de l initialisation : c est la technique du tri polyphase.

Motivation du tri polyphase : exemple Passes Fichiers Séries A 1 s 1 s 3 s 5 s 7 s 9 0 A 2 s 2 s 4 s 6 s 8 s 10 (Initialisation) A 3 A 4 A 1 1 A 2 A 3 s (1,2) s (5,6) s (9,10) A 4 s (3,4) s (7,8) A 1 s (1,2,3,4) 2 A 2 s (5,6,7,8) A 3 s (9,10) A 4 A 1 3 A 2 A 3 A 4 s (1,2,3,4,5,6,7,8,9,10)

Le tri polyphase : algorithme général 1. On distribue les séries dans t 1 fichiers d entrée suivant une partition a déterminer. 2. Une passe de fusion consiste à fusionner les séries successives se trouvant dans les fichiers d entrée et à inscrire les séries résultantes dans le fichier de sortie. 3. Chaque passe se termine lorsqu un des fichiers d entrée a été intégralement utilisé. Ce fichier devient alors le fichier de sortie pour la passe suivante et l ancien fichier de sortie devient quant à lui un fichier d entrée. 4. Le problèm est de bien choisir la distribution initiale.

Le tri polyphase : Calcul de la distribution initiale optimale (3 fichiers auxiliaires) n A 1 A 2 A 3 total 0 1 0 0 1 1 0 1 1 2 2 1 0 2 3 3 3 2 0 5 4 0 5 3 8 5 5 0 8 13 6 13 8 0 21