Rappel d'avant-hier. Margaux Nattaf 1 / 22

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "Rappel d'avant-hier. Margaux Nattaf 1 / 22"

Transcription

1 Rappel d'avant-hier Margaux Nattaf 1 / 22

2 Rappel d'avant-hier Problématique : On cherche à mesurer l'ecacité d'un algorithme (en temps). Margaux Nattaf 1 / 22

3 Rappel d'avant-hier Problématique : On cherche à mesurer l'ecacité d'un algorithme (en temps). Le temps d'exécution est proportionnel au nombre d'opérations élementaires eectués. Margaux Nattaf 1 / 22

4 Rappel d'avant-hier Problématique : On cherche à mesurer l'ecacité d'un algorithme (en temps). Le temps d'exécution est proportionnel au nombre d'opérations élementaires eectués. Nombre d'opérations dépend de la taille de la donnée Margaux Nattaf 1 / 22

5 Rappel d'avant-hier Problématique : On cherche à mesurer l'ecacité d'un algorithme (en temps). Le temps d'exécution est proportionnel au nombre d'opérations élementaires eectués. Nombre d'opérations dépend de la taille de la donnée et de la diculté de l'instance ; Margaux Nattaf 1 / 22

6 Rappel d'avant-hier Problématique : On cherche à mesurer l'ecacité d'un algorithme (en temps). Le temps d'exécution est proportionnel au nombre d'opérations élementaires eectués. Nombre d'opérations dépend de la taille de la donnée et de la diculté de l'instance ; En général, on mesure la complexité asymptotique et dans le pire cas. Margaux Nattaf 1 / 22

7 Programme d'aujourd'hui Règles de réduction pour O(.) Margaux Nattaf 2 / 22

8 Programme d'aujourd'hui Règles de réduction pour O(.) Technique de calcul de complexité Méthode par substitution Théorème Maître Margaux Nattaf 2 / 22

9 Programme d'aujourd'hui Règles de réduction pour O(.) Technique de calcul de complexité Méthode par substitution Théorème Maître Taille de la donnée Margaux Nattaf 2 / 22

10 Programme d'aujourd'hui Règles de réduction pour O(.) Technique de calcul de complexité Méthode par substitution Théorème Maître Taille de la donnée Classes complexité Algorithmes Polynomiaux Algorithmes Exponnentiels Margaux Nattaf 2 / 22

11 Règles de calculs : combinaisons des complexités Les instructions de base prennent un temps constant, noté O(1) ; Margaux Nattaf 3 / 22

12 Règles de calculs : combinaisons des complexités Les instructions de base prennent un temps constant, noté O(1) ; On additionne les complexités d'opérations en séquence : O(f 1 (n)) + O(f 2 (n)) = O(f 1 (n) + f 2 (n)) Margaux Nattaf 3 / 22

13 Règles de calculs : combinaisons des complexités Les instructions de base prennent un temps constant, noté O(1) ; On additionne les complexités d'opérations en séquence : O(f 1 (n)) + O(f 2 (n)) = O(f 1 (n) + f 2 (n)) Même chose pour les branchements conditionnels : Margaux Nattaf 3 / 22

14 Règles de calculs : combinaisons des complexités Les instructions de base prennent un temps constant, noté O(1) ; On additionne les complexités d'opérations en séquence : O(f 1 (n)) + O(f 2 (n)) = O(f 1 (n) + f 2 (n)) Même chose pour les branchements conditionnels : Exemple si <condition> alors #instructions (1); sinon #instructions (2) ; n Margaux Nattaf 3 / 22

15 Règles de calculs : combinaisons des complexités Les instructions de base prennent un temps constant, noté O(1) ; On additionne les complexités d'opérations en séquence : O(f 1 (n)) + O(f 2 (n)) = O(f 1 (n) + f 2 (n)) Même chose pour les branchements conditionnels : Exemple si <condition> alors #instructions (1); sinon #instructions (2) ; n O(g(n)) Margaux Nattaf 3 / 22

16 Règles de calculs : combinaisons des complexités Les instructions de base prennent un temps constant, noté O(1) ; On additionne les complexités d'opérations en séquence : O(f 1 (n)) + O(f 2 (n)) = O(f 1 (n) + f 2 (n)) Même chose pour les branchements conditionnels : Exemple si <condition> alors #instructions (1); sinon #instructions (2) ; n O(g(n)) O(f 1 (n)) Margaux Nattaf 3 / 22

17 Règles de calculs : combinaisons des complexités Les instructions de base prennent un temps constant, noté O(1) ; On additionne les complexités d'opérations en séquence : O(f 1 (n)) + O(f 2 (n)) = O(f 1 (n) + f 2 (n)) Même chose pour les branchements conditionnels : Exemple si <condition> alors #instructions (1); sinon #instructions (2) ; n O(g(n)) O(f 1 (n)) O(f 2 (n)) Margaux Nattaf 3 / 22

18 Règles de calculs : combinaisons des complexités Les instructions de base prennent un temps constant, noté O(1) ; On additionne les complexités d'opérations en séquence : O(f 1 (n)) + O(f 2 (n)) = O(f 1 (n) + f 2 (n)) Même chose pour les branchements conditionnels : Exemple si <condition> alors #instructions (1); sinon #instructions (2) ; n O(g(n)) O(f 1 (n)) O(f 2 (n)) = O(g(n) + f 1 (n) + f 2 (n)) Margaux Nattaf 3 / 22

19 Règles de calculs : combinaison des complexité Dans les boucles, on multiplie la complexité du corps de la boucle par le nombre d'itérations ; Margaux Nattaf 4 / 22

20 Règles de calculs : combinaison des complexité Dans les boucles, on multiplie la complexité du corps de la boucle par le nombre d'itérations ; La complexité d'une boucle while se calcul comme suit : Exemple en supposant qu'on a m itérations tant que <condition> faire #instructions ; n O(g(n)) O(f (n)) } = O(m (g(n) + f (n))) Margaux Nattaf 4 / 22

21 Règles de calculs : combinaison des complexité Dans les boucles, on multiplie la complexité du corps de la boucle par le nombre d'itérations ; La complexité d'une boucle for se calcul comme suit : Exemple pour i allant de a à b faire #instructions ; n O(f (n)) } = O((b a + 1) f (n)) Margaux Nattaf 4 / 22

22 Calcul de la complexité asymptotique d'un algorithme Pour calculer la complexité d'un algorithme : Margaux Nattaf 5 / 22

23 Calcul de la complexité asymptotique d'un algorithme Pour calculer la complexité d'un algorithme : 1 on calcule la complexité de chaque partie de l'algorithme ; Margaux Nattaf 5 / 22

24 Calcul de la complexité asymptotique d'un algorithme Pour calculer la complexité d'un algorithme : 1 on calcule la complexité de chaque partie de l'algorithme ; 2 on combine ces complexités conformément aux règles qu'on vient de voir ; Margaux Nattaf 5 / 22

25 Calcul de la complexité asymptotique d'un algorithme Pour calculer la complexité d'un algorithme : 1 on calcule la complexité de chaque partie de l'algorithme ; 2 on combine ces complexités conformément aux règles qu'on vient de voir ; 3 on simplie le résultat grâce aux règles de simplications qu'on a vues ; élimination des constantes, et conservation du (des) termes dominants Margaux Nattaf 5 / 22

26 Exemple : calcul de la factorielle de n N Reprenons le calcul de la factorielle, qui nécessitait n opérations : Algorithme : Factorielle(n) Données : un entier n Résultat : un entier valant n! 1 fact, i : entier; 2 début 3 fact := 2; 4 pour i allant de 3 à n faire 5 fact = fact i; 6 n 7 retourner fact; 8 n Margaux Nattaf 6 / 22

27 Exemple : calcul de la factorielle de n N Reprenons le calcul de la factorielle, qui nécessitait n opérations : Algorithme : Factorielle(n) Données : un entier n Résultat : un entier valant n! 1 fact, i : entier; 2 début 3 fact := 2; 4 pour i allant de 3 à n faire 5 fact = fact i; 6 n 7 retourner fact; 8 n L3 initialisation : O(1) Margaux Nattaf 6 / 22

28 Exemple : calcul de la factorielle de n N Reprenons le calcul de la factorielle, qui nécessitait n opérations : Algorithme : Factorielle(n) Données : un entier n Résultat : un entier valant n! 1 fact, i : entier; 2 début 3 fact := 2; 4 pour i allant de 3 à n faire 5 fact = fact i; 6 n 7 retourner fact; 8 n L3 L4 initialisation : O(1) itérations : O(n) Margaux Nattaf 6 / 22

29 Exemple : calcul de la factorielle de n N Reprenons le calcul de la factorielle, qui nécessitait n opérations : Algorithme : Factorielle(n) Données : un entier n Résultat : un entier valant n! 1 fact, i : entier; 2 début 3 fact := 2; 4 pour i allant de 3 à n faire 5 fact = fact i; 6 n 7 retourner fact; 8 n L3 L4 L5 initialisation : O(1) itérations : O(n) multiplication + aectation : O(1) Margaux Nattaf 6 / 22

30 Exemple : calcul de la factorielle de n N Reprenons le calcul de la factorielle, qui nécessitait n opérations : Algorithme : Factorielle(n) Données : un entier n Résultat : un entier valant n! 1 fact, i : entier; 2 début 3 fact := 2; 4 pour i allant de 3 à n faire 5 fact = fact i; 6 n 7 retourner fact; 8 n L3 L4 L5 L7 initialisation : O(1) itérations : O(n) multiplication + aectation : O(1) O(1) Margaux Nattaf 6 / 22

31 Exemple : calcul de la factorielle de n N Reprenons le calcul de la factorielle, qui nécessitait n opérations : Algorithme : Factorielle(n) Données : un entier n Résultat : un entier valant n! 1 fact, i : entier; 2 début 3 fact := 2; 4 pour i allant de 3 à n faire 5 fact = fact i; 6 n 7 retourner fact; 8 n L3 L4 L5 L7 initialisation : O(1) itérations : O(n) multiplication + aectation : O(1) O(1) Nombre total d'opérations : O(1) + O(n) O(1) + O(1) = O(n) Margaux Nattaf 6 / 22

32 Récurrences Algorithme : TriFusion(T) Données : un tableau T Résultat : le tableau T trié mil : entier; début si T 1 alors retourner T ; n sinon T +1 milieu := ; 2 retourner Fusion(T [1..mil], T [mil.. T ]); n n Margaux Nattaf 7 / 22

