La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Information, Communication, Calcul

Présentations similaires


Présentation au sujet: "Information, Communication, Calcul"— Transcription de la présentation:

1 Information, Communication, Calcul
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne fait partie du cours d’introduction à l’information, à la communication, et au calcul. Il est le dernier de 7 videoclips portant sur les notions de calcul et d’information. Information, Communication, Calcul Module 1: Calcul & Information – Leçon 1: Algorithmes – Clip 7: Tri R. Guerraoui, J. Sam, J-C. Chappelier, R. Boulic, commentaire: P. Janson

2 Plan de la leçon Qu’est-ce qu’un algorithme?
Quelles structures existent pour contrôler un algorithme? Quelques grandes familles d’algorithms Recherche Exemple: recherche par dichotomie Comment exprimer complexité d’un algorithme? Tri Plus court chemin Plus spécifiquement il s’intéresse aux algorithmes de tri et mentionne brièvement les algorithmes de calcul d’un plus court chemin.

3 Le problème du tri Le problème du tri est intéressant en tant que tel
mais d’autant plus intéressant qu’il aide les problèmes de recherche Spécification du problème Entrée: un ensemble de données contenant des éléments entre lesquels il existe une relation d’ordre total, c’est-à-dire qui sont tous comparables entre eux Sortie: trier cet ensemble en organisant ses éléments par ordre (croissant ou décroissant) de telle façon que l’ensemble puisse être parcouru de façon itérative, élément par élément - Comme nous l’avons vu, le problème du tri est intéressant dans la mesure où il aide les problèmes de recherche mais il est aussi intéressant en tant que tel. Ce problème attend comme entrée un ensemble de données contenant des éléments entre lesquels il existe une relation d’ordre total, telle qu’ils soient tous comparables entre eux selon un critère d’ordre ou de classement quelconque. En sortie on attend une solution en organisant ses éléments par ordre (croissant ou décroissant) de telle façon que l’ensemble puisse être inspecté ou traité de façon séquentielle, élément par élément.

4 Exemple de problème de tri
Trier l’ensemble donné en une liste ordonnée NB Le tri ne supprime pas les doublons Un ensemble vide ou réduit à un seul élément est évidemment toujours déjà trié Taxonomie Tri interne = sur place, par échange d’éléments dans l’ensemble original Tri externe = par déplacement des éléments vers dans un nouvel ensemble - A titre d’exemple prenons un ensemble désordonné de nombre entiers {6, 1, 2, 3, 6, 2}. On attend que le tri de cet ensemble le restructure en une liste ordonnée {1, 2, 2, 3, 6, 6}. Notons d’abord que le tri ne supprime pas les éventuels doublons tels que 2 et 6 dans la liste en exemple. Notons ensuite que tout ensemble vide ou limité à un seul élément est évidemment trié a priori. Les algorithmes de tri sont classés en deux catégories: Les algorithmes dits internes trient un ensemble sur place, c’est-à-dire en réordonnant ses éléments au sein de l’ensemble original Les algorithmes dits externes trient un ensemble en en générant un autre dont les éléments sont classés dans l’ordre désiré.

5 Algorithmes de tri Il existe de nombreux algorithmes de tri
Tri par insertion Tri par sélection Tri par fusion Tri par tas Tri à bulles, cailloux, shaker, ou cocktail Tri de Shell Tri rapide etc… Il existe une multitude d’algorithmes de tri plus ou moins efficaces selon la quantité et le degré de désordre des éléments à trier: Algorithmes de tri par insertion, par sélection, par fusion, par tas, à bulles ou cailloux, par shaker ou cocktail, tri de Shell, tri rapide, etc…

6 Comportement relatif des algorithmes de tri
illustre graphiquement le comportement de quelques uns de ces algorithmes sur différents ensembles (désordonné, presque ordonné, inversement ordonné, etc.) offre une visualisation animée de l’algorithme Quicksort Nous vous recommandons vivement de consulter la série d’animations comparatives renseignée ici pour mieux appréhender les différences de technique et comportement de ces algorithmes. Nous vous recommandons aussi vivement de visionner sur YouTube le clip également renseigné ici qui offre une animation doublée d’une explication de l’algorithme de tri rapide.

