Articulo de referencia

Notación Big O

La notación Big O es una notación matemática que describe el tamaño aproximado de una función en un dominio . Big O pertenece a una familia de notaciones inventadas por los mate...

La notación Big O es una notación matemática que describe el tamaño aproximado de una función en un dominio . Big O pertenece a una familia de notaciones inventadas por los matemáticos alemanes Paul Bachmann [ 1 ] y Edmund Landau [ 2 ] y ampliadas por otros, conocidas colectivamente como notación Bachmann-Landau . La letra O significa Ordnung , es decir, el orden de aproximación .

En ciencias de la computación , la notación O grande se utiliza para clasificar algoritmos según cómo sus requisitos de tiempo de ejecución o espacio [ a ] crecen con la entrada. [ 3 ] En teoría analítica de números , la notación O grande expresa límites en el crecimiento de una función aritmética , como para el término restante en el teorema de los números primos . [ 4 ] En análisis matemático , incluido el cálculo , la notación O grande limita el error al truncar una serie de potencias y expresa la calidad de aproximación de una función de valor real o complejo por una función más simple.

A menudo, la notación O mayúscula caracteriza las funciones según su tasa de crecimiento a medida que la variable aumenta: diferentes funciones con la misma tasa de crecimiento asintótico pueden representarse con la misma notación O. La letra O se utiliza porque la tasa de crecimiento de una función también se conoce como su orden . La descripción de una función mediante la notación O mayúscula solo proporciona una cota superior para su tasa de crecimiento.

Asociadas a la notación de la gran O hay varias notaciones relacionadas, que utilizan los símboloso{\displaystyle o},{\displaystyle \sim },Ω{\displaystyle \Omega },{\displaystyle \ll },{\displaystyle \gg },{\displaystyle \asymp },ω{\displaystyle \omega }, yΘ{\displaystyle \Theta }para describir otros tipos de límites en las tasas de crecimiento. [ 5 ] [ 6 ] [ 7 ] [ 8 ]

Bachmann propuso la notación en 1894 y Landau la amplió en 1909. Una notación anterior fue propuesta por Paul du Bois-Reymond en 1870. [ 9 ]

Definición formal

DejarF,{\textstyle f,}La función que se va a estimar puede ser una función de valores reales o complejos definida en un dominio.D,{\textstyle D,}y dejargramo,{\textstyle g,}la función de comparación, sea una función de valor real no negativo definida en el mismo conjuntoD.{\textstyle D.}Las opciones comunes para el dominio son intervalos de números reales, acotados o no acotados, el conjunto de enteros positivos, el conjunto de números complejos y tuplas de números reales/complejos. Con el dominio escrito explícitamente o entendido implícitamente, se escribe

F(incógnita)=O(gramo(incógnita)) {\displaystyle f(x)=O{\bigl (}g(x){\bigr )}\ }

que se lee como "F(incógnita){\textstyle f(x)}es grandeO{\textstyle O}degramo(incógnita){\textstyle g(x)}" si existe un número real positivoMETRO{\textstyle M}de tal manera que

|F(incógnita)|METRO gramo(incógnita)  For all  incógnitaD.{\displaystyle \left|f(x)\right|\leq M\ g(x)\qquad ~{\mathsf {\ para\ todo\ }}~\quad x\in D.}

Sigramo(incógnita)>0{\displaystyle g(x)>0}(es decir, g nunca es cero) en todo el dominioD,{\displaystyle D,}una definición equivalente es que la razónF(incógnita)gramo(incógnita){\textstyle {\frac {f(x)}{g(x)}}}está acotado , es decir, hay un número real positivoMETRO{\displaystyle M}de modo que|F(incógnita)gramo(incógnita)|METRO{\textstyle {\Big |}{\frac {f(x)}{g(x)}}{\Big |}\leq M}a pesar deincógnitaD.{\displaystyle x\in D.}Estos abarcan todos los usos de gran tamañoO{\textstyle O}en ciencias de la computación y matemáticas, incluyendo su uso donde el dominio es finito, infinito, real, complejo, de una sola variable o de múltiples variables. En la mayoría de las aplicaciones, se elige la funcióngramo(incógnita){\displaystyle g(x)}apareciendo dentro del argumento deO(){\textstyle O{\bigl (}\cdot {\bigr )}}ser una forma lo más simple posible, omitiendo factores constantes y términos de orden inferior. El númeroMETRO{\textstyle M}se denomina constante implícita porque normalmente no se especifica. Al usar grandesO{\textstyle O}notación, lo que importa es que algún finitoMETRO{\displaystyle M}Existe, no su valor específico. Esto simplifica la presentación de muchas desigualdades analíticas.

Para funciones definidas en números reales positivos o enteros positivos, todavía se usa comúnmente una definición más restrictiva y algo contradictoria, [ 3 ] [ 10 ] especialmente en ciencias de la computación. Cuando se restringe a funciones que eventualmente son positivas, la notación

F(incógnita)=O(gramo(incógnita)) asincógnita{\displaystyle f(x)=O{\bigl (}g(x){\bigr )}\qquad ~{\mathsf {as}}\quad x\to \infty }

significa que para algún número reala,{\textstyle a,}F(incógnita)=O(gramo(incógnita)){\textstyle f(x)=O{\bigl (}g(x){\bigr )}}en el dominio[a,).{\textstyle \left[a,\infty \right).}Aquí, la expresiónincógnita{\textstyle x\to \infty }no indica un límite , sino la noción de que la desigualdad se cumple para valores suficientemente grandes.incógnita.{\textstyle x.}La expresiónincógnita{\textstyle x\to \infty }a menudo se omite. [ 3 ]

De manera similar, para un número reala,{\textstyle a,}la notación

F(incógnita)=O(gramo(incógnita))  como  incógnitaa{\displaystyle f(x)=O{\bigl (}g(x){\bigr )}\qquad ~{\text{ as }}\ x\to a}

significa que para alguna constantedo>0,{\textstyle c>0,}F(incógnita)=O(gramo(incógnita)){\textstyle f(x)=O{\bigl (}g(x){\bigr )}}en el intervalo[ado,a+do];{\displaystyle \left[a-c,a+c\right];}es decir, en un pequeño barrio dea.{\displaystyle a.} Además, la notación  F(incógnita)=h(incógnita)+O(gramo(incógnita)) {\displaystyle \ f(x)=h(x)+O{\bigl (}g(x){\bigr )}\ } medioF(incógnita)h(incógnita)=O(gramo(incógnita)).{\textstyle f(x)-h(x)=O{\bigl (}g(x){\bigr )}.}También son posibles expresiones más complejas .

A pesar de la presencia del signo igual ( = ) como está escrito, la expresiónF(incógnita)=O(gramo(incógnita)){\textstyle f(x)=O{\bigl (}g(x){\bigr )}}no se refiere a una igualdad , sino más bien a una desigualdad relacionadaF{\textstyle f}ygramo.{\textstyle g.}

En la década de 1930, [ 6 ] el teórico de números ruso IM Vinogradov introdujo la notación,{\displaystyle \ll ,}que se ha utilizado cada vez más en la teoría de números [ 4 ] [ 11 ] [ 12 ] y otras ramas de las matemáticas, como una alternativa a laO{\textstyle O}notación. Tenemos

 FgramoF=O(gramo).{\displaystyle \ f\ll g\iff f=O{\bigl (}g{\bigr )}.}

Con frecuencia, ambas notaciones se utilizan en la misma obra.

Versión del conjunto de la gran O

En ciencias de la computación [ 3 ] es común definir grandesO{\textstyle O}como también definiendo un conjunto de funciones. Con la función positiva (o no negativa)gramo(incógnita){\displaystyle g(x)}especificado, uno interpretaO(gramo(incógnita)){\textstyle O{\bigl (}g(x){\bigr )}}como representativo del conjunto de todas las funcionesF~{\textstyle {\tilde {f}}}que satisfacenF~(incógnita)=O(gramo(incógnita)).{\textstyle {\tilde {f}}(x)=O{\bigl (}g(x){\bigr )}.}Entonces se puede escribir de forma equivalenteF(incógnita)O(gramo(incógnita)),{\textstyle f(x)\in O{\bigl (}g(x){\bigr )},}leer como "la función F(incógnita) {\textstyle \ f(x)\ }está entre el conjunto de todas las funciones de orden como máximogramo(incógnita).{\textstyle g(x).}"

Ejemplos con un dominio infinito

En el uso típico elO{\displaystyle O}La notación se aplica a un intervalo infinito de números reales.[a,){\displaystyle [a,\infty )}y captura el comportamiento de la función para valores muy grandesincógnita{\displaystyle x}En este contexto, la contribución de los términos que crecen "más rápidamente" acabará por hacer irrelevantes a los demás. Por consiguiente, se pueden aplicar las siguientes reglas de simplificación:

  • SiF(incógnita){\displaystyle f(x)}es la suma de varios términos; si hay uno con la mayor tasa de crecimiento, se puede conservar y omitir todos los demás.
  • SiF(incógnita){\displaystyle f(x)}es producto de varios factores, cualesquiera constantes (factores en el producto que no dependen deincógnita{\displaystyle x}) puede omitirse.

Por ejemplo, dejemosF(incógnita)=6incógnita42incógnita3+5{\displaystyle f(x)=6x^{4}-2x^{3}+5}y supongamos que deseamos simplificar esta función, usandoO{\displaystyle O}notación, para describir su tasa de crecimiento para grandesincógnita{\displaystyle x}Esta función es la suma de tres términos:6incógnita4{\displaystyle 6x^{4}},2incógnita3{\displaystyle -2x^{3}}, y5{\displaystyle 5}De estos tres términos, el que tiene la tasa de crecimiento más alta es el que tiene el exponente más grande en función deincógnita{\displaystyle x}, es decir6incógnita4{\displaystyle 6x^{4}}Ahora se puede aplicar la segunda regla:6incógnita4{\displaystyle 6x^{4}}es un producto de6{\displaystyle 6}yincógnita4{\displaystyle x^{4}}en el que el primer factor no depende deincógnita{\displaystyle x}Omitir este factor da como resultado la forma simplificada.incógnita4{\displaystyle x^{4}}Por lo tanto, decimos queF(incógnita){\displaystyle f(x)}es una "gran O" deincógnita4{\displaystyle x^{4}}Matemáticamente, podemos escribirF(incógnita)=O(incógnita4){\displaystyle f(x)=O(x^{4})}a pesar deincógnita1{\displaystyle x\geq 1}. Este cálculo puede confirmarse utilizando la definición formal: seaF(incógnita)=6incógnita42incógnita3+5{\displaystyle f(x)=6x^{4}-2x^{3}+5}ygramo(incógnita)=incógnita4{\displaystyle g(x)=x^{4}}. Aplicando la definición formal anterior, la afirmación de queF(incógnita)=O(incógnita4){\displaystyle f(x)=O(x^{4})}es equivalente a su expansión, |F(incógnita)|METROincógnita4{\displaystyle |f(x)|\leq Mx^{4}} para alguna elección adecuada de un número real positivoMETRO{\displaystyle M}y para todosincógnita1{\displaystyle x\geq 1}Para probar esto, dejemosMETRO=13{\displaystyle M=13}. Entonces, para todosincógnita1{\displaystyle x\geq 1}: |6incógnita42incógnita3+5|6incógnita4+|2incógnita3|+56incógnita4+2incógnita4+5incógnita4=13incógnita4{\displaystyle {\begin{aligned}|6x^{4}-2x^{3}+5|&\leq 6x^{4}+|-2x^{3}|+5\\&\leq 6x^{4}+2x^{4}+5x^{4}\\&=13x^{4}\end{aligned}}} entonces |6incógnita42incógnita3+5|13incógnita4.{\displaystyle |6x^{4}-2x^{3}+5|\leq 13x^{4}.} Si bien también es cierto, por el mismo argumento, que F(incógnita)=O(incógnita10){\displaystyle f(x)=O(x^{10})}, esta es una aproximación menos precisa de la funciónF{\displaystyle f}Por otro lado, la declaraciónF(incógnita)=O(incógnita3){\displaystyle f(x)=O(x^{3})}es falso, porque el término6incógnita4{\displaystyle 6x^{4}}causas F(incógnita)/incógnita3{\displaystyle f(x)/x^{3}}ser ilimitado.

Cuando una funciónT(norte){\displaystyle T(n)}describe el número de pasos necesarios en un algoritmo con entradanorte{\displaystyle n}, una expresión como T(norte)=O(norte2){\displaystyle T(n)=O(n^{2})} con el dominio implícito siendo el conjunto de enteros positivos, puede interpretarse como que el algoritmo tiene como máximo el orden denorte2{\displaystyle n^{2}}complejidad temporal.

Ejemplo con un dominio finito

La notación Big O también se puede utilizar para describir el término de error en una aproximación a una función matemática en un intervalo finito. Los términos más significativos se escriben explícitamente y luego los menos significativos se resumen en un único término Big O. Consideremos, por ejemplo, la serie exponencial y dos expresiones de la misma que son válidas cuandoincógnita{\displaystyle x}es pequeño: miincógnita=1+incógnita+incógnita2 2¡+incógnita3 3¡+incógnita4 4¡+ para todos los finitos incógnita=1+incógnita+incógnita2 2+O(|incógnita|3) a pesar de |incógnita|1=1+incógnita+O(incógnita2) a pesar de |incógnita|1.{\displaystyle {\begin{aligned}e^{x}&=1+x+{\frac {\;x^{2}\ }{2!}}+{\frac {\;x^{3}\ }{3!}}+{\frac {\;x^{4}\ }{4!}}+\dotsb &&{\text{ for all finite }}x\\[4pt]&=1+x+{\frac {\;x^{2}\ }{2}}+O(|x|^{3})&&{\text{ for all }}|x|\leq 1\\[4pt]&=1+x+O(x^{2})&&{\text{ for all }}|x|\leq 1.\end{aligned}}} La expresión del medio ( la línea con "O(|incógnita3|){\displaystyle O(|x^{3}|)}" ) significa el valor absoluto del error  miincógnita(1+incógnita+incógnita2 2) {\displaystyle \ e^{x}-(1+x+{\frac {\;x^{2}\ }{2}})\ }es como máximo algunos tiempos constantes |incógnita3| {\displaystyle ~|x^{3}|\ }cuando incógnita {\displaystyle \ x~}es pequeño. Este es un ejemplo del uso del teorema de Taylor .

El comportamiento de una función dada puede ser muy diferente en dominios finitos que en dominios infinitos, por ejemplo, (incógnita+1)8=incógnita8+O(incógnita7) para incógnita1{\displaystyle (x+1)^{8}=x^{8}+O(x^{7})\quad {\text{ for }}x\geq 1} mientras (incógnita+1)8=1+8incógnita+O(incógnita2) para |incógnita|1.{\displaystyle (x+1)^{8}=1+8x+O(x^{2})\quad {\text{ for }}|x|\leq 1.}

Ejemplos multivariados

incógnitapecadoy=O(incógnita) para incógnita1,y cualquier número real{\displaystyle x\sin y=O(x)\quad {\text{ for }}x\geq 1,y{\text{ any real number}}}

3a2+7ab+2b2+a+3b+14a2+b2a2 a pesar de ab1{\displaystyle 3a^{2}+7ab+2b^{2}+a+3b+14\ll a^{2}+b^{2}\ll a^{2}\quad {\text{ for all }}a\geq b\geq 1}

incógnitayincógnita2+y2=O(1) para todos los reales incógnita,y que no son ambos 0{\displaystyle {\frac {xy}{x^{2}+y^{2}}}=O(1)\quad {\text{ for all real }}x,y{\text{ that are not both }}0}

incógnitait=O(1) para incógnita0,tR.{\displaystyle x^{it}=O(1)\quad {\text{ for }}x\neq 0,t\in \mathbb {R} .}

Aquí tenemos una función de variable compleja de dos variables. En general, cualquier función acotada esO(1){\displaystyle O(1)}.

(incógnita+y)10=O(incógnita10) para incógnita1,2y2.{\displaystyle (x+y)^{10}=O(x^{10})\quad {\text{ for }}x\geq 1,-2\leq y\leq 2.}

El último ejemplo ilustra una mezcla de dominios finitos e infinitos en las diferentes variables.

En todos estos ejemplos, el límite es uniforme en ambas variables. A veces, en una expresión multivariable, una variable es más importante que las demás, y se puede expresar que la constante implícitaMETRO{\displaystyle M}depende de una o más de las variables usando subíndices al símbolo de la gran O o el{\displaystyle \ll }símbolo. Por ejemplo, considere la expresión

(1+incógnita)b=1+Ob(incógnita) para 0incógnita1,b cualquier número real.{\displaystyle (1+x)^{b}=1+O_{b}(x)\quad {\text{ for }}0\leq x\leq 1,b{\text{ any real number.}}}

Esto significa que para cada número realb{\displaystyle b}, hay una constanteMETROb{\displaystyle M_{b}}, que depende deb{\displaystyle b}, para que para todos0incógnita1{\displaystyle 0\leq x\leq 1}, |(1+incógnita)b1|METRObincógnita.{\displaystyle |(1+x)^{b}-1|\leq M_{b}\cdot x.} Esta afirmación en particular se deriva del teorema general del binomio .

Otro ejemplo, común en la teoría de las series de Taylor , es miincógnita=1+incógnita+Or(incógnita2) a pesar de |incógnita|r,r ser cualquier número real.{\displaystyle e^{x}=1+x+O_{r}(x^{2})\quad {\text{ for all }}|x|\leq r,r{\text{ being any real number.}}} En este caso, la constante implícita depende del tamaño del dominio.

La convención de subíndices se aplica a todas las demás notaciones de esta página.

Propiedades

Producto

