2.3 Notations asymptotiques

Documents pareils
ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Limites finies en un point

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

Chapitre 7. Récurrences

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

Continuité en un point

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

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

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

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

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

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Chapitre 7 : Intégration sur un intervalle quelconque

Fonctions de plusieurs variables

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

CCP PSI Mathématiques 1 : un corrigé

O, i, ) ln x. (ln x)2

Image d un intervalle par une fonction continue

DOCM Solutions officielles = n 2 10.

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Continuité d une fonction de plusieurs variables

Chapitre 2 Le problème de l unicité des solutions

Développements limités, équivalents et calculs de limites

Représentation des Nombres

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

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

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

ÉVALUATION FORMATIVE. On considère le circuit électrique RC représenté ci-dessous où R et C sont des constantes strictement positives.

La persistance des nombres

Précision d un résultat et calculs d incertitudes

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

Cours Fonctions de deux variables

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

Leçon 01 Exercices d'entraînement

Sur certaines séries entières particulières

Chapitre 1 : Évolution COURS

Licence Sciences et Technologies Examen janvier 2010

3 Approximation de solutions d équations

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

Propriétés des options sur actions

Continuité et dérivabilité d une fonction

Programmation linéaire

Complément d information concernant la fiche de concordance

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

Commun à tous les candidats

Correction du Baccalauréat S Amérique du Nord mai 2007

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Suites numériques 3. 1 Convergence et limite d une suite

avec des nombres entiers

4. Les structures de données statiques

Maple: premiers calculs et premières applications

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Chap 4. La fonction exponentielle Terminale S. Lemme : Si est une fonction dérivable sur R telle que : = et 0! = 1 alors ne s annule pas sur R.

La fonction exponentielle

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Raisonnement par récurrence Suites numériques

Probabilités sur un univers fini

Etude de fonctions: procédure et exemple

Chapitre 2. Eléments pour comprendre un énoncé

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

Corrigé du baccalauréat S Asie 21 juin 2010

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Optimisation des fonctions de plusieurs variables

Corrigé des TD 1 à 5

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Les Différents types de Requêtes dans Access

Optimisation Discrète

Fonctions homographiques

2.4 Représentation graphique, tableau de Karnaugh

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

STAGE IREM 0- Premiers pas en Python

Analyse des Systèmes Asservis

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Algèbre binaire et Circuits logiques ( )

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

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

Cours 1 : La compilation

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

Rappels sur les suites - Algorithme

Introduction à l étude des Corps Finis

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

FONDEMENTS DES MATHÉMATIQUES

M1107 : Initiation à la mesure du signal. T_MesSig

Examen optimisation Centrale Marseille (2008) et SupGalilee (2008)

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

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

Quelques algorithmes simples dont l analyse n est pas si simple

Loi binomiale Lois normales

Calculabilité Cours 3 : Problèmes non-calculables.

I. Introduction. 1. Objectifs. 2. Les options. a. Présentation du problème.

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

3. Conditionnement P (B)

Bases de données documentaires et distribuées Cours NFE04

Codage d information. Codage d information : -Définition-

Chapitre 2 LE CAS PRATIQUE

Transcription:

2.3 Notations asymptotiques L ordre de grandeur du temps d exécution d un algorithme donne une caractérisation simple de l efficacité de l algorithme et nous permet également de comparer les performances relatives de plusieurs algorithmes. Bien qu il soit parfois possible de déterminer le temps d exécution exact d un algorithme, cette précision supplémentaire ne vaut en général pas la peine d être calculée. Pour les entrées assez grandes, l effet d un temps d exécution exact est négligeable par rapport à ceux de la taille d entrée ellemême. Lorsqu on s intéresse à des tailles d entrée assez importantes pour que seul l ordre de grandeur soit pertinent, on étudie l efficacité asymptotique des algorithmes (on regarde comment s accroît à la limite le temps d exécution en fonction de la taille de l entrée). En général, un algorithme plus efficace asymptotiquement qu un autre constituera le meilleur choix quelle que soit l entrée, hormis les plus réduites. Les notations que nous utiliserons afin de décrire t(n) (le temps d exécution asymptotique d un algorithme) sont définies en terme de fonctions t : ℵ R. Notation θ Pour une fonction donnée f(n), on note θ(f(n)) l ensemble de fonctions : θ(f(n))={ t(n) : il existe des constantes strictement positives c 1, c 2 et un n 0 telles que : 0 c 1 f(n) t(n) c 2 f(n), n n 0 }. On dit alors que f(n) est une borne approchée asymptotiquement pour t(n) (on dira aussi que θ(f(n)) est l ordre exact de f(n)). Nous noterons t(n) = θ(f(n)) voulant en fait dire que t(n) θ(f(n)). On voit immédiatement de la définition qu on doit supposer que chaque fonction utilisée à l intérieur de la notation θ est positive asymptotiquement. Cette supposition est aussi valable pour les autres notations asymptotiques que nous allons définir. Notation O O(f(n))={ t(n) : il existe des constantes strictement positives c et n 0 telles que : 0 t(n) cf(n), n n 0 }. On dit que f(n) est une borne supérieure asymptotique pour t(n).