7 Exemple d’algorithme simple: le tri par insertion
Principe Tout élément mal placé est systématiquement replacé à sa « bonne place » («Elément mal placé » = élément strictement plus petit que son prédécesseur) Pour mieux comprendre en détail le fonctionnement d’un algorithme de tri simple, prenons l’exemple du tri par insertion en ordre croissant. - Son principe est simple: Tout élément «mal placé» est simplement remis «à la bonne place». Encore faut-il savoir ce que l’algorithme entend par «mal placé» et «bonne place». «Mal placé» est à interpréter comme «strictement plus petit que l’élément précédant». En conséquence de quoi, la «bonne place» est à interpréter comme «après un élément plus grand ou égal». En entrée cet algorithme accepte donc, comme tout algorithme de tri, un ensemble d’éléments comparables selon un ordre total mais présentés dans un ordre quelconque. En sortie il produit une liste de ces éléments classés par ordre croissant. Suivant notre langage de description algorithmique vu précédemment nous pouvons exprimer cet algorithme comme «recherchant la bonne place d’un élément et l’y déplaçant tant qu’il reste un ou plusieurs éléments mal placés». Tri insertion croissant entrée: un ensemble d’éléments comparables selon un ordre total sortie: une liste de ces éléments triés par ordre croissant Tant que il existe un élément mal placé on cherche sa bonne place on le déplace à cette place

8 Comportement du tri par insertion
Imaginons que notre algorithme doive trier l’ensemble {1, 3, 5, 2, 4, 6} qui est désordonné (mais sans doublons). 1 3 5 2 4 6

9 Comportement du tri par insertion (1)
Tant que il existe un élément mal placé on cherche sa bonne place on le déplace à cette place Il parcourt l’ensemble à la recherche d’un élément plus petit que son prédécesseur. Ce faisant il va nécessairement tomber sur l’élément 2 rouge qui suit un élément 5. 1 3 5 2 4 6

10 Comportement du tri par insertion (2)
Tant que il existe un élément mal placé on cherche sa bonne place on le déplace à cette place Il parcourt alors à nouveau l’ensemble à la recherche de «la bonne place» du 2, c’est-à-dire celle du 1er élément supérieur à 2, et trouve ainsi l’élément 3 dénoté ici par la flèche verte 1 3 5 2 4 6

11 Comportement du tri par insertion (3)
Tant que il existe un élément mal placé on cherche sa bonne place on le déplace à cette place Il fait alors glisser les éléments 3 et 5 d’une place pour insérer le 2 entre 1 et 3. 1 3 5 2 4 6 1 2 3 5 4 6

12 Comportement du tri par insertion (4)
Tant que il existe un élément mal placé on cherche sa bonne place on le déplace à cette place Il recommence alors sa recherche d’un élément mal placé et trouve cette fois le 4 rouge puisqu’il est précédé d’un 5 supérieur. 1 3 5 2 4 6 1 2 3 5 4 6

13 Comportement du tri par insertion (5)
Tant que il existe un élément mal placé on cherche sa bonne place on le déplace à cette place Il parcourt alors une fois de plus l’ensemble à la recherche de «la bonne place» du 4, c’est-à-dire celle du 1er élément supérieur à 4, En l’occurrence l’élément 5 dénoté ici par la flèche verte. 1 3 5 2 4 6 1 2 3 5 4 6

14 Comportement du tri par insertion (6)
Tant que il existe un élément mal placé on cherche sa bonne place on le déplace à cette place Il fait alors glisser l’élément 5 d’une place pour insérer le 4 entre lui et le 3. Parcourant une fois de plus l’ensemble, l’algorithme s’aperçoit qu’il n’y a plus aucun élément «mal placé». Il s’arrête donc avec succès, renvoyant l’ensemble à présent trié en une liste des éléments rangés par ordre croissant. 1 3 5 2 4 6 1 2 3 5 4 6 1 2 3 4 5 6

15 Complexité et performance des algorithmes de tri
montre de grandes différences de complexité et donc de performance entre différents algorithmes Question pratique A partir de quel taille de N les algorithmes sophistiqués battent-ils les plus simples ? Algorithme Cas optimal Cas moyen Cas pathologique Tri par sélection N2 Tri par insertion N Tri à bulles, cailloux, shaker, cocktail Tri rapide N log N Tri par fusion Tri par tas Nous vous encourageons fortement à consulter l’article Wikipédia renseigné ici pour découvrir un peu plus le sujet des algorithmes de tri et surtout leur complexité et leur performance respective. Comme on peut le constater en haut de cette table qui reprend une partie des informations de Wikipédia, certains algorithmes peuvent être relativement performants dans des cas optimaux de données déjà quasi-triées. Par contre leur complexité et donc leur efficacité se dégrade rapidement dans des cas pathologiques voire simplement moyens. D’autres algorithmes en bas de la table, plus sophistiqués mais aussi plus compliqués à décrire, exhibent une efficacité supérieure (N log N) dans tous les cas. - Une bonne question est: A partir de quelle taille N de données les algorithmes les plus simples sont ils vraiment battus par les plus sophistiqués?

