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 existen varias notaciones relacionadas, que utilizan los símbolos , , , , , , , y para describir otros tipos de límites en las tasas de crecimiento. [ 5 ] [ 6 ] [ 7 ] [ 8 ]o{\displaystyle o}{\displaystyle \sim }Ω{\displaystyle \Omega }{\displaystyle \ll }{\displaystyle \gg }{\displaystyle \asymp }ω{\displaystyle \omega }Θ{\displaystyle \Theta }

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

Let F,{\textstyle f,} the function to be estimated, be either a real or complex valued function defined on a domainD,{\textstyle D,} and let gramo,{\textstyle g,} the comparison function, be a non-negative real valued function defined on the same set D.{\textstyle D.} Common choices for the domain are intervals of real numbers, bounded or unbounded, the set of positive integers, the set of complex numbers and tuples of real/complex numbers. With the domain written explicitly or understood implicitly, one writes

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

which is read as "F(incógnita){\textstyle f(x)} is big O{\textstyle O} of gramo(incógnita){\textstyle g(x)}" if there exists a positive real number METRO{\textstyle M} such that

|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.}

If gramo(incógnita)>0{\displaystyle g(x)>0} (i.e. g is also never zero) throughout the domain D,{\displaystyle D,} an equivalent definition is that the ratio F(incógnita)gramo(incógnita){\textstyle {\frac {f(x)}{g(x)}}} is bounded, i.e. there is a positive real number METRO{\displaystyle M} so that |F(incógnita)gramo(incógnita)|METRO{\textstyle {\Big |}{\frac {f(x)}{g(x)}}{\Big |}\leq M} for all incógnitaD.{\displaystyle x\in D.} These encompass all the uses of big O{\textstyle O} in computer science and mathematics, including its use where the domain is finite, infinite, real, complex, single variate, or multivariate. In most applications, one chooses the function gramo(incógnita){\displaystyle g(x)} appearing within the argument of O(){\textstyle O{\bigl (}\cdot {\bigr )}} to be as simple a form as possible, omitting constant factors and lower order terms. The number METRO{\textstyle M} is called the implied constant because it is normally not specified. When using big O{\textstyle O} notation, what matters is that some finite METRO{\displaystyle M} exists, not its specific value. This simplifies the presentation of many analytic inequalities.

For functions defined on positive real numbers or positive integers, a more restrictive and somewhat conflicting definition is still in common use,[3][10] especially in computer science. When restricted to functions which are eventually positive, the notation

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

means that for some real number a,{\textstyle a,}F(incógnita)=O(gramo(incógnita)){\textstyle f(x)=O{\bigl (}g(x){\bigr )}} in the domain [a,).{\textstyle \left[a,\infty \right).} Here, the expression incógnita{\textstyle x\to \infty } does not indicate a limit, but the notion that the inequality holds for large enoughincógnita.{\textstyle x.} The expression incógnita{\textstyle x\to \infty } often is omitted.[3]

Similarly, for a real number a,{\textstyle a,} the notation

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

means that for some constant do>0,{\textstyle c>0,}F(incógnita)=O(gramo(incógnita)){\textstyle f(x)=O{\bigl (}g(x){\bigr )}} on the interval [ado,a+do];{\displaystyle \left[ac,a+c\right];} that is, in a small neighborhood of a.{\displaystyle a.} In addition, the notation  F(incógnita)=h(incógnita)+O(gramo(incógnita)) {\displaystyle \ f(x)=h(x)+O{\bigl (}g(x){\bigr )}\ } means F(incógnita)h(incógnita)=O(gramo(incógnita)).{\textstyle f(x)-h(x)=O{\bigl (}g(x){\bigr )}.}More complicated expressions are also possible.

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

En la década de 1930, [ 6 ] el teórico de números ruso IM Vinogradov introdujo la notación 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 la notación. Tenemos ,{\displaystyle \ll ,}O{\textstyle O}

 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 informática [ 3 ] es común definir grandeO{\textstyle O} como también un conjunto de funciones. Con la función positiva (o no negativa) especificada, se interpreta como que representa el conjunto de todas las funciones que satisfacen Entonces se puede escribir equivalentemente como "la función está entre el conjunto de todas las funciones de orden como máximo "gramo(incógnita){\displaystyle g(x)}O(gramo(incógnita)){\textstyle O{\bigl (}g(x){\bigr )}}F~{\textstyle {\tilde {f}}}F~(incógnita)=O(gramo(incógnita)).{\textstyle {\tilde {f}}(x)=O{\bigl (}g(x){\bigr )}.}F(incógnita)O(gramo(incógnita)),{\textstyle f(x)\in O{\bigl (}g(x){\bigr )},} F(incógnita) {\textstyle \ f(x)\ }gramo(incógnita).{\textstyle g(x).}

Ejemplos con un dominio infinito

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

  • Si 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.F(incógnita){\displaystyle f(x)}
  • Si es un producto de varios factores, se pueden omitir las constantes (factores en el producto que no dependen de ).F(incógnita){\displaystyle f(x)}incógnita{\displaystyle x}

