Calcul de coût d algorithme

Documents pareils
ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Chapitre 7. Récurrences

Algorithmique et Programmation

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Comment démontrer des formules sans effort? exposé de maîtrise

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Définitions. Numéro à préciser. (Durée : )

aux différences est appelé équation aux différences d ordre n en forme normale.

Plus courts chemins, programmation dynamique

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

1 Recherche en table par balayage

Rappels sur les suites - Algorithme

Programmation linéaire

Table des matières. I Mise à niveau 11. Préface

Annexe 6. Notions d ordonnancement.

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Comparaison de fonctions Développements limités. Chapitre 10

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Partie 1 - Séquence 3 Original d une fonction

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Suites numériques 4. 1 Autres recettes pour calculer les limites

Initiation à l algorithmique

Complément d information concernant la fiche de concordance

CCP PSI Mathématiques 1 : un corrigé

Le nombre d or et Fibonacci

Cours d analyse numérique SMI-S4

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Polynômes à plusieurs variables. Résultant

SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : omarinmt@gmail.com

Sur certaines séries entières particulières

Cours de Master Recherche

Introduction à l étude des Corps Finis

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Programmation linéaire

Résolution de systèmes linéaires par des méthodes directes

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Introduction. Mathématiques Quantiques Discrètes

I. Polynômes de Tchebychev

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Les formations de remise à niveau(!) l'entrée des licences scientifiques. Patrick Frétigné CIIU

Résolution d équations non linéaires

Echantillonnage Non uniforme

Pour l épreuve d algèbre, les calculatrices sont interdites.

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

La fonction exponentielle

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Maple: premiers calculs et premières applications

Cours Optimisation Partie Optimisation Combinatoire. Année scolaire Gérard Verfaillie ONERA/DCSD/CD, Toulouse

Fonctions de plusieurs variables

Mathématiques financières

Raisonnement par récurrence Suites numériques

Quelques tests de primalité

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Image d un intervalle par une fonction continue

PRECISION - REJET DE PERTURBATIONS T.D. G.E.I.I.

Chapitre VI - Méthodes de factorisation

Feuille TD n 1 Exercices d algorithmique éléments de correction

Quelques algorithmes simples dont l analyse n est pas si simple

Chapitre 1. L intérêt. 2. Concept d intérêt. 1. Mise en situation. Au terme de ce chapitre, vous serez en mesure de :

4. Les structures de données statiques

Sites web éducatifs et ressources en mathématiques

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Continuité et dérivabilité d une fonction

Continuité d une fonction de plusieurs variables

Indications pour une progression au CM1 et au CM2

Algorithmes de recherche

4.2 Unités d enseignement du M1

Texte Agrégation limitée par diffusion interne

Optimisation Discrète

Modélisation aléatoire en fiabilité des logiciels

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Deux disques dans un carré

Chapitre 6. Fonction réelle d une variable réelle

Limites finies en un point

Gestion des Clés Publiques (PKI)

Manuel de validation Fascicule v4.25 : Thermique transitoire des structures volumiques

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Chapitre 5 : Flot maximal dans un graphe

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

chapitre 4 Nombres de Catalan

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Amphi 3: Espaces complets - Applications linéaires continues

Simulation de variables aléatoires

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

MIS 102 Initiation à l Informatique

INTRODUCTION. 1 k 2. k=1

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

d algorithmique D. Beauquier, J. Berstel, Ph. Chrétienne

Chapitre 1 Régime transitoire dans les systèmes physiques

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

Les arbres binaires de recherche

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Transcription:

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é d un programme, c est à dire sa capacité à fournir le résultat escompté dans un temps minimal, on parle également de performances du programme. Du point de vue pratique, l analyse du coût permet de déterminer quelles seront les ressources en temps de calcul, en mémoire et éventuellement en entrées/sorties nécessaires pour exécuter le calcul associé à l algorithme. Pour définir le coût, on se donne un modèle de machine avec une mémoire que l on suppose en général infinie et munie d opérations dont le temps d exécution (coût élémentaire) est constant (ou majoré par une constante). L exécution de l algorithme sur une donnée d est modélisé par une séquence finie d opérations de la machine ; le coût de l exécution C(A, d) sur la donnée d est donc le nombre d exécutions de chaque opération au cours de l exécution. Éventuellement on restreindra le nombre d opérations étudiées en choisissant celles dont l interprétation sera la plus intéressante (opération la plus coûteuse). Comme l algorithme va être exécuté sur un grand ensemble de données, il est nécessaire de spécifier l espace des données D et d en fournir une description algébrique. Pour analyser le coût d un algorithme, on cherche alors à donner des facteurs expliquant le coût en fonction de paramètres de la donnée. En particulier, on s intéresse au lien entre la taille de la donnée et le coût de l algorithme. Espace des données Algorithme Espace des résultats Machine (modèle) Taille de la donnée : $d$ Co\^{u}t du calcul : $C$ C Entier Entier d Définition 1 (Coût au pire) Le coût au pire de l algorithme A est défini par la fonction de n : Coût A (n) = max d D n C(A, d). On peut également définir le coût au mieux en fonction de n en prenant le minimum des coûts. Comportement asymptotique Ce qui est intéressant dans l analyse du coût est le comportement asymptotique en fonction de n (notion de passage à l échelle). Pour cela on compare la fonction de coût à des fonctions de référence appelées fonctions d échelle. Typiquement les fonctions puissance x n, exponentielles 2 n ou logarithmiques log k (n) sont des fonctions d échelle. Pour exprimer la comparaison asymptotique on utilise la notation de Landau :