Notation Ω Ω (f(n))={ t(n) : il existe des constantes strictement positives c et n 0 telles que : 0 cf(n) t(n), n n 0 }. On dit que f(n) est une borne inférieure asymptotique pour t(n). On en déduit immédiatement le théorème suivant : Théorème : f(n) = θ(g(n)) f(n) = O(g(n)) et f(n) = Ω(g(n)). Notations asymptotiques dans les équations Il est important de bien comprendre comment ces notations asymptotiques sont utilisées dans les formules mathématiques. 1- Lorsque la notation asymptotique se trouve isolée dans le membre de droite d une équation, le signe = signifie l appartenance. En général, lorsqu une notation asymptotique apparaît dans une formule, on l interprète comme représentant une certaine fonction anonyme qu il est inutile de nommer. 2- Le nombre de fonctions anonymes dans une expression doit être considéré comme étant égal au nombre de fois qu une notation asymptotique apparaît. 3- Lorsqu une notation asymptotique apparaît dans le membre de gauche d une équation, on interprète ce type d équation à l aide de la règle suivante : «Quelle que soit la manière dont on choisit les fonctions anonymes à gauche du signe =, il existe une manière de choisir les fonctions anonymes à droite du signe = qui rendra l équation valide. Interprétation en analyse d algorithmes - Dans le cadre du cours, t(n) s interprétera comme le temps mis par un algorithme pour traiter un exemplaire de taille n n 0, et f(n) comme une fonction exprimant que, à un facteur constant c près, ce temps ne peut pas être supérieur à la valeur de f(n) pour cette taille n. - En partant de f(n), O(f(n)) représente l ensemble de tous les temps d exécution (d algorithmes potentiels!) plafonnés par f(n), toujours à un facteur constant c près pour n n 0.

Considérations algorithmiques - Si un algorithme s exécute en t(n) secondes sur un exemplaire de taille n, alors toute autre implantation s exécutera en un temps dans l ordre de t(n). - Plus généralement, pour dire qu un algorithme donné prend un temps dans l ordre de f(n), on peut choisir n importe quelle fonction f telle que t(n)=o(f(n)). D un point de vu pratique, nous cherchons à trouver la forme la plus simple pour f(n) telle que t(n)=o(f(n)). - Réflexivité de O : t(n)=o(t(n)). Dualité entre O et Ω. f(n) = O(g(n)) g(n) = Ω(f(n)) (Preuve en classe) Différence entre O et Ω pour l analyse en pire cas a) Un algorithme prend un temps dans O(f(n)) en pire cas implique que cf(n) est une borne supérieure pour chaque exemplaire de taille n (suffisamment grand!). b) Un algorithme prend un temps dans Ω(f(n)) en pire cas implique que c(f(n)) est une borne inférieure sur le pire cas de taille n (suffisamment grand!). Règle du maximum Soient f et g : N R des fonctions (positives asymptotiquement!), alors : O( f(n) + g(n) ) = O( max(f(n), g(n)) (Preuve en classe) Bien que ces notations semblent simples, il est parfois difficile de bien les manipuler. Regardons quelques exemples afin de vérifier notre compréhension (exemples en classe).

Quelques propriétés des notations (En supposant que f(n) et g(n) sont strictement positives asymptotiquement) (* signifie O ou Ω ou θ) - Transitivité i. f(n) = *(g(n)) ^ g(n) = *(h(n)) f(n) = *(h(n)) - Réflexivité i. f(n) = *(f(n)) - Symétrie i. f(n) = θ(g(n)) g(n) = θ(f(n)) - Égalité et inclusion d ordres i. O(f(n)) = O(g(n)) f(n) O(g(n)) ^ g(n) O(f(n)) ii. O(f(n)) O(g(n)) f(n) O(g(n)) ^ g(n) O(f(n)) (Preuves en exercices) Calculs aux limites Afin d établir la relation entre deux fonctions f et g, il nous sera souvent utile d examiner : f ( n) lim. g ( n ) Comme l évaluation de cette limite sera importante non seulement pour établir la relation entre les fonctions mais aussi pour la mise en ordre d ordres de fonctions, nous nous permettons de rappeler la règle suivante (pour nos fonctions f,g : ℵ R): Règle de l Hospital Supposons que : lim f ( n) = lim g( n) = 0 (ou ). Supposons que les domaines de f et g puissent être étendus à [n 0,+ ) de façon que a) les nouvelles fonctions f* et g* soient dérivables sur cet intervalle; b) g *( x)' 0, x [n 0,+ ), alors f ( n) f * ( x)' lim = lim (à condition que cette dernière existe!). g( n) x g * ( x)'

