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

Cours d'algorithmique 1 - Intranet 1 6 novembre 2006 Cours dAlgorithmique Marc Gengler Alexandra Bac - Henry Kanoui - Alain.

Présentations similaires


Présentation au sujet: "Cours d'algorithmique 1 - Intranet 1 6 novembre 2006 Cours dAlgorithmique Marc Gengler Alexandra Bac - Henry Kanoui - Alain."— Transcription de la présentation:

1 Cours d'algorithmique 1 - Intranet 1 6 novembre 2006 Cours dAlgorithmique Marc Gengler Alexandra Bac - Henry Kanoui - Alain Samuel 24h de cours 24h de TD des devoirs un projet … et un examen

2 6 novembre 2006Cours d'algorithmique 1 - Intranet2 Trier et chercher Trier et chercher Listes et arbres Listes et arbres Le back-track Le back-track Arbres équilibrés Arbres équilibrés Récursivité et induction sur la structure Récursivité et induction sur la structure Divide and conquer Divide and conquer Minimax Minimax Dérécursion Dérécursion Divers problèmes particuliers Divers problèmes particuliers Logique de Hoare Logique de Hoare Programmation dynamique Programmation dynamique Complexité et calculabilité Complexité et calculabilité Les grandes lignes du cours

3 6 novembre 2006Cours d'algorithmique 1 - Intranet3 Bibliographie Tout ce qui contient Tout ce qui contient – algorithmes, algorithms. Internet Internet – souvent, cest très (trop) simplifié, – et pas toujours correct. Mes choix Mes choix – Introduction to Algorithms, Leiserson et al. – Algorithms, Sedgewick. – Fundamental Algorithms, Knuth. – des anciens cours ;-) Dautres choix Dautres choix – Introduction à lalgorithmique, Leiserson et al. chez Dunod. chez Dunod. – Initiation à lalgorithmique et aux structures de données, Courtin et Kowarski.

4 6 novembre 2006Cours d'algorithmique 1 - Intranet4 Al Khwarizmi Célèbre mathématicien à Bagdad, Célèbre mathématicien à Bagdad, vers vers « Kitâb al-jabr wa al-muqâbala ». Livre sur la science de la transposition et de la réduction : résolution systématique de léquation du second degré. « Kitâb al-jabr wa al-muqâbala ». Livre sur la science de la transposition et de la réduction : résolution systématique de léquation du second degré. Traduit en latin au 12 e siècle par Gherardo di Cremona sous le titre « Dixit Algorismi ». Traduit en latin au 12 e siècle par Gherardo di Cremona sous le titre « Dixit Algorismi ». Aussi : « Kitâb al Jami wa al Tafriq bi Hisab al Hind ». Livre de l'addition et de la soustraction d'après le calcul des indiens. Aussi : « Kitâb al Jami wa al Tafriq bi Hisab al Hind ». Livre de l'addition et de la soustraction d'après le calcul des indiens. http ://trucsmaths.free.fr/alkhwarizmi.htm http ://trucsmaths.free.fr/alkhwarizmi.htm

5 6 novembre 2006Cours d'algorithmique 1 - Intranet5 Al Khwarizmi 16 + X^2 + 8 * X = X^2 2 * X 4 ( X + 4 )^2 = 7^2

6 6 novembre 2006Cours d'algorithmique 1 - Intranet6 Les tris sur tableaux Tableau dentrées 0 à n-1. Tableau dentrées 0 à n-1. Entiers naturels, mais nimporte quel ensemble ordonné peut convenir. Entiers naturels, mais nimporte quel ensemble ordonné peut convenir. Les répétitions sont possibles. Les répétitions sont possibles. Les hypothèses : Le but : Ordonner le tableau par valeurs non décroissantes. Ordonner le tableau par valeurs non décroissantes.

7 6 novembre 2006Cours d'algorithmique 1 - Intranet7 Les tris sur tableaux En général, lordre est imposé par le monde extérieur. En général, lordre est imposé par le monde extérieur. Je peux trier des personnes : Je peux trier des personnes : – daprès lâge, – daprès le poids, – daprès la taille, – daprès lordre lexicographique des patronymes, –... Quelle relation dordre ?