Définition 2 (Borne asymptotique approchée : fonction Θ) Pour une fonction donnée g on note Θ(g) l ensemble de fonctions : Θ(g) = {f telles que c 1, c 2 0, n 0 0, n n 0, c 1.g(n) f(n) c 2.g(n)} ; on écrit f = Θ(g) pour f Θ(g) et on dit que g est une borne asymptotique approchée pour f. Définition 3 (Borne supérieure asymptotique : fonction O) Pour une fonction donnée g on note O(g) l ensemble de fonctions : O(g) = {f telles que c 0, n 0 0, n n 0, f(n) c.g(n)} ; on écrit f = O(g) pour f O(g) et on dit que g est une borne supérieure asymptotique pour f. Définition 4 (Borne inférieure asymptotique : fonction Ω) Pour une fonction donnée g on note Ω(g) l ensemble de fonctions : Omega(g) = {f telles que c 0, n 0 0, n n 0, c.g(n) f(n)} ; on écrit f = Ω(g) pour f Ω(g) et on dit que g est une borne inférieure asymptotique pour f. Règles de calcul du coût Pour calculer le coût d un algorithme on utilise les règles de composition suivantes : Le coût d une itération est égal à la somme des coûts de chaque terme de l itération ; Le coût d une instruction conditionnelle est majoré par le maximum des coûts de chacune des branches de l instruction conditionnelle ; Le coût d un appel de procédure est égal à la somme du coût de l appel (évaluation des paramètres) et du coût du corps de la procédure. Lorsque le programme est récursif, on exprime le coût de l algorithme en fonction du coût des appels récursifs. On obtient ainsi une équation de récurrence sur la fonction de coût. Coût en moyenne Lorsque, pour une taille de donnée fixée, le coût peut prendre plusieurs valeurs entre les bornes coût maximum et coût minimum. Il est interessant de savoir si, en général, pour une donnée arbitraire on est plutôt près du coût au mieux ou au pire coût. Pour formaliser le raisonnement, on munit l espace des données de taille n d une probabilité (usuellement la loi uniforme) et on calcule la distribution du coût, c est à dire on calcule la probabilité que le coût de l algorithme prenne la valeur 1, 2,, n,. Comme il est souvent très difficile de calculer la probabilité de chaque valeur de coût on se contente de sa valeur moyenne. Définition 5 (Coût moyen (cas uniforme)) Le coût moyen de l algorithme A est défini par la fonction de n : 1 Coût moyen A (n)) = C(A, d). Card(D n ) d D n Coût d algorithmes récursifs Dans de nombreuses situations il est possible d exprimer le coût (au mieux, au pire, en moyenne) d un algorithme sur des données de taille n comme une fonction du coût de l exécution du même algorithme sur des des données de tailles plus petites que n. La fonction de coût vérifie ainsi une équation de récurrence. On peut classer les équations de récurrence en fonction de leur forme (linéaire, de partition,...) et donner les asymptotiques. On notera T (n) le coût de l algorithme pour une donnée de taille n. Algorithmique version du 19 septembre 2012 2/ 5