F1=O(gramo1) y F2=O(gramo2)F1F2=O(gramo1gramo2){\displaystyle f_{1}=O(g_{1}){\text{ and }}f_{2}=O(g_{2})\Rightarrow f_{1}f_{2}=O(g_{1}g_{2})}
FO(gramo)=O(|F|gramo){\displaystyle f\cdot O(g)=O(|f|g)}

Suma

SiF1=O(gramo1){\displaystyle f_{1}=O(g_{1})}yF2=O(gramo2){\displaystyle f_{2}=O(g_{2})}entoncesF1+F2=O(máximo(gramo1,gramo2)){\displaystyle f_{1}+f_{2}=O(\max(g_{1},g_{2}))}. De ello se deduce que siF1=O(gramo){\displaystyle f_{1}=O(g)}yF2=O(gramo){\displaystyle f_{2}=O(g)}entoncesF1+F2=O(gramo){\displaystyle f_{1}+f_{2}=O(g)}.

Multiplicación por una constante

Sea k una constante distinta de cero. EntoncesO(|k|gramo)=O(gramo){\displaystyle O(|k|\cdot g)=O(g)}. En otras palabras, siF=O(gramo){\displaystyle f=O(g)}, entonceskF=O(gramo).{\displaystyle k\cdot f=O(g).}

Propiedad transitiva

SiF=O(gramo){\displaystyle f=O(g)}ygramo=O(h){\displaystyle g=O(h)}entonces F=O(h){\displaystyle f=O(h)}.

Si la funciónF{\displaystyle f}de un número entero positivo norte{\displaystyle n}se puede escribir como una suma finita de otras funciones, entonces la que crece más rápido determina el orden deF(norte){\displaystyle f(n)}. Por ejemplo,

F(norte)=9registronorte+5(registronorte)4+3norte2+2norte3=O(norte3)para norte1.{\displaystyle f(n)=9\log n+5(\log n)^{4}+3n^{2}+2n^{3}=O(n^{3})\qquad {\text{for }}n\geq 1.}

Algunas reglas generales sobre el crecimiento hacia el infinito ; la segunda y tercera propiedad que se mencionan a continuación se pueden demostrar rigurosamente utilizando la regla de L'Hôpital :

Las grandes potencias dominan a las pequeñas potencias

Paraba{\displaystyle b\geq a}, entonces nortea=O(norteb){\displaystyle n^{a}=O(n^{b})} comonorte{\displaystyle n\to \infty }.

Las potencias dominan los logaritmos.

Para cualquier positivoa,b,{\displaystyle a,b,}(registronorte)a=Oa,b(norteb),{\displaystyle (\log n)^{a}=O_{a,b}(n^{b}),} no importa cuán grandea{\displaystyle a}es y cuán pequeño b{\displaystyle b}es. Aquí, la constante implícita depende de ambosa{\displaystyle a}yb{\displaystyle b}.

Las exponenciales dominan las potencias

Para cualquier positivoa,b,{\displaystyle a,b,}nortea=Oa,b(mibnorte),{\displaystyle n^{a}=O_{a,b}(e^{bn}),} no importa cuán grandea{\displaystyle a}es y cuán pequeño b{\displaystyle b}es.

Una función que crece más rápido quenortedo{\displaystyle n^{c}}para cualquierdo{\displaystyle c}se denomina superpolinomial . Aquel que crece más lentamente que cualquier función exponencial de la formadonorte{\displaystyle c^{n}}condo>1{\displaystyle c>1}se denomina subexponencial . Un algoritmo puede requerir un tiempo que sea a la vez superpolinomial y subexponencial; ejemplos de esto incluyen los algoritmos más rápidos conocidos para la factorización de enteros y la funciónnorteregistronorte{\displaystyle n^{\log n}}.

Podemos ignorar cualquier poder denorte{\displaystyle n}dentro de los logaritmos. Para cualquier positivodo{\displaystyle c}, la notaciónO(registronorte){\displaystyle O(\log n)}significa exactamente lo mismo queO(registro(nortedo)){\displaystyle O(\log(n^{c}))}, desderegistro(nortedo)=doregistronorte{\displaystyle \log(n^{c})=c\log n}. De manera similar, los logaritmos con bases constantes diferentes son equivalentes con respecto a la notación Big O. Por otro lado, las exponenciales con bases diferentes no son del mismo orden. Por ejemplo,2norte{\displaystyle 2^{n}}y3norte{\displaystyle 3^{n}}no son del mismo orden.

expresiones más complejas

En un uso más complejo,O(){\displaystyle O(\cdot )}pueden aparecer en diferentes lugares de una ecuación, incluso varias veces en cada lado. Por ejemplo, las siguientes son verdaderas paranorte{\displaystyle n}un número entero positivo: (norte+1)2=norte2+O(norte),(norte+O(norte1/2))(norte+O(registronorte))2=norte3+O(norte5/2),norteO(1)=O(minorte).{\displaystyle {\begin{aligned}(n+1)^{2}&=n^{2}+O(n),\\(n+O(n^{1/2}))\cdot (n+O(\log n))^{2}&=n^{3}+O(n^{5/2}),\\n^{O(1)}&=O(e^{n}).\end{aligned}}} El significado de tales afirmaciones es el siguiente: para cualquier función que satisfaga cadaO(){\displaystyle O(\cdot )}en el lado izquierdo, hay algunas funciones que satisfacen cadaO(){\displaystyle O(\cdot )}en el lado derecho, de tal manera que al sustituir todas estas funciones en la ecuación se igualan ambos lados. Por ejemplo, la tercera ecuación anterior significa: "Para cualquier función que satisfagaF(norte)=O(1){\displaystyle f(n)=O(1)}, hay alguna funcióngramo(norte)=O(minorte){\displaystyle g(n)=O(e^{n})}de tal manera quenorteF(norte)=gramo(norte){\displaystyle n^{f(n)}=g(n)}". La constante implícita en la afirmación "gramo(norte)=O(minorte){\displaystyle g(n)=O(e^{n})}" puede depender de la constante implícita en la expresión "F(norte)=O(1){\displaystyle f(n)=O(1)}".

Algunos ejemplos adicionales: F=O(gramo)abF=O(abgramo)F(incógnita)=gramo(incógnita)+O(1)miF(incógnita)=O(migramo(incógnita))(1+O(1/incógnita))O(incógnita)=O(1) para incógnita>0pecadoincógnita=O(|incógnita|) para todos los reales incógnita.{\displaystyle {\begin{aligned}f=O(g)\;&\Rightarrow \;\int _{a}^{b}f=O{\bigg (}\int _{a}^{b}g{\bigg )}\\f(x)=g(x)+O(1)\;&\Rightarrow \;e^{f(x)}=O(e^{g(x)})\\(1+O(1/x))^{O(x)}&=O(1)\quad {\text{ for }}x>0\\\sin x&=O(|x|)\quad {\text{ for all real }}x.\end{aligned}}}

La ≫ de Vinogradov y la gran Ω de Knuth

CuandoF,gramo{\displaystyle f,g}son ambas funciones positivas, Vinogradov [ 6 ] introdujo la notaciónF(incógnita)gramo(incógnita){\displaystyle f(x)\gg g(x)}, lo que significa lo mismo quegramo(incógnita)=O(F(incógnita)){\displaystyle g(x)=O(f(x))}Las dos notaciones de Vinogradov gozan de simetría visual, al igual que las funciones positivas.F,gramo{\displaystyle f,g}, tenemos F(incógnita)gramo(incógnita)gramo(incógnita)F(incógnita).{\displaystyle f(x)\ll g(x)\Longleftrightarrow g(x)\gg f(x).}

En 1976, Donald Knuth [ 8 ] definió

F(incógnita)=Ω(gramo(incógnita))gramo(incógnita)=O(F(incógnita)){\displaystyle f(x)=\Omega (g(x))\Longleftrightarrow g(x)=O(f(x))}

que tiene el mismo significado que el de VinogradovF(incógnita)gramo(incógnita){\displaystyle f(x)\gg g(x)}.

Sin embargo, mucho antes, Hardy y Littlewood [ 7 ] habían definidoΩ{\displaystyle \Omega }de manera diferente , y su notación goza de un uso generalizado hoy en día en la teoría analítica de números. [ 13 ] [ 11 ] [ 12 ] Justificando su uso de laΩ{\displaystyle \Omega }-símbolo para describir una propiedad más fuerte, [ 8 ] Knuth escribió: "Para todas las aplicaciones que he visto hasta ahora en ciencias de la computación, un requisito más fuerte... es mucho más apropiado". Knuth escribió además: "Aunque he cambiado la definición de Hardy y Littlewood deΩ{\displaystyle \Omega }, me siento justificado al hacerlo porque su definición no es en absoluto de uso generalizado, y porque hay otras maneras de decir lo que quieren decir en los casos relativamente raros en que su definición se aplica." [ 8 ] El gran de KnuthΩ{\displaystyle \Omega }Actualmente se utiliza ampliamente en informática y combinatoria .

El gran Θ de Hardy y Knuth