8 6 novembre 2006Cours d'algorithmique 1 - Intranet8 Les tris sur tableaux Situation initiale Valeurs … n-1

9 6 novembre 2006Cours d'algorithmique 1 - Intranet9 Les tris sur tableaux Situation finale Valeurs … n-1

10 6 novembre 2006Cours d'algorithmique 1 - Intranet10 Les tris sur tableaux Tri par échange --- situation intermédiaire Valeurs … n-1 Triées Non triées et plus grandes i-1

11 6 novembre 2006Cours d'algorithmique 1 - Intranet11 Les tris sur tableaux Tri par échange - suite Les entrées de 0 à i-1 sont triées. Les entrées de 0 à i-1 sont triées. Elles sont plus petites que les entrées suivantes. Elles sont plus petites que les entrées suivantes. Les entrées à partir de lindice i ne sont pas triées. Les entrées à partir de lindice i ne sont pas triées. Les hypothèses : A faire pour mettre en place lentrée i : Chercher lindice j du minimum à partir de i. Chercher lindice j du minimum à partir de i. Echanger les éléments i et j. Echanger les éléments i et j.

12 6 novembre 2006Cours d'algorithmique 1 - Intranet12 Les tris sur tableaux Tri par échange --- situation intermédiaire Valeurs … n-1 Triées Non triées et plus grandes i j

13 6 novembre 2006Cours d'algorithmique 1 - Intranet13 Les tris sur tableaux Tri par échange --- situation intermédiaire Valeurs … n-1 Triées Non triées et plus grandes i j

14 6 novembre 2006Cours d'algorithmique 1 - Intranet14 Les tris sur tableaux Tri par échange --- propriété invariante Nous avions une certaine situation sur lintervalle [ 0.. i-1 ] : Nous avions une certaine situation sur lintervalle [ 0.. i-1 ] : – les éléments jusquà i-1 sont triés, – ceux qui suivent sont plus grands, mais pas triés. Nous retrouvons la même situation sur lintervalle [ 0.. i ] : Nous retrouvons la même situation sur lintervalle [ 0.. i ] : – les éléments jusquà i sont triés, – ceux qui suivent sont plus grands, mais pas triés. Cette propriété est donc invariante avec i, on lappelle Cette propriété est donc invariante avec i, on lappelle

15 6 novembre 2006Cours d'algorithmique 1 - Intranet15 Les tris sur tableaux Tri par échange --- le code for ( i=0 ; i

16 6 novembre 2006Cours d'algorithmique 1 - Intranet16 Les tris sur tableaux Tri par échange --- la complexité Ont fait n-1 fois, pour i de 0 à n-2 : Ont fait n-1 fois, pour i de 0 à n-2 : Un parcours de [i..n-1]. Un parcours de [i..n-1]. Il y a donc un nombre de lectures qui vaut : Il y a donc un nombre de lectures qui vaut : (n-i) = 0 (n^2) (n-i) = 0 (n^2)i=0..n-2 Tri en complexité quadratique.

17 6 novembre 2006Cours d'algorithmique 1 - Intranet17 Les tris sur tableaux Tri par insertion --- situation intermédiaire Valeurs … n-1 Triées Non triées et quelconques i-1

18 6 novembre 2006Cours d'algorithmique 1 - Intranet18 Les tris sur tableaux Tri par insertion - suite Les entrées de 0 à i-1 sont triées. Les entrées de 0 à i-1 sont triées. Elles sont plus petites que les entrées suivantes. Elles sont plus petites que les entrées suivantes. Les entrées à partir de lindice i ne sont pas triées. Les entrées à partir de lindice i ne sont pas triées. Les hypothèses : A faire pour mettre en place lentrée i : Si elle est plus grande que les précédentes : RIEN ! Si elle est plus grande que les précédentes : RIEN ! Si elle est plus petite que certaines précédentes : linsérer plus à gauche en décalant dautres entrées. Si elle est plus petite que certaines précédentes : linsérer plus à gauche en décalant dautres entrées. ////////////////////////////////////////////

