Cota superior asimptòtica

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:

Una funció f(x) pertany a O(g(x)) quan hi ha una constant positiva c tal que a partir d'un valor , 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 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:

Propietats

modifica

Sigui  , siguin  ,  ,  ,   funcions i   un real. És compleixen els següents enunciats:

i) Si   y  , llavors  
ii) Si   y  , llavors  
iii)   (igualtat entre conjunts)
iv) Si   y  , llavors  
v) Si   llavors   (igualtat entre conjunts)
vi) Si  , llavors  .

Exemples

modifica
  • 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  .
  • 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

modifica

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( ) 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é

modifica

Bibliografia

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