En teoría analítica de números, [ 12 ] la notaciónF(incógnita)gramo(incógnita){\displaystyle f(x)\asymp g(x)}significa ambos F(incógnita)=O(gramo(incógnita)){\displaystyle f(x)=O(g(x))}ygramo(incógnita)=O(F(incógnita)){\displaystyle g(x)=O(f(x))}Esta notación se debe originalmente a Hardy. [ 5 ] La notación de Knuth para la misma noción esF(incógnita)=Θ(gramo(incógnita)){\displaystyle f(x)=\Theta (g(x))}. [ 8 ] En términos generales, estas afirmaciones sostienen queF(incógnita){\displaystyle f(x)}ygramo(incógnita){\displaystyle g(x)}tienen el mismo orden . Estas notaciones significan que hay constantes positivas.METRO,norte{\displaystyle M,N} de modo que nortegramo(incógnita)F(incógnita)METROgramo(incógnita){\displaystyle Ng(x)\leq f(x)\leq Mg(x)} a pesar deincógnita{\displaystyle x}en el dominio común de F,gramo{\displaystyle f,g}Cuando las funciones se definen en los enteros positivos o en los números reales positivos, como en la notación O grande, los escritores a menudo interpretan las afirmaciones F(incógnita)=Ω(gramo(incógnita)){\displaystyle f(x)=\Omega (g(x))}yF(incógnita)=Θ(gramo(incógnita)){\displaystyle f(x)=\Theta (g(x))}como sujeto para todos suficientemente grandeincógnita{\displaystyle x}, es decir, para todosincógnita{\displaystyle x}más allá de cierto puntoincógnita0{\displaystyle x_{0}}. A veces esto se indica añadiendoincógnita{\displaystyle x\to \infty }a la declaración. Por ejemplo, 2norte210norte=Θ(norte2){\displaystyle 2n^{2}-10n=\Theta (n^{2})} es cierto para el dominionorte6{\displaystyle n\geq 6}pero falso si el dominio son todos los enteros positivos, ya que la función es cero ennorte=5{\displaystyle n=5}.

Otros ejemplos

norte3+20norte2+norte+12norte3 a pesar de norte1.{\displaystyle n^{3}+20n^{2}+n+12\asymp n^{3}\quad {\text{ for all }}n\geq 1.}

(1+incógnita)8=incógnita8+Θ(incógnita7) a pesar de incógnita1.{\displaystyle (1+x)^{8}=x^{8}+\Theta (x^{7})\quad {\text{ for all }}x\geq 1.}

La notación

F(norte)=miΩ(norte) a pesar de norte1,{\displaystyle f(n)=e^{\Omega (n)}\quad {\text{ for all }}n\geq 1,} significa que hay una constante positivaMETRO{\displaystyle M} de modo queF(norte)miMETROnorte{\displaystyle f(n)\geq e^{Mn}}a pesar denorte1{\displaystyle n\geq 1}Por el contrario, F(norte)=miO(norte) a pesar de norte1,{\displaystyle f(n)=e^{-O(n)}\quad {\text{ for all }}n\geq 1,} significa que hay una constante positivaMETRO{\displaystyle M} de modo queF(norte)miMETROnorte{\displaystyle f(n)\geq e^{-Mn}}a pesar denorte1{\displaystyle n\geq 1}y F(norte)=miΘ(norte) a pesar de norte1,{\displaystyle f(n)=e^{\Theta (n)}\quad {\text{ for all }}n\geq 1,} significa que hay constantes positivasMETRO,norte{\displaystyle M,N} de modo quemiMETROnorteF(norte)minortenorte{\displaystyle e^{Mn}\leq f(n)\leq e^{Nn}}a pesar denorte1{\displaystyle n\geq 1}.

Para cualquier dominioD{\displaystyle D}, F(incógnita)=gramo(incógnita)+O(1)miF(incógnita)migramo(incógnita),{\displaystyle f(x)=g(x)+O(1)\Longleftrightarrow e^{f(x)}\asymp e^{g(x)},} cada declaración es para todosincógnita{\displaystyle x}enD{\displaystyle D}.

Órdenes de funciones comunes

Aquí se presenta una lista de clases de funciones que se encuentran comúnmente al analizar el tiempo de ejecución de un algoritmo. En cada caso, c es una constante positiva y n aumenta indefinidamente. Las funciones de crecimiento más lento generalmente se enumeran primero.

La declaraciónF(norte)=O(norte¡){\displaystyle f(n)=O(n!)}a veces se debilita aF(norte)=O(nortenorte){\displaystyle f(n)=O\left(n^{n}\right)}para derivar fórmulas más simples para la complejidad asintótica. En muchos de estos ejemplos, el tiempo de ejecución es realmenteΘ(gramo(norte)){\displaystyle \Theta (g(n))}, lo que transmite mayor precisión.

notación con minúscula

Para funciones de valor real o complejo de una variable real. incógnita{\displaystyle x}congramo(incógnita)>0{\displaystyle g(x)>0}para suficientemente grandeincógnita{\displaystyle x}, escribe uno [ 2 ]

F(incógnita)=o(gramo(incógnita)) como incógnita{\displaystyle f(x)=o(g(x))\quad {\text{ as }}x\to \infty }

si límiteincógnitaF(incógnita)gramo(incógnita)=0.{\displaystyle \lim _{x\to \infty }{\frac {f(x)}{g(x)}}=0.} Es decir, para cada constante positiva ε existe una constanteincógnita0{\displaystyle x_{0}}de tal manera que

|F(incógnita)|εgramo(incógnita) a pesar de incógnitaincógnita0.{\displaystyle |f(x)|\leq \varepsilon g(x)\quad {\text{ for all }}x\geq x_{0}.}

Intuitivamente, esto significa quegramo(incógnita){\displaystyle g(x)}crece mucho más rápido queF(incógnita){\displaystyle f(x)}o equivalentementeF(incógnita){\displaystyle f(x)}crece mucho más lentamente que gramo(incógnita){\displaystyle g(x)}. Por ejemplo, uno tiene

200incógnita=o(incógnita2){\displaystyle 200x=o(x^{2})}y1/incógnita=o(1),{\displaystyle 1/x=o(1),}  ambos comoincógnita.{\displaystyle x\to \infty .}

Cuando uno está interesado en el comportamiento de una función para valores grandes deincógnita{\displaystyle x}, la notación little-o hace una afirmación más fuerte que la notación big-O correspondiente: toda función que sea little-o degramo{\displaystyle g}también es big-O degramo{\displaystyle g}a intervalos[a,){\displaystyle [a,\infty )}, pero no todas las funciones que son de notación big-O degramo{\displaystyle g}es pequeño-o degramo{\displaystyle g}. Por ejemplo,2incógnita2=O(incógnita2){\displaystyle 2x^{2}=O(x^{2})}pero2incógnita2o(incógnita2){\displaystyle 2x^{2}\neq o(x^{2})}paraincógnita1{\displaystyle x\geq 1}.

Little-o respeta una serie de operaciones aritméticas. Por ejemplo,

sido{\displaystyle c}es una constante distinta de cero yF=o(gramo){\displaystyle f=o(g)}entoncesdoF=o(gramo){\displaystyle c\cdot f=o(g)}, y
siF=o(F){\displaystyle f=o(F)}ygramo=o(GRAMO){\displaystyle g=o(G)}entoncesFgramo=o(FGRAMO).{\displaystyle f\cdot g=o(F\cdot G).}
siF=o(F){\displaystyle f=o(F)}ygramo=o(GRAMO){\displaystyle g=o(G)}entoncesF+gramo=o(F+GRAMO){\displaystyle f+g=o(F+G)}

También satisface una relación de transitividad :

siF=o(gramo){\displaystyle f=o(g)}ygramo=o(h){\displaystyle g=o(h)}entoncesF=o(h).{\displaystyle f=o(h).}

La notación Little-o también se puede generalizar al caso finito: [ 2 ]F(incógnita)=o(gramo(incógnita)) como incógnitaincógnita0{\displaystyle f(x)=o(g(x))\quad {\text{ as }}x\to x_{0}}si límiteincógnitaincógnita0F(incógnita)gramo(incógnita)=0.{\displaystyle \lim _{x\to x_{0}}{\frac {f(x)}{g(x)}}=0.} En otras palabras, F(incógnita)=α(incógnita)gramo(incógnita){\displaystyle f(x)=\alpha (x)g(x)}para algunosα(incógnita){\displaystyle \alpha (x)}conlímiteincógnitaincógnita0α(incógnita)=0{\displaystyle \lim _{x\to x_{0}}\alpha (x)=0}.

Esta definición es especialmente útil en el cálculo de límites mediante series de Taylor . Por ejemplo:

pecadoincógnita=incógnitaincógnita33¡+=incógnita+o(incógnita2) como incógnita0{\displaystyle \sin x=x-{\frac {x^{3}}{3!}}+\ldots =x+o(x^{2}){\text{ as }}x\to 0}, entonceslímiteincógnita0pecadoincógnitaincógnita=límiteincógnita0incógnita+o(incógnita2)incógnita=límiteincógnita01+o(incógnita)=1{\displaystyle \lim _{x\to 0}{\frac {\sin x}{x}}=\lim _{x\to 0}{\frac {x+o(x^{2})}{x}}=\lim _{x\to 0}1+o(x)=1}