33 Récurrences Algorithme : TriFusion(T) Données : un tableau T Résultat : le tableau T trié mil : entier; début si T 1 alors retourner T ; n sinon T +1 milieu := ; 2 retourner Fusion(T [1..mil], T [mil.. T ]); n n Algorithme : Fusion(T1,T2) Données : deux tableaux T 1 et T 2 Résultat : un tableau T trié contenant les éléments de T 1 et de T 2 T : tableau de taille T 1 + T 2; début si T 1 = 0 alors T = T 2; sinon si T 2 = 0 alors T = T 1; sinon si T 1[1] < T 2[1] alors T [1] = T 1[1]; T [2.. T ] = Fusion(T 1[2.. T 1, T 2[1.. T 2 ]); sinon T [1] = T 2[1]; T [2.. T ] = Fusion(T 1[1.. T 1, T 2[2.. T 2 ]); n retourner T n Margaux Nattaf 7 / 22

34 Illustration du Tri Fusion Margaux Nattaf 8 / 22

35 Récurrences Temps d'exécution T dans le pire des cas du tri fusion pour trier un tableau de n entiers Margaux Nattaf 9 / 22

36 Récurrences Temps d'exécution T dans le pire des cas du tri fusion pour trier un tableau de n entiers T (n) = { Θ(1) si n = 1 2T (n/2) + Θ(n) si n > 1 Margaux Nattaf 9 / 22

37 Récurrences Temps d'exécution T dans le pire des cas du tri fusion pour trier un tableau de n entiers T (n) = { Θ(1) si n = 1 2T (n/2) + Θ(n) si n > 1 Complexité du tri fusion : T (n) = Θ(n log n) Margaux Nattaf 9 / 22

38 Récurrences Temps d'exécution T dans le pire des cas du tri fusion pour trier un tableau de n entiers T (n) = { Θ(1) si n = 1 2T (n/2) + Θ(n) si n > 1 Complexité du tri fusion : T (n) = Θ(n log n) Comment passer de l'un à l'autre? Méthode par substitution Méthode générale (théorème maître) Margaux Nattaf 9 / 22

39 Méthode par substitution Il faut avoir une intuition sur la forme de la solution (ici : O(n log n)) Margaux Nattaf 10 / 22

40 Méthode par substitution Il faut avoir une intuition sur la forme de la solution (ici : O(n log n)) Permet de borner une récurrence soit par excès, soit par défaut (par en haut ou par en bas) Margaux Nattaf 10 / 22

41 Méthode par substitution Il faut avoir une intuition sur la forme de la solution (ici : O(n log n)) Permet de borner une récurrence soit par excès, soit par défaut (par en haut ou par en bas) On va montrer qu'il existe c > 0 t.q. T (n) = 2T ( n/2 ) + n cn log n Margaux Nattaf 10 / 22

42 Méthode par substitution Il faut avoir une intuition sur la forme de la solution (ici : O(n log n)) Permet de borner une récurrence soit par excès, soit par défaut (par en haut ou par en bas) On va montrer qu'il existe c > 0 t.q. T (n) = 2T ( n/2 ) + n cn log n On procède par induction ( récurrence) Margaux Nattaf 10 / 22

43 Méthode par substitution (I) T (n) = 2T ( n/2 ) + n cn log n Il faut montrer que la formule est vraie pour les conditions limites de la récurrence pour des données de petite taille, i.e. n = 1 ou 2 en générale Margaux Nattaf 11 / 22

44 Méthode par substitution (I) T (n) = 2T ( n/2 ) + n cn log n Il faut montrer que la formule est vraie pour les conditions limites de la récurrence pour des données de petite taille, i.e. n = 1 ou 2 en générale Problème : c'est faux pour n = 1 car c1 log 1 = 0 ne peut être < T (1) ; Margaux Nattaf 11 / 22

45 Méthode par substitution (I) T (n) = 2T ( n/2 ) + n cn log n Il faut montrer que la formule est vraie pour les conditions limites de la récurrence pour des données de petite taille, i.e. n = 1 ou 2 en générale Problème : c'est faux pour n = 1 car c1 log 1 = 0 ne peut être < T (1) ; Mais on cherche à montrer la complexité pour des tailles supérieures ou égale n 0 pour de grande valeur de n... Margaux Nattaf 11 / 22

46 Méthode par substitution (I) T (n) = 2T ( n/2 ) + n cn log n Il faut montrer que la formule est vraie pour les conditions limites de la récurrence pour des données de petite taille, i.e. n = 1 ou 2 en générale Problème : c'est faux pour n = 1 car c1 log 1 = 0 ne peut être < T (1) ; Mais on cherche à montrer la complexité pour des tailles supérieures ou égale n 0 pour de grande valeur de n... On utilise n 0 = 2 et on vérie que la formule tient pour T (2) et T (3) (car ce sont les deux valeurs qui dépendent de T (1)). Margaux Nattaf 11 / 22

47 Méthode par substitution (II) T (n) = 2T ( n/2 ) + n cn log n On vérie que la formule tient pour T (2) et T (3) Margaux Nattaf 12 / 22

48 Méthode par substitution (II) T (n) = 2T ( n/2 ) + n cn log n On vérie que la formule tient pour T (2) et T (3) T (2) = 2T ( 2/2 ) + 2 Margaux Nattaf 12 / 22

49 Méthode par substitution (II) T (n) = 2T ( n/2 ) + n cn log n On vérie que la formule tient pour T (2) et T (3) T (2) = 2T ( 2/2 ) + 2 T (2) = 2T (1) + 2 Margaux Nattaf 12 / 22

50 Méthode par substitution (II) T (n) = 2T ( n/2 ) + n cn log n On vérie que la formule tient pour T (2) et T (3) T (2) = 2T ( 2/2 ) + 2 T (2) = 2T (1) + 2 T (2) = = 1 2c log 2 = 2c Margaux Nattaf 12 / 22

51 Méthode par substitution (II) T (n) = 2T ( n/2 ) + n cn log n On vérie que la formule tient pour T (2) et T (3) T (2) = 2T ( 2/2 ) + 2 T (2) = 2T (1) + 2 T (2) = = 1 2c log 2 = 2c T (2) = 1 2c log 2 = 2c Margaux Nattaf 12 / 22

52 Méthode par substitution (II) T (n) = 2T ( n/2 ) + n cn log n On vérie que la formule tient pour T (2) et T (3) T (2) = 2T ( 2/2 ) + 2 T (2) = 2T (1) + 2 T (2) = = 1 2c log 2 = 2c T (2) = 1 2c log 2 = 2c On fait la même chose pour T (3)... Margaux Nattaf 12 / 22

53 Méthode par substitution (II) T (n) = 2T ( n/2 ) + n cn log n On vérie que la formule tient pour T (2) et T (3) T (2) = 2T ( 2/2 ) + 2 T (2) = 2T (1) + 2 T (2) = = 1 2c log 2 = 2c T (2) = 1 2c log 2 = 2c On fait la même chose pour T (3) et on obtient que c doit être 2. Margaux Nattaf 12 / 22

54 Méthode par substitution (III) T (n) = 2T ( n/2 ) + n cn log n On suppose maintenant que c'est vrai pour T ( n/2 ) T ( n/2 ) c n/2 log n/2 Margaux Nattaf 13 / 22

55 Méthode par substitution (III) T (n) = 2T ( n/2 ) + n cn log n On suppose maintenant que c'est vrai pour T ( n/2 ) T ( n/2 ) c n/2 log n/2 On substitue dans l'expression T (n) = 2T ( n/2 ) + n Margaux Nattaf 13 / 22

56 Méthode par substitution (III) T (n) = 2T ( n/2 ) + n cn log n On suppose maintenant que c'est vrai pour T ( n/2 ) On substitue dans l'expression T ( n/2 ) c n/2 log n/2 T (n) = 2T ( n/2 ) + n 2c n log( n ) n Margaux Nattaf 13 / 22

57 Méthode par substitution (III) T (n) = 2T ( n/2 ) + n cn log n On suppose maintenant que c'est vrai pour T ( n/2 ) T ( n/2 ) c n/2 log n/2 On substitue dans l'expression T (n) = 2T ( n/2 ) + n 2c n log( n ) n cn log(n/2) + n Margaux Nattaf 13 / 22

58 Méthode par substitution (III) T (n) = 2T ( n/2 ) + n cn log n On suppose maintenant que c'est vrai pour T ( n/2 ) T ( n/2 ) c n/2 log n/2 On substitue dans l'expression T (n) = 2T ( n/2 ) + n 2c n log( n ) n cn log(n/2) + n cn log n cn log 2 + n Margaux Nattaf 13 / 22

59 Méthode par substitution (III) T (n) = 2T ( n/2 ) + n cn log n On suppose maintenant que c'est vrai pour T ( n/2 ) T ( n/2 ) c n/2 log n/2 On substitue dans l'expression T (n) = 2T ( n/2 ) + n 2c n log( n ) n cn log(n/2) + n cn log n cn log 2 + n cn log n cn + n Margaux Nattaf 13 / 22

60 Méthode par substitution (III) T (n) = 2T ( n/2 ) + n cn log n On suppose maintenant que c'est vrai pour T ( n/2 ) T ( n/2 ) c n/2 log n/2 On substitue dans l'expression T (n) = 2T ( n/2 ) + n 2c n log( n ) n cn log(n/2) + n cn log n cn log 2 + n cn log n cn + n cn log n Margaux Nattaf 13 / 22

61 Méthode par substitution (III) T (n) = 2T ( n/2 ) + n cn log n On suppose maintenant que c'est vrai pour T ( n/2 ) T ( n/2 ) c n/2 log n/2 On substitue dans l'expression T (n) = 2T ( n/2 ) + n 2c n log( n ) n cn log(n/2) + n cn log n cn log 2 + n cn log n cn + n cn log n A condition que c 1 (on prendra c 2, à cause de T (2) et T (3)) Margaux Nattaf 13 / 22

62 Méthode générale Pour les récurrence de la forme T (n) = at (n/b) + f (n) avec a 1 et b > 1 Margaux Nattaf 14 / 22

63 Méthode générale Pour les récurrence de la forme T (n) = at (n/b) + f (n) avec a 1 et b > 1 L'algorithme découpe la donnée en a sous-problèmes de taille n/b et les résout récursivement La fonction f représente le coût de division et de fusion du problème. Margaux Nattaf 14 / 22

64 Méthode générale Pour les récurrence de la forme T (n) = at (n/b) + f (n) avec a 1 et b > 1 L'algorithme découpe la donnée en a sous-problèmes de taille n/b et les résout récursivement La fonction f représente le coût de division et de fusion du problème. Exemple pour le tri fusion : a = 2, b = 2 et f (n) = Θ(n) Margaux Nattaf 14 / 22

65 Méthode générale Pour les récurrence de la forme T (n) = at (n/b) + f (n) avec a 1 et b > 1 L'algorithme découpe la donnée en a sous-problèmes de taille n/b et les résout récursivement La fonction f représente le coût de division et de fusion du problème. Exemple pour le tri fusion : a = 2, b = 2 et f (n) = Θ(n) On peut omettre ici les parties entières ( n/b ou n/b ) Margaux Nattaf 14 / 22

66 Méthode générale Pour les récurrence de la forme T (n) = at (n/b) + f (n) avec a 1 et b > 1 L'algorithme découpe la donnée en a sous-problèmes de taille n/b et les résout récursivement La fonction f représente le coût de division et de fusion du problème. Exemple pour le tri fusion : a = 2, b = 2 et f (n) = Θ(n) On peut omettre ici les parties entières ( n/b ou n/b ) Il existe un théorème pour identié la complexité : le théorème maître Margaux Nattaf 14 / 22

67 Théorème maître (général) - version simpliée On ne considère que les récurrences T (n) = at (n/b) + O(n d ) avec a 1, b > 1, d 0 Margaux Nattaf 15 / 22

68 Théorème maître (général) - version simpliée On ne considère que les récurrences T (n) = at (n/b) + O(n d ) avec a 1, b > 1, d 0 1 Si d > log b a, T (n) = Θ(n d ) 2 Si d = log b a, T (n) = Θ(n d log n) 3 Si d < log b a, T (n) = Θ(n log b a ) Margaux Nattaf 15 / 22

69 Théorème maître (général) - version simpliée On ne considère que les récurrences T (n) = at (n/b) + O(n d ) avec a 1, b > 1, d 0 1 Si d > log b a, T (n) = Θ(n d ) 2 Si d = log b a, T (n) = Θ(n d log n) 3 Si d < log b a, T (n) = Θ(n log b a ) Tri fusion : T (n) = { Θ(1) si n = 1 2T (n/2) + Θ(n) si n > 1 Margaux Nattaf 15 / 22

70 Théorème maître (général) - version simpliée On ne considère que les récurrences T (n) = at (n/b) + O(n d ) avec a 1, b > 1, d 0 1 Si d > log b a, T (n) = Θ(n d ) 2 Si d = log b a, T (n) = Θ(n d log n) 3 Si d < log b a, T (n) = Θ(n log b a ) Tri fusion : T (n) = { Θ(1) si n = 1 2T (n/2) + Θ(n) si n > 1 a = 2, Margaux Nattaf 15 / 22

71 Théorème maître (général) - version simpliée On ne considère que les récurrences T (n) = at (n/b) + O(n d ) avec a 1, b > 1, d 0 1 Si d > log b a, T (n) = Θ(n d ) 2 Si d = log b a, T (n) = Θ(n d log n) 3 Si d < log b a, T (n) = Θ(n log b a ) Tri fusion : T (n) = { Θ(1) si n = 1 2T (n/2) + Θ(n) si n > 1 a = 2, b = 2, Margaux Nattaf 15 / 22

72 Théorème maître (général) - version simpliée On ne considère que les récurrences T (n) = at (n/b) + O(n d ) avec a 1, b > 1, d 0 1 Si d > log b a, T (n) = Θ(n d ) 2 Si d = log b a, T (n) = Θ(n d log n) 3 Si d < log b a, T (n) = Θ(n log b a ) Tri fusion : T (n) = { Θ(1) si n = 1 2T (n/2) + Θ(n) si n > 1 a = 2, b = 2, d = 1, Margaux Nattaf 15 / 22

73 Théorème maître (général) - version simpliée On ne considère que les récurrences T (n) = at (n/b) + O(n d ) avec a 1, b > 1, d 0 1 Si d > log b a, T (n) = Θ(n d ) 2 Si d = log b a, T (n) = Θ(n d log n) 3 Si d < log b a, T (n) = Θ(n log b a ) Tri fusion : T (n) = { Θ(1) si n = 1 2T (n/2) + Θ(n) si n > 1 a = 2, b = 2, d = 1, log 2 2 = 1 = d Margaux Nattaf 15 / 22

74 Théorème maître (général) - version simpliée On ne considère que les récurrences T (n) = at (n/b) + O(n d ) avec a 1, b > 1, d 0 1 Si d > log b a, T (n) = Θ(n d ) 2 Si d = log b a, T (n) = Θ(n d log n) 3 Si d < log b a, T (n) = Θ(n log b a ) Tri fusion : T (n) = { Θ(1) si n = 1 2T (n/2) + Θ(n) si n > 1 a = 2, b = 2, d = 1, log 2 2 = 1 = d On est donc dans le cas 2 et la complexité en Θ(n log n) Margaux Nattaf 15 / 22

75 La taille de la donnée La taille des données va dépendre de leur codage ; Margaux Nattaf 16 / 22

76 La taille de la donnée La taille des données va dépendre de leur codage ; On choisit comme taille la ou les dimensions les plus signicatives ; Margaux Nattaf 16 / 22

77 La taille de la donnée La taille des données va dépendre de leur codage ; On choisit comme taille la ou les dimensions les plus signicatives ; Exemple En fonction du problème, les entrées et leur taille peuvent être : Margaux Nattaf 16 / 22

78 La taille de la donnée La taille des données va dépendre de leur codage ; On choisit comme taille la ou les dimensions les plus signicatives ; Exemple En fonction du problème, les entrées et leur taille peuvent être : des éléments : le nombre d'éléments ; Margaux Nattaf 16 / 22

79 La taille de la donnée La taille des données va dépendre de leur codage ; On choisit comme taille la ou les dimensions les plus signicatives ; Exemple En fonction du problème, les entrées et leur taille peuvent être : des éléments : le nombre d'éléments ; des nombres : nombre de bits nécessaires à leur représentation (log 2 (n)) ; Margaux Nattaf 16 / 22

80 La taille de la donnée La taille des données va dépendre de leur codage ; On choisit comme taille la ou les dimensions les plus signicatives ; Exemple En fonction du problème, les entrées et leur taille peuvent être : des éléments : le nombre d'éléments ; des nombres : nombre de bits nécessaires à leur représentation (log 2 (n)) ; des matrices : taille m n max(m, n), m.n, m + n ; Margaux Nattaf 16 / 22

81 La taille de la donnée La taille des données va dépendre de leur codage ; On choisit comme taille la ou les dimensions les plus signicatives ; Exemple En fonction du problème, les entrées et leur taille peuvent être : des éléments : le nombre d'éléments ; des nombres : nombre de bits nécessaires à leur représentation (log 2 (n)) ; des matrices : taille m n max(m, n), m.n, m + n ; des graphes : nombre de sommets, nombre d'arcs, produit des deux ; Margaux Nattaf 16 / 22

82 La taille de la donnée La taille des données va dépendre de leur codage ; On choisit comme taille la ou les dimensions les plus signicatives ; Exemple En fonction du problème, les entrées et leur taille peuvent être : des éléments : le nombre d'éléments ; des nombres : nombre de bits nécessaires à leur représentation (log 2 (n)) ; des matrices : taille m n max(m, n), m.n, m + n ; des graphes : nombre de sommets, nombre d'arcs, produit des deux ; des tableaux : (ou listes) nombre de cases, d'éléments ; Margaux Nattaf 16 / 22

83 La taille de la donnée La taille des données va dépendre de leur codage ; On choisit comme taille la ou les dimensions les plus signicatives ; Exemple En fonction du problème, les entrées et leur taille peuvent être : des éléments : le nombre d'éléments ; des nombres : nombre de bits nécessaires à leur représentation (log 2 (n)) ; des matrices : taille m n max(m, n), m.n, m + n ; des graphes : nombre de sommets, nombre d'arcs, produit des deux ; des tableaux : (ou listes) nombre de cases, d'éléments ; des mots : leur longueur. Margaux Nattaf 16 / 22

84 Vocabulaire Un algorithme est dit : Margaux Nattaf 17 / 22

85 Vocabulaire Un algorithme est dit : en temps constant si sa complexité (dans le pire des cas) est bornée par une constante Margaux Nattaf 17 / 22

86 Vocabulaire Un algorithme est dit : en temps constant si sa complexité (dans le pire des cas) est bornée par une constante linéaire (resp. linéairement borné) si sa complexité (dans le pire des cas) est Θ(n) (resp. O(n)) Margaux Nattaf 17 / 22

87 Vocabulaire Un algorithme est dit : en temps constant si sa complexité (dans le pire des cas) est bornée par une constante linéaire (resp. linéairement borné) si sa complexité (dans le pire des cas) est Θ(n) (resp. O(n)) quadratique (resp. au plus quadratique) si sa complexité (dans le pire des cas) est Θ(n 2 ) (resp. O(n 2 )) Margaux Nattaf 17 / 22

88 Vocabulaire Un algorithme est dit : en temps constant si sa complexité (dans le pire des cas) est bornée par une constante linéaire (resp. linéairement borné) si sa complexité (dans le pire des cas) est Θ(n) (resp. O(n)) quadratique (resp. au plus quadratique) si sa complexité (dans le pire des cas) est Θ(n 2 ) (resp. O(n 2 )) polynômial ou polynômialement borné, si sa complexité (dans le pire des cas) est en O(n p ) pour un certain p > 0 (Q : n log n?) Margaux Nattaf 17 / 22

89 Vocabulaire Un algorithme est dit : en temps constant si sa complexité (dans le pire des cas) est bornée par une constante linéaire (resp. linéairement borné) si sa complexité (dans le pire des cas) est Θ(n) (resp. O(n)) quadratique (resp. au plus quadratique) si sa complexité (dans le pire des cas) est Θ(n 2 ) (resp. O(n 2 )) polynômial ou polynômialement borné, si sa complexité (dans le pire des cas) est en O(n p ) pour un certain p > 0 (Q : n log n?) (au plus) exponentiel si elle est en O(2 np ) pour un certain p > 0 Margaux Nattaf 17 / 22

90 Hiérarchie Pour faire un choix éclairé entre plusieurs algorithmes, il faut être capable de situer leur complexité ; Margaux Nattaf 18 / 22

91 Hiérarchie Pour faire un choix éclairé entre plusieurs algorithmes, il faut être capable de situer leur complexité ; On fait une première distinction entre les deux classes suivantes : Margaux Nattaf 18 / 22

92 Hiérarchie Pour faire un choix éclairé entre plusieurs algorithmes, il faut être capable de situer leur complexité ; On fait une première distinction entre les deux classes suivantes : 1 les algorithmes dits polynomiaux, dont la complexité est en O(n k ) pour un certain k ; Margaux Nattaf 18 / 22

93 Hiérarchie Pour faire un choix éclairé entre plusieurs algorithmes, il faut être capable de situer leur complexité ; On fait une première distinction entre les deux classes suivantes : 1 les algorithmes dits polynomiaux, dont la complexité est en O(n k ) pour un certain k ; 2 les algorithmes dits exponentiels, dont la complexité ne peut pas être majorée par une fonction polynomiale ; Margaux Nattaf 18 / 22

94 Hiérarchie Pour faire un choix éclairé entre plusieurs algorithmes, il faut être capable de situer leur complexité ; On fait une première distinction entre les deux classes suivantes : 1 les algorithmes dits polynomiaux, dont la complexité est en O(n k ) pour un certain k ; 2 les algorithmes dits exponentiels, dont la complexité ne peut pas être majorée par une fonction polynomiale ; De même : Margaux Nattaf 18 / 22

95 Hiérarchie Pour faire un choix éclairé entre plusieurs algorithmes, il faut être capable de situer leur complexité ; On fait une première distinction entre les deux classes suivantes : 1 les algorithmes dits polynomiaux, dont la complexité est en O(n k ) pour un certain k ; 2 les algorithmes dits exponentiels, dont la complexité ne peut pas être majorée par une fonction polynomiale ; De même : 1 un problème de complexité polynomiale est considéré facile ; Margaux Nattaf 18 / 22

96 Hiérarchie Pour faire un choix éclairé entre plusieurs algorithmes, il faut être capable de situer leur complexité ; On fait une première distinction entre les deux classes suivantes : 1 les algorithmes dits polynomiaux, dont la complexité est en O(n k ) pour un certain k ; 2 les algorithmes dits exponentiels, dont la complexité ne peut pas être majorée par une fonction polynomiale ; De même : 1 un problème de complexité polynomiale est considéré facile ; 2 sinon (complexité non-polynomiale ou inconnue (!)) il est considéré dicile ; Margaux Nattaf 18 / 22

97 Hiérarchie Pour faire un choix éclairé entre plusieurs algorithmes, il faut être capable de situer leur complexité ; On fait une première distinction entre les deux classes suivantes : 1 les algorithmes dits polynomiaux, dont la complexité est en O(n k ) pour un certain k ; 2 les algorithmes dits exponentiels, dont la complexité ne peut pas être majorée par une fonction polynomiale ; De même : 1 un problème de complexité polynomiale est considéré facile ; 2 sinon (complexité non-polynomiale ou inconnue (!)) il est considéré dicile ; Margaux Nattaf 18 / 22

98 Hiérarchie De même : 1 un problème de complexité polynomiale est considéré facile ; 2 sinon (complexité non-polynomiale ou inconnue (!)) il est considéré dicile ; Attention! Margaux Nattaf 19 / 22

99 Hiérarchie De même : 1 un problème de complexité polynomiale est considéré facile ; 2 sinon (complexité non-polynomiale ou inconnue (!)) il est considéré dicile ; Attention! 1 Attention à la puissance du polynôme : n 5 30 ans si n = Margaux Nattaf 19 / 22

100 Hiérarchie De même : 1 un problème de complexité polynomiale est considéré facile ; 2 sinon (complexité non-polynomiale ou inconnue (!)) il est considéré dicile ; Attention! 1 Attention à la puissance du polynôme : n 5 30 ans si n = Un algorithme peut avoir un comportement mauvais dans le pire des cas mais être ecace en général (exemple : algorithme du simplexe) Margaux Nattaf 19 / 22

101 Hiérarchie De même : 1 un problème de complexité polynomiale est considéré facile ; 2 sinon (complexité non-polynomiale ou inconnue (!)) il est considéré dicile ; Attention! 1 Attention à la puissance du polynôme : n 5 30 ans si n = Un algorithme peut avoir un comportement mauvais dans le pire des cas mais être ecace en général (exemple : algorithme du simplexe) Mais quel est l'intérêt de la classication des problèmes? Margaux Nattaf 19 / 22

102 Sommations Linéarité n (ca k + b k ) = c n a k + n k=1 k=1 k=1 n n Θ(f (k)) = Θ( f (k)) k=1 k=1 b k Séries arithmétiques n k = n = 1 2 n(n + 1) = Θ(n2 ) k=1 Margaux Nattaf 20 / 22

103 Sommations Séries géométriques n x k = 1 + x + x x n = x n+1 1 k=0 x 1 Séries harmoniques n e nombre harmonique H n = n = 1 n k k=1 = ln n + O(1) Margaux Nattaf 21 / 22

Annexe: Notion de complexité

Annexe: Notion de complexité Annexe: Notion de complexité Recherche Opérationnelle et Optimisation Master 1 I2L / ISIDIS Sébastien Verel verel@lisic.univ-littoral.fr http://www-lisic.univ-littoral.fr/ verel Université du Littoral

Plus en détail

Conception d'algorithmes Cours 1. Introduction

Conception d'algorithmes Cours 1. Introduction Conception d'algorithmes Cours 1. Introduction Mario Valencia e-mail : valencia@lipn.univ-paris13.fr 27/01/2017 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0

Plus en détail

\Les problemes d'abstraction de donnees, de. modularite de gestion des erreurs sont souvent. ignores pour mettre en avant l'essence de l'algorithme

\Les problemes d'abstraction de donnees, de. modularite de gestion des erreurs sont souvent. ignores pour mettre en avant l'essence de l'algorithme Chap^tre I. Introduction 0. Livre recommande Introduction a l'algorithmique T.H. Cormen, C.E. Leiserson, R.L. Rivest, Dunod, Paris, 1994. (MIT Press 1990) 1. Description d'un algorithme au moyen de programmes

Plus en détail

Option Info - MPSI 2016 Complexité des Algorithmes

Option Info - MPSI 2016 Complexité des Algorithmes Option Info - MPSI 2016 Notion de complexité Donnée de taille n Algo Résultat T (n) = nombre d opérations élémentaires pour une donnée de taille n. Abstraction du temps de calcul sur machine...... à prendre

Plus en détail

Cours Info Complexité algorithmique. D.Malka MPSI D.Malka Cours Info - 10 MPSI / 31

Cours Info Complexité algorithmique. D.Malka MPSI D.Malka Cours Info - 10 MPSI / 31 Cours Info - 10 Complexité algorithmique D.Malka MPSI 2015-2016 D.Malka Cours Info - 10 MPSI 2015-2016 1 / 31 Sommaire Sommaire 1 Temps d exécution d un programme 2 Complexité (en temps) d un algorithme

Plus en détail

INFO0501 STRUCTURES DE DONNÉES ET ALGORITHMES 2 COURS 1 PRÉSENTATION DU MODULE, ORGANISATION ET INTRODUCTION

INFO0501 STRUCTURES DE DONNÉES ET ALGORITHMES 2 COURS 1 PRÉSENTATION DU MODULE, ORGANISATION ET INTRODUCTION INFO0501 STRUCTURES DE DONNÉES ET ALGORITHMES 2 COURS 1 PRÉSENTATION DU MODULE, ORGANISATION ET INTRODUCTION Pierre Delisle Département de Mathématiques et Informatique Septembre 2017 Pierre Delisle Maître

Plus en détail

Calculabilité, correction, terminaison et compléxité 1/23

Calculabilité, correction, terminaison et compléxité 1/23 Calculabilité, correction, terminaison et compléxité 1/23 Sommaire 1. 2. 3. 4. 5. Calculabilité Terminaison et correction d'algorithmes Complexité Exemple : tri Pour aller plus loin 2/23 Calculabilité

Plus en détail

Complexité des algorithmes (1) Influence de la taille des données

Complexité des algorithmes (1) Influence de la taille des données Nour-Eddine Oussous, Éric Wegrzynowski Introduction Motivation Objectifs Exemple 2 Le pire, le meilleur et le moyen Classes de complexité Taux de croissance 24 septembre 2008 Motivation Coût d un algorithme

Plus en détail

L3 SID APU Cours 3 Méthodes de conception d algorithmes Application aux algorithmes de Tri (suite)

L3 SID APU Cours 3 Méthodes de conception d algorithmes Application aux algorithmes de Tri (suite) 1/23 L3 SID APU Cours 3 Méthodes de conception d algorithmes Application aux algorithmes de Tri (suite) Thomas Pellegrini, équipe SAMoVA, IRIT, thomas.pellegrini@irit.fr IRIT - UPS 2016-2017 2/23 Approches

Plus en détail

Complexité des algorithmes

Complexité des algorithmes Cours complexité Stéphane Grandcolas p. 1/28 Complexité des algorithmes Stéphane Grandcolas stephane.grandcolas@univ-amu.fr Cours complexité Stéphane Grandcolas p. 2/28 Algorithmes P : un problème M :

Plus en détail

Diviser pour Régner : Complexité et Tri Fusion

Diviser pour Régner : Complexité et Tri Fusion Diviser pour Régner : Complexité et Tri Fusion 1 Notion de Complexité Nous allons étudier la complexité des algorithmes étudiés. Il s agit, en général, d estimer le nombre d opérations «élémentaires» (dont

Plus en détail

Complexité des algorithmes

Complexité des algorithmes Cours complexité Stéphane Grandcolas p. 1/29 Complexité des algorithmes Stéphane Grandcolas stephane.grandcolas@univ-amu.fr Cours complexité Stéphane Grandcolas p. 2/29 Algorithmes et structures de données

Plus en détail

Analyse des algorithmes

Analyse des algorithmes Chapitre 2 Analyse des algorithmes Analyser un algorithme consiste à calculer les ressources qui seront nécessaires à son exécution. Mais avant de l analyser, il faut d abord s assurer qu il est correct,

Plus en détail

Notion de complexité

Notion de complexité 1 de 34 Algorithmique Notion de complexité Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 34 1 Outils mathématiques 2 Évaluation des performances 3 Notion

Plus en détail

Rappels sur la complexité

Rappels sur la complexité Conception de structures de données Cours 2 Rappels sur la complexité Algorithmes et complexité 25 février 2013 Struct 1/23 Mesurer l efficacité d un algorithme Le temps d exécution d un programme dépend

Plus en détail

Plan du cours. 1/ Rappels et compléments Java. 2/ Tableaux, boucles et invariants. 3/ Notions élémentaires de complexité. ICI. 4/ Récursion.

Plan du cours. 1/ Rappels et compléments Java. 2/ Tableaux, boucles et invariants. 3/ Notions élémentaires de complexité. ICI. 4/ Récursion. Plan du cours 1/ Rappels et compléments Java. 2/ Tableaux, boucles et invariants. 3/ Notions élémentaires de complexité. ICI 4/ Récursion. 5/ Structures de données et introduction aux types abstraits de

Plus en détail

Cours 3. Partie 1: Quelques complexités courantes. Diviser pour règner.

Cours 3. Partie 1: Quelques complexités courantes. Diviser pour règner. 1 Cours 3. Partie 1: Quelques complexités courantes. Diviser pour règner. Olivier Bournez bournez@lix.polytechnique.fr LIX, Ecole Polytechnique 2011-12 Algorithmique Aujourd hui Quelques complexités courantes

Plus en détail

Analyse des algorithmes

Analyse des algorithmes Chapitre 2 Analyse des algorithmes Analyser un algorithme consiste à calculer les ressources qui seront nécessaires à son exécution. Mais avant cela, il faut d abord s assurer que l algorithme est correct,

Plus en détail

Chap^tre V. des algorithmes (ecaces)

Chap^tre V. des algorithmes (ecaces) Chap^tre V. Programmation dynamique 1. Methodes de conception des algorithmes (ecaces) -) Diviser pour regner -) Programmation dynamique -) Algorithme glouton 2. Probleme d'optimisation La programmation

Plus en détail

Le voyageur de commerce - 1. Objectif. Temps d exécution. Histoire de l empereur chinois Nb de grains de riz Σ i 2 i = Le problème :

Le voyageur de commerce - 1. Objectif. Temps d exécution. Histoire de l empereur chinois Nb de grains de riz Σ i 2 i = Le problème : Le voyageur de commerce - 1 Histoire de l empereur chinois Nb de grains de riz Σ i 2 i = 2 n+1-1 = 2 64 1 16.10 18 grains 8 2 4 2 5 2 63 Le problème : Soit un ensemble de n villes Trouver le circuit le

Plus en détail

Complexité des algorithmes (2)

Complexité des algorithmes (2) Nour-Eddine Oussous, Éric Wegrzynowski 4 octobre 2006 Analyse des boucles Pour Formules Analyse des boucles Tant Que Analyse de schémas récursifs 1 : factorielle 2 : Tours de Hanoï Principe général Coût

Plus en détail

Complexité des algorithmes (2) Tri par insertion (algo) Coût d une boucle pour. Algo. Nour-Eddine Oussous, Éric Wegrzynowski.

Complexité des algorithmes (2) Tri par insertion (algo) Coût d une boucle pour. Algo. Nour-Eddine Oussous, Éric Wegrzynowski. Nour-Eddine Oussous, Éric Wegrzynowski Analyse des boucles Pour Analyse des boucles Tant Que Analyse de schémas récursifs 1 : factorielle : Tours de Hanoï Principe général 1er octobre 008 Coût d une boucle

Plus en détail

RETOUR SUR LE DERNIER COURS MAIS CE N EST PAS UNE SI MAUVAISE CONVENTION

RETOUR SUR LE DERNIER COURS MAIS CE N EST PAS UNE SI MAUVAISE CONVENTION RETOUR SUR LE DERNIER COURS Diviser pour Régner Divide and Conquer ACT Sophie Tison Université Lille 1 Master Informatique S1 Praticable Par convention, un algorithme est dit praticable si il est polynomial,

Plus en détail

L exemple typique est l algorithme de tri fusion : pour trier un tableau de taille n, on le découpe en deux tableaux taille n 2

L exemple typique est l algorithme de tri fusion : pour trier un tableau de taille n, on le découpe en deux tableaux taille n 2 CHAPITRE II Diviser pour régner II.1 Présentation de la méthode La méthode de diviser pour régner est une méthode qui permet, parfois de trouver des solutions efficaces à des problèmes algorithmiques.

Plus en détail

Calcul de coût d algorithme

Calcul de coût d algorithme Calcul de coût d algorithme Concepts : Analyse de coût Méthodes : Décomposition du coût, ordres de grandeur Présentation Le concept de coût associé à un algorithme A formalise la notion intuitive d efficacité

Plus en détail

VII. Complexité d un algorithme

VII. Complexité d un algorithme 1 Complexité en temps d un algorithme Définition 1. On appelle complexité temporelle d un algorithme la fonction qui associe à la taille entière n de la donnée le temps d exécution de l algorithme. Exemple

Plus en détail

Licence informatique - L3 Année 2012/2013. Conception d algorithmes et applications (LI325) COURS 6

Licence informatique - L3 Année 2012/2013. Conception d algorithmes et applications (LI325) COURS 6 Licence informatique - L Année 0/0 Conception d algorithmes et applications (LI) COURS Résumé. Dans cette sixième séance, nous continuons l exploration des algorithmes de type Programmation Dynamique.

Plus en détail

Cours 2: Récursivité et programmation dynamique

Cours 2: Récursivité et programmation dynamique Cours 2: Récursivité et programmation dynamique Récursivité, mémoïsation, programmation dynamique Distance minimale, diviser pour régner Sous-suites croissantes, mémoïsation Chemin dans un DAG, programmation

Plus en détail

TD 7 : Algorithmes de tri - Diviser pour régner. PC/PC* - Lycée Thiers

TD 7 : Algorithmes de tri - Diviser pour régner. PC/PC* - Lycée Thiers Exercice 1 : Algorithme de tri Correction Correction Exercice 1 : Algorithme de tri Un algorithme de Tri prend en paramètre un tableau d éléments d ordonnables, par exemple une liste de nombres et renvoie

Plus en détail

Notions d algorithmique

Notions d algorithmique Table des matières Notions d algorithmique 1 Introduction 1 1.1 Structure de contrôle.................................. 1 1.2 Structures de données................................. 1 1.3 Ce qu on attend

Plus en détail

Cours de Programmation Impérative: Complexité, une introduction

Cours de Programmation Impérative: Complexité, une introduction Cours de Programmation Impérative: Complexité, une introduction Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 44 E f fˇi`c àcˇi t é `dffl u n`e f o

Plus en détail

Introduction à l algorithmique, structures de contrôle et de données. Stage IREM Nov./Déc. 2010

Introduction à l algorithmique, structures de contrôle et de données. Stage IREM Nov./Déc. 2010 Introduction à l algorithmique, structures de contrôle et de données Stage IREM Nov./Déc. 2010 Plan 1 Introduction 2 Structures de contrôle et de données Plan 1 Introduction 2 Structures de contrôle et

Plus en détail

Option Info - MPSI 2016 Algorithmes de tri - 1

Option Info - MPSI 2016 Algorithmes de tri - 1 Option Info - MPSI 2016 Position du problème Un ensemble X muni d une relation binaire R. Pour (a, b) X 2 : a R b se lit "a précède b" On suppose R transitive et totale : (a, b, c) X 3, (a R b et b R c)

Plus en détail

1. Quelques questions de cours pour démarrer. 3. Un tout petit peu de complexité d'algorithme

1. Quelques questions de cours pour démarrer. 3. Un tout petit peu de complexité d'algorithme L2S3 Harmonisation Algorithmique 20132014 UFR d'ieea Université Lille 1 DS 3-16/06/2013-3h documents interdits Un sujet long implique un barême adapté et vous laisse plus de choix dans les questions que

Plus en détail

1 (5 + 5 = 10 points)

1 (5 + 5 = 10 points) EXAMEN FINAL IFT-17588 : Analyse d algorithmes Samedi 31 août 2004, 09h30 à 12h30 1 (5 + 5 = 10 points) ATTENTION : Soyez bref et précis dans vos justifications. lg n = log 2 n ln n = log e n log n = log

Plus en détail

Un bref aperçu sur le cours

Un bref aperçu sur le cours Un bref aperçu sur le cours 1. Notion d algorithme et d espace mémoire L objectif initial de l informatique était de fournir des algorithmes permettant de résoudre un problème donné. Algorithme : ensemble

Plus en détail

Algorithmes de tri. Informatique pour tous

Algorithmes de tri. Informatique pour tous Appartenance Question Comment savoir si un élément e appartient à une liste L? Appartenance Appartenance Complexité : O(n), où n = len(l). Recherche dichotomique Si L est triée, on peut savoir si e est

Plus en détail

VARI 4 LES TRIS PLAN. Le problème du tri Le tri par insertion Le tri fusion Le tri par tas Le tri rapide. Comparaison des tris Le tri par dénombrement

VARI 4 LES TRIS PLAN. Le problème du tri Le tri par insertion Le tri fusion Le tri par tas Le tri rapide. Comparaison des tris Le tri par dénombrement Le problème du tri Le tri par insertion Le tri fusion Le tri par tas Le tri rapide VARI 4 LES TRIS PLAN Comparaison des tris Le tri par dénombrement 1 4.1 LE PROBLEME DU TRI 4-1-1 DÉFINITION entrée: suite

Plus en détail

IN Cours septembre Matthieu Finiasz

IN Cours septembre Matthieu Finiasz IN 101 - Cours 04 30 septembre 2011 présenté par Matthieu Finiasz Un problème concret Laquelle de ces deux fonctions est la meilleure? 1 int factoriel(int n) { 2 int i, res; 3 res = 1; 4 for (i=2; i

Plus en détail

Lecture 9 Algorithmes Le Bon, la Brute et le Truand

Lecture 9 Algorithmes Le Bon, la Brute et le Truand Lecture 9 Algorithmes Le Bon, la Brute et le Truand Cours Optimisation Discrète 21 avril 2011 Friedrich Eisenbrand EPFL 123 Notation grand O Motivation Les algorithmes nécessitent un certain nombre d opérations

Plus en détail

Calculs de complexité d'algorithmes. Notations asymptotiques : 0 et Θ Complexité des algorithmes Exemples de calcul de complexité

Calculs de complexité d'algorithmes. Notations asymptotiques : 0 et Θ Complexité des algorithmes Exemples de calcul de complexité Calculs de complexité d'algorithmes Notations asymptotiques : 0 et Θ Complexité des algorithmes Exemples de calcul de complexité 1 Complexités d un algorithme Un algorithme à partir d une donnée établit

Plus en détail

Devoir d informatique : tronc commun. 1 E3A 2015 : Déterminer le candidat élu lors d une élection

Devoir d informatique : tronc commun. 1 E3A 2015 : Déterminer le candidat élu lors d une élection Devoir d informatique : tronc commun Durée : trois heures. Le sujet comporte deux petits problèmes, issus des concours E3A et Polytechnique PC. Chacun traite d un sujet déjà étudié l an dernier, mais par

Plus en détail

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII ALGORITHMIQUE II NOTION DE COMPLEXITE 1 2 Comment choisir entre différents algorithmes pour résoudre un même problème? Plusieurs critères de choix : Exactitude Simplicité Efficacité (but de ce chapitre)

Plus en détail

LIFAP1 : ALGORITHMIQUE ET PROGRAMMATION RECURSIVE. Présentation de l UE Modalités de Contrôle des Connaissances

LIFAP1 : ALGORITHMIQUE ET PROGRAMMATION RECURSIVE. Présentation de l UE Modalités de Contrôle des Connaissances LIFAP1 : ALGORITHMIQUE ET PROGRAMMATION RECURSIVE Présentation de l UE Modalités de Contrôle des Connaissances PRÉSENTATION DE L UE LIFAP2 Responsable de l UE Marie Lefevre marie.lefevre@liris.cnrs.fr

Plus en détail

Quelques mystères de la complexité algébique

Quelques mystères de la complexité algébique Quelques mystères de la complexité algébique Pascal Koiran LIP, Ecole Normale Supérieure de Lyon ENS Cachan, 10 septembre 2013 Qu est-ce que la complexité algébrique? But de la complexité algorithmique

Plus en détail

Méthode «Diviser pour Résoudre»

Méthode «Diviser pour Résoudre» 1 Méthode «Diviser pour Résoudre» E. CHABBAR DVR 2 Les algorithmes sont regroupés en familles selon certains concepts t. q. Division pour Résoudre, Glouton, Programmation dynamique. - L aspect DVR consiste

Plus en détail

COURS ALGORITHMES ET COMPLEXITÉ. Evaluation et complexité des algorithmes

COURS ALGORITHMES ET COMPLEXITÉ. Evaluation et complexité des algorithmes COURS ALGORITHMES ET COMPLEXITÉ Evaluation et complexité des algorithmes 1 ÉVALUATION D'UN ALGORITHME EFFICACITÉ D'UN ALGORITHME : TEMPS D'EXÉCUTION MÉMOIRE OCCUPÉE EXEMPLE DE PROBLEME A RESOUDRE n entier

Plus en détail

Algorithmes de tris récursifs d un tableau à une dimension de valeurs numériques

Algorithmes de tris récursifs d un tableau à une dimension de valeurs numériques Algorithmes de tris récursifs d un tableau à une dimension de valeurs numériques 1 Introduction On a étudié en première année des algorithmes de tris simples, on va maintenant approfondir cette notion

Plus en détail

Diviser pour résoudre

Diviser pour résoudre Diviser pour résoudre Principe général Diviser le problème de taille n en sous problèmes plus petits de manière à ce que la solution de chaque sous problème facilite la construction du problème entier.

Plus en détail

Graphes : complexité et NP-complétude

Graphes : complexité et NP-complétude Master I - Le Havre Plan Complexité en temps La fonction de complexité d un algorithme fait correspondre pour une taille donnée le nombre maximum d instructions qui lui est nécessaire pour résoudre une

Plus en détail

1 Exercices pour s échauffer : toujours avec un argument n

1 Exercices pour s échauffer : toujours avec un argument n Chapitre 9 : davantage sur la complexité des algorithmes Introduction Au chapitre 8, nous avons introduit la notion de complexité ou coût des algorithmes à propos d algorithmes d arithmétiques qui prenaient

Plus en détail

Diviser pour résoudre

Diviser pour résoudre A. Principe général B. Applications. Tri par fusion. Multiplication de grands nombres. Organisation d'un tournoi. Tour de Hanoi C. Recommandations Principe général Diviser le problème de taille n en sous-problèmes

Plus en détail

1 int factoriel(int n) { 2 int i, res; 3 res = 1; 4 for (i=2; i<n+1; i++) { 5 res *= i; 6 } 7 return res; 8 } 9 int binom1(int n, int p) {

1 int factoriel(int n) { 2 int i, res; 3 res = 1; 4 for (i=2; i<n+1; i++) { 5 res *= i; 6 } 7 return res; 8 } 9 int binom1(int n, int p) { Un problème concret IN 101 - Cours 04 30 septembre 2011 Laquelle de ces deux fonctions est la meilleure? 1 int factorielint n { 2 int i, res; 3 res = 1; 4 for i=2; i

Plus en détail

Informatique TD7 : Complexité et structures de données

Informatique TD7 : Complexité et structures de données Informatique TD7 : Complexité et structures de données CPP septembre - novembre 2016 1 Complexité 1.1 Introduction (5mn) Un algorithme est dit de complexité polynomiale si sa complexité est une fonction

Plus en détail

Algorithmes efficaces : problèmes polynomiaux La classe NP. La complexité. Maria Malek. 28 novembre 2011

Algorithmes efficaces : problèmes polynomiaux La classe NP. La complexité. Maria Malek. 28 novembre 2011 28 novembre 2011 Notions générales Les transformations polynomiales -complets Notions générales en temps des algorithmes : le temps nécessaire à leurs exécutions dépend de : La machine utilisée (systèmes

Plus en détail

Arithmétique Algorithmique.

Arithmétique Algorithmique. Arithmétique Algorithmique http://www.math.univ-lyon1.fr/~roblot/ens.html Partie II Arithmétique rapide 1 Opérations de base sur les entiers longs 2 Polynômes à coefficients dans Z/2 w Z 3 Multiplication

Plus en détail

Informatique II (J1CP3020) Philippe Duchon. U. Bordeaux

Informatique II (J1CP3020) Philippe Duchon. U. Bordeaux U. Bordeaux 1 2012-13 Diviser pour régner Une technique très souvent employée pour concevoir des algorithmes efficaces Diviser pour régner Une technique très souvent employée pour concevoir des algorithmes

Plus en détail

INF3105 Analyse et Complexité algorithmique

INF3105 Analyse et Complexité algorithmique INF3105 Analyse et Complexité algorithmique Éric Beaudry Université du Québec à Montréal (UQAM) 2017A Éric Beaudry (UQAM) INF3105 - Introduction 2017A 1 / 29 Sommaire 1 Introduction 2 Analyse empirique

Plus en détail

INFORMATIQUE, CALCUL & COMMUNICATIONS. Sections MA & PH. Correction Examen intermédiaire I

INFORMATIQUE, CALCUL & COMMUNICATIONS. Sections MA & PH. Correction Examen intermédiaire I Correction EIDGENÖSSISCHE TECHNISCHE HOCHSCHULE LAUSANNE POLITECNICO FEDERALE LOSANNA SWISS FEDERAL INSTITUTE OF TECHNOLOGY LAUSANNE Faculté Informatique et Communications Cours ICC aux sections MA et

Plus en détail

Algorithmique L3.

Algorithmique L3. Algorithmique L3 http://www.liafa.jussieu.fr/~francoisl/l3algo.html Plan 1 Informations générales 2 Introduction 3 Arbres binaires de recherche Plan 1 Informations générales 2 Introduction 3 Arbres binaires

Plus en détail

Algorithmie PC 2 : Tris

Algorithmie PC 2 : Tris Algorithmie PC 2 : Tris corrigé 1 Tri par bulles 1.1 Principe du tri par Bulles (variante du tri par sélection) On considère un tableau tab de n données sur lesquelles il existe une relation d ordre. On

Plus en détail

Cours 2. Partie 2: Introduction à l algorithmique. Dichotomie. Un peu de tris

Cours 2. Partie 2: Introduction à l algorithmique. Dichotomie. Un peu de tris 1 Cours 2. Partie 2: Introduction à l algorithmique. Dichotomie. Un peu de tris Olivier Bournez bournez@lix.polytechnique.fr LIX, Ecole Polytechnique 2011-12 Algorithmique Aujourd hui Recherche dans un

Plus en détail

1. Quelques questions de cours pour démarrer. 3. Un tout petit peu de complexité d'algorithme

1. Quelques questions de cours pour démarrer. 3. Un tout petit peu de complexité d'algorithme L2S3 Harmonisation Algorithmique 20132014 UFR d'ieea Université Lille 1 DS 2-10/01/2013-3h documents interdits 1. Quelques questions de cours pour démarrer Q1.1. Donner la dénition formelle de f Ω(g) ainsi

Plus en détail

Algorithmique M1 Université Paris Diderot

Algorithmique M1 Université Paris Diderot Algorithmique M1 Université Paris Diderot Coorigé (béta 1.1) du partiel du 28 novembre 2008 Exercice 1 : applications de cours 1.1. Récurrence Étant donné que T (n) = 9T ( n/3 ) + n 2 + 3 trouvez le comportement

Plus en détail

TD n o 10 N P-Complétude et Approximation. 1 N P-complétude de 2-Partition. 2 3-Partition à la 2-Partition. Algorithmique I Année

TD n o 10 N P-Complétude et Approximation. 1 N P-complétude de 2-Partition. 2 3-Partition à la 2-Partition. Algorithmique I Année Algorithmique I Année 2008-2009 A. Benoit, B. Depardon C. Mouilleron, C. Rezvoy TD n o 10 N P-Complétude et Approximation 1 N P-complétude de 2-Partition On déit le problème de décision 2-Partition ainsi

Plus en détail

La notation asymptotique

La notation asymptotique La notation asymptotique François Lemieux Hiver 2007 Nous avons vu que le temps d exécution d un algorithme A pouvait être exprimé comme une fonction T : N R + telle que T (n) représente le temps maximal

Plus en détail

Algorithmes de tri (1/2) Algorithmes de tri (2/2)

Algorithmes de tri (1/2) Algorithmes de tri (2/2) Algorithmes de tri (1/2) Problématique : étant donné une structure linéaire (tableau, liste, etc) contenant des valeurs d'un type ordonné, il faut trier les éléments en ordre croissant (ou décroissant).

Plus en détail

Cours 07 - Diviser pour régner

Cours 07 - Diviser pour régner Cours 07 - Diviser pour régner MPSI - Prytanée National Militaire Pascal Delahaye 6 mai 016 1 Le principe diviser pour régner La stratégie diviser pour régner consiste à découper la donnée que l on doit

Plus en détail

CH.3 ALGORITHMES DE TRI

CH.3 ALGORITHMES DE TRI CH.3 ALGORITHMES DE TRI 3.1 Les tris quadratiques 3.2 Les tris en n log n 3.3 Le tri rapide 3.4 Les bornes inférieures IMAC ch 3 1 3.1 Les tris quadratiques On dispose de n données en mémoire centrale

Plus en détail

Exemples d algorithmes

Exemples d algorithmes Exemples d algorithmes Algorithmique et Programmation LYCÉE CARNOT (DIJON), 2016-2017 Informatique pour tous (MPSI & PCSI) ALGO-PROG Exemples d algos Année 2016-2017 1 / 51 Sommaire 1 Indice du maximum

Plus en détail

Algorithmie PC 1 : Complexité

Algorithmie PC 1 : Complexité Algorithmie PC 1 : Complexité corrigé 1 Élements de complexité 1.1 Définitions Le nombre d opérations effectués ou la place mémoire prise par un programme est souvent notée en O(). Une définition mathématique

Plus en détail

Temps d exécution d un algorithme: pourquoi le mesurer? Temps d exécution d un algorithme: Comment le mesurer?

Temps d exécution d un algorithme: pourquoi le mesurer? Temps d exécution d un algorithme: Comment le mesurer? La notion de complexité fait référence à l efficacité d un algorithme. Il existe formes de complexité pour un algorithme : Complexité spatiale = espace mémoire occupé. Complexité temporelle = temps d exécution

Plus en détail

2 Tableaux & listes doublement chaînées

2 Tableaux & listes doublement chaînées Algorithmie TD 1 Complexité & premiers algorithmes 1 Premier calcul de complexité Quelle est la complexité de l algorithme 1? Prouvez que cet algorithme calcule x y lorsque x & y sont des entiers positifs.

Plus en détail

Université Paris Diderot Paris 7 Année , 1 er semestre. Devoir à la maison

Université Paris Diderot Paris 7 Année , 1 er semestre. Devoir à la maison Université Paris Diderot Paris L & EIDD Algorithmique Année 00-0, er semestre Devoir à la maison Ce devoir est à rendre la semaine du er novembre. Il est composé de cinq parties indépendantes, numérotées

Plus en détail

(a) Utiliser cette méthode pour trier pas à pas la liste

(a) Utiliser cette méthode pour trier pas à pas la liste La problématique de tri d'un ensemble d'objets pouvant être ordonnés est une question fondamentale dans le traitement des données. De nombreux algorithmes portant sur de tels ensembles sont facilités si

Plus en détail

Algorithmique 1. Licence d informatique Licence de mathématiques François Denis, Stéphane Grandcolas, Yann Vaxès

Algorithmique 1. Licence d informatique Licence de mathématiques François Denis, Stéphane Grandcolas, Yann Vaxès Algorithmique 1 Licence d informatique Licence de mathématiques 2ème année 2016-2017 François Denis, Stéphane Grandcolas, Yann Vaxès 2 Chapitre 1 Introduction. Ce cours constitue une introduction à l algorithmique.

Plus en détail

1 Un programme pour le produit de matrices

1 Un programme pour le produit de matrices Chapitre 14 : algorithmes de calcul matriciel Motivation : Les algorithmes de résolutions de systèmes linéaires et de calcul sur les matrices seront implémentés par vous-mêmes en T.P. Le but de ces notes

Plus en détail

Semaine 3 : Série d exercices sur les algorithmes [Solutions]

Semaine 3 : Série d exercices sur les algorithmes [Solutions] Information, calcul et communication EPFL MA/PH Automne 2016 Semaine 3 : Série d exercices sur les algorithmes [Solutions] 1 Quel est le bon algorithme? le retour Le bon algorithme est le c. Le a a deux

Plus en détail

Structures de données et algorithmes Répétition 2: Outils d analyse

Structures de données et algorithmes Répétition 2: Outils d analyse Structures de données et algorithmes Répétition 2: Outils d analyse Jean-Michel Begon http://www.montefiore.ulg.ac.be/~jmbegon 20 février 2015 Exercice 1 L algorithme suivant échange les valeurs x et y.

Plus en détail

TD : Complexité des algorithmes

TD : Complexité des algorithmes Année Spéciale 2013-2014 TD : Complexité des algorithmes Exercice 1 On considère deux manières de représenter ce que l on appelle des «matrices creuses», c'est-à-dire des matrices d entiers contenant environ

Plus en détail

1 Exercices pour s échauffer : toujours avec un argument n

1 Exercices pour s échauffer : toujours avec un argument n Chapitre 9 : davantage sur la complexité des algorithmes Introduction Au chapitre précédent, nous avons introduit la notion de complexité ou coût des algorithmes à propos d algorithmes d arithmétiques

Plus en détail

Notion de complexité

Notion de complexité 1 de 27 Algorithmique Notion de complexité Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www-igm.univ-mlv.fr/ hivert Outils mathématiques 2 de 27 Outils mathématiques : analyse

Plus en détail

A B C A B C A 21,12510

A B C A B C A 21,12510 Solution QUIZZ et questions ouvertes MT-EL 28/10/2016 Remarque : l ordre des réponses était différent selon les variantes. onc ne faites pas attention à la lettre correspondant à la réponse correcte mais

Plus en détail

3.1 - Définitions. 3 LA CLASSE P

3.1 - Définitions. 3 LA CLASSE P La classe P version du 13 octobre 2016 21 3 LA CLASSE P Nous allons étudier la classe de problèmes faciles, présentés jusqu à maintenant comme les problèmes résolubles par, au moins, un algorithme efficace.

Plus en détail

COMPLEXITE DES ALGORITHMES METHODE DU SIMPLEXE

COMPLEXITE DES ALGORITHMES METHODE DU SIMPLEXE COMPLEXITE DES ALGORITHMES METHODE DU SIMPLEXE O. Marguin //. Généralités (.) Notion de complexité Un algorithme comporte : - une partie temporelle : séquence d instructions en principe savamment orchestrée,

Plus en détail

ANALYSE D ALGORITHMES

ANALYSE D ALGORITHMES ANALYSE D ALGORITHMES Révision mathématique rapide Temps d exécution Pseudo-code Notation asymptotique Analyse asymptotique T(n) n = 4 Entrée Algorithme Sortie 2.1 Cas moyen vs. Pire des cas: Temps d exécution

Plus en détail

Réductions et transformations

Réductions et transformations Réductions et transformations MTH6311 S. Le Digabel, École Polytechnique de Montréal H2014 (v2) MTH6311: Réductions et transformations 1/21 Plan 1. Fonctions harmonieuses 2. Fonctions au moins et fortement

Plus en détail

Graphes et optimisation discrète : Théorie de la complexité

Graphes et optimisation discrète : Théorie de la complexité Plan Graphes et optimisation discrète : Théorie de la complexité P. Laurent Mathématiques 2 16 janvier 2006 Plan Plan 1 Introduction 2 Qu est ce qu un algorithme? Codage des données 3 Différentes notions

Plus en détail

1 Calculs des nombres de Fibonacci

1 Calculs des nombres de Fibonacci Complexité d'un algorithme Trois questions à se poser quand on fabrique un algorithme : est-ce qu'il donne un résultat? terminaison ; est-ce qu'il donne le/un bon résultat? validité ; est-ce qu'il donne

Plus en détail

contre-exemple : problème de l arrêt (Rq. : si c était vrai, tout problème semi-décidable serait décidable)

contre-exemple : problème de l arrêt (Rq. : si c était vrai, tout problème semi-décidable serait décidable) Université Bordeaux 1. Master Sciences & Technologies, Informatique. Examen UE INF 461, Modèles de calcul. Responsable A. Muscholl Session 1, 2009 2010. 15 décembre 2009, 14h-17h. Documents autorisés :

Plus en détail

Jeux à un joueur et solutions optimales

Jeux à un joueur et solutions optimales ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES CONCOURS D ADMISSION 2017 FILIÈRES MP SPECIALITÉ INFO COMPOSITION D INFORMATIQUE A (XULCR) (Durée : 4 heures) L utilisation des calculatrices n est pas autorisée

Plus en détail

IFT2015 Miklós Csűrös 22 novembre Tris élémentaires et le tri par fusion Tri Tri par sélection

IFT2015 Miklós Csűrös 22 novembre Tris élémentaires et le tri par fusion Tri Tri par sélection IFT2015 Miklós Csűrös 22 novembre 2016 10 Tris élémentaires et le tri par fusion 10.1 Tri On a un fichier d éléments avec clés comparables on veut les ranger selon l ordre les clés. Clés comparables en

Plus en détail

Diviser pour régner. 1 Puissances. Xcas. Xcas

Diviser pour régner. 1 Puissances. Xcas. Xcas Diviser pour régner Les trois phases du paradigme "diviser pour régner" : Diviser : division du problème en un certain de nombres de sous-problèmes (semblables au problème initial mais de taille moindre,

Plus en détail

Algorithmique avancée Corrigé du devoir en temps libre

Algorithmique avancée Corrigé du devoir en temps libre Algorithmique avancée Corrigé du devoir en temps libre Frédéric Vivien Travail demandé Ce travail est à effectuer seul ou en binôme, à l exclusion de tout regroupement de taille supérieure. Vous devez

Plus en détail

Preuves d algorithmes. Informatique pour tous

Preuves d algorithmes. Informatique pour tous Rappel de complexité Rappel : on s intéresse à l ordre de grandeur asymptotique de la complexité, en négligeant les constantes. Notations f (n) = O(g(n)) A > 0, f (n) Ag(n), pour n assez grand f (n) =

Plus en détail

Notation asymptotique fondations mathématiques

Notation asymptotique fondations mathématiques IFT015 Miklós Csűrös 11 janvier 011 3A Notation asymptotique fondations mathématiques 3A.1 Définitions On travaille avec les définitions suivantes. Définition 3A.1. Soit f : N R + et g : N R + deux functions

Plus en détail

TP Informatique n o 4 Algorithmes de tri

TP Informatique n o 4 Algorithmes de tri TP Informatique n o 4 Algorithmes de tri I. Tri fusion et tri rapide I.1. Diviser pour régner On emploie le terme diviser pour régner pour désigner l approche algorithmique consistant à : 1) Diviser :

Plus en détail

Introduction à l algorithmique

Introduction à l algorithmique Introduction à l algorithmique Hélène Collavizza helen@polytech.unice.fr http://www.polytech.unice.fr/~helen/lpsil Marc Gaetano gaetano@polytech.unice.fr LPSIL Année 2006-2007 Objectifs Quels sont les

Plus en détail