Meyer Philippe Encadré par :
Master 1 Informatique Kraemer Pierre
2007 / 2008 Thierry Simon E.B.
NOUVEL
ALGORITHME
DE TRI
Description :
L'algorithme, dit du "tri à bulles gelées", utilise comme base la méthode du tri à bulles, en la
modifiant afin que, d'une part, deux valeurs ne soient échangées que si leur écart est supérieur
à une certaine tolérance t (une valeur choisie tel que si a et b sont ordonnés, l’ordre ne sera
assuré que si a+t et b sont aussi ordonnés), et d'autre part qu'une bulle puisse avoir une taille
supérieure à 1.
Objectif :
Effectuer une étude de la complexité de l'algorithme de tri flou proposé, puis, à travers une
simulation, analyser les gains que son utilisation permet d'obtenir.
1
Remerciements
Un remerciement aux personnes qui ont encadré ce TER, Monsieur Pierre Kraemer et
Monsieur Simon E.B. Thierry. Un remerciement à Monsieur Pascal Mathis, pour le cours
d’algorithmique qu’il a enseigné au cours de ce semestre. Un remerciement à Monsieur Basile
Sauvage, qui encadrait les travaux pratiques et travaux dirigés d’algorithmique ce semestre.
Un remerciement à l’équipe IGG de l’Université de Strasbourg, pour proposer des sujets de
Travaux d’Etudes et de Recherche aussi passionnants.
Sommaire
Introduction................................................................................................................................2
I. Différentes versions pour ce nouvel algorithme.............................................................3
1. Comment fonctionne le « tri à bulles gelées » ?.........................................................3
2. Principe des tri à bulles itératif et récursif..................................................................4
a. Principe du tri à bulles gelées itératif.....................................................................4
b. Principe du tri à bulles gelées récursif....................................................................4
3. Le tri à bulles gelées itératif (algorithme)..................................................................5
4. Le tri à bulles gelées récursif (algorithme).................................................................6
II. Calculs de complexités en temps et en espace...............................................................7
1. Le tri à bulles..............................................................................................................7
2. Le tri à bulles optimisé...............................................................................................7
3. Le tri à bulles avec la taille des bulles variable..........................................................7
4. Le tri à bulles flou ......................................................................................................7
5. Le tri à bulles gelées...................................................................................................8
III. D’autres algorithmes de tri.........................................................................................9
1. Le tri rapide (Quick Sort)...........................................................................................9
2. Le tri fusion................................................................................................................9
3. Le tri insertion..........................................................................................................10
4. Le tri sélection..........................................................................................................11
IV. Comparaisons de tous ces algorithmes.....................................................................12
1. Selon le nombre d’éléments.....................................................................................13
a. Comparaisons.......................................................................................................13
b. Permutations.........................................................................................................15
2. Selon la diversité des éléments.................................................................................17
a. Comparaisons.......................................................................................................17
b. Permutations.........................................................................................................18
3. Selon la tolérance de tri............................................................................................20
a. Comparaisons.......................................................................................................20
b. Permutations.........................................................................................................21
V. Intérêt à un tri flou........................................................................................................22
1. Pourquoi un tri flou ? ...............................................................................................22
2. Exemples d’utilisation..............................................................................................22
Conclusion................................................................................................................................23
Annexes....................................................................................................................................24
Références................................................................................................................................24
2
Introduction
C’est dans le cadre de Travaux d’Etudes et de Recherches pour l’Université de
Strasbourg qu’a été étudié un nouvel algorithme de tri, appelé « tri à bulles gelées ».
Afin de comprendre les mécanismes de ce nouvel algorithme, il fallait le décrire avec plus de
précision. Pour se donner plusieurs idées de cet algorithme, il est intéressant de le développer
de différentes façons, par exemple en itératif ou en récursif.
La suite de l’étude consistait à déterminer la complexide cet algorithme en s’appuyant sur
la complexité d’autres algorithmes étant utilisés pour la construction du « tri à bulles gelées ».
Dans le but de trouver un intérêt au tri flou, il est intéressant d’étudier d’autres algorithmes de
tri en version floue et même d’établir une liste de comparaisons entre tous ces algorithmes.
Ceci nous amènera à penser à l’utilité du tri flou pour la recherche.
3
I. Différentes versions pour ce nouvel algorithme
1. Comment fonctionne le « tri à bulles gelées » ?
L'algorithme, dit du "tri à bulles gelées", utilise comme base la méthode du tri à bulles,
en la modifiant afin que, d'une part, deux valeurs ne soient échangées que si leur écart est
supérieur à une certaine tolérance t (une valeur choisie tel que si a et b sont ordonnés,
l’ordre ne sera assuré que si a+t et b sont aussi ordonnés), et d'autre part qu'une bulle
puisse avoir une taille supérieure à 1.
Dans le tri à bulles standard, la comparaison se fait entre l’élément de la bulle avec
l’élément suivant. Si l’élément de la bulle est plus grand, alors on fait une permutation,
sinon l’élément suivant devient la bulle.
Dans un tri flou, l’algorithme utilisé comprend une certaine tolérance t. Soit S la
relation d’ordre considérée, si on a S(a , b), on n’assurera que a et b sont dans l’ordre
après le tri que si on à également S(a+t , b).
Afin de rendre l’algorithme du tri à bulles plus rapide, si l’élément après la bulle est
égal à l’élément de la bulle, on augmente la taille de la bulle. (Réf. II.3.Le tri à bulles avec
la taille des bulles variable)
Dans le « tri à bulles gelées », on a combiné la notion de flou et de changement de
taille de la bulle. Donc la comparaison entre l’élément de la bulle et celui qui la suit n’est
plus une égalité. Après connaissance du min (max) des éléments de la bulle, on doit alors
déterminer la valeur la plus petite (grande) autorisée à être insérée en plus dans la bulle.
Cette valeur sera appelée dans l’algorithme l’inf (sup) de la bulle.
inf = Minimum (min+t, max-t)
sup = Maximum (min+t, max-t)
Voici un exemple afin d’illustrer les explications faites plus haut.
t = 2 la bulle éléments triés
min = 3 max = 3 inf = 1 sup = 5
3 11 12 2 15
min = 11 max = 11 inf = 9 sup = 13
3 11 12 2 15
on agrandit la taille de la bulle
min = 11 max = 12 inf = 10 sup = 13
3 11 12 2 15
on permute le 1
er
élément de la bulle avec l’élément suivant
min = 11 max = 12 inf = 10 sup = 13
3 2 12 11 15
min = 11 max = 12 inf = 10 sup = 13
3 2 12 11 15
4
on est arrivé au bout la bulle est exclue pour la suite
min = 3 max = 3 inf = 1 sup = 5
3 2 12 11 15
on agrandit la taille de la bulle
min = 2 max = 3 inf = 1 sup = 4
3 2 12 11 15
min = 12 max = 12 inf = 10 sup = 14
3 2 12 11 15
on agrandit la taille de la bulle
min = 11 max = 12 inf = 10 sup = 13
3 2 12 11 15
on est arrivé au bout la bulle est exclue pour la suite
min = 3 max = 3 inf = 1 sup = 5
3 2 12 11 15
min = 11 max = 12 inf = 10 sup = 13
3 2 12 11 15
on est arrivé au bout et il n’y a plus d’élément fin de l’algo , tableau trié partiellement
min = 11 max = 12 inf = 10 sup = 13
3 2 12 11 15
Fig. 1 Exemple de déroulement de l’algorithme « tri à bulles gelées »
2. Principe des tri à bulles itératif et récursif
a. Principe du tri à bulles gelées itératif
Parcourt d’un conteneur Tab de son premier élément au dernier pas trié. Dans ce
parcours, on compare l’intervalle [inf, sup] (présenté dans le paragraphe précédent) avec
l’élément suivant (elSuiv).
- Si elSuiv dans l’intervalle augmente la taille de la bulle en y ajoutant elSuiv.
- Si elSuiv plus grand que l’intervalle elSuiv constitue à lui seul la bulle.
- Si elSuiv plus petit que l’intervalle elSuiv est permuté avec le 1
er
élément de la bulle.
Une fois la bulle montée à la fin de la partie non triée de Tab, on réitère le procédé sur Tab
moins les bulles déjà triées.
b. Principe du tri à bulles gelées récursif
Le principe est le même que pour la version itérative.
- La fonction récursive est de la forme suivante :
TriBulleGeleeRec (Tab, i, j, permute, TBulle, inf, min, max, sup).
- On appelle initialement la fonction comme suit :
TriBulleGeleeRec (Tab, 0, 1, 0, 0, Tab[0]-t, Tab[0], Tab[0], Tab[0]+t).
- La récursivité se fait sur et i représentant le nombre d’éléments triés à la fin du conteneur
et j représentant la position de l’élément suivant.
1 / 25 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!