Réseaux de tri. On démontre ici, une propriété des réseaux de tris particulièrement utile : le principe du 0-1.

Documents pareils
1 Recherche en table par balayage

Résolution d équations non linéaires

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

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

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Dossier Logique câblée pneumatique

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

Programmation linéaire

Algorithmique I. Algorithmique I p.1/??

Quelques algorithmes simples dont l analyse n est pas si simple

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Chapitre 5 : Flot maximal dans un graphe

Chapitre 7. Récurrences

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

108y= 1 où x et y sont des entiers

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

Plus courts chemins, programmation dynamique

Problème 1 : applications du plan affine

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

Fonctions homographiques

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Licence Sciences et Technologies Examen janvier 2010

Coup de Projecteur sur les Réseaux de Neurones

Théorèmes de Point Fixe et Applications 1

Algorithmique et Programmation

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

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

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

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

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

La classification automatique de données quantitatives

Suites numériques 4. 1 Autres recettes pour calculer les limites

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Théorie et codage de l information

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Image d un intervalle par une fonction continue

Codage d information. Codage d information : -Définition-

Suites numériques 3. 1 Convergence et limite d une suite

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

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

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

Leçon 01 Exercices d'entraînement

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

MIS 102 Initiation à l Informatique

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

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

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Parallélisme et Répartition

Chapitre 2. Eléments pour comprendre un énoncé

Jean-Philippe Préaux

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

STRICTEMENT CONFIDENTIEL

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Groupe symétrique. Chapitre II. 1 Définitions et généralités

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc)

ESSEC. Cours «Management bancaire» Séance 3 Le risque de crédit Le scoring

Chapitre VI - Méthodes de factorisation

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

Recherche dans un tableau

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

Projet de Traitement du Signal Segmentation d images SAR

Rappels sur les suites - Algorithme

Chapitre 1 : Évolution COURS

Développements limités, équivalents et calculs de limites

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

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

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

Conversion d un entier. Méthode par soustraction

LES REGLEMENTS AVEC SOCIEL.NET DERNIERE MISE A JOUR : le 14 juin 2010

TD1 Signaux, énergie et puissance, signaux aléatoires

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

Angles orientés et fonctions circulaires ( En première S )

3 Approximation de solutions d équations

Les indices à surplus constant

Calcul différentiel sur R n Première partie

Représentation des Nombres

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Master Exploration Informatique des données Data Mining & Business Intelligence. Evelyne CHARIFOU Priscillia CASSANDRA

III- Raisonnement par récurrence

Représentation d un entier en base b

Systèmes de transmission

0DWKpPDWLTXHVGHO DUJHQW. édité par Mr. G.Moumoulidis (OTE)

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

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

Introduction à MATLAB R

Chapitre 3. Les distributions à deux variables

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

ARBRES BINAIRES DE RECHERCHE

avec des nombres entiers

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

F411 - Courbes Paramétrées, Polaires

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Optimisation Discrète

Algorithmique - Cours et Travaux Dirigés Ecole Normale Supérieure de Lyon

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Transcription:

TD n MIM 2 e année Algorithmique Parallèle 2 24 Réseaux de tri Résumé: Le premier exercice est facile. Le deuxième exercice sur le tri est un classique du domaine (voir par exemple [2] ou []). Le troisième exercice nous permet d aborder un réseau de tri plus sophistiqué; on trouvera de nombreux autres exemples difficiles dans []. Principe du - On démontre ici, une propriété des réseaux de tris particulièrement utile : le principe du -. Question Montrer qu un réseau de comparateurs implante correctement le tri si et seulement si il calcule bien cette fonction pour toutes suites de type - en entrée. 2 Réseau de tri Définition. On appelle une qui est soit croissante puis décroissante, soit décroissante puis croissante. Ainsi, les s 2,, 7, 7, 4, et 2, 5,,, 9 sont s. Les s binaires s sont de la forme i j k ou de la forme i j k. Définition 2. Un réseau de tri est un réseau de comparateurs triant toute binaire. Définition. On appelle séparateur un réseau à n entrées, avec n pair, composé d une colonne de comparateurs dans lequel chaque entrée i est comparée à l entrée i + n 2 pour i {, 2,..., n 2 }. Question 2 Comment construire un réseau de tri à partir de séparateurs? Quelle est sa profondeur et le nombre de comparateurs utilisés? Question En utilisant des s s, construire un réseau fusionnant deux listes s. En déduire la construction d un réseau général de tri dont on déterminera la profondeur et le nombre de comparateurs. Tri sur une grille 2D Cet exercice étend le tri par transposition pair-impair, déjà étudié sur un réseau linéaire, au cas d une grille à deux dimensions. Définition 4. Un tableau carré A = ((a i,j )) de taille n n, les éléments du tableau sont ordonnés comme suit : a 2i,j a 2i,j+, si j n, i n/2, a 2i,j+ a 2i,j, si j n, i n/2, a 2i,n a 2i,n, si i n/2, a 2i, a 2i+,, si i n/2. n = 2 m est ordonné en serpent si On peut noter que ce serpent induit un réseau linéaire à l intérieur de la grille (voir figure ). Définition 5. Un «shuffle» transforme la de n = 2p éléments z,..., z n en la z, z p+, z 2, z p+2,..., z p, z 2p. Par exemple le «shuffle» de (, 2,, 4, 5,, 7, ) est (, 5, 2,,, 7, 4, ). On se propose d étudier l algorithme suivant, qui réalise la fusion de 4 tableaux de taille 2 m 2 m ordonnés en serpent en un tableau de taille 2 m 2 m ordonné en serpent :. «shuffle» de chaque ligne du tableau (en utilisant des transpositions pair-impair sur les indices des éléments), ce qui revient à appliquer la transformation «shuffle» sur les colonnes.

TD n MIM 2 e année Algorithmique Parallèle 2 24 a, a,2 a, a,4 a 2, a 2,2 a 2, a 2,4 a, a,2 a, a,4 a 4, a 4,2 a 4, a 4,4 Fig. L ordre serpent sur une grille 4 4. 2. Trier les paires de colonnes, c est-à-dire les tableaux de taille n 2 en ordre serpent, en utilisant 2n étapes de transposition pair-impair sur le réseau linéaire induit sur chaque serpent de longueur 2n.. Appliquer 2n étapes de transposition pair-impair sur le réseau linéaire induit par le serpent de taille n 2. Question 4 Faire tourner l algorithme de tri induit avec n = 4 et a i,j = 2 4i j pour i, j 4. Question 5 Montrer que la première étape de l algorithme peut s effectuer en temps 2 m, l unité étant un échange entre voisins (plusieurs échanges entre voisins pouvant être effectués en parallèles pour le même coût). On pourra effectuer les transpositions pair-impair sur un ensemble d indices astucieusement choisis. En déduire que l algorithme global de fusion s effectue en temps 9 2 n. Question En supposant l algorithme de fusion correct, construire un algorithme qui trie une de longueur 2 2m sur une grille 2 m 2 m. Estimer sa complexité. Question 7 Montrer que le tri par transposition pair-impair sur une grille est correct (il s agit de montrer que 2n étapes de transposition pair-impair dans la troisième phase de l algorithme de fusion suffisent à obtenir un serpent correctement ordonné). Références [] T. H. Cormen, C. E. Leiserson, and R. L. Rivest. Introduction to Algorithms. The MIT Press, 2 edition, 99. Traduction française publiée chez Dunod, Introduction à l algorithmique, 22. [2] A. Gibbons and W. Rytter. Efficient Parallel Algorithms. Cambridge University Press, 9. [] F.T. Leighton. Introduction to parallel algorithms and architectures : arrays, trees, hypercubes. Morgan Kaufmann, 992.

