Exercice 1 : Complexité des algorithmes (8 points)
Exercice 1 : Complexité des algorithmes (8 points) Question 1 1: On considère le code suivant, comportant deux « tant que » imbriqués On cherche à mesurer la complexité de cette imbrication en fonction de n Pour cela, on utilise la variable compteur, qui est incrémentée à chaque passage dans le « tant que » interne def procedure(n) :
SUJET + CORRIGE
UE J1BS7202 : Algorithmique et Programmation Epreuve : Examen Date : Jeudi 19 d ecembre 2013 Heure : 9 heures Dur ee : 2 heures Documents : autoris es Epreuve de M Alain Griffault SUJET + CORRIGE Avertissement {La plupart des questions sont ind ependantes { A chaque question, vous pouvez au choix r epondre par un algorithme ou bien par un
Examen d’algorithmique - IRIF
Examen d’algorithmique Mercredi 13 janvier 2016 12h{15h / Aucun document autoris e Mode d’emploi : Le bar eme est donn e a titre indicatif La qualit e de la r edaction des algorithmes et des explications sera fortement prise en compte pour la note On peut toujours supposer une question r esolue et passer a la suite
CORRECTION DE L’EXAMEN D’ALGORITHMIQUE ET COMPLEXITE
CORRECTION DE L’EXAMEN D’ALGORITHMIQUE ET COMPLEXITE Master Informatique, première année, janvier 2015 TOUS VOS DOCUMENTS SUR PAPIER SONT AUTORISES COURRIEL ET TELEPHONE SONT INTERDITS REPONDEZ AUX QUESTIONS DANS L’ORDRE NUMEROTEZ VOS REPONSES 1 Plus court chemin et programmation linéaire Considérez le graphe ci-dessous : 0 a b 1 2 4
Complexité Corrigé
Le cas tab[pos] > x se traite de la même façon, mais en considérant le tableau tab[0:(pos - 1)] detaillebn=2c,cequiconduitàunnombred’opérationsde
TD : Complexité des algorithmes
3 complexité spatiale : 3 * m 4 complexité temporelle : m-1 La complexité temporelle est toujours favorable à la représentation avec un tableau à 1 dimension La complexité spatiale l’est également tant que 3 * m < n * n, c’est à dire m < (n*n)/3 Exercice 2 Revoir poly, transparents 33, 34, et 35
Algorithmique et Structures de Données Corrigé de lexamen écrit
Algorithmique et Structures de Données Corrigé de l'examen écrit G1: monasse (at) imagine enpc G2: nicolas audebert (at) onera G3: boulc-ha (at) imagine enpc 03/04/2019 Les exercices sont indépendants Il n'est pas interdit d'utiliser votre portable pour tester vos algorithmes, mais évidemment pas le wi 1 Calcul de déterminant
Complexité des algorithmes - diluniv-mrsfr
Complexité des algorithmes Evaluation du nombre d’opérations élémentaires en fonction de la taille des données, de la nature des données Notations : n : taille des données, T(n) : nombre d’opérations élémentaires Configurations caractéristiques meilleur cas, pire des cas, cas moyen Cours complexité – Stéphane Grandcolas
Exercices et problemes dalgorithmique
L’algorithmique a donné lieu à de nombreux ouvrages remarquables depuis plus de trente ans, sur lesquels se fondent les enseignements dispensés dans les universités et écoles d’ingénieurs, et dont nous donnons une liste non exhaustive à la fin de cet ouvrage L’expérience des auteurs, enseignants chevronnés dans différentes
SUJET + CORRIGE
conséquence, de complexité O(1) Reduire(T) qui retire la dernière case du tableau T , et qui met à jour la aleurv de T longueur en consé-quence, de complexité O(1) ousV supposerez également que chaque case d'un tableau contient : un champ data pour stocker les données un champ cle pour ordonner les données
[PDF] examen corrigé de chimie minérale PDF Cours,Exercices ,Examens
[PDF] examen corrige de mecanique quantique PDF Cours,Exercices ,Examens
[PDF] examen corrige de mecanique quantique pdf PDF Cours,Exercices ,Examens
[PDF] examen corrigé de pharmacologie PDF Cours,Exercices ,Examens
[PDF] examen corrige echantillonnage estimation PDF Cours,Exercices ,Examens
[PDF] examen corrigé ethernet PDF Cours,Exercices ,Examens
[PDF] examen corrigé introduction au droit PDF Cours,Exercices ,Examens
[PDF] examen corrigé modele entité association PDF Cours,Exercices ,Examens
[PDF] examen corrigé+microéconomie PDF Cours,Exercices ,Examens
[PDF] Examen d'anglais, raconter son passée, son présent et son future Bac Anglais
[PDF] EXAMEN D'HISTOIRE POUR DEMAIN, HITLER 3ème Histoire
[PDF] examen d'entrée en section européenne PDF Cours,Exercices ,Examens
[PDF] examen de biologie animale avec correction pdf PDF Cours,Exercices ,Examens
[PDF] examen de biologie animale s2 pdf PDF Cours,Exercices ,Examens
Complexité des algorithmes
Stéphane Grandcolas
stephane.grandcolas@univ-amu.fr Cours complexité - Stéphane Grandcolas - p. 1/28Algorithmes
P: un problème
M: une méthode pour résoudre le problèmePAlgorithme : description de la méthodeMdans un
langage algorithmiquedu nom du mathématicien perseAl Khuwarizmi(780 - 850) Cours complexité - Stéphane Grandcolas - p. 2/28Structures algorithmiques
Structures de contrôle
séquence embranchement (ou sélection) boucle (ou itération)Structures de données
constantes variables tableaux structures récursives (listes, arbres, graphes) Cours complexité - Stéphane Grandcolas - p. 3/28Complexité des algorithmes
On veut
Evaluer l'efficacité de la méthodeM
ComparerMavec une autre méthodeM?
indépendamment de l'environnement (machine, système, compilateur, ...) Cours complexité - Stéphane Grandcolas - p. 4/28Complexité des algorithmes
Evaluation du nombre d'
opérations élémentaires en fonction de la taille des données, de la nature des données.Notations :
n: taille des données,T(n): nombre d'opérations élémentaires
Configurations caractéristiques
meilleur cas, pire des cas, cas moyen. Cours complexité - Stéphane Grandcolas - p. 5/28Evaluation deT(n)(séquence)
Somme des coûts.
Traitement1T1(n)
Traitement2T2(n)???????
T(n) =T1(n) +T2(n)
Cours complexité - Stéphane Grandcolas - p. 6/28Evaluation deT(n)(embranchement)
Max des coûts.
siTraitement1T1(n)
sinon max(T1(n),T2(n)) Cours complexité - Stéphane Grandcolas - p. 7/28Evaluation deT(n)(boucle)
Somme des coûts des passages successifs
tant queTraitementTi(n)
fin faire??????? k i=1Ti(n) T i(n): coût de lai`emeitération souvent défini par uneéquation récursive
Cours complexité - Stéphane Grandcolas - p. 8/28 Evaluation deT(n)(fonctions récursives)fonctionFunctionRecursive(n)1si(n >1)alors2FunctionRecursive(n/2),
coûtT(n/2)3Traitement(n),
coûtC(n)4FunctionRecursive(n/2),
coûtT(n/2)Equation récursive
T(n) = 2?T(n/2) +C(n)siC(n) = 1alorsT(n) =K×n
siC(n) =nalorsT(n) =K×n×logn Cours complexité - Stéphane Grandcolas - p. 9/28Notation de LandauO(f(n))
c f(n)x 0nnT(n) = O(f(n))
Caractérise le comportement asymptotique (i.e. quandn→ ∞). Cours complexité - Stéphane Grandcolas - p. 10/28NotationΘ(f(n))
xc f(n)1xc f(n)2 n0n T(n)T(n) = Θ(f(n)) si?c1,c2,n0tels que
Cours complexité - Stéphane Grandcolas - p. 11/28Exemples
f(n) =n3+ 2n2+ 4n+ 2 =O(n3) Cours complexité - Stéphane Grandcolas - p. 12/28Exemples
f(n) =n3+ 2n2+ 4n+ 2 =O(n3) f(n) =nlogn+ 12n+ 888 =O(nlogn) Cours complexité - Stéphane Grandcolas - p. 12/28Exemples
f(n) =n3+ 2n2+ 4n+ 2 =O(n3) f(n) =nlogn+ 12n+ 888 =O(nlogn) f(n) = 1000n10-n7+ 12n4+2n1000=O(2n)
Cours complexité - Stéphane Grandcolas - p. 12/28 Les principales classes de complexitéO(1)temps constantO(logn)logarithmique
O(n)linéaire
O(n×logn)tris (par échanges)
O(n2)quadratique, polynomial
O(2n)exponentiel (problèmes très difficiles) Cours complexité - Stéphane Grandcolas - p. 13/28Exemple : permutation
fonctionpermutation(S,i,j)1tmp:=S[i], coûtc12S[i] :=S[j],
coûtc23S[j] :=tmp,
coûtc34renvoyerS
coûtc4Coût total
T(n) =c1+c2+c3+c4=O(1)
Cours complexité - Stéphane Grandcolas - p. 14/28Exemple : recherche séquentielle
fonctionrecherche(x,S,n)1i:= 1,2tant que((i < n)et(S[i]?=x))faire
(nfois)3i:=i+ 1,
4renvoyer(S[i] =x)
Pire des cas :nfois la boucle
T(n) = 1 +?ni=11 + 1 =O(n)
Cours complexité - Stéphane Grandcolas - p. 15/28Exemple : tri à bulle
fonctionTri(S,n)1pouri:=nà2faire (n-1fois)2pourj:= 1ài-1faire
(i-1fois)3si(S[j]> S[j+ 1])alors
4permuterS[j]etS[j+ 1]dansS,
T(n) =Cperm×n-1?
i=1i=Cperm×n×(n-1)2=O(n2)
Cours complexité - Stéphane Grandcolas - p. 16/28Equations récursives
Boucles itératives, fonctions récursives (approches de type diviser pour régner notamment)Cas généralT(n) =a×T(n/b) +f(n)
méthode par substitution, méthode par développement itératif, méthode générale. Cours complexité - Stéphane Grandcolas - p. 17/28 Méthode par substitution[Equations récursives]Principe
: on vérifie une intuitionT(n) =a×T(n/b) +f(n) etT(1) =c
Hypothèse
T(n) =g(n) (intuition)
Conclusion
a×g(n/b) +f(n) =g(n) etg(1) =cà démontrer en fixant les constantes
Cours complexité - Stéphane Grandcolas - p. 18/28 Méthode par substitution[Equations récursives] fonctionRechercheDichotomique(x,?S1,...,Sn?)1g:= 0,d:=n+ 1,2tant que(g < d-1)faire
stoppe quand g=d-13si(x > S((g+d)/2))alors
g <(g+d)/2< d4g:= (g+d)/2,
5sinon
6d:= (g+d)/2,
7renvoyerd,
Nombre d'itérations
T(n) = 1 +T(n/2)
Cours complexité - Stéphane Grandcolas - p. 19/28 Méthode par substitution[Equations récursives]T(n) = 1 +T(n/2) etT(1) = 1?
intuitionT(n) =O(log2n)HypothèseT(n) =a×log2n+c
doncT(n/2) =a×log2n-a+c en substituant on aT(n) = 1 +a×log2n-a+c donc1-a+c=ceta= 1, et puisqueT(1) = 1doncc= 1 ConclusionT(n) = log2n+ 1?s'il y a un élément on fera une itération Cours complexité - Stéphane Grandcolas - p. 20/28Méthode itérative[rappel sommations]
?n-1 i=1i=n×(n-1)2=O(n2)
n i=0xi=xn+1-1x-1 n i=02i= 2n+1-1 Cours complexité - Stéphane Grandcolas - p. 21/28Méthode itérative[Equations récursives]
2renvoyerS
3décomposerSenS1etS2,
(n)3S1:=TriParFusion(S1),
(T(?n/2?))4S2:=TriParFusion(S2),
(T(?n/2?))5S:=fusion(S1,S2),
(n)6renvoyerST(n) = 1 +n+ 2×T(n/2) +netT(1) = 1
Cours complexité - Stéphane Grandcolas - p. 22/28Méthode itérative[Equations récursives]
T(1) = 1
T(n) = 2n+ 1 + 2T(n/2)
Cours complexité - Stéphane Grandcolas - p. 23/28Méthode itérative[Equations récursives]
T(1) = 1
T(n) = 2n+ 1 + 2T(n/2)
doncT(n/2) =n+ 1 + 2T(n/4)T(n) = (2n+ 1) + (2n+ 2) + 4T(n/4)
Cours complexité - Stéphane Grandcolas - p. 23/28Méthode itérative[Equations récursives]
T(1) = 1
T(n) = 2n+ 1 + 2T(n/2)
doncT(n/2) =n+ 1 + 2T(n/4)T(n) = (2n+ 1) + (2n+ 2) + 4T(n/4)
orT(n/4) =n/2 + 1 + 2T(n/8)T(n) = (2n+ 1) + (2n+ 2) + (2n+ 4) + 8T(n/8)...
Cours complexité - Stéphane Grandcolas - p. 23/28Méthode itérative[Equations récursives]
T(1) = 1
T(n) = 2n+ 1 + 2T(n/2)
doncT(n/2) =n+ 1 + 2T(n/4)T(n) = (2n+ 1) + (2n+ 2) + 4T(n/4)
orT(n/4) =n/2 + 1 + 2T(n/8)T(n) = (2n+ 1) + (2n+ 2) + (2n+ 4) + 8T(n/8)...
T(n) =?logn-1
i=0(2n+ 2i) + 2logn Cours complexité - Stéphane Grandcolas - p. 23/28Méthode itérative[Equations récursives]
T(1) = 1
T(n) = 2n+ 1 + 2T(n/2)
doncT(n/2) =n+ 1 + 2T(n/4)T(n) = (2n+ 1) + (2n+ 2) + 4T(n/4)
orT(n/4) =n/2 + 1 + 2T(n/8)T(n) = (2n+ 1) + (2n+ 2) + (2n+ 4) + 8T(n/8)...
T(n) =?logn-1
i=0(2n+ 2i) + 2lognT(n) = 2nlogn+?logn-1
i=02i+n Cours complexité - Stéphane Grandcolas - p. 23/28Méthode itérative[Equations récursives]
T(1) = 1
T(n) = 2n+ 1 + 2T(n/2)
doncT(n/2) =n+ 1 + 2T(n/4)T(n) = (2n+ 1) + (2n+ 2) + 4T(n/4)
orT(n/4) =n/2 + 1 + 2T(n/8)T(n) = (2n+ 1) + (2n+ 2) + (2n+ 4) + 8T(n/8)...
T(n) =?logn-1
i=0(2n+ 2i) + 2lognT(n) = 2nlogn+?logn-1
i=02i+n et commePni=02i= 2n+1-1, on aPlogn-1 i=02i= 2logn-1T(n) = 2nlogn+ 2n-1 =O(nlogn)
Cours complexité - Stéphane Grandcolas - p. 23/28Méthode itérative[Equations récursives]
hauteur?log2n? n/2n n/2 n/4n/4n/4n/4 n/8n/8 n/8 n/8 n/8 n/8 n/8 n/8 ....111 O(k)traitements pour décomposer et fusionner une suite de longueurkT(n) = 2×n× ?log2n?
Cours complexité - Stéphane Grandcolas - p. 24/28 Méthode générale[Equations récursives]T(n) =a×T(n/b) +f(n)
aveca≥1,b >1etf(n)est positive asymptotiquement. si?? >0, f(n) =O(nlogba-?)alorsT(n) = Θ(nlogba), sif(n) = Θ(nlogba)alorsT(n) = Θ(nlogba×lgn), si?? >0, f(n) = Ω(nlogba+?)et Cours complexité - Stéphane Grandcolas - p. 25/28 Méthode générale[Equations récursives]T(n) =a×T(n/b) +f(n)
aveca≥1,b >1etf(n)est positive asymptotiquement. si?? >0, f(n) =O(nlogba-?)alorsT(n) = Θ(nlogba), sif(n) = Θ(nlogba)alorsT(n) = Θ(nlogba×lgn), si?? >0, f(n) = Ω(nlogba+?)et Le tri par fusion (T(n) = 2n+ 1 + 2T(n/2)) est dans le cas 2 : a=b= 2 etf(n) = 2n+ 1 = Θ(n) etT(n) = Θ(nlogn) Cours complexité - Stéphane Grandcolas - p. 25/28 Méthode par substitution[Equations récursives]T(n) = 2n+ 1 + 2T(n/2) etT(1) = 1
Hypothèse
:T(n) =O(nlogn) =anlogn+bn+c et doncT(n/2) =a/2nlogn+ (b-a)n/2 +c T(n) = 2n+ 1 + 2T(n/2) = 2n+ 1 +anlogn+ (b-a)n+ 2c =anlogn+ (b-a+ 2)n+ 2c+ 1 (1)b=b-a+ 2eta= 2 (2)c= 2c+ 1etc=-1 (3)T(1) =b-a+ 2 + 2c+ 1 = 1doncb= 2 et finalementT(n) = 2nlogn+ 2n-1 =O(nlogn) Cours complexité - Stéphane Grandcolas - p. 26/28Temps de calcul[simulation]
Taille
log2n n nlog2n n2 2n 100.003ms
0.01ms
0.03ms
0.1ms 1ms 1000.006ms
0.1ms 0.6ms 10ms1014siecles
10000.01ms
1ms 10ms 1s 1040.013ms
10ms 0.1s 100s105
0.016ms
100ms1.6s
3heures
1060.02ms
1s 20s10jours
Cours complexité - Stéphane Grandcolas - p. 27/28Temps de calcul[simulation]
nTs=nombre d'instructions par seconde nTs 2n n2 nlog2n n log2n 10620 1000
63000
106
10300000
10723
3162
600000
107103000000
10930
31000
4.107 109
1012
40
106