c pour presque tout n (donc g = O(f)) [Theta] f = Θ(g) ssi f = O(g) et g = O(f), ou c, c > 0 tels que g(n) y=f(n)/g(n) g(n)

Documents pareils
20. Algorithmique & Mathématiques

Limites des Suites numériques

Chapitre 3 : Fonctions d une variable réelle (1)

1 Mesure et intégrale

[ édité le 10 juillet 2014 Enoncés 1. Exercice 6 [ ] [correction] Si n est un entier 2, le rationnel H n =

Etude de la fonction ζ de Riemann

Les Nombres Parfaits.

CHAPITRE 2 SÉRIES ENTIÈRES

Exercice I ( non spé ) 1/ u 1 = u / Soit P la propriété : u n + 4. > 0 pour n 1. P est vraie au rang 1 car u 1

x +1 + ln. Donner la valeur exacte affichée par cet algorithme lorsque l utilisateur entre la valeur n =3.

SÉRIES STATISTIQUES À DEUX VARIABLES

Séquence 5. La fonction logarithme népérien. Sommaire

Suites et séries de fonctions

Comportement d'une suite

. (b) Si (u n ) est une suite géométrique de raison q, q 1, on obtient : N N, S N = 1 qn+1. n+1 1 S N = 1 1

Convergences 2/2 - le théorème du point fixe - Page 1 sur 9

Séries réelles ou complexes

Exo7. Déterminants. = 4(b + c)(c + a)(a + b). c + a c + b 2c Correction. b + a 2b b + c. Exercice 2 ** X a b c a X c b b c X a c b a X

Intégration et probabilités ENS Paris, TD (20)13 Lois des grands nombres, théorème central limite. Corrigé :

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

Processus et martingales en temps continu

Dénombrement. Chapitre Enoncés des exercices

Baccalauréat S Asie 19 juin 2014 Corrigé

Dénombrement. Introduction. 1 Cardinaux d'ensembles nis. ECE3 Lycée Carnot. 12 novembre Quelques dénitions

14 Chapitre 14. Théorème du point fixe

EXERCICES : DÉNOMBREMENT

3.1 Différences entre ESX 3.5 et ESXi 3.5 au niveau du réseau. Solution Cette section récapitule les différences entre les deux versions.

FEUILLE D EXERCICES 17 - PROBABILITÉS SUR UN UNIVERS FINI

UNIVERSITE MONTESQUIEU BORDEAUX IV. Année universitaire Semestre 2. Prévisions Financières. Travaux Dirigés - Séances n 4

STATISTIQUE : TESTS D HYPOTHESES

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable

II LES PROPRIETES DES ESTIMATEURS MCO 1. Rappel : M1 LA REGRESSION : HYPOTHESES ET TESTS Avril 2009

Groupe orthogonal d'un espace vectoriel euclidien de dimension 2, de dimension 3

Examen final pour Conseiller financier / conseillère financière avec brevet fédéral. Recueil de formules. Auteur: Iwan Brot

Statistique descriptive bidimensionnelle

Solutions particulières d une équation différentielle...

STATISTIQUE AVANCÉE : MÉTHODES

55 - EXEMPLES D UTILISATION DU TABLEUR.

La France, à l écoute des entreprises innovantes, propose le meilleur crédit d impôt recherche d Europe

Formation d un ester à partir d un acide et d un alcool

Consolidation. C r é e r un nouveau classeur. Créer un groupe de travail. Saisir des données dans un groupe

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

Chap. 5 : Les intérêts (Les calculs financiers)

Probabilités et statistique pour le CAPES

LES ÉCLIPSES. Éclipser signifie «cacher». Vus depuis la Terre, deux corps célestes peuvent être éclipsés : la Lune et le Soleil.

capital en fin d'année 1 C 0 + T C 0 = C 0 (1 + T) = C 0 r en posant r = 1 + T 2 C 0 r + C 0 r T = C 0 r (1 + T) = C 0 r 2 3 C 0 r 3...

Les algorithmes de tri

Séries numériques. Chap. 02 : cours complet.

Introduction : Mesures et espaces de probabilités

Université de Bordeaux - Master MIMSE - 2ème année. Scoring. Marie Chavent machaven/

Deuxième partie : LES CONTRATS D ASSURANCE VIE CLASSIQUES

PROMENADE ALÉATOIRE : Chaînes de Markov et martingales

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Cours de Statistiques inférentielles

Module 3 : Inversion de matrices

TRANSFERT DE CHARGE DANS UN RÉSEAU DE PROCESSEURS TOTALEMENT CONNECTÉS (*) par Maryse BÉGUIN ( 1 )

UNIVERSITÉ DE SFAX École Supérieure de Commerce

Algorithmique et Programmation, IMA


Le marché du café peut être segmenté en fonction de deux modes de production principaux : la torréfaction et la fabrication de café soluble.

Exercices de mathématiques

4 Approximation des fonctions

UV SQ 20. Automne Responsable d Rémy Garandel ( m.-el. remy.garandel@utbm.fr ) page 1

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Etude Spéciale SCORING : UN GRAND PAS EN AVANT POUR LE MICROCRÉDIT?

Simulations interactives de convertisseurs en électronique de puissance

Chap. 6 : Les principaux crédits de trésorerie et leur comptabilisation

Chap. 6 : Les principaux crédits de trésorerie et leur comptabilisation

POLITIQUE ECONOMIQUE ET DEVELOPPEMENT

Statistiques appliquées à la gestion Cours d analyse de donnés Master 1

RESOLUTION DES FLOW SHOP STOCHASTIQUES PAR LES ORDRES STOCHASTIQUES. DERBALA Ali *)

