Notation asymptotique fondations mathématiques

Documents pareils
ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Chapitre 7. Récurrences

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

Programmation linéaire

Limites finies en un point

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

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

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

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

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

ARBRES BINAIRES DE RECHERCHE

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

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

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

Corrigé des TD 1 à 5

Chapitre 7 : Intégration sur un intervalle quelconque

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

DOCM Solutions officielles = n 2 10.

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.

Logique. Plan du chapitre

La fonction exponentielle

Continuité d une fonction de plusieurs variables

Théorème du point fixe - Théorème de l inversion locale

Sur certaines séries entières particulières

PRIME D UNE OPTION D ACHAT OU DE VENTE

Continuité et dérivabilité d une fonction

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

MIS 102 Initiation à l Informatique

Fonctions de plusieurs variables

Image d un intervalle par une fonction continue

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Coefficients binomiaux

Algèbre binaire et Circuits logiques ( )

Corrigé du baccalauréat S Asie 21 juin 2010

Algorithmes de recherche

1 Définition et premières propriétés des congruences

Quantification Scalaire et Prédictive

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

CCP PSI Mathématiques 1 : un corrigé

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

Équations non linéaires

Continuité en un point

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

Cryptographie et fonctions à sens unique

Quelques tests de primalité

Optimisation Discrète

I. Polynômes de Tchebychev

Université Paris-Dauphine DUMI2E 1ère année, Applications

Maple: premiers calculs et premières applications

CHAPITRE VIII : Les circuits avec résistances ohmiques

Rappels sur les suites - Algorithme

Tests non-paramétriques de non-effet et d adéquation pour des covariables fonctionnelles

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

Cours Fonctions de deux variables

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

Problème 1 : applications du plan affine

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Exo7. Limites de fonctions. 1 Théorie. 2 Calculs

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

Algorithmes récursifs

Polynômes à plusieurs variables. Résultant

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

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Chapitre VI - Méthodes de factorisation

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

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

3 Approximation de solutions d équations

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

Raisonnement par récurrence Suites numériques

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

Bureau N301 (Nautile)

Cours de Master Recherche

Calculateur quantique: factorisation des entiers

Algorithmique et Programmation

Problèmes de Mathématiques Filtres et ultrafiltres

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

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

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Chapitre 2. Matrices

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

Corrigé du baccalauréat S Pondichéry 12 avril 2007

choisir H 1 quand H 0 est vraie - fausse alarme

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

Etude de fonctions: procédure et exemple

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

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

Bases de programmation. Cours 5. Structurer les données

Erreur statique. Chapitre Définition

Programmation linéaire

Probabilités sur un univers fini

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

Quelques contrôle de Première S

Complément d information concernant la fiche de concordance

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

Représentation des Nombres

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Optimisation des fonctions de plusieurs variables

Les arbres binaires de recherche

Introduction à l étude des Corps Finis

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

Transcription:

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 positives 1. On écrit f Θ(g) si c 1, c > 0, N N n N c 1 g(n) f(n) c g(n); (3A.1a) f O(g) si c > 0, N N n N f(n) c g(n); (3A.1b) f Ω(g) si c > 0, N N n N f(n) c g(n); (3A.1c) f o(g) si c > 0, N N n N f(n) c g(n). (3A.1d) REMARQUE. Le seuil N n est pas nécessaire dans les définitions (mais peut simplifier les preuves) si g(n) > 0 pour tout n 0. On peut imposer N = 0 toujours : par exemple si f(n) c g(n) pour tout n N, alors f(n) c g(n) pour tout n 0 avec j c = max c, f(0) g(0), f(1) g(1), f() ff f(n 1),...,. g() g(n 1) REMARQUE. On peut aussi inventer des définitions équivalentes qui sont plus générales. P.e., f O(g) si et seulement s il existe c > 0, a R, N 0 tels que f(n) cg(n) + a pour tout n N. Parfois il est plus facile de démontrer f O(g) avec une telle définition. Exemple 3A.1. On montre que 1n +3n+7 Θ(n ). Pour cela, il faut trouver c 1, c, N qui satisfont (3A.1a). c 1 = 1 est un choix trivial. Pour c, on veut que 1n + 3n + 7 c n. Donc, c > 1, et n importe quel choix est possible. Disons, c = 14. Il faut trouver N tel que 1n + 3n + 7 14n pour tout n N. ( Donc on a l inégalité 0 n 3n 7 qu on peut résoudre explicitement : n 1 4 3+ ) 9 + 56.8. Alors, (3A.1a) est vrai avec c 1 = 1, c = 14, N = 3. 1 En fait, on peut permettre que f(n) 0 ou que f(n) n existe pas pour certains n si le nombre d exceptions est fini. Même chose pour g. On travaillera avec des expressions comme n 5n lg n ou n/ lg n qui ne sont pas toujours positives ou n existent pas pour tout n = 0, 1,,.... En permettant un nombre fini d exceptions, on écrira sans problème que, disons, T (n) O(log log n). Une définition toute précise parlerait de fonctions f, g : {m, m + 1, m +,... } R + avec m 0 et d un seuil N m. 1

Exemple 3A.. On montre que 3n 4 + 100n lg n n O(n 4 ). On veut trouver c tel que 3n 4 + 100n lg n n cn 4. On voit que c > 3 est requis, et en fait, tous les choix sont possibles. Par exemple, avec c = 10, on veut que 3n 4 +100n lg n n 10n 4. Cela mène à l inégalité 0 7n 4 100n lg n + n. Au lieu d essayer de résoudre cette inégalité explicitement, on choisit un seuil N «très grand» et on vérifie si l inégalité est vrai. Avec n = 10 = 104, on a 7n 4 100n lg n + n = 7 104 4 100 104 10 + 3 > 0 facilement. Alors, (3A.1b) est vrai avec c = 10, N = 104. Théorème 3A.1. Logarithme est une fonction de croissance beaucoup plus lente que n importe quelle fonction polynomiale. Plus précisement, pour tout ɛ > 0, lg n o ( n ɛ). Démonstration. On veut démontrer que pour tout c > 0, il existe N c 0 tel que lg n cn ɛ (3A.) pour tout n N c. On a que On voit que n ɛ = ɛ lg n = (1 + x) lg n avec x = ɛ 1 > 0 a(a 1) 1 + xa + x si a = lg n. (3A.3) est valide pour tout a(a 1) a c(1 + xa + x ) ( ) 0 a cx cx a cx + 1 + c a a 0 (c, x) où a 0 (c, x) est la solution la plus grande de l équation αa + βa + c = 0 avec α = cx cx et β = +cx 1, ou a 0(c, x) = 0 si une telle solution n existe pas. Selon (3A.3), Equation (3A.) est valide si n N c = t avec t = max {, a 0 (c, ɛ 1) }.