Équations linéaires simples T (0) = 0; T (n) = T (n 1) + f(n), pour n 1, oô f est une fonction (en général positive). En itérant la relation à partir de n = 0 on obtient facilement : T (n) = f(0) + f(1) + + f(n) = f(n). i=0 On rappelle que 1 = n = Θ(n); i = n(n + 1) 2 = Θ(n 2 ); i 2 = n(n + 1)(2n + 1) 6 = Θ(n 3 ); i 3 = n2 (n + 1) 2 4 = Θ(n 4 ) et de manière plus générale Exercice : faire la preuve en comparant n ik et n 1 xk i k = O(n k+1 ). Exemples Étudier le tri par sélection, le tri par insertion (cf TD) avec cette méthode. Équations linéaires multiples T (0) = t 0, T (1) = t 1 T (k 1) = t k 1 ; T (n) = a 1 T (n 1) + a 2 T (n 2) + a k T (n k), pour n k. Ces équations de récurrence linéaires se développent à partir d une base de solutions de la forme : T (n) = p m i 1 j=0 c i,j n j λ n j ; avec {λ 1, λ 2,, λ p } les p racines du polynôme P (x) = x k a 1 x k 1 a 2 x k 2 a 0 ; de multiplicités respectives {m 1,, m p } Les constantes c i,j sont fixées par les conditions initiales. De manière générale si λ max est la racine de module maximal et de multiplicité m alors T (n) = O(n m 1 λ max n ). C est à dire que la fonction croit de manière très rapide, au moins exponentiellement. Exercice : Calculer la valeur de T (n) pour l équation de récurrence T (0) = T (1) = 1; T (n) = T (n 1) + T (n 2); pour n 2. On appelle la suite T (n), la suite de Fibonacci (Léonardo de Pise mathématicien Italien du XII-XIII ième siècle). Algorithmique version du 19 septembre 2012 3/ 5

Équations de partition On suppose que la fonction de coût suit l équation suivante T (1) = 1; T (n) = at ( n ) + c(n), pour n 1, b avec a 1, b > 1 et c(n) une fonction positive de n. Attention cette formulation contient déjà une approximation (la fraction n b n a pas de raison d être entière) Ce type d équation apparaît naturellement lorsque la résolution d un problème de taille n se fait en résolvant a problèmes de taille n b. Pour simplifier on suppose que n = bk et on note t k = T (b k ). On a facilement l équation de récurrence sur les t k en remarquant que t k = at k 1 + c(b k ) at k 1 = a 2 t k 2 + ac(b k 1 ) a 2 t k 2 = a 3 t k 3 + a 2 c(b k 2 ). =... a k 1 t 1 = a k t 0 + a k 1 c(b 0 ) t k = a k t 0 + k 1 i=0 ai c(b k i ) En utilisant le fait que t 0 = 1 et que a k = n log b a, le résultat se met sous la forme log b n 1 T (n) = n log b a + a i c(b log b n i ). i=0 En fonction du problème étudié, soit le premier terme l emporte le coût de partition n est pas prépondérant, soit c est le deuxième terme qui l emporte et toute la complexité du calcul est dans le partitionnement. Calcul de coût 1. Spécifier les opérateurs de base de votre modèle de machine (coût constant) ; 2. Décrire l espace des données et sa segmentation (définir la taille d une donnée) ; 3. Écrire l expression du coût à l aide des règles de composition des coûts élémentaires des opérateurs de base ; 4. Pour une donnée de taille n calculer le coût maximal (coût au pire) et le coût minimal (coût au mieux) de l algorithme ; 5. Étudier l ensemble des données conduisant au pire ou au meilleur coût (exemples) ; 6. Donner l ordre de grandeur du coût (avec les fonctions O ou Omega) pour le coût au pire d une donnée de taille n sur une échelle permettant de comparer les algorithmes (classiquement on utilise l échelle déduite de l échelle polynomiale, des logarithmes (en base 2) et des exponentielles (puissances de 2) ; Lectures suggérées Algorithmique, Cormen, Leiserson, Rivest et Stein Dunod 2011 (pour la version française) chapitres 2 et 3 faire les exercices du chapitre 3 Algorithmique version du 19 septembre 2012 4/ 5

Pour les aspects mathématiques discrètes et application au calcul de coût on consultera le livre : Concrete Mathematics, Second Edition by Ronald L. Graham, Donald E. Knuth, and Oren Patashnik ou sa version française Mathématiques concrètes. Références [1] Thomas Cormen, Charles Leiserson, Ronald Rivest, and Clifford Stein. Algorithmique - 3ème édition - Cours avec 957 exercices et 158 problèmes. Dunod, 3e édition edition, 6 2010. [2] Ronald Graham, Donald E. Knuth, and Oren Patashnik. Mathématiques concrètes. International Thomson publishing France, 2e éd edition, 1998. [3] Robert Sedgewick and Kevin Wayne. Algorithms (4th Edition). Addison-Wesley Professional, 2011. Algorithmique version du 19 septembre 2012 5/ 5