Afin d établir la relation entre deux fonctions f et g, nous avons les résultats suivants : Soit f ( n) lim = L, n g( n) alors 1) L = 0 f = O(g) (et f θ(g)); 2) L = f = Ω(g) (et f θ(g)); 3) L = r R+ f = θ(g) (ou g=θ(f)) ; 4) La limite n existe pas on ne peut utiliser cette méthode. (Démonstrations en exercices!) (Exemples en classe) Mise en ordre d ordres de fonctions Les calculs aux limites sont très utiles afin de mettre en ordre les ordres de fonctions f(n) tendant vers l infini avec n, comme le sont les temps d exécution d algorithmes. En analyse d algorithmes, cette notion est cruciale car elle nous permet de comparer le comportement asymptotique de différents algorithmes. Nous avons vu précédemment que cela revient à calculer la limite, lorsque n tend vers l infini, du rapport des deux fonctions à comparer. Souvent, l utilisation directe de la limite suffit ; parfois, il faut combiner avec l application de la règle de l Hospital, la règle du logarithme, etc. Enfin, lorsque les fonctions à classer comportent des factorielles, la formule suivante donne une approximation de la factorielle (pour de grands entiers) : Formule de Sterling : n n! 2πn. e (Exemples en classe) Notations asymptotiques conditionnelles L idée est que l analyse d algorithmes peut etre grandement facilitée si la taille de l exemplaire respecte une certaine condition (ex. n=2 m ). Notation (ordre de f(n) lorsque P(n)) Soit P(n) un prédicat défini sur les entiers naturels, alors O( f(n) P(n) ) = {t :ℵ R* ( c R+) ( n 0 ℵ) ( n n 0 ) [ P(n) t(n) cf(n) ] }. n

Avant d énoncer la Règle de l harmonie, qui nous sera utile dans le cours, il nous faut quelques définitions. Soit une fonction t : ℵ R*, alors 1) t est finalement non décroissante ( n 0 ℵ) ( n n 0 ) [ t(n) t(n+1) ] 2) t est b-harmonieuse a. elle est finalement non décroissante b. t(bn) = O(t(n)), b 2, (b ℵ) 3) t est harmonieuse elle est b-harmonieuse b 2 entier. Règle de l harmonie Soit b 2 un entier, f : ℵ R* une fonction b-harmonieuse, t : ℵ R* une fonction finalement non décroissante telles que t(n) = θ(f(n) n est une puissance de b) alors t(n) = θ(f(n)). (Preuve : voir le livre p.90) (Important : La règle de l harmonie est la même pour O et Ω) Notre intérêt pour cette règle est que premièrement elle facilite souvent l analyse et que deuxièmement, nombre de fonctions rencontrées en analyse d algorithmes sont harmonieuses. Dans le cours, nous admettrons les résultats suivants sans démonstration : 1- log n, nlog n, n 2, a n x n +a n-1 x n-1 + +a 0 (pour a n >0) sont harmonieuses 2- n log n, 2 n, n! ne sont pas harmonieuses. Exemple d application : Nous avons vu au chapitre précédent, lors de l analyse du tri-fusion, que sous l hypothèse n=2 k : t(n)=θ( nlog n n = 2 k ). Pouvons nous conclure que t(n) = θ( nlog n ) (comme nous l avons fait intuitivement!)? Oui! 1- nlog n est harmonieuse (résultat connu) ; 2- n est une puissance de b (b = 2) ; 3- règle de l harmonie.

Opérations sur les notations asymptotiques Afin de simplifier certains calculs, nous pouvons manipuler les notations asymptotiques à l aide d opérateurs arithmétiques. Il faut cependant bien définir ces opérations. Soit * un opérateur binaire entre deux fonctions et soient X et Y des ensembles de fonctions. (ex. X et Y décrits par des notations asymptotiques) Alors X * Y = { t :ℵ R* ( f X) ( g Y) ( n 0 ℵ)( n n 0 ) [ t(n) = f(n) * g(n) ] }. Exemple Soient f, g : ℵ R*. Alors O(f(n)) + O(g(n)) = { t :ℵ R* ( u O(f(n))) ( v O(g(n))) [ t(n) = u(n) + v(n) ] }. (Ce qui est équivalent à: c,d > 0 tels que t(n) cf(n) + dg(n))