52 votos

¿Cuáles son las reglas para los signos de igualdad con la O grande y la O pequeña?

Esta pregunta es sobre la notación asintótica en general. Para simplificar usaré ejemplos sobre la notación big-O para el crecimiento de funciones como $n\to\infty$ (visto en complejidad algorítmica), pero los problemas que surgen son los mismos para cosas como $\Omega$ y $\Theta$ crecimiento como $n\to\infty$ o para little-o como $x\to 0$ (a menudo visto en el análisis), o cualquier otra combinación.

La interacción entre la notación big-O y los signos de igualdad puede resultar confusa. Escribimos cosas como $$\tag{1} 3n^2+4 = O(n^2)$$ $$\tag{2} 5n^2+7n = O(n^2)$$ Pero no podemos concluir de estas dos declaraciones que $3n^2+4=5n^2+7n$ . Por lo tanto, parece que la transitividad de la igualdad falla cuando se trata de Big-O. Además, nunca escribimos cosas como $$\tag{3} O(n^2)=3n^2+4,$$ así que aparentemente la conmutatividad también está en riesgo.

Muchos libros de texto lo señalan y declaran, con diversos grados de indignación, que las anotaciones como $(1)$ y $(2)$ constituyen un "abuso de la notación" al que los estudiantes van a tener que acostumbrarse. Muy bien, pero entonces ¿cuáles son las reglas que rigen este abuso? Los matemáticos parecen ser capaces de comunicarse utilizándola, así que no puede ser completamente aleatorio.

Una salida sencilla es definir que la notación $O(n^2)$ denota adecuadamente el set de funciones que crecen como máximo cuadráticamente, y que ecuaciones como $(1)$ son sólo abreviaturas convencionales de $$\tag{4} (n\mapsto 3n^2+4)\in O(n^2)$$ Algunos autores incluso insisten en que escribir $(1)$ es simple equivocado y que $(4)$ es la única forma correcta de expresar la estimación.

Sin embargo, otros los autores escriben alegremente cosas como $$\tag{5} 5 + O(n) + O(n^2)\log(O(n^3)) = O(n^2\log n)$$ que no parece ser fácilmente interpretable en términos de conjuntos de funciones.

La pregunta: ¿Cómo podemos asignar un significado a estas afirmaciones de manera que $(1)$ , $(2)$ y $(4)$ son ciertas pero $(3)$ ¿no?

30voto

delroh Puntos 56

Mi opinión sobre esta anotación coincide con el comentario de David Speyer. Como señala la respuesta de Henning, nuestras respuestas son sólo formas diferentes de ver la misma cosa. A menudo recurro a reglas similares a las suyas como definición operativa, pero me parece que mi enfoque es más fácil de motivar.

Procedemos en dos pasos: (a.) entender una expresión que implica la notación asintótica, y (b.) entender el uso del signo de igualdad en esta notación.


Regla de interpretación de las expresiones. Toda expresión (bien formada) que implique funciones y operaciones estándar (e..g, ${ +, \times, -, \div, \exp, \log }$ ) y las notaciones asintóticas $\{ O, o, \Omega, \omega, \Theta\}$ corresponde a un conjunto de funciones. [Para simplificar, nos limitaremos sólo a la $O$ anotación]. Este conjunto se construye de forma recursiva exactamente como cabría esperar: $$ \begin{align*} E_1 \circ E_2 &:= \{ f(n) \circ g(n) \quad : \quad f(n) \in E_1, g(n) = E_2 \}, \quad \circ \in \{ +, \times, -, \div \}; \\ \Psi (E) &:= \{ \Psi(f(n)) \quad : \quad f(n) \in E \}, \quad \Psi \in \{ \exp, \log \}. \\ \end{align*} $$ Esta interpretación de las expresiones es perfectamente natural; es análoga a la Suma de Minkowski de dos conjuntos, ampliado para operaciones más generales. Incluso podemos enriquecer esto con una regla un poco más complicada para $O$ :

$$ O(E) := \bigcup_{f(n) \in E} O(f(n)). $$

