Plan du cours 1. Introduction – 2. Contenu du cours Logique mathématique – – – 3. 4. Calcul propositionnel Calcul des prédicats Logique floue et aide à la décision Induction Analyse d’algorithmes – – 5. 6. Comparaison asymptotique de fonctions Complexité Récurrence Mathématique de la gestion – – 2008/2009 Théorie des graphes Optimisation 95 Analyse d’algorithmes • Algorithme : – « recette », séquence d’actions définies de façon non ambigüe, qui peut être appliquée pour résoudre un problème en un temps fini. • Analyse d’un algorithme : – – – – – Approprié à la tâche à laquelle il est destiné ? Meilleur qu’un autre ? Possibilités d’amélioration ? Ressources utilisées en temps et en mémoire ? Performances indépendamment de l’implémentation ? 2008/2009 96 Outil d’analyse : Comportement asymptotique de fonctions • Questions : – Peut-on extrapoler le temps requis pour résoudre un problème sur base de jeux de données de test (plus petits…) ? – Comment comparer deux algorithmes indépendamment des machines sur lesquelles ils seront implémentés ? – Comment s’assurer qu’un algorithme s’adaptera bien à une augmentation de la taille du problème à résoudre ? 2008/2009 97 Analyse d’algorithmes • Etudier le temps requis par un algorithme en fonction de la taille du problème. Comment comparer le taux de croissance de différentes fonctions ? 2008/2009 98 Analyse d’algorithmes • Hypothèses simplificatrices : – Soient 2 algorithmes A1 et A2 avec : • A1 systématiquement plus rapide que A2 pour de « petits » jeux de données. • A2 systématiquement plus rapide que A1 pour de « grands » jeux de données. A2 sera préféré à A1 car « presque toujours » meilleur. – On ne tient pas compte des paramètres de performances propres aux ordinateurs sur lesquels l’algorithme est implémenté. 2008/2009 99 Comparaison asymptotique de fonctions • Fonctions étudiées : – Temps de calcul en fonction de la taille des données (input). – Domaine : nombre naturels. – Image : nombres réels positifs. F : 0, 2008/2009 100 Dominance asymptotique • F domine asymptotiquement G si : N , c 0, : n N : G n c F n 0 0 • Exemple : F n n N 0 c3 0 2008/2009 2 domine G n 3n G n 3n 3n 2 3F n c F n 101 Notation • Définition : soient 2 fonctions F et G : O F G : F domine asymptotiquement G • Expressions courantes : G O F G est O F G OF 2008/2009 102 Autres définitions G n O F G : c, n N F n 0 G n F G : d , n N F n 0 G n F G : d c, n N F n 0 2008/2009 103 Interprétation • Si G O F et F O G • Alors F et G croissent approximativement de la même façon lorsque n est grand. 2008/2009 104 Exemple 1 F n n 1 2008/2009 n 2 n 2 G n n2 0 1 105 Exemple 1 G O F et F O G 1 G O F 1 1 1 1 1 c 1 G n F n N 0 1 1 0 F O G 1 1 c2 F n n n n 4 N 4 2n 4 2 n 2 2G n c G n 106 1 0 1 2008/2009 1 Exemple 2 100.000.000 n 0 G n n n0 F n n 2 2 G O F et 2 2 F O G 2 2 c 1 et N 1 0 2008/2009 107 Exemple 4 F n n 4 2008/2009 G n n 2 4 108 Exemple 4 F O G mais G O F 4 4 F O G 4 4 4 4 c 1 F n n n G n N 2 2 4 4 0 G O F 4 4 N , c : si N c : n N G n c F n si N c : n c G n c F n 0 0 0 0 2008/2009 4 4 4 4 109 Généralisation de l’exemple 4 F n n k G n n k 1 k 1, 2,3, F O G mais G O F 2008/2009 110 Extension à des fonctions partielles • Fonction partielle : définie pour presque tous les n (tous sauf un nombre fini de valeurs). • Extension de la définition de dominance : F domine asymptotiquement G si : N , c 0, : n N avec F n et G n définis : G n c F n 0 0 2008/2009 111 Propriétés (1) • Théorème 1 : a 0, a F O F • Corollaire : a 0 : a F O F et F O a F • Conséquence (a=1) : la dominance asymptotique est une relation réflexive. 2008/2009 112 Propriétés (2) • Théorème 2 : H O G H O F G O F • Conséquence : la dominance asymptotique est une relation transitive. • Corrolaire : n O n pour i j i 2008/2009 j 113 Propriétés (3) • Théorème 3 : G O F G H OF H O F G H O F • Corollaire (par induction) : G O F i 1, , k i a G a G a G OF a , a , , a 1 2008/2009 1 2 2 1 k 2 k k 114 Relation d’équivalence • Théorème 4 : a. F O G ssi O F O G b. O F O G ssi F O G et G O F c. F,G : O F O G est une relation d'équivalence • Cf. 2008/2009 115 Fonctions polynomiales • Définition : fonction polynomiale de degré k : P n a n a n k 1 k k k 1 a n ana 2 2 1 0 – Avec ak 0. – Fonction partielle : définie seulement pour les n tels que P(n) est positive ak > 0. 2008/2009 116 Fonctions polynomiales • Théorème 5 : k ,k 1 0k k 2 1 2 x x O x x O x k1 k2 k2 k1 • Corollaire (monômes) : i, j 2008/2009 i j n n O n n O n i j j i 117 Fonctions polynomiales • Théorème 6 : pour une fonction polynomiale de degré k : P n a n a n k 1 k k k 1 a n ana 2 2 1 0 On a : P n O n n O P n k k 2008/2009 118 Fonctions exponentielles d :n 2008/2009 2 x:n 3 w: 2 n 119 Fonctions exponentielles • Théorème 7 : k k2 n O 2 2 O n 2008/2009 k n n k 120 Fonctions logarithmiques x : n o : ln n 2008/2009 121 Fonctions logarithmiques • Corollaire du théorème 7 : ln n O n n O ln n 2008/2009 122 Comparaison 2008/2009 123 Complexité d’un algorithme • Comment estimer le temps d’exécution d’un programme pour un jeu de données de taille donnée à partir des temps observés pour des jeux de données de test (plus petits) ? • Comment comparer les performances de deux algorithmes indépendant des machines sur lesquelles ils seront implémentés ? • Comment s’assurer qu’un algorithme s’adaptera bien à des jeux de données de taille plus élevée ? 2008/2009 124 Complexité • Mesure de la complexité en temps d’un algorithme. • Utilisation de la notation O. • Exemple : – Un algorithme de tri en O(n2) sera moins bon qu’un autre en O(n ln(n)). 2008/2009 125 Principe de comptage 2008/2009 126 Exemple 1 2008/2009 127 Exemple 1 • Que compter ? – Comparaisons ? – Echanges ? • Pour une séquence : 2008/2009 128 Exemple 1 • Nombre de comparaisons : – 1+1+1=3 • Complexité : – O(1) 2008/2009 129 Exemple 2 2008/2009 130 Exemple 2 • Pour une sélection : 2008/2009 131 Exemple 2 • Nombre de comparaisons : – 2 + Max { 0, 1 + 1 + 1 } = 5 • Complexité : – O(1) 2008/2009 132 Exemple 3 2008/2009 133 Exemple 3 • Nombre de comparaisons : – 2 + Max { 1, 2 + Max ( 1 , 1 ) } = 5 • Complexité : – O(1) • Remarque : – En comptant les échanges : maximum 2, alors que maximum 3 pour les versions précédentes ! 2008/2009 134 Exemple 4 2008/2009 135 Exemple 4 - Répétition 2008/2009 136 Exemple 4 • Nombre de comparaisons : – Boucle intérieure : N - 1 – Boucle extérieure : (N – 1) × (N – 1) • Complexité : – O(N2) 2008/2009 137 Exemple 5 2008/2009 138 Exemple 5 • Nombre de comparaisons : – Boucle intérieure : N - 1 – Boucle extérieure : (N – 1) + (N – 2) + … + 2 + 1 = N × (N – 1) / 2 • Complexité : – O(N2) 2008/2009 139