TD n MIM 2 e année Algorithmique Parallèle 2 24 pure pure Fig. 2 Un séparateur de taille appliqué à deux s binaires s différentes. 4 s aux exercices Question, page Soit f une fonction monotone croissante. Un comparateur se comporte de la même manière sur (x, x 2 ) et sur (f(x ), f(x 2 )). On considère maintenant un réseau R fixé, appliqué à une suite donnée (x,..., x n ). La position finale de l entrée x i, c est-à-dire le fil de sortie du réseau où cet x i aboutit, ne dépend pas de la valeur de x i mais de sa position relative par rapport aux autres x j. Donc, si le réseau est appliqué à (f(x ),..., f(x n )), f(x i ) sort par le même fil de sortie que x i plus haut. Supposons maintenant que R ne calcule pas correctement la fonction de tri. Il existe donc une suite (x,..., x n ), et il existe i et i 2 tels que x i et x i2 sortent de R sur deux sorties consécutives avec x i > x i2. Il suffit de définir une fonction monotone f : {x,..., x n } {, } telle que f(x i ) = et f(x i2 ) =, par exemple : f(x) = { si x x i2 si x > x i2 Alors R ne calcule pas correctement le tri de (f(x ),..., f(x n )), puisqu on trouve et dans cet ordre sur deux sorties consécutives. Or (f(x ),..., f(x n )) est une suite de type -, d où la conclusion. Question 2, page L effet d un séparateur sur une est décrit figure 2. À la sortie du séparateur, on obtient deux s s de même taille dont une au moins est pure (c est-à-dire composée soit uniquement de, soit uniquement de ). Pour le montrer, supposons qu il y ait plus de que de dans la initiale. Supposons la initiale de la forme i j k. Si k n 2, alors la de sortie est i j k. Si i n 2, alors la de sortie est i n 2 j k n 2. Si i < n 2 et k < n 2 (mais i + k n 2 puisqu il y a plus de ), alors la de sortie est de la forme n 2 k n 2 j n 2 i n 2. Supposons la initiale de la forme i j k. Comme j n 2, la de sortie est de la forme Oi j n 2 k n 2. Dans tous les cas, on vérifie donc que la de sortie a bien la forme souhaitée. Enfin, la démonstration est tout à fait identique s il y a plus de que de. En utilisant ce résultat, il est facile de construire un réseau de tri en utilisant des séparateurs, comme indiqué figure. Soient t m et p m respectivement la profondeur et le nombre de comparateurs du réseau de tri pour une d entrée binaire de taille

TD n MIM 2 e année Algorithmique Parallèle 2 24 séparateur[n] [n/2] [n/2] Fig. Construction d un réseau d une de s de taille n à partir de séparateurs. [n/2] [n/2] Fig. 4 Construction d un réseau de fusion à l aide de s s. n = 2 m. On vérifie que : t =, t m = t m + ce qui implique que t m = m, p =, p m = t m 2 m ce qui implique que p m = m2 m. Le réseau de tri ainsi construit a donc pour profondeur O(log n) et comporte O(n log n) comparateurs. Question, page Pour construire un réseau de fusion à partir de s s, considérons la fusion de deux listes s de taille n, i n i et k n k respectivement. Si on inverse la deuxième liste (ce qui revient à échanger des câbles mais ne nécessite aucun comparateur supplémentaire), on obtient la i 2n i k k sur laquelle on peut appliquer la pour obtenir la fusion des deux listes initiales. Pour inverser la seconde liste, il suffit simplement de modifier le premier étage de la comme montré figure 4. Ensuite, on obtient le réseau général de tri en empilant les réseaux de fusion, comme pour le tri-fusion de Batcher. Le réseau obtenu trie correctement toutes les s binaires, et le principe du - permet de conclure. Soient t m et p m respectivement la profondeur et le nombre de comparateurs du réseau de tri ainsi construit pour une d entrée de taille n = 2 m. On vérifie que : t =, t m = t m + t m ce qui implique que t m = O(m 2 ), p =, p m = 2p m + p m ce qui implique que p m = O(m 2 2 m ). Le réseau de tri ainsi construit a donc pour profondeur O((log n) 2 ) et comporte O(n 2 (log n) 2 ) comparateurs.

TD n MIM 2 e année Algorithmique Parallèle 2 24 Question 4, page 2 Le dessin ci-dessous représente l évolution de la grille au cours des différentes étapes du tri serpent. 2 4 5 7 4 2 9 5 situation initiale 2 5 4 7 9 4 2 5 appel récursif grille 2 2 9 4 2 5 4 7 2 5 shuffle colonne grille 4 4 9 4 2 4 7 5 2 5 tri colonnes grille 4 4 2 4 7 5 9 2 5 4 2n pair-impair grille 4 4 Question 5, page 2 Pour i compris entre et n = 2p, on définit l indice c i de la colonne i comme l indice de son image par le «shuffle» : c i = 2i si i p et 2(i 2 m ) sinon. Ensuite, il suffit de trier cet ensemble d indices en utilisant des échanges entre voisins. Considérons le réseau primitif α à p étages dont le i-ème étage effectue les i comparaisons p i +, p i + 2, p i +, p i + 4,..., p + i, p + i. Par exemple pour n =, p = 4, il faut trier la (, 5, 2,,, 7, 4, ). Les trois étages sont composés des comparateurs 4, 5 (premier étage),, 4, 5, (deuxième étage), et 2,, 4, 5,, 7 (troisième étage). Une récurrence immédiate montre que le réseau de tri ainsi défini trie correctement la des c i, et peut donc être utilisé pour réaliser l opération de «shuffle» sur les colonnes. Le coût de cet étape est n 2 et le coût de chacune des deux autres étapes est 2n, on vérifie donc que le coût global de l algorithme de fusion est 9 2 n. Question, page 2 Soit t m le temps nécessaire pour trier sur une grille 2 m 2 m. D après la question précédente, t m t m + 9 2 2m, avec t = puisqu un tableau est toujours ordonné en serpent. En additionnant toutes les inégalités obtenues pour t m, t m, t m 2,... et en simplifiant : t m 9 2 m 2 k = 9 2 (2m+ 2) 9 2 m. k= Le temps nécessaire pour trier une de longueur N = 2 2m sur une grille 2D est donc de l ordre de N.

TD n MIM 2 e année Algorithmique Parallèle 2 24 i est impair i + i est ε impair i + ε Fig. 5 Les deux grilles en serpent possibles pour des s - : i est toujours impair et ε {, }. shuffle i i + ε i 2 i 2 + ε 2 i + i 2 i + i 2 + ε /2 i + i 2 + ε + ε 2 i i + ε i 4 + ε 4 i4 i + i 4 i + i 4 + ε /4 i + i 4 + ε + ε 4 les quatre blocs S S + ε S + ε + ε 2 S + ε + ε 2 + ε S + ε + ε 2 + ε + ε 4 { tri sur les couples de colonnes. au plus 2 lignes Fig. Fusion de deux serpents -. Question 7, page 2 Pour simplifier la démonstration, nous utilisons le principe du -, qui nous permettra d affirmer que le tri sur la grille est correct si et seulement si on peut réaliser la troisième phase de l algorithme avec seulement 2n transpositions pair-impair sur des s de -. Les deux seules possibilités pour des grilles de s - ordonnées en serpent sont illustrées figure 5. L indice i de la dernière ligne commençant par un est toujours impair, et il y a deux cas selon que le nombre de zéros restants n excède pas la taille d une ligne ou, au contraire, déborde sur la ligne suivante. En fait, il suffit de montrer qu à la fin de la deuxième étape de l algorithme (les tris sur les réseaux linéaires de tailles 2n), au plus deux lignes de la matrice ne sont pas exclusivement constituées de et de, comme indiqué figure. Avec les notations figure, i, i 2, i, i 4 sont des entiers naturels impairs et ε, ε 2, ε, ε 4 des entiers dans {, }. En effet, regardons le nombre de et de dans les couples de colonnes après l opération de «shuffle». Dans la moitié supérieure de la grille, il y a au plus trois types de paires de colonnes.

TD n MIM 2 e année Algorithmique Parallèle 2 24 Ces paires contiennent chacune i + i 2, i + i 2 + ε /2 (ε /2 valant ε ou ε 2 selon les cas) ou i + i 2 + ε + ε 2 zéros. On peut faire la même analyse dans la moitié inférieure et en déduire qu il existe au plus 5 types de paires de colonnes après le tri sur les paires de colonnes. Ces paires de colonnes contiennent donc S, S + ε, S + ε + ε 2, S + ε + ε 2 + ε ou S + ε + ε 2 + ε + ε zéros (où S = i + i 2 + i + i 4 et les ε, ε 2, ε, ε 4 sont des entiers dans {, }). En remarquant que S est pair (en tant que somme de quatre nombres impairs) on peut vérifier que, dans tous les cas, au plus deux lignes (de longueur n) ne sont pas exclusivement constituées de ou de, et donc que le réseau linéaire induit par le serpent de taille n 2 trie la globale en seulement 2n étapes.