19 6 novembre 2006Cours d'algorithmique 1 - Intranet19 Les tris sur tableaux Tri par insertion --- situation intermédiaire Valeurs … n-1 Triées i-1 Plus grande : Rien à faire ! Non triées et quelconques

20 6 novembre 2006Cours d'algorithmique 1 - Intranet20 Les tris sur tableaux Tri par insertion --- situation intermédiaire Valeurs … n-1 Triées i-1 Non triées et quelconques Plus petit : Linsérer à gauche.

21 6 novembre 2006Cours d'algorithmique 1 - Intranet21 Les tris sur tableaux Tri par insertion --- situation intermédiaire Vous avez vu quil y a à nouveau un INVARIANT ? Vous avez vu quil y a à nouveau un INVARIANT ? Lequel est-ce ?????????????????? Lequel est-ce ?????????????????? Les éléments déjà traités sont triés, Les éléments déjà traités sont triés, les autres sont dans le désordre et sans rapport particulier (ni plus grands, ni plus petits) aux premiers. les autres sont dans le désordre et sans rapport particulier (ni plus grands, ni plus petits) aux premiers.

22 6 novembre 2006Cours d'algorithmique 1 - Intranet22 Les tris sur tableaux Tri par insertion --- le code for ( i=1 ; i0 && cont ) {if ( t[j] < t[j-1] ) echange(t, j-1, j); else cont = 0; j--; } }

23 6 novembre 2006Cours d'algorithmique 1 - Intranet23 Les tris sur tableaux Tri par insertion --- la complexité Ont fait n-1 fois, pour i de 1 à n-1 : Ont fait n-1 fois, pour i de 1 à n-1 : Jusquà i échanges au maximum (peut-être moins). Jusquà i échanges au maximum (peut-être moins). Le nombre déchanges peut donc atteindre : Le nombre déchanges peut donc atteindre : i = 0 (n^2) i = 0 (n^2)i=1..n-1 Tri en complexité quadratique.

24 6 novembre 2006Cours d'algorithmique 1 - Intranet24 Les tris sur tableaux Tri bulle Valeurs … n-1 Situationnormale Situation anormale : Une bulle

25 6 novembre 2006Cours d'algorithmique 1 - Intranet25 Les tris sur tableaux Tri bulle : on échange lordre dans la bulle Valeurs … n-1 Situationnormale La bulle a disparu par échange

26 6 novembre 2006Cours d'algorithmique 1 - Intranet26 Les tris sur tableaux Tri bulle : évolution des bulles Valeurs … n-1 Régions qui peuvent être ignorées lors du prochain passage.

27 6 novembre 2006Cours d'algorithmique 1 - Intranet27 Les tris sur tableaux Tri bulle - principe des algorithmes Tant quil y a des bulles, Tant quil y a des bulles, on en choisit une et on la fait monter. on en choisit une et on la fait monter. Lidée : De nombreuses optimisations : Suivre une bulle et la faire monter aussi haut que possible. Suivre une bulle et la faire monter aussi haut que possible. Si au dernier passage la première bulle était ( i, i+1 ), il ne peut y avoir de bulle avant ( i-1, i ) au passage courant. Si au dernier passage la première bulle était ( i, i+1 ), il ne peut y avoir de bulle avant ( i-1, i ) au passage courant. Faire alternativement monter et descendre des bulles. Faire alternativement monter et descendre des bulles. … et puis dautres trucs ! … et puis dautres trucs !

28 6 novembre 2006Cours d'algorithmique 1 - Intranet28 Les tris sur tableaux Tri bulle - complexité Le tri bulle a une complexité quadratique, car il existe des instances pour lesquels il faut 0 (n^2) échanges. Le tri bulle a une complexité quadratique, car il existe des instances pour lesquels il faut 0 (n^2) échanges. Par contre, pour de nombreuses instances, le nombre des échanges est bien plus petit. Par contre, pour de nombreuses instances, le nombre des échanges est bien plus petit. Le tri bulle est bien adapté, comme dautres tris, pour rétablir lordre dans un tableau presque trié (léger désordre produit par quelques insertions déléments par exemple). Le tri bulle est bien adapté, comme dautres tris, pour rétablir lordre dans un tableau presque trié (léger désordre produit par quelques insertions déléments par exemple).