3A. Arithmétique avec grand-o Proprement dit, O, Θ, o, etc. dénotent des ensembles de fonctions. Quand même, on les utilise souvent dans des expressions comme f(n) = n + o(n). La règle d interprétation dans un tel cas est la suivante. À la droite d une égalité, on veut dire qu «il existe une fonction appartenant à l ensemble avec laquelle l équation est correcte». À la gauche d une égalité, on veut dire que «pour toute fonction appartenant à l ensemble, l équation est correcte». Par exemple, si on dit que «le temps de calcul est n + Θ( n)», il y a une égalité implicite (T (n) = n + Θ( n)) : c est une notation simple du fait que le temps de calcul est T (n) = n + g(n) où g(n) Θ( n). Exemple 3A.3. L égalité n O(1) = O(log n) veut dire que pour toute fonction f(n) = n g(n) avec g(n) O(1), il existe h(n) O(log n) tel que f(n) = h(n). (Exercice : démontrer cette égalité.) Attention : selon les règles, la signe d égalité n est pas symmétrique n+o(log n) = O(n ) mais O(n ) n + O(log n). Il n est pas difficile de voir les règles d arithmétique suivantes. On a que O(f 1 ) + O(f ) = O(f 1 + f ) = O ( max{f 1, f } ). Dans d autres mots, si g 1 O(f 1 ) et g O(f ), on a g 1 (n)+g (n) O ( f 1 (n)+f (n) ), ou, d une façon équivalente, g 1 (n) + g (n) O ( max{f 1 (n), f (n)} ). On a que O(f 1 ) O(f ) = O(f 1 f ). Dans d autres mots, si g 1 O(f 1 ) and g O(f ), alors g 1 (n) g (n) O ( f(n) ) avec f(n) = f 1 (n) f (n). 3A.3 Récurrences Lorsqu on a une fonction f(n) qui est définie par récurrences, et on doit démontrer f O(g) avec une fonction g quelconque, on utilise souvent des preuves par induction. Théorème 3A.. On considère les nombres Fibonacci { 1 si n = 0, 1, F (n) = F (n 1) + F (n ) si n > 1. On a que F (n) O( n ). Démonstration. On a besoin de c et de N qui satisfont (3A.1b). Donc on montre que pour c et N spécifiés plus tard, n N : F (n) c n. (3A.4) 3

Cas de base. On vérifie que F (0) c 0 si c 1, F (1) c 1 si c 1. Hypothèse d induction. Supposons que pour tout 0 k < n, F (k) c k (H) Cas inductif. On a F (n) = F (n 1) + F (n ) par définition c n 1 + c n par (H) = c n( 1 + 1 ) 4 < c n pour tout c > 0. Donc, Eq. (3A.4) est vrai avec N = 0 et c = 1. Exemple 3A.4. On considère la récurrence T (n) = T (n 1) + O(1) (recherche de maximum dans un tableau de taille n). On sait donc qu il existe c T > 0 tel que T (n) T (n 1) + c T si n = 1,,.... (3A.5) Par substitutions itérées, on développe l expansion T (n) T (n 1) + c T ( T (n ) + ct ) + ct... T (n k) + kc T... T (0) + n c T. On va donc montrer que T (n) = O(n). 4

Théorème 3A.3. Si T : N R + satisfait la récurrence T (n) = T (n 1) + O(1), alors T (n) O(n). Démonstration. On montre par induction en n que pour c > 0 et N 0 spécifiés plus tard, n N : T (n) cn. (3A.6) Cas de base. Pour n = 1, on a T (1) c (première contrainte sur c). Hypothèse d induction. Supposons que pour un n 1, on a T (k) ck pour tout 0 < k < n. (H). Cas inductif. Donc T (n) T (n 1) + c T par (3A.5) c(n 1) + c T par (H) cn si c c T. On voit qu avec c = max{c T, T (1)} et N = 1, (3A.6) est vrai. 3A.4 Substitution de variables et fonctions lisses Exemple 3A.5. On considère la récurrence T (n) = T ( n/ ) + O(1), qui vaut pour le temps de calcul de recherche binaire. Si n = k avec k = 0, 1,..., on a T ( k ) = T ( k 1 ) + O(1) pour tout k 1. On définit la fonction U(k) = T ( k ). Par Théorème 3A.3, U(k) = O(k) et donc T (n) c lg n est valide avec un c > 0 quelconque pour n = 1,, 4, 8,.... Est-ce qu on peut conclure que T (n) O(log n)? Oui, car log n est une fonction lisse. Définition 3A.. Une fonction f : N R + est lisse («smooth»), si f(bn) O ( f(n) ) pour tout entier b. REMARQUE. Les fonctions polynomiales et logarithmiques sont lisses. Par exemple, pour f(n) = n 3, on a (n) 3 = 8 n 3 et donc f(n) O`f(n). Par contre, les fonctions exponentielles ne sont pas lisses : si f(n) = 3 n, alors f(n) = 9 n, ce qui ne peut être borné par c 3 n avec aucune constante c > 0. 5

Théorème 3A.4. Soit f, g : N R + tels que f(b k ) cg(b k ) pour tout k = K, K + 1, K +,... avec une constante c > 0, un seuil K 0 et un entier b. Si f, g sont des fonctions non-décroissantes et g est lisse, alors f O(g). REMARQUE. Théorème 3A.4 est utile dans le cas d une récurrence avec des termes T ( n/b ) ou T ( n/b ). Si on est chanceux, on peut résoudre la récurrence pour n = b k, soit directement, soit par substitution de variables. En arrivant au résultat que T (b k ) O`f( k ), il faut vérifier si f est lisse, et conclure que T (n) O`f(n). Sans Théorème 3A.4, la preuve peut devenir assez compliquée, comme celle du Théorème 3A.5 ci-dessus. Pour les tris efficaces comme Quicksort, le temps de calcul satisfait la récurrence T (n) = T ( n/ ) + T ( n/ ) + O(n). (3A.7) On peut essayer d obtenir la solution rapidement avec «lissage» en examinant n = k : T (k) = T (k 1) + O( k ). La solution est T (k) = O(k k ), d où T (n) = O(n log n) (la fonction g(n) = n lg n est lisse). Théorème 3A.5. Si T (n): N R + satisfait la récurrence (3A.7) alors T (n) = O(n log n). Démonstration. Par (3A.7), il existe c 0 R + et N 0 N + tels que T (n) T ( n/ ) + T ( n/ ) + c 0 n (3A.8) pout tout n N 0. On va démontrer que T (n) cn lg n (*) pour tout n N, avec c et N à spécifier plus tard. En fait, on va démontrer par induction en k que T (n) cnk (**) pour tout k n < k+1 quand k N. Cas de base. Soit k 0 = lg N 0. On a pour tout k 0 n < k0+1 si { T ( k 0 ) c max T (n) cnk 0 k 0 k 0, T (k0 + 1) k 0 ( k 0 + 1), T (k0 + ) k 0 ( k 0 + ),..., T (k0+1 1) k 0 ( k 0+1 1) }. 6

Hypothèse d induction. Supposons que T (n) cnk (H) pour tout k n < k+1 avec un k k 0. Cas inductif. Soit n tel que k+1 n < k+. Alors, T (n) T ( n/ ) + T ( n/ ) + c 0 n par (**) si k+1 N 0 ; ck n/ + ck n/ + c 0 n par (H) ; = ckn + c 0 n car n/ + n/ = n ; c(k + 1)n si c c 0. { { } } En choisissant c = max c 0, max T (n) k 0 n< k 0 +1 nk 0 et N = k 0 avec k 0 = lg N 0, toutes les conditions de la preuve sont satisfaites et donc (*) est vrai pour tout n N. 3A.5 Croissance asymptotique et lim On peut évaluer la relation entre deux fonctions f, g rapidement en calculant lim n g(n) f(n). Si la limite existe, alors f = o(g) ou f = Θ(g), comme Théorème 3A.6 le montre ici. Théorème 3A.6. Soit f, g : N R + deux fonctions. 1. f o(g) si et seulement si la limite lim n f(n) g(n). Si f(n) lim n g(n) = 0. f(n) lim n g(n) = c, existe et avec une constante quelconque 0 < c <, alors f Θ(g). REMARQUE. Notez que pour o( ), la limite donne une réponse définitive («si et seulement si») mais on peut avoir f = Θ(g) sans que la limite existe. Par exemple, ( n si n est pair, f(n) = n si n est impair est clairement Θ(n) mais lim n f(n)/n n existe pas. 7

Exemple 3A.6. Une autre preuve pour Théorème 3A.1 utilise la limite. On a lg n n 1 / ln lim n n ɛ = lim n ɛn ɛ 1 = lim n 1 ɛ(ln )n ɛ par règle de L Hospital = 0 car ɛ > 0. 8