Notación asintótica

Una relación relacionada con la notación o pequeña es la notación asintótica .{\displaystyle \sim }Para funciones de valor realF,gramo{\displaystyle f,g}, la expresiónF(incógnita)gramo(incógnita) como incógnita{\displaystyle f(x)\sim g(x)\quad {\text{ as }}x\to \infty } medio límiteincógnitaF(incógnita)gramo(incógnita)=1.{\displaystyle \lim _{x\to \infty }{\frac {f(x)}{g(x)}}=1.} Esto se puede relacionar con la notación minúscula observando que F(incógnita)gramo(incógnita){\displaystyle f(x)\sim g(x)}también es equivalente a F(incógnita)=(1+o(1))gramo(incógnita){\displaystyle f(x)=(1+o(1))g(x)}. Aquío(1){\displaystyle o(1)}se refiere a una función que tiende a cero comoincógnita{\displaystyle x\to \infty }Esto se lee como "F(incógnita){\displaystyle f(x)}es asintótico agramo(incógnita){\displaystyle g(x)}". Para funciones no nulas en el mismo dominio (finito o infinito),{\displaystyle \sim }forma una relación de equivalencia .

Uno de los teoremas más famosos que utiliza la notación {\displaystyle \sim }es la fórmula de Stirlingnorte¡(nortemi)norte2πnorte como norte.{\displaystyle n!\sim {\bigg (}{\frac {n}{e}}{\bigg )}^{n}{\sqrt {2\pi n}}\quad {\text{ as }}n\to \infty .} En teoría de números, el famoso teorema de los números primos establece que π(incógnita)incógnitaregistroincógnita como incógnita,{\displaystyle \pi (x)\sim {\frac {x}{\log x}}\quad {\text{ as }}x\to \infty ,} dóndeπ(incógnita){\displaystyle \pi (x)}es el número de primos que son como máximoincógnita{\displaystyle x}yregistro{\displaystyle \log }es el logaritmo natural deincógnita{\displaystyle x}.

Al igual que con la notación de o minúscula, también existe una versión con límites finitos (bilaterales o unilaterales ), por ejemplopecadoincógnitaincógnita como incógnita0.{\displaystyle \sin x\sim x\quad {\text{ as }}x\to 0.}

Otros ejemplos: incógnitaa=oa,b(mibincógnita) como incógnita, para cualquier constante positiva a,b,{\displaystyle x^{a}=o_{a,b}(e^{bx})\quad {\text{ as }}x\to \infty ,{\text{ for any positive constants }}a,b,}F(incógnita)=gramo(incógnita)+o(1)miF(incógnita)migramo(incógnita)(incógnita).{\displaystyle f(x)=g(x)+o(1)\quad \Longleftrightarrow \quad e^{f(x)}\sim e^{g(x)}\quad (x\to \infty ).}norte=11nortes1s1(s1+).{\displaystyle \sum _{n=1}^{\infty }{\frac {1}{n^{s}}}\sim {\frac {1}{s-1}}\quad (s\to 1^{+}).} La última asintótica es una propiedad básica de la función zeta de Riemann .

El pequeño 𝜔 de Knuth

Para funciones de valor real eventualmente positivasF,gramo,{\displaystyle f,g,}la notación F(incógnita)=ω(gramo(incógnita)) como incógnita{\displaystyle f(x)=\omega (g(x))\quad {\text{ as }}x\to \infty } medio límiteincógnitaF(incógnita)gramo(incógnita)=.{\displaystyle \lim _{x\to \infty }{\frac {f(x)}{g(x)}}=\infty .} En otras palabras,gramo(incógnita)=o(F(incógnita)){\displaystyle g(x)=o(f(x))}En términos generales, esto significa queF(incógnita){\displaystyle f(x)} crece mucho más rápido quegramo(incógnita){\displaystyle g(x)}.

La notación Ω de Hardy-Littlewood

En 1914, GH Hardy y JE Littlewood introdujeron el nuevo símbolo. Ω,{\displaystyle \ \Omega ,}[ 7 ] que se define de la siguiente manera:

F(incógnita)=Ω(gramo(incógnita)){\displaystyle f(x)=\Omega (g(x))\quad }comoincógnita{\displaystyle \quad x\to \infty \quad }silímite superiorincógnita | F(incógnita) gramo(incógnita)|>0 .{\displaystyle \quad \limsup _{x\to \infty }\ \left|{\frac {\ f(x)\ }{g(x)}}\right|>0~.}

De este modo F(incógnita)=Ω(gramo(incógnita)) {\displaystyle ~f(x)=\Omega (g(x))~}es la negación de F(incógnita)=o(gramo(incógnita)) .{\displaystyle ~f(x)=o(g(x))~.}

En 1916, los mismos autores introdujeron los dos nuevos símbolos. ΩR {\displaystyle \ \Omega _{R}\ }y ΩL ,{\displaystyle \ \Omega _{L}\ ,}definido como: [ 15 ]

F(incógnita)=ΩR(gramo(incógnita)){\displaystyle f(x)=\Omega _{R}(g(x))\quad }comoincógnita{\displaystyle \quad x\to \infty \quad }silímite superiorincógnita  F(incógnita) gramo(incógnita)>0 ;{\displaystyle \quad \limsup _{x\to \infty }\ {\frac {\ f(x)\ }{g(x)}}>0\ ;}
F(incógnita)=ΩL(gramo(incógnita)){\displaystyle f(x)=\Omega _{L}(g(x))\quad }comoincógnita{\displaystyle \quad x\to \infty \quad }si límite inferiorincógnita  F(incógnita) gramo(incógnita)<0 .{\displaystyle \quad ~\liminf _{x\to \infty }\ {\frac {\ f(x)\ }{g(x)}}<0~.}

Estos símbolos fueron utilizados por E. Landau , con los mismos significados, en 1924. [ 16 ] Sin embargo, los autores que siguieron a Landau utilizan una notación diferente para las mismas definiciones: [ 11 ] El símbolo ΩR {\displaystyle \ \Omega _{R}\ }ha sido reemplazado por la notación actual Ω+ {\displaystyle \ \Omega _{+}\ }con la misma definición y ΩL {\displaystyle \ \Omega _{L}\ }convertirse Ω .{\displaystyle \ \Omega _{-}~.}

Estos tres símbolos Ω ,Ω+ ,Ω ,{\displaystyle \ \Omega \ ,\Omega _{+}\ ,\Omega _{-}\ ,}así como F(incógnita)=Ω±(gramo(incógnita)) {\displaystyle \ f(x)=\Omega _{\pm }(g(x))\ }(lo que significa que F(incógnita)=Ω+(gramo(incógnita)) {\displaystyle \ f(x)=\Omega _{+}(g(x))\ }y F(incógnita)=Ω(gramo(incógnita)) {\displaystyle \ f(x)=\Omega _{-}(g(x))\ }ambos se satisfacen), y actualmente se utilizan en la teoría analítica de números . [ 11 ] [ 12 ]

Ejemplos sencillos

Tenemos

pecadoincógnita=Ω(1){\displaystyle \sin x=\Omega (1)\quad }comoincógnita ,{\displaystyle \quad x\to \infty \ ,}

y más precisamente

pecadoincógnita=Ω±(1){\displaystyle \sin x=\Omega _{\pm }(1)\quad }comoincógnita, {\displaystyle \quad x\to \infty ,~}

dóndeΩ±{\displaystyle \Omega _{\pm }}significa que el lado izquierdo es ambosΩ+(1){\displaystyle \Omega _{+}(1)}yΩ(1){\displaystyle \Omega _{-}(1)},

Tenemos

1+pecadoincógnita=Ω(1){\displaystyle 1+\sin x=\Omega (1)\quad }comoincógnita ,{\displaystyle \quad x\to \infty \ ,}

y más precisamente

1+pecadoincógnita=Ω+(1){\displaystyle 1+\sin x=\Omega _{+}(1)\quad }comoincógnita ;{\displaystyle \quad x\to \infty \ ;}

sin embargo

1+pecadoincógnitaΩ(1){\displaystyle 1+\sin x\neq \Omega _{-}(1)\quad }comoincógnita .{\displaystyle \quad x\to \infty ~.}

Familia de notaciones de Bachmann-Landau

Para comprender las definiciones formales, consulte la lista de símbolos lógicos utilizados en matemáticas.

Las definiciones de límite asumengramo(norte)>0{\displaystyle g(n)>0}para norte{\displaystyle n}en un vecindario del límite; cuando el límite es{\displaystyle \infty }, esto significa quegramo(norte)>0{\displaystyle g(n)>0}para suficientemente grandenorte{\displaystyle n}.

La informática y la combinatoria utilizan el granO{\displaystyle O}, gran ThetaΘ{\displaystyle \Theta }, pequeñoo{\displaystyle o}, pequeño omegaω{\displaystyle \omega }y el gran Omega de KnuthΩ{\displaystyle \Omega }notaciones. [ 3 ] La teoría analítica de números a menudo utiliza las grandesO{\displaystyle O}, pequeñoo{\displaystyle o}, Hardy's{\displaystyle \asymp }, el gran Omega de Hardy-LittlewoodΩ{\displaystyle \Omega }(con o sin los subíndices +, − o ±), de Vinogradov{\displaystyle \ll }y{\displaystyle \gg }notaciones y{\displaystyle \sim }notaciones. [ 11 ] [ 4 ] [ 12 ] La omega pequeñaω{\displaystyle \omega }La notación no se usa con tanta frecuencia en análisis o en teoría de números. [ 19 ]

Calidad de las aproximaciones utilizando diferentes notaciones

De manera informal, especialmente en ciencias de la computación, el granO{\displaystyle O}La notación a menudo se puede usar de manera algo diferente para describir una cota ajustada asintótica donde se usa big Theta.Θ{\displaystyle \Theta }La notación podría ser más apropiada desde el punto de vista fáctico en un contexto dado. [ 20 ] Por ejemplo, al considerar una funciónT(norte)=73norte3+22norte2+58{\displaystyle T(n)=73n^{3}+22n^{2}+58}En general, todas las siguientes opciones son aceptables, pero los límites más estrictos (como los números 2, 3 y 4 a continuación) suelen preferirse a los límites más amplios (como el número 1 a continuación).

  1. T(norte)=O(norte100){\displaystyle T(n)=O(n^{100})}
  2. T(norte)=O(norte3){\displaystyle T(n)=O(n^{3})}
  3. T(norte)=Θ(norte3){\displaystyle T(n)=\Theta (n^{3})}
  4. T(norte)73norte3{\displaystyle T(n)\sim 73n^{3}}comonorte{\displaystyle n\to \infty }.

Si bien las tres afirmaciones son verdaderas, cada una contiene progresivamente más información. Sin embargo, en algunos campos, la notación O grande (número 2 en las listas anteriores) se usaría con más frecuencia que la notación Theta grande (elementos numerados como 3 en las listas anteriores). Por ejemplo, siT(norte){\displaystyle T(n)}representa el tiempo de ejecución de un algoritmo de reciente desarrollo para un tamaño de entradanorte{\displaystyle n}Es posible que los inventores y usuarios del algoritmo se inclinen más a establecer un límite superior sobre el tiempo que tardará en ejecutarse, sin hacer una declaración explícita sobre el límite inferior o el comportamiento asintótico.

Extensiones a las notaciones de Bachmann-Landau

Otra notación que a veces se utiliza en informática esO~{\displaystyle {\tilde {O}}}(léase soft-O ), que oculta factores polilogarítmicos. Hay dos definiciones en uso: algunos autores usanF(norte)=O~(gramo(norte)){\displaystyle f(n)={\tilde {O}}(g(n))}como abreviatura deF(norte)=O(gramo(norte)registroknorte){\displaystyle f(n)=O(g(n)\log ^{k}n)}para algunosk{\displaystyle k}, mientras que otros lo usan como abreviatura deF(norte)=O(gramo(norte)registrokgramo(norte)){\displaystyle f(n)=O(g(n)\log ^{k}g(n))} . [ 21 ] Cuandogramo(norte){\displaystyle g(n)}es polinomial ennorte{\displaystyle n}, no hay diferencia; sin embargo, la última definición permite decir, por ejemplo, quenorte2norte=O~(2norte){\displaystyle n2^{n}={\tilde {O}}(2^{n})}mientras que la definición anterior permiteregistroknorte=O~(1){\displaystyle \log ^{k}n={\tilde {O}}(1)}para cualquier constantek{\displaystyle k}Algunos autores escriben O * con el mismo propósito que la última definición. [ 22 ] Esencialmente, es una versión menos precisa de la notación O grande, que ignora los factores logarítmicos en la tasa de crecimiento de la función. Dado queregistroknorte=o(norteε){\displaystyle \log ^{k}n=o(n^{\varepsilon })} para cualquier constantek{\displaystyle k}y cualquier ε>0{\displaystyle \varepsilon >0}, los factores logarítmicos son mucho menos significativos que las potencias denorte{\displaystyle n}y aún más insignificante en comparación con las exponenciales.

Además, la notación L , definida como

Lnorte[α,do]=mi(do+o(1))(lnnorte)α(lnlnnorte)1α,{\displaystyle L_{n}[\alpha ,c]=e^{(c+o(1))(\ln n)^{\alpha }(\ln \ln n)^{1-\alpha }},}

es conveniente para funciones que se encuentran entre polinómicas y exponenciales en términos deregistronorte{\displaystyle \log n}.

La generalización a funciones que toman valores en cualquier espacio vectorial normado es directa (reemplazando los valores absolutos por normas), dondeF{\displaystyle f}ygramo{\displaystyle g}No es necesario que sus valores estén en el mismo espacio. Una generalización a funcionesgramo{\displaystyle g}También es posible tomar valores en cualquier grupo topológico . El "proceso límite"incógnitaincógnita0{\displaystyle x\to x_{0}}También se puede generalizar introduciendo una base de filtro arbitraria, es decir, a redes dirigidas.F{\displaystyle f}ygramo{\displaystyle g}. Elo{\displaystyle o}La notación se puede utilizar para definir derivadas y diferenciabilidad en espacios bastante generales, y también la equivalencia (asintótica) de funciones,

Fgramo(Fgramo)o(gramo){\displaystyle f\sim g\iff (f-g)\in o(g)}

que es una relación de equivalencia y una noción más restrictiva que la relación "F{\displaystyle f}esΘ(gramo){\displaystyle \Theta (g)}" desde arriba. (Se reduce alímiteF/gramo=1{\displaystyle \lim f/g=1}siF{\displaystyle f}ygramo{\displaystyle g}son funciones de valor real positivo.) Por ejemplo,2incógnita=Θ(incógnita){\displaystyle 2x=\Theta (x)}lo es, pero 2incógnitaincógnitao(incógnita){\displaystyle 2x-x\neq o(x)}.

Historia

En 1870, Paul du Bois-Reymond [ 9 ] definióF(incógnita)ϕ(incógnita){\displaystyle f(x)\succ \phi (x)},F(incógnita)ϕ(incógnita){\displaystyle f(x)\sim \phi (x)}yF(incógnita)ϕ(incógnita){\displaystyle f(x)\prec \phi (x)} significar, respectivamente, límiteincógnitaF(incógnita)ϕ(incógnita)=,límiteincógnitaF(incógnita)ϕ(incógnita)>0,límiteincógnitaF(incógnita)ϕ(incógnita)=0.{\displaystyle \lim _{x\to \infty }{\frac {f(x)}{\phi (x)}}=\infty ,\quad \lim _{x\to \infty }{\frac {f(x)}{\phi (x)}}>0,\quad \lim _{x\to \infty }{\frac {f(x)}{\phi (x)}}=0.} Estas no fueron ampliamente adoptadas y no se utilizan en la actualidad. La primera y la tercera son simétricas:F(incógnita)ϕ(incógnita){\displaystyle f(x)\prec \phi (x)}significa lo mismo queϕ(incógnita)F(incógnita){\displaystyle \phi (x)\succ f(x)}Landau adoptó posteriormente{\displaystyle \sim }con la definición más estrecha que el límite deF(incógnita)/ϕ(incógnita){\displaystyle f(x)/\phi (x)}es igual a 1.

El símbolo O fue introducido por primera vez por el teórico de números Paul Bachmann en 1894, en el segundo volumen de su libro Analytische Zahlentheorie (" teoría analítica de números "). [ 1 ] El teórico de números Edmund Landau lo adoptó y, por lo tanto, se inspiró para introducir en 1909 la notación o; [ 2 ] de ahí que ambos se denominen ahora símbolos de Landau. Estas notaciones se utilizaron en matemáticas aplicadas durante la década de 1950 para el análisis asintótico. [ 23 ] El símboloΩ{\displaystyle \Omega }(en el sentido de "no es pequeño o de") fue introducido en 1914 por Hardy y Littlewood. [ 7 ] Hardy y Littlewood también introdujeron en 1916 la izquierda y la derechaΩ{\displaystyle \Omega }símbolosΩR{\displaystyle \Omega _{R}},ΩL{\displaystyle \Omega _{L}}(ahora comúnmente denominadoΩ+,Ω{\displaystyle \Omega _{+},\Omega _{-}}). [ 15 ] EstoΩ{\displaystyle \Omega }La notación se ha utilizado comúnmente en la teoría de números desde la década de 1950. [ 13 ]

Hardy introdujo los símbolos{\displaystyle \preccurlyeq }y abogó por Bois-Reymond{\displaystyle \prec }(así como los otros símbolos ya mencionados) en su tratado de 1910 "Órdenes del infinito", [ 5 ] pero los utilizó solo en tres artículos (1910-1913). En sus casi 400 artículos y libros restantes, utilizó consistentemente los símbolos de Landau O y o. [ 24 ] Los símbolos de Hardy{\displaystyle \preccurlyeq }y{\displaystyle \mathbin {\,\asymp \;\;\;\;\!\!\!\!\!\!\!\!\!\!\!\!\!-} }ya no se utilizan.

