Cota superior asimptòtica

De testwiki
Salta a la navegació Salta a la cerca

Plantilla:Millorar traducció En anàlisi d'algorismes una cota superior asimptòtica és una funció que serveix de cota superior d'una altra funció quan l'argument tendeix a infinit. Usualment s'utilitza la notació de Landau: O(g(x)), per referir-se a les funcions acotades superiorment per la funció g(x). Més formalment es defineix:

O(g(x))={f(x):existeixen x0,c>0 tals quexx0>0:0|f(x)|c|g(x)|}

Una funció f(x) pertany a O(g(x)) quan hi ha una constant positiva c tal que a partir d'un valor x0, f(x) no supera cg(x). Vol dir que la funció f és inferior a g a partir d'un valor donat excepte per un factor constant.

La cota superior asimptòtica té utilitat en Teoria de la complexitat computacional quan es defininen les classes de complexitat.

Tot i que O(g(x)) està definit com un conjunt, s'acostuma a escriure f(x)= O(g(x)) en lloc de f(x)∈ O(g(x)). Moltes vegades també es parla d'una funció nomenant únicament la seva expressió, com en en lloc de h(x)=x², sempre que estigui clar quin és el paràmetre de la funció dins de l'expressió. En la gràfica es dona un exemple esquemàtic de com es comporta cg(x) pel que fa a f(x) quan x tendeix a infinit. Cal notar a més que aquest conjunt és no buit doncs g(x)=O(g(x)).

La cota ajustada asimptòtica (notació Θ) té relació amb les cotes asimptòtiques superior (notació O) i inferior:

f(x)=Θ(g(x)) si i només si f(x)=O(g(x)) i f(x)=Ω(g(x))

Propietats

Sigui E, siguin f1:E, g1:E, f2:E, g2:E funcions i k un real. És compleixen els següents enunciats:

i) Si f1=O(g1) y g1=O(g2), llavors f1=O(g2)
ii) Si f1=O(g1) y f2=O(g2), llavors f1f2=O(g1g2)
iii) f2O(g1)=O(f2g1) (igualtat entre conjunts)
iv) Si f1=O(g1) y f2=O(g2), llavors f1+f2=O(|g1|+|g2|)
v) Si k0 llavors O(g1)=O(kg1) (igualtat entre conjunts)
vi) Si f1=O(g1), llavors kf1=O(g1).

Exemples

  • La funció f(x) = x + 10 pot ser fitada superiorment per la funció g(x) = x². Per demostrar-ho és prou notar que per a tot valor de x≥3.7016 es compleix x+10 ≤ x². Per tant, x+10 = O(x²). Però x² no serveix com a cota inferior per x+10, és a dir x2(x+10).
  • La funció 200x està fitada superiorment per . Vol dir que quan x tendeix a infinit el valor de 200x es pot menysprear comparat amb el de .

Ordres usuals per a funcions

Els ordres més utilitzats en anàlisi d'algorismes, en ordre creixent, són els següents (on c representa una constant i n la mida de l'entrada):

notació nom
O(1) ordre constant
O(log log n) ordre sublogarítmic
O(log n) ordre logarítmic
O(n) ordre sublineal
O(n) ordre lineal o de primer ordre
O(n · log n) ordre lineal logarítmic
O() ordre quadràtic

o de segon ordre

O(n3), ... ordre cúbic o de tercer ordre, ...
O(nc) ordre potencial fix
O(cn), n > 1 ordre exponencial
O(n!) ordre factorial
O(nn) ordre potencial exponencial

Vegeu també

Bibliografia

  • Introduction to Algorithms, Second Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein