Vous êtes sur la page 1sur 6

Mesuredesalgorithmes:Onotation

Introduction
Efficacit=Temps+Espace
Soient2programmesdiffrentspourcalculerletermeUndelasuitedefibonacci:
P1: i:=1;j:=0;
P2: Fib(n:entier):entier
Pourk:=1,n
Sin<2
j:=i+j;
Fib:=1;
i:=ji;
Sinon
Fp;
Fib:=Fib(n1)+Fib(n2)
//rsultatdansj
Fsi
LetableausuivantrsumelestempsdexcutiondeP1etP2surlammemachine(Cyber835)avec
diffrentesvaleursden:
n

10

20

30

50

100

P1

1/6ms

1/3ms

1/2ms

3/4ms

1,5ms

P2

8ms

1s

2min

Estim>21j

Estim>109ans

LetempsdexcutiondeP1augmentelinairementavecnalorsqueceluideP2,ilaugmentede
manireexponentiel.P2aunecomplexitbeaucoupplusfortequecelledeP1.
Dfinition
- O(f(n)) = { t:* / c +, n0 , n n0 : t(n) c f(n) }
: l ensemble des entiers naturels
* : l ensemble des rels positifs ou nuls
+ : l ensemble des rels strictement positifs
O(f(n))estl'ensembledetouteslesapplicationstinfrieuresc*f(n)
f(n)estunmajorantdelensemble.
Exemples:

n2 O(n2)

n2 O(n3) car n2 <= c*n3 pour c=1 et n>=0

2n+1 O(2n) car 2n+1 = 2*2n <= c 2n pour c>=2 et n >= 0

3n O(2n) car (3/2)n est croissante donc il n existe pas de constante >= (3/2)n n

(n+1)! O(n!) car (n+1)!/n! = n+1 qui est aussi croissante

logbn O(logan) car logbn=(1/logab)*logan et (1/logab) est une cste

SupportdecoursMCP4:ONotation

1/6

Comportement asymptotique : Si un algo A est de complexit O(f(n)), alors f(n) est le


comportementasymptotiquedutempsdexcutiondeA.
Principedinvariance :Lacomplexitdunalgorithmeestindpendantedesonimplmentation
(choixdelamachine,dulangage,...).Endautrestermes,deuximplmentationsdiffrentesdun
mme algorithme ne peuvent diffrer en efficacit que par une constante multiplicative prs.
c1*f(n)pourlunetc2*f(n)pourlautre.
Proprits
a) O(f(n)) = O(g(n)) ssi f(n) O(g(n)) et g(n) O(f(n))
b) O(f(n)) O(g(n)) ssi f(n) O(g(n)) et g(n) O(f(n))
c) O(f(n)+g(n)) = O( max(f(n),g(n)) )
d) Si lim (f(n)/g(n)) = k (k>0) Alors O(f(n)) = O(g(n))
e) Si lim (f(n)/g(n)) = 0 Alors O(f(n)) O(g(n))
Quelquescomplexitsusuelles
O(logn)
>
logarithmique
O(n)
>
linaire
2
O(n )
>
quadratique
k
O(n )
>
polynomiale(kuneconstante)
n
O(a )
>
exponentiel(auneconstante)

>laplusfaible

>laplusforte

Autrenotation(laOmganotation)
(f(n)):lensembledetouteslesapplicationst>=c*f(n)
f(n)estunminorantdelensemble
Oprationslmentaires
Cestuneoprationduprogrammedontletempsdexcutionestindpendantdelataille(n)de
lexemplaireduproblmersoudre.
Gnralementtoutes lesoprations simples (affectation,E/S duneunit dedonne,valuation
dexpressionsimples,...)ainsiquelescomparaison(<,>,...)ontuntempsdexcutionindpendant
delatailleduproblmersoudre.
Rglesdecalculdelacomplexit

O(1)pourtouteoprationlmentaire

Lacomplexitdunesquencede2modulesM1decomplexitO(f(n))etM2decomplexit
O(g(n))estgalelaplusgrandedescomplexitdesdeuxmodules:O(max(f(n),g(n)))

Lacomplexitduneconditionnelle(SicondAlorsM1SinonM2Fsi)estlemaxentreles
complexitsdecond,M1etM2(cettesimplificationseffectuedansuneanalyseenpirecas)

Lacomplexitduneboucleestgalelasommesurtouteslesitrationsdelacomplexit
ducorpsdelaboucle
Exemple:Donnerlacomplexitduprogrammesuivant:
SupportdecoursMCP4:ONotation