Estas reglas no son completas; hay que añadir los casos base apropiados cuando $E$ , $E_1$ y $E_2$ son funciones únicas y no un conjunto de funciones. El caso base más interesante es la expresión $O(f(n))$ que se define exactamente igual que en el post. Como punto final, podemos acordar la identidad de una única función $f(n)$ con el conjunto $\{ f(n) \}$ Esto resulta ser muy conveniente en la práctica.

Por ejemplo, una expresión de la forma $5 + O(n) + O(n^2)\log(O(n^3))$ representa el conjunto $$ \{ 5 + f(n) + g(n) \log h(n) \ : \ f(n) \in O(n), \quad g(n) \in O(n^2), \quad h(n) \in O(n^3) \}. $$ Del mismo modo, podemos interpretar la expresión como $O(2^{n^2 + O(n)})$ aplicando el $O(\cdot)$ regla dos veces.


Reglas de interpretación del signo de igualdad. Cuando se afirma que $E_1 = E_2$ donde $E_1$ y $E_2$ son conjuntos representados por expresiones como la anterior, se debe interpretar siempre que $E_1 \subseteq E_2$ . Por ejemplo, $$5 + O(n) + O(n^2)\log(O(n^3)) \ \color{Red}{=} \ O(n^2\log n)$$ es en realidad una abreviatura de $$5 + O(n) + O(n^2)\log(O(n^3)) \ \color{Red}{\subseteq} \ O(n^2\log n) .$$

Además, está el caso $f(n) = E$ ; por ejemplo, $n = O(n^2)$ . En este caso, podemos identificar la función $f(n)$ con el conjunto $\{ f(n) \}$ y aplicar la interpretación anterior. Esto nos dice que $f(n) = E$ es lo mismo que decir $f(n) \in E$ (porque $f(n) \in E \iff \lbrace f(n) \rbrace \subseteq E$ ).

Podría decirse que esto no es natural, ya que choca fuertemente con la interpretación estándar del signo igual como igualdad (de conjunto). De hecho, se trata de una dificultad inherente, ya que cabría esperar que cualquier definición razonable de igualdad para ser simétrica: $$ E_1 = E_2 \quad \stackrel{\color{Red}{(??)}}{\implies} \quad E_2 = E_1. $$ Sin embargo, como todos sabemos, esto rara vez es cierto con la notación asintótica. Por tanto, la única salida parece ser anular la noción intuitiva de igualdad en favor de otra menos natural. [En este punto, cabe señalar que las reglas de Henning también recurren a redefinir adecuadamente el signo de igualdad].


Una muestra de propiedades. Muchas reglas comúnmente utilizadas para manipular la notación asintótica se derivan directamente de la interpretación anterior. Como caso de estudio, considero algunas de las propiedades ya estudiadas por Henning en su respuesta:

  • "Ámbito local" o Cambio de significado . Por ejemplo, en $O(n) + O(n) = O(n)$ se pueden sustituir las distintas funciones $f(n)$ , $g(n)$ y $h(n)$ . La definición de " $+$ " en la interpretación del conjunto de funciones se basa claramente en esta idea.

  • La notación asintótica es no es simétrico . Por ejemplo, $O(n) = O(n^2)$ mientras que $n^2 \stackrel{\color{Red}{?}}{=} O(n)$ es falso. Esto es por la misma razón que la inclusión de conjuntos no lo es.

  • Sin embargo, es transitivo es decir, si $E_1 = E_2$ y $E_2 = E_3$ entonces $E_1 = E_3$ . Esto se deduce simplemente de la transitividad de la inclusión de conjuntos.


Palabras finales. Una de las principales quejas contra la notación asintótica parece ser que no suele ser simétrica, como implica el signo de igualdad. Esto es legítimo, pero en este caso, el verdadero problema es el abuso del signo igual, más que la idea de las funciones como conjuntos. De hecho, que yo recuerde, todavía no he encontrado un solo uso de la notación asintótica que sea técnicamente incorrecto, incluso después de sustituir mentalmente el signo igual por $\in$ o $\subseteq$ según corresponda.

15voto

sewo Puntos 58

Nunca he visto la siguiente regla escrita con tantas palabras, pero parece coincidir con el uso de la notación en la práctica. (Es formalmente equivalente a la interpretación de la respuesta de Srivatsan, en el sentido de que siempre que ambas reglas asignan un significado a una ecuación, los dos significados coinciden. Yo sostengo que mi forma de verlo es más intuitivo Pero el kilometraje de cada uno puede variar aquí, por supuesto).

Voy a necesitar la interpretación de conjuntos de funciones de $O(f(n))$ como concepto base. Para desambiguarlo del $O(f(n))$ que uno puede hacer aritmética en, voy a escribir si con una secuencia de comandos $\mathcal{O}$ , de manera que, por ejemplo, $$\mathcal{O}_{n\to\infty}(f(n)) = \Big\{g:\mathbb N\to\mathbb R \;\Big|\; \exists N,C\in \mathbb N. \forall n>N. \big[C(f(n))>g(n)\big]\Big\}$$ Como en la pregunta dejaré que el $n\to\infty$ subíndice sea implícito.

Regla: Siempre que veas una ecuación $t=u$ donde $t$ o $u$ contienen uno o más $O(\cdots)$ se supone que debes hacer mentalmente la siguiente expansión:

  • Sustituir cada ocurrencia textual de $O(\cdots)$ con $\phi(n)$ donde $\phi$ es un fresco que se extiende sobre $\mathcal O(\cdots)$ . Diferentes ocurrencias de $O(\cdots)$ en la fórmula deben tener letras de función separadas, incluso si el " $\cdots$ " son los mismos.
  • Todos los frescos $\phi$ que surge de un $O(\cdots)$ en el a la izquierda lado del signo de igualdad debe ser universalmente cuantificado.
  • Todos los frescos $\phi$ que surge de un $O(\cdots)$ en el a la derecha lado del signo de igualdad debe ser existencialmente cuantificado.
  • Los cuantificadores universales en $\phi$ s se anteponen a los existenciales.
  • La variable $n$ que tiende a un límite debe ser cuantificado universalmente après todos los cuantificadores en $\phi$ s.

Algunos ejemplos:

  • El caso simple. $3n^2+4 = O(n^2)$ significa $$ \exists \psi\in\mathcal O(n^2).\forall n.\bigl[3n^2+4=\psi(n)\bigr]$$ Dado que existe exactamente una función $\psi$ que $\forall n.\bigl[3n^2+4=\psi(n)\bigr]$ Esto sólo dice que $(n\mapsto 3n^2+4)\in\mathcal O(n^2)$ Así que mi regla es compatible con el significado "simple" que presentan los libros de texto.

  • La ecuación compleja de la pregunta, $$ 5 + O(n) + O(n^2)\log(O(n^3)) = O(n^2\log n)$$ significa $$\begin{align} &\forall \phi_0\in\mathcal O(n). \forall \phi_1\in\mathcal O(n^2). \forall \phi_2\in\mathcal O(n^3). \exists \psi\in\mathcal O(n^2\log n). \\& \forall n. \big[ 5+\phi_0(n)+\phi_1(n)\log(\phi_2(n)) = \psi(n)\big] \end{align}$$ que muestra cómo la notación habitual es una abreviatura útil.

  • Reescritura por etapas. Podemos reescribir parte de una expresión para decir $$O(n^2)+5n = O(n^2)+O(n)$$ que se despliega para $$\forall \phi\in\mathcal O(n^2). \exists \psi\in\mathcal O(n^2). \exists \xi\in\mathcal O(n). \forall n.\bigl[\phi(n)+5n=\psi(n)+\xi(n)\bigr]$$

  • Cambio de significado. $O(n)+5=O(n)$ significa $$ \forall \phi\in\mathcal O(n). \exists \psi\in\mathcal O(n). \forall n.\bigl[\phi(n)+5=\psi(n)] $$ mostrando que las diferentes ocurrencias de $O(n)$ pueden significar cosas diferentes.

  • Transitividad de la igualdad . Si las traducciones de $t=u$ y $u=v$ son ambas verdaderas, entonces la traducción de $t=v$ también es cierto (aunque los grandes O en $u$ se traducen en funciones cuantificadas de forma diferente en las dos ecuaciones originales). Así, un cálculo de varios pasos como $$ O(n^2) + 5n = O(n^2) + O(n) = O(n^2)$$ está justificado.

Por otro lado, las ecuaciones entre expresiones asintóticas no son simétrico porque $O(n)=O(n^2)$ es cierto, pero $O(n^2)=O(n)$ no lo es.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X