29 6 novembre 2006Cours d'algorithmique 1 - Intranet29 Les tris sur tableaux Différentes notions de complexité Complexité du meilleur cas : Complexité du meilleur cas : – inintéressante, car ce nest pas le cas typique. Complexité du cas moyen : Complexité du cas moyen : – intéressante, mais difficile à établir, – est-ce que mes instances du problème sont dans la moyenne ? Complexité du pire cas : Complexité du pire cas : – donne une limite supérieure pour le nombre dopérations, – celle-ci peut être atypique, – souvent assez facile à calculer, – mais, cest la COMPLEXITE utilisée PAR DEFAUT.

30 6 novembre 2006Cours d'algorithmique 1 - Intranet30 Les tris sur tableaux Principe du tri par fusion Couper le tableau en deux (mentalement et de façon non violente), Couper le tableau en deux (mentalement et de façon non violente), trier récursivement chaque partie trier récursivement chaque partie et fusionner les deux parties triées (cf. cours dIntroduction à la programmation). et fusionner les deux parties triées (cf. cours dIntroduction à la programmation).

31 6 novembre 2006Cours d'algorithmique 1 - Intranet31 Les tris sur tableaux Principe du tri par fusion Tri récursif des deux moitiés. Fusion des deux suites.

32 6 novembre 2006Cours d'algorithmique 1 - Intranet32 Les tris sur tableaux Complexité du tri par fusion Soit f(n) la fonction de complexité pour trier n éléments. Soit f(n) la fonction de complexité pour trier n éléments. Le découpage se fait en temps constant ou 0( n ), sil y a copie. Le découpage se fait en temps constant ou 0( n ), sil y a copie. Les deux appels récursifs nécessitent 2 * f( n/2 ). Les deux appels récursifs nécessitent 2 * f( n/2 ). La fusion se fait en 0( n ). La fusion se fait en 0( n ). Donc f(n) = 0(n) + 2 * f(n/2) Donc f(n) = 0(n) + 2 * f(n/2) = 0(n) + 2 * ( 0(n/2) + 2 * f(n/4) ) = 0(n) + 2 * ( 0(n/2) + 2 * f(n/4) ) = 2 * 0(n) + 2^2 * f(n/2^2) = 2 * 0(n) + 2^2 * f(n/2^2) = 3 * 0(n) + 2^3 * f(n/(2^3)) = 3 * 0(n) + 2^3 * f(n/(2^3)) = k * O(n) + 2^k * f(n/(2^k)) = k * O(n) + 2^k * f(n/(2^k)) = 0(n * log n) + 2^(log n) * f(n/(2^(log n))) = 0(n * log n) + 2^(log n) * f(n/(2^(log n))) = 0(n * log n) car f(n/(2^(log n))) = f(1) = 0 = 0(n * log n) car f(n/(2^(log n))) = f(1) = 0 Tri en complexité n log n.

33 6 novembre 2006Cours d'algorithmique 1 - Intranet33 Recherche dans des tableaux triés On utilise lordre pour On utilise lordre pour – anticiper labandon dans une recherche linéaire, – guider la recherche : recherche par dichotomie. petit grand moyen 0 n-1(n-1)/2 X X < moyen Oui ! Chercher X dans [ 0.. (n-1)/2- 1 ] Non ! Chercher X dans [ (n-1)/2.. n-1 ]