Por ejemplo, sea , y supongamos que deseamos simplificar esta función, usando notación, para describir su tasa de crecimiento para valores grandes de . Esta función es la suma de tres términos: , , y . De estos tres términos, el que tiene la tasa de crecimiento más alta es el que tiene el mayor exponente como función de , es decir . Ahora se puede aplicar la segunda regla: es un producto de y en el que el primer factor no depende de . Omitiendo este factor se obtiene la forma simplificada . Por lo tanto, decimos que es una "O grande" de . Matemáticamente, podemos escribir para todo . Se puede confirmar este cálculo usando la definición formal: sea y . Aplicando la definición formal anterior, la afirmación de que es equivalente a su expansión, para alguna elección adecuada de un número real positivo y para todo . Para probar esto, sea . Entonces, para todo : por lo que Si bien también es cierto, por el mismo argumento, que , esta es una aproximación menos precisa de la función . Por otro lado, la afirmación es falsa, porque el término hace que sea ilimitado. F(incógnita)=6incógnita42incógnita3+5{\displaystyle f(x)=6x^{4}-2x^{3}+5}O{\displaystyle O}incógnita{\displaystyle x}6incógnita4{\displaystyle 6x^{4}}2incógnita3{\displaystyle -2x^{3}}5{\displaystyle 5}incógnita{\displaystyle x}6incógnita4{\displaystyle 6x^{4}}6incógnita4{\displaystyle 6x^{4}}6{\displaystyle 6}incógnita4{\displaystyle x^{4}}incógnita{\displaystyle x}incógnita4{\displaystyle x^{4}}F(incógnita){\displaystyle f(x)}incógnita4{\displaystyle x^{4}}F(incógnita)=O(incógnita4){\displaystyle f(x)=O(x^{4})}incógnita1{\displaystyle x\geq 1}F(incógnita)=6incógnita42incógnita3+5{\displaystyle f(x)=6x^{4}-2x^{3}+5}gramo(incógnita)=incógnita4{\displaystyle g(x)=x^{4}}F(incógnita)=O(incógnita4){\displaystyle f(x)=O(x^{4})}|F(incógnita)|METROincógnita4{\displaystyle |f(x)|\leq Mx^{4}}METRO{\displaystyle M}incógnita1{\displaystyle x\geq 1}METRO=13{\displaystyle M=13}incó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}}}|6incógnita42incógnita3+5|13incógnita4.{\displaystyle |6x^{4}-2x^{3}+5|\leq 13x^{4}.}F(incógnita)=O(incógnita10){\displaystyle f(x)=O(x^{10})}F{\displaystyle f}F(incógnita)=O(incógnita3){\displaystyle f(x)=O(x^{3})}6incógnita4{\displaystyle 6x^{4}}F(incógnita)/incógnita3{\displaystyle f(x)/x^{3}}

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

Ejemplo con un dominio finito

La notación Big O también se puede usar 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 solo término Big O. Consideremos, por ejemplo, la serie exponencial y dos expresiones de la misma que son válidas cuando es pequeño: La expresión del medio ( la línea con " " ) significa que el valor absoluto del error es como máximo una constante veces cuando es pequeño. Este es un ejemplo del uso del teorema de Taylor . incógnita{\displaystyle x}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{ para todo }}x finito\\[4pt]&=1+x+{\frac {\;x^{2}\ }{2}}+O(|x|^{3})&&{\text{ para todo }}|x|\leq 1\\[4pt]&=1+x+O(x^{2})&&{\text{ para todo }}|x|\leq 1.\end{aligned}}}O(|incógnita3|){\displaystyle O(|x^{3}|)} miincógnita(1+incógnita+incógnita2 2) {\displaystyle \ e^{x}-(1+x+{\frac {\;x^{2}\ }{2}})\ } |incógnita3| {\displaystyle ~|x^{3}|\ } incógnita {\displaystyle \ x~}

El comportamiento de una función dada puede ser muy diferente en dominios finitos que en dominios infinitos, por ejemplo, mientras que (incógnita+1)8=incógnita8+O(incógnita7) para incógnita1{\displaystyle (x+1)^{8}=x^{8}+O(x^{7})\quad {\text{ para }}x\geq 1}(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{ para }}|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{ para }}x\geq 1,y{\text{ cualquier número real}}}

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}

xyx2+y2=O(1) for all real x,y that are not both 0{\displaystyle {\frac {xy}{x^{2}+y^{2}}}=O(1)\quad {\text{ for all real }}x,y{\text{ that are not both }}0}

xit=O(1) for x0,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 es . O(1){\displaystyle O(1)}

(x+y)10=O(x10) for x1,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ícita depende de una o más de las variables usando subíndices al símbolo O mayúscula o al símbolo. Por ejemplo, considérese la expresión M{\displaystyle M}{\displaystyle \ll }

(1+x)b=1+Ob(x) for 0x1,b any real number.{\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 real , hay una constante , que depende de , de modo que para todo , Esta afirmación particular se deduce del teorema general del binomio . b{\displaystyle b}Mb{\displaystyle M_{b}}b{\displaystyle b}0x1{\displaystyle 0\leq x\leq 1}|(1+x)b1|Mbx.{\displaystyle |(1+x)^{b}-1|\leq M_{b}\cdot x.}

Otro ejemplo, común en la teoría de las series de Taylor , es Aquí la constante implícita depende del tamaño del dominio. ex=1+x+Or(x2) for all |x|r,r being any real number.{\displaystyle e^{x}=1+x+O_{r}(x^{2})\quad {\text{ for all }}|x|\leq r,r{\text{ being any real number.}}}

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

Propiedades

Producto

f1=O(g1) and f2=O(g2)f1f2=O(g1g2){\displaystyle f_{1}=O(g_{1}){\text{ and }}f_{2}=O(g_{2})\Rightarrow f_{1}f_{2}=O(g_{1}g_{2})}
fO(g)=O(|f|g){\displaystyle f\cdot O(g)=O(|f|g)}

Suma

Si y entonces . Se deduce que si y entonces . f1=O(g1){\displaystyle f_{1}=O(g_{1})}f2=O(g2){\displaystyle f_{2}=O(g_{2})}f1+f2=O(max(g1,g2)){\displaystyle f_{1}+f_{2}=O(\max(g_{1},g_{2}))}f1=O(g){\displaystyle f_{1}=O(g)}f2=O(g){\displaystyle f_{2}=O(g)}f1+f2=O(g){\displaystyle f_{1}+f_{2}=O(g)}

Multiplicación por una constante

Sea k una constante distinta de cero. Entonces . En otras palabras, si , entoncesO(|k|g)=O(g){\displaystyle O(|k|\cdot g)=O(g)}f=O(g){\displaystyle f=O(g)}kf=O(g).{\displaystyle k\cdot f=O(g).}

Propiedad transitiva

Si y entonces . f=O(g){\displaystyle f=O(g)}g=O(h){\displaystyle g=O(h)}f=O(h){\displaystyle f=O(h)}

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

f(n)=9logn+5(logn)4+3n2+2n3=O(n3)for n1.{\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

Para , entonces como . ba{\displaystyle b\geq a}na=O(nb){\displaystyle n^{a}=O(n^{b})}n{\displaystyle n\to \infty }

Las potencias dominan los logaritmos.

Para cualquier valor positivo, sin importar cuán grande o pequeño sea. Aquí, la constante implícita depende tanto de como de . a,b,{\displaystyle a,b,}(logn)a=Oa,b(nb),{\displaystyle (\log n)^{a}=O_{a,b}(n^{b}),}a{\displaystyle a}b{\displaystyle b}a{\displaystyle a}b{\displaystyle b}

Las exponenciales dominan las potencias

Para cualquier cosa positiva, sin importar cuán grande o pequeña sea. a,b,{\displaystyle a,b,}na=Oa,b(ebn),{\displaystyle n^{a}=O_{a,b}(e^{bn}),}a{\displaystyle a}b{\displaystyle b}

Una función que crece más rápido que cualquier se llama superpolinomial . Una que crece más lentamente que cualquier función exponencial de la forma con se llama 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ón . nc{\displaystyle n^{c}}c{\displaystyle c}cn{\displaystyle c^{n}}c>1{\displaystyle c>1}nlogn{\displaystyle n^{\log n}}

Podemos ignorar cualquier potencia de dentro de los logaritmos. Para cualquier positivo , la notación significa exactamente lo mismo que , ya que . 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, y no son del mismo orden. n{\displaystyle n}c{\displaystyle c}O(logn){\displaystyle O(\log n)}O(log(nc)){\displaystyle O(\log(n^{c}))}log(nc)=clogn{\displaystyle \log(n^{c})=c\log n}2n{\displaystyle 2^{n}}3n{\displaystyle 3^{n}}

expresiones más complejas

En un uso más complejo, puede aparecer en diferentes lugares de una ecuación, incluso varias veces en cada lado. Por ejemplo, las siguientes afirmaciones son verdaderas para un entero positivo: El significado de tales afirmaciones es el siguiente: para cualquier función que satisfaga cada una en el lado izquierdo, hay algunas funciones que satisfacen cada una en el lado derecho, de modo 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 satisfaga , hay alguna función tal que ". La constante implícita en la afirmación " " puede depender de la constante implícita en la expresión " ". O(){\displaystyle O(\cdot )}n{\displaystyle n}(n+1)2=n2+O(n),(n+O(n1/2))(n+O(logn))2=n3+O(n5/2),nO(1)=O(en).{\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}}}O(){\displaystyle O(\cdot )}O(){\displaystyle O(\cdot )}f(n)=O(1){\displaystyle f(n)=O(1)}g(n)=O(en){\displaystyle g(n)=O(e^{n})}nf(n)=g(n){\displaystyle n^{f(n)}=g(n)}g(n)=O(en){\displaystyle g(n)=O(e^{n})}f(n)=O(1){\displaystyle f(n)=O(1)}

Algunos ejemplos adicionales: f=O(g)abf=O(abg)f(x)=g(x)+O(1)ef(x)=O(eg(x))(1+O(1/x))O(x)=O(1) for x>0sinx=O(|x|) for all real x.{\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

Cuando ambas son funciones positivas, Vinogradov [ 6 ] introdujo la notación , que significa lo mismo que . Las dos notaciones de Vinogradov gozan de simetría visual, ya que para funciones positivas , tenemos f,g{\displaystyle f,g}f(x)g(x){\displaystyle f(x)\gg g(x)}g(x)=O(f(x)){\displaystyle g(x)=O(f(x))}f,g{\displaystyle f,g}f(x)g(x)g(x)f(x).{\displaystyle f(x)\ll g(x)\Longleftrightarrow g(x)\gg f(x).}

En 1976, Donald Knuth [ 8 ] definió

f(x)=Ω(g(x))g(x)=O(f(x)){\displaystyle f(x)=\Omega (g(x))\Longleftrightarrow g(x)=O(f(x))}

que tiene el mismo significado que el de Vinogradov . f(x)g(x){\displaystyle f(x)\gg g(x)}

Sin embargo, mucho antes, Hardy y Littlewood [ 7 ] habían definido 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 del 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 , me siento justificado al hacerlo porque su definición no es de ninguna manera de uso generalizado, y porque hay otras maneras de decir lo que quieren decir en los casos comparativamente raros en los que se aplica su definición". [ 8 ] El gran de Knuth goza de un uso generalizado hoy en día en ciencias de la computación y combinatoria. Ω{\displaystyle \Omega }Ω{\displaystyle \Omega }Ω{\displaystyle \Omega }Ω{\displaystyle \Omega }

El gran Θ de Hardy y Knuth

In analytic number theory,[12] the notation f(x)g(x){\displaystyle f(x)\asymp g(x)} means both f(x)=O(g(x)){\displaystyle f(x)=O(g(x))} and g(x)=O(f(x)){\displaystyle g(x)=O(f(x))}. This notation is originally due to Hardy.[5] Knuth's notation for the same notion is f(x)=Θ(g(x)){\displaystyle f(x)=\Theta (g(x))}.[8] Roughly speaking, these statements assert that f(x){\displaystyle f(x)} and g(x){\displaystyle g(x)} have the same order. These notations mean that there are positive constants M,N{\displaystyle M,N} so that Ng(x)f(x)Mg(x){\displaystyle Ng(x)\leq f(x)\leq Mg(x)} for all x{\displaystyle x} in the common domain of f,g{\displaystyle f,g}. When the functions are defined on the positive integers or positive real numbers, as with big O, writers oftentimes interpret statements f(x)=Ω(g(x)){\displaystyle f(x)=\Omega (g(x))} and f(x)=Θ(g(x)){\displaystyle f(x)=\Theta (g(x))} as holding for all sufficiently large x{\displaystyle x}, that is, for all x{\displaystyle x} beyond some point x0{\displaystyle x_{0}}. Sometimes this is indicated by appending x{\displaystyle x\to \infty } to the statement. For example, 2n210n=Θ(n2){\displaystyle 2n^{2}-10n=\Theta (n^{2})} is true for the domain n6{\displaystyle n\geq 6} but false if the domain is all positive integers, since the function is zero at n=5{\displaystyle n=5}.

Further examples

n3+20n2+n+12n3 for all n1.{\displaystyle n^{3}+20n^{2}+n+12\asymp n^{3}\quad {\text{ for all }}n\geq 1.}

(1+x)8=x8+Θ(x7) for all x1.{\displaystyle (1+x)^{8}=x^{8}+\Theta (x^{7})\quad {\text{ for all }}x\geq 1.}

The notation

f(n)=eΩ(n) for all n1,{\displaystyle f(n)=e^{\Omega (n)}\quad {\text{ for all }}n\geq 1,} means that there is a positive constant M{\displaystyle M} so that f(n)eMn{\displaystyle f(n)\geq e^{Mn}} for all n1{\displaystyle n\geq 1}. By contrast, f(n)=eO(n) for all n1,{\displaystyle f(n)=e^{-O(n)}\quad {\text{ for all }}n\geq 1,} means that there is a positive constant M{\displaystyle M} so that f(n)eMn{\displaystyle f(n)\geq e^{-Mn}} for all n1{\displaystyle n\geq 1} and f(n)=eΘ(n) for all n1,{\displaystyle f(n)=e^{\Theta (n)}\quad {\text{ for all }}n\geq 1,} means that there are positive constants M,N{\displaystyle M,N} so that eMnf(n)eNn{\displaystyle e^{Mn}\leq f(n)\leq e^{Nn}} for all n1{\displaystyle n\geq 1}.

For any domain D{\displaystyle D}, f(x)=g(x)+O(1)ef(x)eg(x),{\displaystyle f(x)=g(x)+O(1)\Longleftrightarrow e^{f(x)}\asymp e^{g(x)},} each statement being for all x{\displaystyle x} in D{\displaystyle D}.

Orders of common functions

Here is a list of classes of functions that are commonly encountered when analyzing the running time of an algorithm. In each case, c is a positive constant and n increases without bound. The slower-growing functions are generally listed first.

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

notación con minúscula

Para funciones de valor real o complejo de una variable real con suficientemente grande , se escribe [ 2 ]x{\displaystyle x}g(x)>0{\displaystyle g(x)>0}x{\displaystyle x}

f(x)=o(g(x)) as x{\displaystyle f(x)=o(g(x))\quad {\text{ as }}x\to \infty }

Si es decir, para cada constante positiva ε existe una constante tal que limxf(x)g(x)=0.{\displaystyle \lim _{x\to \infty }{\frac {f(x)}{g(x)}}=0.}x0{\displaystyle x_{0}}

|f(x)|εg(x) for all xx0.{\displaystyle |f(x)|\leq \varepsilon g(x)\quad {\text{ for all }}x\geq x_{0}.}

Intuitivamente, esto significa que crece mucho más rápido que , o equivalentemente crece mucho más lento que . Por ejemplo, se tiene g(x){\displaystyle g(x)}f(x){\displaystyle f(x)}f(x){\displaystyle f(x)}g(x){\displaystyle g(x)}

200x=o(x2){\displaystyle 200x=o(x^{2})}y     ambos como1/x=o(1),{\displaystyle 1/x=o(1),}x.{\displaystyle x\to \infty .}

When one is interested in the behavior of a function for large values of x{\displaystyle x}, little-o notation makes a stronger statement than the corresponding big-O notation: every function that is little-o of g{\displaystyle g} is also big-O of g{\displaystyle g} on some interval [a,){\displaystyle [a,\infty )}, but not every function that is big-O of g{\displaystyle g} is little-o of g{\displaystyle g}. For example, 2x2=O(x2){\displaystyle 2x^{2}=O(x^{2})} but 2x2o(x2){\displaystyle 2x^{2}\neq o(x^{2})} for x1{\displaystyle x\geq 1}.

Little-o respects a number of arithmetic operations. For example,

if c{\displaystyle c} is a nonzero constant and f=o(g){\displaystyle f=o(g)} then cf=o(g){\displaystyle c\cdot f=o(g)}, and
if f=o(F){\displaystyle f=o(F)} and g=o(G){\displaystyle g=o(G)} then fg=o(FG).{\displaystyle f\cdot g=o(F\cdot G).}
if f=o(F){\displaystyle f=o(F)} and g=o(G){\displaystyle g=o(G)} then f+g=o(F+G){\displaystyle f+g=o(F+G)}

It also satisfies a transitivity relation:

if f=o(g){\displaystyle f=o(g)} and g=o(h){\displaystyle g=o(h)} then f=o(h).{\displaystyle f=o(h).}

Little-o can also be generalized to the finite case:[2]f(x)=o(g(x)) as xx0{\displaystyle f(x)=o(g(x))\quad {\text{ as }}x\to x_{0}} if limxx0f(x)g(x)=0.{\displaystyle \lim _{x\to x_{0}}{\frac {f(x)}{g(x)}}=0.} In other words, f(x)=α(x)g(x){\displaystyle f(x)=\alpha (x)g(x)} for some α(x){\displaystyle \alpha (x)} with limxx0α(x)=0{\displaystyle \lim _{x\to x_{0}}\alpha (x)=0}.

This definition is especially useful in the computation of limits using Taylor series. For example:

sinx=xx33!+=x+o(x2) as x0{\displaystyle \sin x=x-{\frac {x^{3}}{3!}}+\ldots =x+o(x^{2}){\text{ as }}x\to 0}, so limx0sinxx=limx0x+o(x2)x=limx01+o(x)=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}

Asymptotic notation

A relation related to little-o is the asymptotic notation {\displaystyle \sim }. For real valued functions f,g{\displaystyle f,g}, the expression f(x)g(x) as x{\displaystyle f(x)\sim g(x)\quad {\text{ as }}x\to \infty } means limxf(x)g(x)=1.{\displaystyle \lim _{x\to \infty }{\frac {f(x)}{g(x)}}=1.} One can connect this to little-o by observing that f(x)g(x){\displaystyle f(x)\sim g(x)} is also equivalent to f(x)=(1+o(1))g(x){\displaystyle f(x)=(1+o(1))g(x)}. Here o(1){\displaystyle o(1)} refers to a function tending to zero as x{\displaystyle x\to \infty }. One reads this as "f(x){\displaystyle f(x)} is asymptotic tog(x){\displaystyle g(x)}". For nonzero functions on the same (finite or infinite) domain, {\displaystyle \sim } forms an equivalence relation.

One of the most famous theorems using the notation {\displaystyle \sim } is Stirling's formulan!(ne)n2πn as n.{\displaystyle n!\sim {\bigg (}{\frac {n}{e}}{\bigg )}^{n}{\sqrt {2\pi n}}\quad {\text{ as }}n\to \infty .} In number theory, the famous prime number theorem states that π(x)xlogx as x,{\displaystyle \pi (x)\sim {\frac {x}{\log x}}\quad {\text{ as }}x\to \infty ,} where π(x){\displaystyle \pi (x)} is the number of primes which are at most x{\displaystyle x} and log{\displaystyle \log } is the natural logarithm of x{\displaystyle x}.

As with little-o, there is a version with finite limits (two-sided or one-sided) as well, for example sinxx as x0.{\displaystyle \sin x\sim x\quad {\text{ as }}x\to 0.}

Further examples: xa=oa,b(ebx) as x, for any positive constants a,b,{\displaystyle x^{a}=o_{a,b}(e^{bx})\quad {\text{ as }}x\to \infty ,{\text{ for any positive constants }}a,b,}f(x)=g(x)+o(1)ef(x)eg(x)(x).{\displaystyle f(x)=g(x)+o(1)\quad \Longleftrightarrow \quad e^{f(x)}\sim e^{g(x)}\quad (x\to \infty ).}n=11ns1s1(s1+).{\displaystyle \sum _{n=1}^{\infty }{\frac {1}{n^{s}}}\sim {\frac {1}{s-1}}\quad (s\to 1^{+}).} The last asymptotic is a basic property of the Riemann zeta function.

Knuth's little 𝜔

For eventually positive, real valued functions f,g,{\displaystyle f,g,} the notation f(x)=ω(g(x)) as x{\displaystyle f(x)=\omega (g(x))\quad {\text{ as }}x\to \infty } means limxf(x)g(x)=.{\displaystyle \lim _{x\to \infty }{\frac {f(x)}{g(x)}}=\infty .} In other words, g(x)=o(f(x)){\displaystyle g(x)=o(f(x))}. Roughly speaking, this means that f(x){\displaystyle f(x)} grows much faster than does g(x){\displaystyle g(x)}.

The Hardy–Littlewood Ω notation

In 1914 G. H. Hardy and J. E. Littlewood introduced the new symbol  Ω,{\displaystyle \ \Omega ,}[7] which is defined as follows:

f(x)=Ω(g(x)){\displaystyle f(x)=\Omega (g(x))\quad } as x{\displaystyle \quad x\to \infty \quad } if lim supx | f(x) g(x)|>0 .{\displaystyle \quad \limsup _{x\to \infty }\ \left|{\frac {\ f(x)\ }{g(x)}}\right|>0~.}

Thus  f(x)=Ω(g(x)) {\displaystyle ~f(x)=\Omega (g(x))~} is the negation of  f(x)=o(g(x)) .{\displaystyle ~f(x)=o(g(x))~.}

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

f(x)=ΩR(g(x)){\displaystyle f(x)=\Omega _{R}(g(x))\quad }como six{\displaystyle \quad x\to \infty \quad }lim supx  f(x) g(x)>0 ;{\displaystyle \quad \limsup _{x\to \infty }\ {\frac {\ f(x)\ }{g(x)}}>0\ ;}
f(x)=ΩL(g(x)){\displaystyle f(x)=\Omega _{L}(g(x))\quad }como six{\displaystyle \quad x\to \infty \quad } lim infx  f(x) g(x)<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 ha sido reemplazado por la notación actual con la misma definición, y se convirtió en ΩR {\displaystyle \ \Omega _{R}\ } Ω+ {\displaystyle \ \Omega _{+}\ } ΩL {\displaystyle \ \Omega _{L}\ } Ω .{\displaystyle \ \Omega _{-}~.}

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

Ejemplos sencillos

Tenemos

sinx=Ω(1){\displaystyle \sin x=\Omega (1)\quad }comox ,{\displaystyle \quad x\to \infty \ ,}

y más precisamente

sinx=Ω±(1){\displaystyle \sin x=\Omega _{\pm }(1)\quad }comox, {\displaystyle \quad x\to \infty ,~}

donde significa que el lado izquierdo es tanto como , Ω±{\displaystyle \Omega _{\pm }}Ω+(1){\displaystyle \Omega _{+}(1)}Ω(1){\displaystyle \Omega _{-}(1)}

Tenemos

1+sinx=Ω(1){\displaystyle 1+\sin x=\Omega (1)\quad }comox ,{\displaystyle \quad x\to \infty \ ,}

y más precisamente

1+sinx=Ω+(1){\displaystyle 1+\sin x=\Omega _{+}(1)\quad }comox ;{\displaystyle \quad x\to \infty \ ;}

sin embargo

1+sinxΩ(1){\displaystyle 1+\sin x\neq \Omega _{-}(1)\quad }comox .{\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.

The limit definitions assume g(n)>0{\displaystyle g(n)>0} for n{\displaystyle n} in a neighborhood of the limit; when the limit is {\displaystyle \infty }, this means that g(n)>0{\displaystyle g(n)>0} for sufficiently large n{\displaystyle n}.

Computer science and combinatorics use the big O{\displaystyle O}, big Theta Θ{\displaystyle \Theta }, little o{\displaystyle o}, little omega ω{\displaystyle \omega } and Knuth's big Omega Ω{\displaystyle \Omega } notations. [3] Analytic number theory often uses the big O{\displaystyle O}, small o{\displaystyle o}, Hardy's {\displaystyle \asymp }, Hardy–Littlewood's big Omega Ω{\displaystyle \Omega } (with or without the +, − or ± subscripts), Vinogradov's {\displaystyle \ll } and {\displaystyle \gg } notations and {\displaystyle \sim } notations. [11][4][12] The small omega ω{\displaystyle \omega } notation is not used as often in analysis or in number theory. [19]

Quality of approximations using different notation

Informally, especially in computer science, the big O{\displaystyle O} notation often can be used somewhat differently to describe an asymptotic tight bound where using big Theta Θ{\displaystyle \Theta } notation might be more factually appropriate in a given context .[20] For example, when considering a function T(n)=73n3+22n2+58{\displaystyle T(n)=73n^{3}+22n^{2}+58}, all of the following are generally acceptable, but tighter bounds (such as numbers 2,3 and 4 below) are usually strongly preferred over looser bounds (such as number 1 below).

  1. T(n)=O(n100){\displaystyle T(n)=O(n^{100})}
  2. T(n)=O(n3){\displaystyle T(n)=O(n^{3})}
  3. T(n)=Θ(n3){\displaystyle T(n)=\Theta (n^{3})}
  4. T(n)73n3{\displaystyle T(n)\sim 73n^{3}} as n{\displaystyle n\to \infty }.

While all three statements are true, progressively more information is contained in each. In some fields, however, the big O notation (number 2 in the lists above) would be used more commonly than the big Theta notation (items numbered 3 in the lists above). For example, if T(n){\displaystyle T(n)} represents the running time of a newly developed algorithm for input size n{\displaystyle n}, the inventors and users of the algorithm might be more inclined to put an upper bound on how long it will take to run without making an explicit statement about the lower bound or asymptotic behavior.

Extensions to the Bachmann–Landau notations

Otra notación que a veces se usa en ciencias de la computación es (léase soft-O ), que oculta los factores polilogarítmicos. Hay dos definiciones en uso: algunos autores usan como abreviatura de para algún , mientras que otros la usan como abreviatura de . [ 21 ] Cuando es polinomial en , no hay diferencia; sin embargo, la segunda definición permite decir, por ejemplo, que mientras que la primera definición permite para cualquier constante . Algunos autores escriben O * con el mismo propósito que la segunda 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 que para cualquier constante y cualquier , los factores logarítmicos son mucho menos significativos que las potencias de e incluso más insignificantes en comparación con las exponenciales. O~{\displaystyle {\tilde {O}}}f(n)=O~(g(n)){\displaystyle f(n)={\tilde {O}}(g(n))}f(n)=O(g(n)logkn){\displaystyle f(n)=O(g(n)\log ^{k}n)}k{\displaystyle k}f(n)=O(g(n)logkg(n)){\displaystyle f(n)=O(g(n)\log ^{k}g(n))}g(n){\displaystyle g(n)}n{\displaystyle n}n2n=O~(2n){\displaystyle n2^{n}={\tilde {O}}(2^{n})}logkn=O~(1){\displaystyle \log ^{k}n={\tilde {O}}(1)}k{\displaystyle k}logkn=o(nε){\displaystyle \log ^{k}n=o(n^{\varepsilon })}k{\displaystyle k}ε>0{\displaystyle \varepsilon >0}n{\displaystyle n}

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

Ln[α,c]=e(c+o(1))(lnn)α(lnlnn)1α,{\displaystyle L_{n}[\alpha ,c]=e^{(c+o(1))(\ln n)^{\alpha }(\ln \ln n)^{1-\alpha }},}

es conveniente para funciones que están entre polinómicas y exponenciales en términos de . logn{\displaystyle \log n}

La generalización a funciones que toman valores en cualquier espacio vectorial normado es directa (reemplazando los valores absolutos por normas), donde y no necesitan tomar sus valores en el mismo espacio. También es posible una generalización a funciones que toman valores en cualquier grupo topológico . El "proceso límite" también puede generalizarse introduciendo una base de filtro arbitraria , es decir, a redes dirigidas y . La notación puede usarse para definir derivadas y diferenciabilidad en espacios bastante generales, y también la equivalencia (asintótica) de funciones, f{\displaystyle f}g{\displaystyle g}g{\displaystyle g}xx0{\displaystyle x\to x_{0}}f{\displaystyle f}g{\displaystyle g}o{\displaystyle o}

fg(fg)o(g){\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 " es " de arriba. (Se reduce a si y son funciones reales positivas). Por ejemplo, es, pero . f{\displaystyle f}Θ(g){\displaystyle \Theta (g)}limf/g=1{\displaystyle \lim f/g=1}f{\displaystyle f}g{\displaystyle g}2x=Θ(x){\displaystyle 2x=\Theta (x)}2xxo(x){\displaystyle 2x-x\neq o(x)}

Historia

En 1870, Paul du Bois-Reymond [ 9 ] definió y para significar, respectivamente, Estas no fueron ampliamente adoptadas y no se usan hoy en día. La primera y la tercera son simétricas: significa lo mismo que . Landau adoptó más tarde con la definición más estricta de que el límite de es igual a 1. f(x)ϕ(x){\displaystyle f(x)\succ \phi (x)}f(x)ϕ(x){\displaystyle f(x)\sim \phi (x)}f(x)ϕ(x){\displaystyle f(x)\prec \phi (x)}limxf(x)ϕ(x)=,limxf(x)ϕ(x)>0,limxf(x)ϕ(x)=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.}f(x)ϕ(x){\displaystyle f(x)\prec \phi (x)}ϕ(x)f(x){\displaystyle \phi (x)\succ f(x)}{\displaystyle \sim }f(x)/ϕ(x){\displaystyle f(x)/\phi (x)}

The symbol O was first introduced by the number theorist Paul Bachmann in 1894, in the second volume of his book Analytische Zahlentheorie ("analytic number theory").[1] The number theorist Edmund Landau adopted it, and was thus inspired to introduce in 1909 the notation o;[2] hence both are now called Landau symbols. These notations were used in applied mathematics during the 1950s for asymptotic analysis.[23] The symbol Ω{\displaystyle \Omega } (in the sense "is not little o of") was introduced in 1914 by Hardy and Littlewood.[7] Hardy and Littlewood also introduced in 1916 the left and right Ω{\displaystyle \Omega } symbols ΩR{\displaystyle \Omega _{R}}, ΩL{\displaystyle \Omega _{L}} (now commonly denoted Ω+,Ω{\displaystyle \Omega _{+},\Omega _{-}}).[15] This Ω{\displaystyle \Omega } notation has been commonly used in number theory since the 1950s.[13]

Hardy introduced the symbols {\displaystyle \preccurlyeq } and advocated for Bois-Reymond's {\displaystyle \prec } (as well as the already mentioned other symbols) in his 1910 tract "Orders of Infinity",[5] but made use of them only in three papers (1910–1913). In his nearly 400 remaining papers and books he consistently used the Landau symbols O and o.[24] Hardy's symbols {\displaystyle \preccurlyeq } and {\displaystyle \mathbin {\,\asymp \;\;\;\;\!\!\!\!\!\!\!\!\!\!\!\!\!-} } are not used any more.

The symbol {\displaystyle \sim }, although it had been used before with different meanings,[9] was given its modern definition by Landau in 1909[2] and by Hardy in 1910.[5] On the same page, Hardy defined the symbol {\displaystyle \asymp }, where f(x)g(x){\displaystyle f(x)\asymp g(x)} means that both f(x)=O(g(x)){\displaystyle f(x)=O(g(x))} and g(x)=O(f(x)){\displaystyle g(x)=O(f(x))} are satisfied. The notation is still used in analytic number theory.[25][12] Hardy also proposed the symbol {\displaystyle \mathbin {\,\asymp \;\;\;\;\!\!\!\!\!\!\!\!\!\!\!\!\!-} }, where fg{\displaystyle f\mathbin {\,\asymp \;\;\;\;\!\!\!\!\!\!\!\!\!\!\!\!\!-} g} means that fKg{\displaystyle f\sim Kg} for some constant K0{\displaystyle K\not =0} (this corresponds to Bois-Reymond's notation fg{\displaystyle f\sim g}).

In the 1930s, Vinogradov[6] popularized the notation f(x)g(x){\displaystyle f(x)\ll g(x)} and g(x)f(x){\displaystyle g(x)\gg f(x)}, both of which mean f(x)=O(g(x)){\displaystyle f(x)=O(g(x))}. This notation became standard in analytic number theory.[4]

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

Cuestiones de notación

Flechas

En matemáticas, una expresión como indica la presencia de un límite . En la notación de O grande y notaciones relacionadas , no hay límite implícito, a diferencia de las notaciones de o pequeña y . Una notación como puede considerarse un abuso de la notación . x{\displaystyle x\to \infty }Ω,Θ,,,{\displaystyle \Omega ,\Theta ,\gg ,\ll ,\asymp }{\displaystyle \sim }ω{\displaystyle \omega }f(x)=O(g(x))(x){\displaystyle f(x)=O(g(x))\;\;(x\to \infty )}

Signo de igual

Algunos consideran que también es 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 , es cierto pero no lo es. [ 26 ] Knuth describe tales afirmaciones como "igualdades unidireccionales", ya que si los lados pudieran invertirse, "podríamos deducir cosas ridículas como de las identidades y . [ 27 ] En otra carta, Knuth también señaló que [ 28 ]f(x)=O(g(x)){\displaystyle f(x)=O(g(x))}O(x)=O(x2){\displaystyle O(x)=O(x^{2})}O(x2)=O(x){\displaystyle O(x^{2})=O(x)}n=n2{\displaystyle n=n^{2}}n=O(n2){\displaystyle n=O(n^{2})}n2=O(n2){\displaystyle n^{2}=O(n^{2})}

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 escribir , que se lee como " es un elemento de ", o " está en el conjunto " – pensando en como la clase de todas las funciones tales que . [ 27 ] Sin embargo, el uso del signo de igualdad es habitual. [ 26 ] [ 27 ] y es más conveniente en expresiones más complejas de la forma f(x)O(g(x)){\displaystyle f(x)\in O(g(x))}f(x){\displaystyle f(x)}O(g(x)){\displaystyle O(g(x))}f(x){\displaystyle f(x)}O(g(x)){\displaystyle O(g(x))}O(g(x)){\displaystyle O(g(x))}h(x){\displaystyle h(x)}h(x)=O(g(x)){\displaystyle h(x)=O(g(x))}f(x)=g(x)+O(h(x))=O(k(x)).{\displaystyle f(x)=g(x)+O(h(x))=O(k(x)).}

Las notaciones de Vinogradov y , ampliamente utilizadas en teoría de números [ 11 ] [ 4 ] [ 12 ] , no adolecen de este defecto, ya que indican con mayor claridad que la notación O grande representa una desigualdad en lugar de una igualdad . Además, poseen una simetría de la que carece la notación O grande: significa lo mismo que . En combinatoria e informática, estas notaciones se ven con poca frecuencia. [ 3 ]{\displaystyle \ll }{\displaystyle \gg }f(x)g(x){\displaystyle f(x)\ll g(x)}g(x)f(x){\displaystyle g(x)\gg f(x)}

Tipografía

La letra O mayúscula se escribe como una " O " mayúscula en cursiva , como en el siguiente ejemplo: . [ 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 . [ 31 ] [ 32 ]O(n2){\displaystyle O(n^{2})}O{\displaystyle {\mathcal {O}}}

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. ^ a b c d e 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. ^ abcdefCormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2022). "Characterizing running times". Introduction to Algorithms (4th ed.). MIT Press and McGraw-Hill. ISBN 978-0-262-53091-0.
  4. ^ abcdefIwaniec, Henryk; Kowalski, Emmanuel (2004). Analytic Number Theory. American Mathematical Society.
  5. ^ abcdeHardy, G. H. (1910). Orders of Infinity: The 'Infinitärcalcül' of Paul du Bois-Reymond. Cambridge University Press. p. 2.
  6. ^ abcdVinogradov, Matveevič (1934). "A new estimate for G(n) in Waring's problem". Doklady Akademii Nauk SSSR (in Russian). 5 (5–6): 249–253.
    Translated in English in:
    Vinogradov, Matveevič (1985). Selected works / Ivan Matveevič Vinogradov; prepared by the Steklov Mathematical Institute of the Academy of Sciences of the USSR on the occasion of his 90th birthday. Springer-Verlag.
  7. ^ abcdeHardy, G. H.; Littlewood, J. E. (1914). "Some problems of diophantine approximation: Part II. The trigonometrical series associated with the elliptic θ functions". Acta Mathematica. 37: 225. doi:10.1007/BF02401834. Archived from the original on 2018-12-12. Retrieved 2017-03-14.
  8. ^ abcdefghijKnuth, Donald (April–June 1976). "Big Omicron and big Omega and big Theta". SIGACT News. 8 (2): 18–24. doi:10.1145/1008328.1008329. S2CID 5230246.
  9. ^ a b c 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. ^ a b c d e f Ivić, A. (1985). La función zeta de Riemann . John Wiley & Sons. Capítulo 9.
  12. ^ a b c d e f g 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. ^ a b 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. ^ a b 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}}: ISBN / Date incompatibility (help).
  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. ^ ab 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}}: ISBN / Date incompatibility (help)
  27. ^ a b c 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 de computadoras. 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, Unsolucionador directo rápido para matrices semiseparables jerárquicas parciales, J. Scientific Computing 57 (2013), n.º 3, 477–501.O(NlogN){\displaystyle {\mathcal {O}}(N\log N)}
  32. ^ Saket Saurabh y Meirav Zehavi,-Max-Cut: Unalgoritmo de -tiempo y un núcleo polinomial, Algorithmica 80 (2018), n.º 12, 3844–3860.(k,nk){\displaystyle (k,n-k)}O(2p){\displaystyle {\mathcal {O}}^{*}(2^{p})}

Notas

  1. ^ Cabe señalar 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. En la teoría de la complejidad computacional , se utiliza la notación Bigpara establecer un límite superior del orden de magnitud de los tres parámetros: el tamaño del flujo de datos de entrada, el tiempo de ejecución requerido y el espacio de memoria requerido.O{\displaystyle O}
  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 .
Obtenido de " https://en.wikipedia.org/w/index.php?title=Big_O_notation&oldid=1359021092 "