Polynésie Septembre Exercice On peut traiter la question 4 sans avoir traité les questions précédentes.

Échantillonnage et estimation

Cours 5 : ESTIMATION PONCTUELLE

Sommaire Chapitre 1 - L interface de Windows 7 9

Réseaux d ondelettes et réseaux de neurones pour la modélisation statique et dynamique de processus

UE C avancé cours 1: introduction et révisions

16.1 Convergence simple et convergence uniforme. une suite de fonctions de I dans R ou C.

Chapitre 7. Récurrences

Statistique Numérique et Analyse des Données

Compte Sélect Banque Manuvie Guide du débutant

STAGE IREM 0- Premiers pas en Python

Chapitre 2 SONDAGE ALEATOIRE SIMPLE OU A PROBABILITES EGALES. 2.1 DEFINITIONS 2.2 SONDAGE ALEATOIRE SIMPLE SANS REMISE (PESR) 2.2.

2 ième partie : MATHÉMATIQUES FINANCIÈRES

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

PROBLEMES DIOPTIMISATION EN NOMBRES ENTIERS J. L. NICOLAS

Guide du suivi et de l évaluation axés sur les résultats P ROGRAMME DES NATIONS UNIES POUR LE DÉVELOPPEMENT B U R E AU DE L É VA L UATION

Gérer les applications

Les arbres binaires de recherche

Donnez de la liberté à vos données. BiBOARD.

Chapitre 3 : Transistor bipolaire à jonction

Régulation analogique industrielle ESTF- G.Thermique

RECHERCHE DE CLIENTS simplifiée

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

Principes et Méthodes Statistiques

Cours d algorithmique pour la classe de 2nde

Université Pierre et Marie Curie. Biostatistique PACES - UE

Mécanique non linéaire

Un nouvel opérateur de fusion adaptatif. A new adaptive operator of fusion. 1. introduction

Guide d'exploitation. Neolane v6.0

Transcription:

4 Aalyse d algorithmes IFT015 Miklós Csűrös 9 septembre 016 4.1 Complexité d algorithmes O veut compredre l efficacité d u algorithme pour ue tâche quelcoque : o caractérise les ressources (temps, mémoire) écessaires pour l exécutio. usage de mémoire ou «complexité d espace» (space complexity) : c est le mémoire de travail écessaire à part de stocker l etrée même. temps d exécutio ou «complexité de temps» (time complexity) : c est le temps d exécutio das u modèle formel de calcul. 4. Notatio asymptotique Typiquemet, la complexité est caractérisée e otatio asymptotique, comme ue foctio de la taille de l etrée. Ceci permet de compredre et de prédire le comportemet de l algorithme. O utilisera «presque tout» das u ses bie défii : «presque tout» veut dire qu il y a juste u ombre fii (même aucue) d exceptios. (fr) (fr) Défiitio 4.1. Soit f et g deux foctios sur les ombres etiers telles que f(), g() > 0 pour presque tout. [grad O] f = O(g) si et seulemet si [ssi] c > 0: tel que f() g() c pour presque tout. [grad Omega] f = Ω(g) ssi ou c > 0: tel que f() g() c pour presque tout (doc g = O(f)) [Theta] f = Θ(g) ssi f = O(g) et g = O(f), ou c, c > 0 tels que y y=f()/g() À l'exceptio d'u ombre fii de poits, c f()/g() c' c' c [petit o] f = o(g) ssi lim f()/g() = 0, ou c > 0, f() g() c pour presque tout ) f() [tilde] f g ssi lim g() (1 = 1, ou f() = ± o(1) g() Modèles équivalets. La otatio asymptototique permet d éocer des résultats qui e dépedet pas de l implatatio cocrète d u algorithme. E particulier, la taille de l etrée peut être mesurée e bits, octets, ou d autres mesures covéiets (ombre d élémets das ue collectio), il faut juste assurer qu ue etrée de taille t peut être represetée sur Θ(t) bits. E plus, les istructio d u modèle de calcul s exécutet e Θ(1) sur u autre modèle de puissace équivalete (p.e., CPUs moderes sot équivalets à ue machie 4.1

RAM). Par coséquece, si o trouve qu u algorithme pred O() sur u tableau de taille, le résultat reste valide das des implatatios, idépedammet de CPU, lagage de programmatio, ou ecodage du tableau. T Exceptios à f() c g() T=c g() T=f() Il existe des défiitios équivaletes : par exemple, f() = O(g()) si et seulemet s il existe c > 0 et N 0 tels que f() c g() pour tout N. E gééral, ue propositio P() vaut pour presque tout, ssi il existe N < tel que P() vaut pour tout N. N 4..1 Règles d arithmétique Les equatios suivates sot valides avec O, Θ, Ω, et o. c f = O(f) O(f) + O(g) }{{} = O(f + g) }{{} pour tout h = O(f) et h = O(g) il existe h = O(f + g) t.q. h + h = h O(f) O(g) = O(f g) (4.1a) (4.1b) (4.1c) 4.. Quelques foctios otables Logarithmes. lg x = log x et l x = log e x {x > 0} log(xy) = log x + log y; log(x a ) = a log x lg = ; = lg ; log a = lg = Θ(lg ) lg a ; alg = lg a Das la otatio asymptotique, o e motre pas la base du logarithme parce qu avec ue base différete, o chage seulemet la facteur costate (log a f = c log b f avec c = log a b = 1/ log b a) : au lieu de O(log 10 ) ou O(l ), o écrit simplemet O(log ). Nombre harmoique. H = 1 + 1 + 1 3 + 1 l + γ = ( 1 + o(1) ) l = Θ(log ) où γ = lim (H l ) = 0.577 est la costate d Euler. ( ) Nombres Fiboacci. F () = 5 1 + o(1) φ = Θ(φ ) avec φ = (1 + 5)/. (fr) 4.

Factorielle.! = 1. Approximatio de Stirlig :! = ( 1 + o(1) ) π( e ) = Θ ( +1/ e ). Même si par itutio semble domier l expressio, o doit reteir tout exposat de das u terme quad o simplifie vers Θ. Par cotre, k=1 l k = l(!) = ( 1 + o(1) ) l, doc log(!) = Θ( log ). 4.3 Détermier le temps de calcul Algorithme sas récurrece. O peut exploiter les règles d arithmétique directemet das l aalyse du pseudocode. Pour établir le temps de calcul f, o examie le code et additioe le coût de chaque istructio. O sépare f par ses termes (règle (4.1b)), et o igore les facteurs costates (règle (4.1a)). Exemple 4.1. O pred l exemple de rechercher le maximum das u tableau. x[0.. 1] MAX-ITER M1 iitialiser max M for i 0,..., 1 do M3 if x[i] > max the max x[i] M4 retur max Le temps de calcul pour u tableau de taille est T () = + + + = O(). Exemple 4.. L algorithme d Euclide (v. 1.6, Note 1) est importat das des applicatios cryptographiques, où o calcule avec des etiers de grade taille (par exemple, 048 bits). La taille de l etrée est doc mesurée das le ombre de bits pour représeter les paramètres : lg a + lg b. GCD(a, b) // {b a} E1 while (b = 0) E c a mod b E3 a b; b c E4 retur a m(a,b) O(log b) Il faut cosidérer le coût de divisio etière ( mod ) : Lige E pred m(a, b) = O ( (log a)(log b) ) temps. Théorème 1. motre que le ombre d itératios est boré par O(log b) (o cherche le ombre Fiboacci F (k) b < F (k+1) ; doc k = log φ b + = O(log b)). Par coséquece, l algorithme d Euclide s exécute e T (a, b) = + O(log b) ( ) O(log a log b) + = O(log b log a) temps, doc e temps polyomial das la taille de l etrée, même pour des etiers très grads. Algorithme récursif. o cherche sa solutio. O commece par exprimer le temps de calcul par ue équatio de récurrece, et Exemple 4.3. O pred l exemple de rechercher le maximum das u tableau. MAX-REC x[0.. 1],i) // appel iitiel avec i =0 R1 if i = the retur R else R3 m MAX-REC x, i +1 R4 if x[i] >mthe retur x[i] R5 else retur m T(0)= T( j-1) 4.3

Soit T (j) le temps de calcul pour exécuter MAX-REC(x[0.. 1], j). O a la récurrece { si j = 0 T (j) = T (j 1) + si j > 0 (4.) Pour démotrer que la solutio de la récurrece est T (j) = O(j), o utilise ue preuve par iductio. Par Équatio (4.), il existe a tel que T (j) T (j 1)+a pour tout j > 0. Soit c = T (0)+a. Hypothèse d iductio : T (j) c j pour u j > 0. Cas de base : l hypothèse d iductio vaut pour j = 1. Cas iductif : T (j) T (j 1) + a c(j 1) + a cj (car c = T (0) + a > a). O coclut que T (j) cj pour tout j > 0, d où T (j) = O(j). Substitutio de variables. Exemple 4.4. O pred l exemple du calcul de puissaces. O veut calculer x où 0 est u etier o-égatif et x R. La clé à ue solutio efficace est la récurrece suivate 1 { = 0} x = x / x / { > 0, est pair} x x / x / { > 0, est impair} P1 Algo POWER(x, ) P if = 0 the retur 1 P3 else ( P4 y POWER x, P5 P6 ) // (calcule x, etier) if mod = 0 the retur y y else retur x y y Ceci mèe à la récurrece T () = T ( ) + pour > 0. O trouve la solutio par substitutio de variables : o regarde le ombre de bits das la représetatio biaire de. Si o déote ce ombre par b, o a la récurrece T (b) = T (b 1)+ avec la solutio T (b) = O(b) (v. Exemple 4.3). Or, b = lg(+1) = O(log ), doc T () = T ( O(log ) ) = O(log ), doc reste liéaire das la taille b même pour des etiers très grads. 4.4 Aspects pratiques La otatio asymptotique classique (O, Θ, Ω) est préferée das la descriptio théorique de l efficacité d algorithmes et de structures de doées. Si u algorithme est de O( ), o sait que même das le pire cas, il va predre u temps quadratique das la taille du problème. Mais e pratique, o voudrait prédire le comportemet de l algorithme sur des etrées typiques (et o pas seulemet le pire cas). O voudrait aussi savoir u peu plus sur les costates cachées par O, pour pouvoir choisir etre deux algorithmes de O( ). Par exemple, le tri rapide (quicksort) pred O( ) das le pire cas, mais il est e gééral préférable au tri par fusio (mergesort) qui est de Θ( log ) parce que quicksort pred Θ( log ) pour presque toute etrée, et les costates cachées sot plus petites qu e mergesort. 4.4.1 Temps de calcul comme coût Afi de développer ue caractérisatio d utilité pratique, o procède comme suit. 1. Développer u modèle de l etrée et défiir la otio de la «taille» de l etrée. Le modèle doit permettre la géératio de doées à l etrée pour mesurer la performace d ue implatatio sur l ordiateur.. Idetifier la partie du code le plus fréquemmet exécutée (qui domie la croissace du temps de calcul). Pour u algorithme itératif, cette partie est à l itérieur de la boucle le plus profodemet imbriquée. 4.4

3. Défiir u modèle de coût pour le temps de calcul. E particulier, o veut écrire le temps de calcul avec le coût d opératios typiques das le cotexte du problème. Exemples d opératio typique : comparaiso de deux élémets lors du tri d u fichier, accès à ue cellule das u tableau, ou ue opératio arithmétique (algorithme d Euclid, expoetiatio). 4. Détermier la fréquece d exécuter les opératios typiques e foctio de la taille de l etrée. Exemple. O pred l exemple de chercher le maximum das u tableau par itératio sur les élémets (Exemple 4.1). (1) O mesure la taille de l etrée par le ombre de ses élémets et o assume que les élémets sot das u ordre quelcoque (= permutatio au hasard, uiformemet distribuée). () La boucle itérieure cotiet la comparaiso «if x[i] > max the max x[i]». (3) O caractérise le temps de calcul par la fréquece de comparaisos (x[i] > max). (4) La boucle s exécute ( 1) fois quad > 0. E coclusio, l algorithme fait C() comparaisos arithmétiques pour u tableau de taille. 4.4. Mesurer et prédire le temps de calcul L avatage de la otatio tilde est qu elle exprime u hypothèse scietifique sur le comportemet de l algorithme qu o peut tester empiriquemet. E particulier, o peut implater l algorithme, géérer des etrées de tailles différetes, et mesurer le temps ou explicitemet compter la fréquece d exécutio d opératio typiques. Mesurer le temps de calcul. Le temps d exécutio peut être mesuré : das le code (Java) :... log T0 = System.curretTimeMillis(); // temps de début... log dt = System.curretTimeMillis()-T0; // temps (ms) dépassé das le shell (Liux/Uix) % time java -cp Mojar.jar mabelle.applicatio 0.83u 0.06s 0:00.35 85.7% 0+0k 0+53io 0pf+0w temps CPU («user time») temps CPU («kerel time») temps d'exécutio (secods) temps réel («wallclock time») utilisatio du CPU ou bie das u eviroemet de développemet de logiciel (Netbeas, Eclipse). Coceptio d expérieces. Das ue étude empirique, o veut performer plusieurs mesures. (1) O répète l expériece pour etrées différetes de même taille. La moyee motre le comportemet typique, et les répétitios permettet de compredre la dispersio statistique du temps de calcul. () O répète l expériece pour etrées de taille différete. Il est particulièremet utile de cosidérer des tailles multipliées par la même facteur ( ou 10). Si o a l hypothèse que le temps de calcul est T () a b, avec des costates quelcoques a, b > 0, o a T () T () a()b a b = b. (4.3) 4.5

E fait, Equatio (4.3) permet de déduire b par régressio liéaire même si o e le sait pas. O a log T () a + b log, et doc o peut détermier b par la pete das u répère log-log. À gauche : temps d éxécutio d u algorithme avec T (N) an 3. Les mesures servet aussi à prédire (par extrapolatio) le temps de calcul de l implatatio examiée pour des etrées de grade taille. 4.4.3 Usage de mémoire e Java L usage de mémoire par u programme Java peut varier avec la plate-forme, mais e gééral, o peut assumer 4 octets pour it et float, 8 octets pour log et double, aisi que pour les objets (adressage 64-bit). Tableau avec élémets : a + t octets où a = 16..4 est la taile de l e-tête et t est la taille d u élémet (référece ou type primitif). boolea byte char short it log float double référece 1 1 4 8 4 8 8 (adresse mémoire sur 64 bits) it =1000; Object x = ew MoObjet(); it[] T = ew it[]; Pile (stack) de variables locales x T valeur référece référece overhead (ifo sur classe, sycroisatio, ramasse-miette) variables d'istace arrodi à 8k octets etète Tas (heap) d'allocatio d'objets 16-4 octets 16 octets Object Iteger Node<Object> taille e octets (Java SE 1.6.0_51, 64 bits, MacOS) 4 4 4 40 paddig t octets 4.6