16 Performance des algorithmes de tri en pratique
Dépend de nombreux facteurs En général pour < 100 éléments les tris sophistiqués ne valent pas la peine Le tri par bulles est très simple mais le moins bon en pratique Le tri par insertion est efficace pour des ensembles presque triés Le tri rapide (quick sort) est 2-3x plus rapide que le tri par tas La réponse à cette question dépend de nombreux facteurs, tels que par exemple le degré de désordre de l’ensemble original. - Empiriquement il apparait que les algorithmes les plus simples sont bien suffisants pour des ensembles de données de moins d’une centaine d’éléments. Le tri par bulles est très simple dans ces cas mais sinon à proscrire en pratique. Le tri par insertion est relativement efficace sur des ensembles pratiquement pré-triés. Le tri rapide est en pratique 2 à 3 fois plus efficace que le tri par tas.

17 Le problème du plus court chemin
Le 3e problème le plus fréquent après les problèmes de recherche et de tri NB: « plus court » = « plus rapide » ou « moins cher » selon une quelconque fonction de coût ou de pondération Exemples Chemin le plus rapide entre toutes les gares du réseau CFF(2à2) (voir solution dans les vidéoclips de la prochaine leçon) Plus surprenant: correction d’erreurs de transmission en télécommunication (= codes de convolution) Encore plus surprenant: transcription d’un enregistrement en un texte (= reconnaissance de la parole) Apres les problèmes de recherche et de tri dont nous avons déjà traité, le 3e problème le plus fréquemment rencontré en informatique est celui du calcul d’un plus court chemin pour parvenir d’un point à un autre au sens le plus large. Dans ce contexte «plus court» peut vouloir dire «plus rapide», «moins cher», ou tout autre optimum selon une quelconque métrique ou fonction de pondération. - A titre d’exemple un problème concret de ce type est le calcul du chemin optimal entre deux quelconques gares du réseau des CFF. Déjà ici «optimal» peut signifier plus court en km, plus rapide en temps, ou moins cher en Frs. Nous étudierons ce problème plus en détail dans les videoclips de la leçon suivante. De façon plus surprenante, la corrections d’erreurs lors d’une télécommunication électronique est en fait aussi un problème de plus court chemin – la recherche d’une correction minimale, c’est-à-dire d’un message corrigé potentiel qui soit aussi proche que possible du message reçu de façon erronée. De la même façon la reconnaissance vocale d’un message oral et sa transcription textuelle sont aussi un problème de plus court chemin – la recherche du texte écrit significatif au sens grammatical et sémantique le plus proche possible des sons perçus.

18 Résumé sur les algorithmes
Nous avons … appris ce qu’est un algorithme et ses principaux constituants appris à mesurer la complexité d’un algorithme pour comparer son efficacité relative à d’autres vu trois familles de problèmes typiques en informatique (recherche, tri, plus court chemin) vu combien algorithme et structure des données sont liés Recherche linéaire dans une liste non-ordonnée vs. recherche dichotomique dans une liste ordonnée ☞Nous pouvons maintenant … décrire les problèmes de base de l’informatique (recherche, tri, plus court chemin) construire des algorithmes simples pour des problèmes simples typiques calculer la complexité d’algorithmes simples Au cours des 7 videoclips de cette leçon, nous avons donc … - … acquis une première idée de ce que sont les algorithmes et de ce qui les compose; … appris à mesurer la complexité d’un algorithme pour comparer son efficacité à celles d’autres algorithmes fonctionnellement équivalents; vu les trois familles principales de problèmes typiques en informatique (recherche, tri, plus court chemin); vu comment algorithmes et structures de données sont liés dans la mesure où par exemple une liste ordonnée facilite une recherche linéaire par rapport à une recherche par dichotomie dans une liste ordonnée. Ces acquis nous permettent … d’apprehender les problèmes de base de l’informatique tels que recherche, tri, et calcul du plus court chemin); … de concevoir des algorithmes simples pour des problèmes simples typiques; … et d’estimer la complexité relative de tels algorithmes.

19 Perspective La prochaine leçon va …
Discuter des stratégies de conception d’algorithmes => Comment concevoir un algorithme pour un problème complexe? S’étendre sur le sujet des algorithmes du plus court chemin Les videoclips de la prochaine leçon vont aborder le problème de la conception d’algorithmes propres à résoudre des problèmes donnés. - Ils approcheront aussi de plus près le problème du calcul des plus courts chemins.


Télécharger ppt "Information, Communication, Calcul"

Présentations similaires


Annonces Google