34 6 novembre 2006Cours d'algorithmique 1 - Intranet34 Recherche dans des tableaux triés Recherche par dichotomie - complexité 1 test -> n/2 éléments. 1 test -> n/2 éléments. 2 tests -> n/4 éléments. 2 tests -> n/4 éléments. 0( log n) tests -> 1 élément. 0( log n) tests -> 1 élément. Est-ce bien lui ? Donc un test en plus. Est-ce bien lui ? Donc un test en plus. Il existe des arguments théoriques (théorie de linformation) qui montrent que lon ne peut pas faire mieux. Il existe des arguments théoriques (théorie de linformation) qui montrent que lon ne peut pas faire mieux.

35 6 novembre 2006Cours d'algorithmique 1 - Intranet35 Recherche dans des tableaux triés d = 0; f = n-1; While ( d < f ) if ( d == f-1 ) if ( x == t[d] ) f = d; else d = f; else {m = (d+f)/2; if ( x < t[m] ) f = m-1; else d = m; } Return ( x == t[d] ); Résultat. Cas général. Intervalle de 2 éléments. Initialisation.

36 6 novembre 2006Cours d'algorithmique 1 - Intranet36 Recherche dans des tableaux triés Di-chotomie - Tri-chotomie - etc. Di-chotomie : Di-chotomie : – 1 test -> 2 intervalles de n/2 éléments. – Donc, 1 * log_2 (n) + 1 tests. Tri-chotomie : Tri-chotomie : – 2 tests -> 3 intervalles de n/3 éléments. – Donc, 2 * log_3(n) + 1 tests. K-chotomie : K-chotomie : – k-1 tests -> k intervalles de n/k éléments. – Donc, (k-1) * log_k(n) + 1 tests. Optimal si k = 2 ! ! !

37 6 novembre 2006Cours d'algorithmique 1 - Intranet37 Soyons critiques ! Tableau trié : Tableau trié : – Recherche efficace – Recherche efficace – Insertions et suppressions pénibles – Insertions et suppressions pénibles Liste triée : Liste triée : – Insertions et suppressions efficaces – Insertions et suppressions efficaces – Recherche pénible – Recherche pénible Hashage sur tableaux & arbres de recherche équilibrés : Hashage sur tableaux & arbres de recherche équilibrés : – Toutes les opérations sont efficaces – Toutes les opérations sont efficaces

38 6 novembre 2006Cours d'algorithmique 1 - Intranet38 Hashage H : Eléments à stocker Indices dun tableau INSEE(Marc Gengler) … … MG Attention, certaines cases du tableau contiennent des valeurs alors que dautres sont vides.

39 6 novembre 2006Cours d'algorithmique 1 - Intranet39 Hashage Parfait, si H est injective Parfait, si H est injective – Si H(x) = H(y) alors x = y. Souvent, H ne lest pas : Souvent, H ne lest pas : – x = y mais H(x) = H(y) - il y a donc collision ! – Il y a différentes manières de gérer les collisions. /

40 6 novembre 2006Cours d'algorithmique 1 - Intranet40 Hashage Résolution locale des collisions : Résolution locale des collisions : – Petite recherche séquentielle dans une liste chainée. – Prendre la première case libre en séquence dans le tableau. – Et si on peut supprimer des éléments ????? Des éléments qui étaient responsables dune collision viennent à disparaître ! Re-hashage : Re-hashage : – Si H(x) est déjà occupé on calcule H(x) ou H(x+ ), etc. jusquà trouver une place. – Et si on peut supprimer des éléments ?????

41 6 novembre 2006Cours d'algorithmique 1 - Intranet41 Hashage X X Y Y/

42 6 novembre 2006Cours d'algorithmique 1 - Intranet42 Hashage Faits : Faits : – La fonction de hashage doit être « uniforme » : pour des choix au hasard de données d, les indices H( d ) doivent être répartis le plus uniformément possible. – A ce moment, le taux de remplissage donne la proportion des collisions. Coût : Coût : – Coût du calcul de H multiplié par le nombre moyen de collisions (re-hashage). – Coût du calcul de H plus le coût de la recherche dans la liste chainée. – …


Télécharger ppt "Cours d'algorithmique 1 - Intranet 1 6 novembre 2006 Cours dAlgorithmique Marc Gengler Alexandra Bac - Henry Kanoui - Alain."

Présentations similaires


Annonces Google