El símbolo{\displaystyle \sim }, aunque se había usado antes con diferentes significados, [ 9 ] Landau le dio su definición moderna en 1909 [ 2 ] y Hardy en 1910. [ 5 ] En la misma página, Hardy definió el símbolo{\displaystyle \asymp }, dóndeF(incógnita)gramo(incógnita){\displaystyle f(x)\asymp g(x)}significa que ambosF(incógnita)=O(gramo(incógnita)){\displaystyle f(x)=O(g(x))}ygramo(incógnita)=O(F(incógnita)){\displaystyle g(x)=O(f(x))}están satisfechos. La notación todavía se usa en la teoría analítica de números. [ 25 ] [ 12 ] Hardy también propuso el símbolo{\displaystyle \mathbin {\,\asymp \;\;\;\;\!\!\!\!\!\!\!\!\!\!\!\!\!-} }, dóndeFgramo{\displaystyle f\mathbin {\,\asymp \;\;\;\;\!\!\!\!\!\!\!\!\!\!\!\!\!-} g}significa queFKgramo{\displaystyle f\sim Kg}por alguna constanteK0{\displaystyle K\not =0}(esto corresponde a la notación de Bois-Reymond)Fgramo{\displaystyle f\sim g}).

En la década de 1930, Vinogradov [ 6 ] popularizó la notaciónF(incógnita)gramo(incógnita){\displaystyle f(x)\ll g(x)} ygramo(incógnita)F(incógnita){\displaystyle g(x)\gg f(x)}, ambos lo cual significa F(incógnita)=O(gramo(incógnita)){\displaystyle f(x)=O(g(x))}Esta notación se convirtió en estándar en la teoría analítica de números. [ 4 ]

En la década de 1970, la notación Big O fue popularizada en la informática por Donald Knuth , quien propuso una notación diferente.F(incógnita)=Θ(gramo(incógnita)){\displaystyle f(x)=\Theta (g(x))}para HardyF(incógnita)gramo(incógnita){\displaystyle f(x)\asymp g(x)}y propuso una definición diferente para la notación Omega de Hardy y Littlewood. [ 8 ]

Cuestiones de notación

Flechas

En matemáticas, una expresión comoincógnita{\displaystyle x\to \infty }indica la presencia de un límite . En notación de O grande y notaciones relacionadas Ω,Θ,,,{\displaystyle \Omega ,\Theta ,\gg ,\ll ,\asymp }, no hay límite implícito, a diferencia de la notación minúscula , {\displaystyle \sim }yω{\displaystyle \omega }notaciones. Notación como por ejemploF(incógnita)=O(gramo(incógnita))(incógnita){\displaystyle f(x)=O(g(x))\;\;(x\to \infty )}puede considerarse un abuso de notación .

Signo de igual

Algunos consideranF(incógnita)=O(gramo(incógnita)){\displaystyle f(x)=O(g(x))}También sería un abuso de notación , ya que el uso del signo de igualdad podría ser engañoso, pues sugiere una simetría que esta afirmación no tiene. Como dice de Bruijn ,O(incógnita)=O(incógnita2){\displaystyle O(x)=O(x^{2})}es cierto peroO(incógnita2)=O(incógnita){\displaystyle O(x^{2})=O(x)}no lo es. [ 26 ] Knuth describe tales afirmaciones como "igualdades unidireccionales", ya que si se pudieran invertir los lados, "podríamos deducir cosas ridículas como norte=norte2{\displaystyle n=n^{2}}de las identidadesnorte=O(norte2){\displaystyle n=O(n^{2})}ynorte2=O(norte2){\displaystyle n^{2}=O(n^{2})}. [ 27 ] En otra carta, Knuth también señaló que [ 28 ]

El signo de igualdad no es simétrico con respecto a tales notaciones [como, en esta notación,] los matemáticos habitualmente usan el signo '=' como usan la palabra 'is' en inglés: Aristóteles es un hombre, pero un hombre no es necesariamente Aristóteles.

Por estas razones, algunos abogan por usar la notación de conjuntos y escribirF(incógnita)O(gramo(incógnita)){\displaystyle f(x)\in O(g(x))}, leído como "F(incógnita){\displaystyle f(x)}es un elemento deO(gramo(incógnita)){\displaystyle O(g(x))}", o "F(incógnita){\displaystyle f(x)}está en el conjunto O(gramo(incógnita)){\displaystyle O(g(x))}" pensando en  O(gramo(incógnita)){\displaystyle O(g(x))}como la clase de todas las funciones h(incógnita){\displaystyle h(x)}de tal manera queh(incógnita)=O(gramo(incógnita)){\displaystyle h(x)=O(g(x))}. [ 27 ] Sin embargo, el uso del signo igual es habitual. [ 26 ] [ 27 ] y es más conveniente en expresiones más complejas de la forma F(incógnita)=gramo(incógnita)+O(h(incógnita))=O(k(incógnita)).{\displaystyle f(x)=g(x)+O(h(x))=O(k(x)).}

Las notaciones de Vinogradov{\displaystyle \ll }y{\displaystyle \gg }, que se utilizan ampliamente en teoría de números [ 11 ] [ 4 ] [ 12 ] no sufren de este defecto, ya que indican más claramente que la notación O grande indica una desigualdad en lugar de una igualdad . También gozan de una simetría de la que carece la notación O grande:F(incógnita)gramo(incógnita){\displaystyle f(x)\ll g(x)} significa lo mismo quegramo(incógnita)F(incógnita){\displaystyle g(x)\gg f(x)}En combinatoria e informática, estas notaciones rara vez se ven. [ 3 ]

Tipografía

La letra O mayúscula se escribe como una " O " mayúscula en cursiva , como en el siguiente ejemplo:O(norte2){\displaystyle O(n^{2})}[ 29 ] [ 30 ] En TeX , se produce simplemente escribiendo 'O' dentro del modo matemático. A diferencia de las notaciones Bachmann-Landau de nombre griego, no necesita ningún símbolo especial. Sin embargo, algunos autores utilizan la variante caligráfica .O{\displaystyle {\mathcal {O}}}en cambio. [ 31 ] [ 32 ]

La O mayúscula originalmente significa "orden de" ("Ordnung", Bachmann 1894), y por lo tanto es una letra latina. Ni Bachmann ni Landau la denominaron jamás "Ómicron". Mucho más tarde (1976), Knuth consideró el símbolo como un ómicron mayúscula , [ 8 ] probablemente en referencia a su definición del símbolo Omega . No debe utilizarse el dígito cero .

Véase también

Referencias y notas

  1. ^ Bachmann , Paul (1894). Analytische Zahlentheorie [ Teoría analítica de números ] (en alemán). vol.  2. Leipzig: Teubner.
  2. ^ Landau , Edmund ( 1909) . Handbuch der Lehre von der Verteilung der Primzahlen [ Manual sobre la teoría de la distribución de los números primos ] (en alemán). Leipzig: BG Teubner; reimpreso en dos volúmenes en uno por Chelsea, 1974, con un apéndice del Dr. Paul T. Bateman. págs. 59 a 63. 
  3. 1 2 3 4 5 6 Cormen, Thomas H. ; Leiserson, Charles E. ; Rivest, Ronald L. ; Stein, Clifford (2022). "Caracterización de tiempos de ejecución". Introducción a los algoritmos (4.ª ed.). MIT Press y McGraw-Hill. ISBN  978-0-262-53091-0.
  4. 1 2 3 4 5 6 Iwaniec, Henryk ; Kowalski, Emmanuel (2004). Teoría analítica de números . Sociedad Matemática Americana.
  5. 1 2 3 4 5 Hardy, GH (1910). Órdenes del infinito: El 'Infinitärcalcül' de Paul du Bois-Reymond . Cambridge University Press . pág. 2. 
  6. ^ Vinogradov , Matveevič ( 1934 ). "Una nueva estimación de G ( n ) en el problema de Waring". Doklady Akademii Nauk SSSR (en ruso). 5 ( 5-6 ): 249-253 .
    Traducido al inglés en:
    Vinogradov, Matveevič (1985). Obras selectas / Ivan Matveevič Vinogradov; preparadas por el Instituto Matemático Steklov de la Academia de Ciencias de la URSS con motivo de su 90 cumpleaños . Springer-Verlag.
  7. 1 2 3 4 5 Hardy, GH ; Littlewood, JE (1914). "Algunos problemas de aproximación diofántica: Parte II. La serie trigonométrica asociada con las funciones elípticas θ " . Acta Mathematica . 37 : 225. doi : 10.1007/BF02401834 . Archivado del original el 12-12-2018 . Recuperado el 14-03-2017 . 
  8. 1 2 3 4 5 6 7 8 9 10 Knuth, Donald (abril-junio de 1976). "Gran Ómicron y gran Omega y gran Theta" . SIGACT News . 8 (2): 18– 24. doi : 10.1145/1008328.1008329 . S2CID 5230246 . 
  9. ^ Bois - Reymond , Paul du (1870). "Sur la grandeur relativa des infinis des fonctions" . Annali di Matemática . Serie 2. 4 : 338– 353. doi : 10.1007/BF02420041 .
  10. Sipser, Michael (2012). Introducción a la teoría de la computación (3.ª ed.). Boston, MA: PWS Publishing. 
  11. 1 2 3 4 5 6 Ivić, A. (1985). La función zeta de Riemann . John Wiley & Sons. Capítulo 9. 
  12. 1 2 3 4 5 6 7 Gérald Tenenbaum, Introducción a la teoría analítica y probabilística de números, « Notación », página xxiii. American Mathematical Society, Providence RI, 2015.
  13. 1 2 E. C. Titchmarsh, La teoría de la función zeta de Riemann (Oxford; Clarendon Press, 1951)
  14. Seidel, Raimund (1991), "Un algoritmo aleatorio incremental simple y rápido para calcular descomposiciones trapezoidales y para triangular polígonos", Geometría Computacional , 1 : 51–64 , CiteSeerX 10.1.1.55.5877 , doi : 10.1016/0925-7721(91)90012-4 
  15. 1 2 Hardy, GH ; Littlewood, JE (1916). "Contribución a la teoría de la función zeta de Riemann y la teoría de la distribución de los números primos". Acta Mathematica . 41 : 119– 196. doi : 10.1007/BF02422942 .
  16. ^ Landau, E. (1924). "Über die Anzahl der Gitterpunkte in gewissen Bereichen. IV" [ Sobre el número de puntos de la cuadrícula en regiones conocidas ] . Nachr. Gesell. Wiss. Gött. Matemáticas y física. (en alemán): 137-150 . 
  17. Balcázar, José L.; Gabarró, Joaquim. "Clases de complejidad no uniformes especificadas por límites superiores e inferiores" (PDF) . RAIRO – Informática Teórica y Aplicaciones – Informatique Théorique et Applications . 23 (2): 180. ISSN 0988-3754 . Archivado (PDF) desde el original el 14 de marzo de 2017 . Consultado el 14 de marzo de 2017 a través de Numdam. 
  18. Cucker, Felipe; Bürgisser, Peter (2013). "A.1 Big Oh, Little Oh, and Other Comparisons" . Condition: The Geometry of Numerical Algorithms . Berlín, Heidelberg: Springer. pp. 467–468 . doi : 10.1007/978-3-642-38896-5 . ISBN  978-3-642-38896-5.
  19. por ejemplo se omite en: Hildebrand, AJ "Notaciones asintóticas" (PDF) . Departamento de Matemáticas. Métodos asintóticos en análisis . Matemáticas 595, otoño de 2009. Urbana, IL: Universidad de Illinois. Archivado (PDF) del original el 14 de marzo de 2017. Recuperado el 14 de marzo de 2017 . 
  20. ^ Cormen et al. 2022 , pág. 57.
  21. ^ Cormen et al. 2022 , pág. 74–75.
  22. Andreas Björklund y Thore Husfeldt y Mikko Koivisto (2009). "Particionamiento de conjuntos mediante inclusión-exclusión" (PDF) . SIAM Journal on Computing . 39 (2): 546– 563. doi : 10.1137/070683933 . Archivado (PDF) del original el 3 de febrero de 2022. Recuperado el 3 de febrero de 2022 .Véase la sección 2.3, pág. 551.
  23. Erdelyi, A. (1956). Expansiones asintóticas . Courier Corporation. ISBN 978-0-486-60318-6.{{cite book}}: Incompatibilidad de ISBN/Fecha ( ayuda ) .
  24. Hardy, GH (1966–1979). Obras completas de GH Hardy (incluidos trabajos conjuntos con JE Littlewood y otros), 7 vols . Clarendon Press, Oxford.
  25. Hardy, GH; Wright, EM (2008) [1.ª ed. 1938]. «1.6. Algunas notaciones». Introducción a la teoría de los números . Revisado por DR Heath-Brown y JH Silverman , con prólogo de Andrew Wiles (6.ª ed.). Oxford: Oxford University Press. ISBN  978-0-19-921985-8.
  26. 12 de Bruijn , NG (1958). Métodos asintóticos en análisis . Ámsterdam: Holanda Septentrional. págs. 5 a 7. ISBN  978-0-486-64221-5Archivado del original el 17 de enero de 2023. Consultado el 15 de septiembre de 2021 .{{cite book}}: Incompatibilidad de ISBN/Fecha ( ayuda )
  27. 1 2 3 Graham, Ronald ; Knuth, Donald ; Patashnik, Oren (1994). Matemáticas concretas (2.ª ed.). Reading, Massachusetts: Addison–Wesley. pág. 446. ISBN   978-0-201-55802-9Archivado del original el 17 de enero de 2023. Consultado el 23 de septiembre de 2016 .
  28. Donald Knuth (junio-julio de 1998). "Enseñar cálculo con notación Big O" (PDF) . Notices of the American Mathematical Society . 45 (6): 687. Archivado (PDF) del original el 14 de octubre de 2021. Recuperado el 5 de septiembre de 2021 .( Versión íntegra archivada el 13 de mayo de 2008 en Wayback Machine )
  29. Donald E. Knuth, El arte de la programación informática. Vol. 1. Algoritmos fundamentales, tercera edición, Addison Wesley Longman, 1997. Sección 1.2.11.1.
  30. Ronald L. Graham, Donald E. Knuth y Oren Patashnik, Matemáticas concretas: Fundamentos para la informática (2.ª ed.) , Addison-Wesley, 1994. Sección 9.2, pág. 443.
  31. ^ Sivaram Ambikasaran y Eric Darve, AnO(norteregistronorte){\displaystyle {\mathcal {O}}(N\log N)}Solucionador directo rápido para matrices semiseparables jerárquicas parciales, J. Scientific Computing 57 (2013), n.º  3, 477–501.
  32. Saket Saurabh y Meirav Zehavi,(k,nortek){\displaystyle (k,n-k)}-Max-Cut: UnO(2pag){\displaystyle {\mathcal {O}}^{*}(2^{p})}-Algoritmo de tiempo y un núcleo polinomial, Algorithmica 80 (2018), n.º  12, 3844–3860.

Notas

  1. Nótese que el "tamaño" de la entrada se utiliza normalmente como indicador de la dificultad de una instancia determinada del problema a resolver. El tiempo de ejecución y el espacio de memoria necesarios para calcular la respuesta (o para "resolver" el problema) se consideran indicadores de la dificultad de esa instancia del problema. A efectos de la teoría de la complejidad computacional , BigO{\displaystyle O}La notación se utiliza para un límite superior en [el "orden de magnitud" de] los 3: el tamaño del flujo de datos de entrada, la cantidad de tiempo de [ejecución] requerido y la cantidad de espacio de [memoria] requerido.
  2. Este nombre se sugiere en el título de un artículo de Knuth de 1976, y no aparece en ningún otro lugar del texto. Rara vez, o nunca, se utiliza.

Lecturas adicionales

  • Knuth, Donald (1997). "1.2.11: Representaciones asintóticas". Algoritmos fundamentales . El arte de la programación informática. Vol.  1 (3.ª  ed.). Addison-Wesley. ISBN 978-0-201-89683-1.
  • Sipser, Michael (1997). Introducción a la teoría de la computación . PWS Publishing. pp. 226–228 . ISBN  978-0-534-94728-6.
  • Avigad, Jeremy; Donnelly, Kevin (2004). Formalización de la notación O en Isabelle/HOL (PDF) . Conferencia Internacional Conjunta sobre Razonamiento Automatizado. doi : 10.1007/978-3-540-25984-8_27 .
  • Black, Paul E. (11 de marzo de 2005). Black, Paul E. (ed.). "Notación big-O" . Diccionario de algoritmos y estructuras de datos . Instituto Nacional de Estándares y Tecnología de EE. UU . Recuperado el 16 de diciembre de 2006 .
  • Black, Paul E. (17 de diciembre de 2004). Black, Paul E. (ed.). "Notación de minúscula" . Diccionario de algoritmos y estructuras de datos . Instituto Nacional de Estándares y Tecnología de EE. UU . Recuperado el 16 de diciembre de 2006 .
  • Black, Paul E. (17 de diciembre de 2004). Black, Paul E. (ed.). "Ω" . Diccionario de algoritmos y estructuras de datos . Instituto Nacional de Estándares y Tecnología de EE . UU. Recuperado el 16 de diciembre de 2006 .
  • Black, Paul E. (17 de diciembre de 2004). Black, Paul E. (ed.). "ω" . Diccionario de algoritmos y estructuras de datos . Instituto Nacional de Estándares y Tecnología de EE . UU. Recuperado el 16 de diciembre de 2006 .
  • Black, Paul E. (17 de diciembre de 2004). Black, Paul E. (ed.). "Θ" . Diccionario de algoritmos y estructuras de datos . Instituto Nacional de Estándares y Tecnología de EE . UU. Recuperado el 16 de diciembre de 2006 .