Skip to content

Notació asimptòtica

La notació asimptòtica és una eina matemàtica que permet expressar l'eficiència dels algorismes de manera senzilla i clara. Però per un moment, oblidem-nos dels algorismes, i centrem-nos en les matemàtiques. A continuació es presenten les principals notacions asimptòtiques que necessitem i es presenten les seves propietats bàsiques. També s'inclouen exemples d'ús i es donen exemples i intuïcions per entendre-les millor.

Notació O gran

Definició: Donada una funció g:NN, es defineix la notació O gran com:

O(g)={f:NNcN:n0N:nn0:f(n)cg(n)}

Així doncs, O(g) és el conjunt de les funcions que creixen com a màxim tan ràpidament com g per a valors grans de n, ignorant constants multiplicatives i termes d'ordre menor.

Exemple: Si f(n)=3n2+100n+5, llavors f(n)O(n2).

Demostració: Cal trobar constants c i n0 tals que per a tot nn0, es compleixi que f(n)cn2. En aquest cas, podem triar c=4 i n0=101. En efecte, per a n101, tenim que 4n23n2+100n+5.

Visualització de O gran

TODO: Fer una gràfica.

Exemples i intuïcions per a O gran

A continuació es dónen uns exemples de l'ús de la notació O gran:

  • 3n2+5n7O(n3)
  • n+15O(n)
  • O(n5)O(n6)
  • n3O(n2)
  • n3O(2n)

Intuitivament, podem entendre aquesta notació de la següent manera:

  • f(n)O(g(n)) significa que, per a valors grans de n, la funció f(n) creix com a màxim, tan ràpidament com g(n), tot ignorant la seva pendent i què passa per a valors petits de n.

Notacions Omega i Theta

Un cop presentada la O gran, introduïm dues notacions complementàries que ens permeten caracteritzar millor el creixement de les funcions.

Definicions: Donada una funció g:NN, es defineixen:

Ω(g)={f:NNcN:n0N:nn0:f(n)cg(n)}Θ(g)={f:NNc1,c2N:n0N:nn0:c1g(n)f(n)c2g(n)}

Així doncs:

  • Ω(g) és el conjunt de les funcions que creixen com a mínim tan ràpidament com g per a valors grans de n, ignorant constants multiplicatives i termes d'ordre menor.

  • Θ(g) és el conjunt de les funcions que creixen exactament com g per a valors grans de n, ignorant constants multiplicatives i termes d'ordre menor.

Seguint amb l'exemple anterior, si f(n)=3n2+100n+5, es pot comprovar que f(n)Ω(n2) i, per tant, f(n)Θ(n2).

Exemples i intuïcions per a Omega i Theta

Aquests són uns exemples de l'ús de la notació Ω:

  • 2nΩ(n)
  • n2Ω(n)
  • nΩ(n)
  • nΩ(n2)
  • Ω(n6)Ω(n5)

I ara uns exemples de l'ús de la notació Θ:

  • 75nΘ(n)
  • 1023n2Θ(n)
  • n2Θ(n)
  • 2nΘ(2n2)
  • Θ(n)Θ(n2)

Convencions

Malgrat que O(g) és un conjunt de funcions i no una funció en si mateixa, sovint es comet un abús de notació i s'utilitza la notació f(n)=O(g(n)) per indicar que fO(g).

Aquesta és una convenció àmpliament utilitzada en l'anàlisi d'algorismes i facilita la comunicació dels resultats. Per tant, no ens n'estarem d'utilitzar-la. Però sempre cal tenir present que, estrictament parlant, O(g) és un conjunt de funcions i no una funció en si mateixa.

Amb aquest convenció, escriurem expressions com ara

3(n1)(n+2)=3n2+3n6=O(n2)=O(n3)

que, en realitat, vol dir que

3(n1)(n+2)=3n2+3n6O(n2)O(n3).

Igualment, és habitual estendre la notació a altres dominis diferents de N, com ara R+, això no comporta cap problema.

Propietats

Donades dues funcions f i g, aquestes propietats relacionen les diferents notacions asimptòtiques:

  • f=Ω(g)g=O(f)
  • Θ(f)=O(f)Ω(f)
  • f=Θ(g)f=O(g) i f=Ω(g)

Donades les funcions f, f1, f2, g, g1, g2 i h, la O gran compleix les propietats següents:

  • Reflexivitat: f=O(f)
  • Transitivitat: h=O(g)g=O(f)h=O(f)
  • Caracterització: g=O(f)O(g)O(f)
  • Suma: g1=O(f1)g2=O(f2)g1+g2=O(f1+f2)=O(max(f1,f2))
  • Producte: g1=O(f1)g2=O(f2)g1g2=O(f1f2)
  • Invariància multiplicativa: Per a tota constant c=R+, O(f)=O(cf)

Per a Ω es compleixen propietats similars, i en el cas de Θ es compleixen les següents propietats:

  • Reflexivitat: f=Θ(f)
  • Transitivitat: h=Θ(g)g=Θ(f)h=Θ(f)
  • Simetria: g=Θ(f)f=Θ(g)Θ(g)=Θ(f)
  • Suma: g1=Θ(f1)g2=Θ(f2)g1+g2=Θ(f1+f2)=Θ(max(f1,f2))
  • Producte: g1=Θ(f1)g2=Θ(f2)g1g2=Θ(f1f2)
  • Invariància multiplicativa: Per a tota constant c=R+, Θ(f)=Θ(cf)

Més abusos de notació

Seguint amb l'abús de notació esmentat anteriorment, es solen usar directament operacions entre les classes de funcions definides per les notacions asimptòtiques:

Si F1 i F2 són classes de funcions (com ara O(f) o Ω(f)):

  • F1+F2={f+gf=F1g=F2}
  • F1F2={fgf=F1g=F2}

En aquest context, es compleixen les propietats següents per a dues funcions f i g qualssevol:

  • O(f)+O(g)=O(f+g)=O(max{f,g})
  • O(f)O(g)=O(fg)
  • Θ(f)+Θ(g)=Θ(f+g)=Θ(max{f,g})
  • Θ(f)Θ(g)=Θ(fg)

Exercicis

Compara asimptòticament les següents parelles de funcions i indica quina creix més ràpidament quan n tendeix a l'infinit:

  • n412 vs 1.02n
  • 243n2 vs n3
  • 2n vs 3n
  • (logn)923 vs n0.0001
  • n(lnn)4 vs n2lnn
  • (log27)n vs (log47)n
  • (lnn)7842 vs 1.001n
  • n2n vs n31.5n
  • 2logn vs n

Jordi Petit
Lliçons.jutge.org
© Universitat Politècnica de Catalunya, 2025

lliçons.jutge.org