2/6

1
2
3
4
5
6
7
8
9

Pouri:=1,n1
Pourj:=i+1,n
SiT[i]>T[j]
tmp:=T[i];
T[i]:=T[j];
T[j]:=tmp;
Fsi
Fp
Fp

Chaqueitrationdelaboucleinterne(28)prendaumaximumuntempsT=a(uneconstante
incluantletestdeligne3,lestroisaffectationsetlesinstructionsdecontrledelaboucle:test
incrmentation,...)
Laboucleinternefaitniitrations,doncT=b+(ni)aobdsigneletempsdinitialisationdela
boucle.
Pourchaqueitrationdelaboucleexterne,letempsT=c+b+(ni)a aveccuneconstante
englobantletempsncessaireauxinstructionsdecontrledelaboucle.
Laboucleexternefaitn1itration,doncsontempsdexcutionTest(bornpar):
=d+Sommesuri=1,n1[c+b+(ni)a]

=d+(n1)(c+b)+(n1)na/2
dtantuneconstantereprsentantletempsncessairelinitialisationdelaboucleexterne.
LetempsdexcutiontotalestbornparT=(a/2)n2+(c+ba/2)n+(dcb)
DoncleprogrammeestenO(n2)cara/2estpositif.
Complexitdesalgorcursifs
Celarevientrsoudreunequationdercurrence
3approches:
a)liminerlarcurrenceparsubstitutiondeprocheenproche
b)devinerunesolutionestladmontrerparrcurrence
c)utiliserlasolutiondecertainesquationsconnues
Applicationdea)parsubstitution
Soitlafonctionrcursivesuivante:
Fact(n:entier):entier
Sin<=1
Fact:=1
Sinon
Fact:=n*Fact(n1)
Fsi
PosonsT(n)letempsdexcutionncessairepourunappelFact(n)
SupportdecoursMCP4:ONotation

3/6

T(n)estlemaxentre:
lacomplexitdutestn<=1quiestenO(1)
lacomplexitde:Fact:=1quiestaussienO(1)
lacomplexitde:Fact:=n*Fact(n1)dontletempsdexcutiondpenddeT(n1)
(pourlecalculdeFact(n1))
Onpeuxdonccrireque:
T(n)=a
sin<=1et,
T(n)=b+T(n1)
sinon(sin>1)
Laconstanteaenglobeletempsdutest(n<=1)etletempsdelaffectation(Fact:=1)
Laconstantebenglobe:
letempsdutest(n<=1)
letempsdelopration*entrenetlersultatdeFact(n1)
etletempsdelaffectationfinale(Fact:=...)
T(n1)(letempsncessairepourlecalculdeFac(n1))seracalcul(rcursivement)aveclamme
dcomposition.
Pourcalculerlasolutiongnraledecettequation,onpeutprocderparsubstitution:
T(n)=b+T(n1)
=b+[b+T(n2)]
=2b+T(n2) =2b+[b+T(n3)]
=...
=ib+T(ni) =ib+[b+T(ni+1)]
=...
=(n1)b+T(nn+1)=nbb+T(1)=nbb+a
T(n) =nbb+a
DoncFactestenO(n)carbestuneconstantepositive.
Applicationdeb)parvrification
Soitlaprocdurercursiveduparcoursinordredansunarbrebinaire:
Inordre(A:arbre)
SiA<>NIL
Inordre(fg(A));
ecrire(Info(A));
Inordre(fd(A));
Fsi
Latailleduproblme(n)estlenombredenoeuddanslarbrederacineA.
PosonsT(n)letempsncessairepourparcourirunarbrecontenantnnoeuds.
Supposons que le sous arbre gauche de A contienne n1 noeuds (donc lesous arbre droit doit
renfermernn11noeuds),nouspouvonsalorscrirelquationdercurrencesuivante:
SupportdecoursMCP4:ONotation

4/6

T(n)=a
sin=0(lecasoA=NIL)et
T(n)=b+T(n1)+T(nn11) sin>0(lecasoA<>NIL,avecn1<n)
laconstanteareprsenteletempsdexcutiondutest(A<>NIL),
laconstantebreprsenteletempsncessairepourtestetlexcutiondelapartieSinon
T(n1)reprsenteletempsdexcutiondeInordre(fg(A))
T(nn11)reprsenteletempsdexcutiondeInordre(fd(A))
Pourrsoudrecettequationdercurrence,supposonsquecetteprocduresoitenO(n)
cadT(n)estdelaforme:dn+c(avecdetcdesconstantesdterminer)
vrifionscettehypothseparrcurrence:
T(0)=adaprslquationdercurrenceet
T(0)=cdaprslhypothsedercurrence,doncilfautquec=a
T(1)=b+T(0)+T(0)=b+2a
daprslquationdercurrence(carpourn=1lessousarbres
gaucheetdroitsontvides,cadn1=0etnn11=0)
T(1)=d+a

daprslhypothsedercurrence,doncd=b+a
lhypothsedercurrenceestdoncT(n)=(b+a)n+a
supposonscettehypothsevraiejusqum1etvrifionsquellerestevraiepourm:
T(m)=b+T(m1)+T(mm11)
daprslquationdercurrence
commem1<met(mm11)<monaalors:
T(m1)=(b+a)m1+a etT(mm11)=(b+a)(mm11)+a daprslhypothsedercurrence
doncT(m)
=b+[(b+a)m1+a]+[(b+a)(mm11)+a]
=b+(b+a)m1+a+(b+a)m(b+a)m1(b+a)+a
=(b+a)m+adonclhypothsedercurrenceestvraiequelquesoitn
Applicationdec)paridentificationdesquationsconnues
1ercas:quationshomognes
Unequationdercurrenceestditehomognesiellealaformesuivante:
a0tn+a1tn1+...+aktnk=0

(1)

pourtrouversasolutiongnrale,onprocdecommesuit:
a)Etablirsonquationcaractristique(unpolynmededegrk):
a0xk+a1xk1+...ak=0
calculersesracines:r1,r2,...rk
b)Sitouteslesracinerisontdistinctes,alorslasolutiongnralede(1)estdonnepar:
tn=C1r1n+C2r2n+...Ckrkn
(2)
olesCisontdesconstantesquelonpeutdtermineraveclesconditionsinitialesdelquationde
rcurrence.

SupportdecoursMCP4:ONotation

5/6

c)Sirjestunesolutionmultiple(demultiplicitm:apparatmfoiscommesolutiondelquation
caractristique),alorslasolutiongnralede(1)estdonneenremplaantdans(2)letermeCjrjn
parlasomme:Cj1rjn+Cj2nrjn+Cj3n2rjn...Cjmnm1rjn
Exemples:
1)Soit:

tn3tn14tn2=0(formegnrale)
t0=0,t1=1
(conditionsinitiales)
2
sonquationcaractristiqueest:x 3x4=0>2racinesdistinctes:r1=1etr2=4
donclasolutiongnraleest:tn=C1(1)n+C24n>O(4n)carC2estpositive
enappliquantlesconditionsinitialesontrouveC1=1/5etC2=1/5
2)Soit:

tn5tn1+8tn24tn3=0(formegnrale)
t0=0,t1=1,t2=2 (conditionsinitiales)
sonquationcaractristiqueest:x35x2+8x4=0oualors:(x1)(x2)2=0
>3racines:1,2et2(2estunesolutionmultipledemultiplicit=2)
donclasolutiongnraleest:tn=C11n+C22n+C3n2n
lesconditionsinitialesdonnent:C1=2,C2=2etC3=1/2
2ecas:quationsnonhomognes:
Unequationdercurrenceestditenonhomognesiellealaformesuivante:
a0tn+a1tn1+...+aktnk=b1nP1(n)+b2nP2(n)+b3nP3(n)+...

(3)

olesbisontdesconstantesdistinctesetlesPi(n)despolynmesenndedegrdi
Larsolutiondunetellequationsuitlemmeschmaqueceluidesquationshomognesen
partantdelquationcaractristiquesuivante:
(a0xk+a1xk1+...ak)(xb1)d1+1(xb2)d2+1(xb3)d3+1...=0
Exemple:
Soit: tn2tn1=n+2nett0=0
cestunequationnonhomogneavec:
b1=1,P1(n)=n,d1=1
b2=2,P2(n)=1,d2=0
sonquationcaractristiqueestdonc:(x2)(x1)2(x2)=0dontlesracinessont:2,1,1,2
donclesracines1et2sont,chacune,demultiplicit2
Lasolutiongnraleestalorsdonnepar:tn=C11n+C2n1n+C32n+C4n2n

SupportdecoursMCP4:ONotation

6/6

Vous aimerez peut-être aussi