Digamos que tengo un gráficocon aristas. Quiero ejecutar BFS en que tiene un tiempo de ejecución de .
Se siente natural escribir que el tiempo de ejecución en este gráfico sería y luego simplificar a .
¿Hay alguna dificultad para usar un atajo de "quitar-el-anidado-O" (no solo en este caso, sino en general)?
terminology
asymptotics
landau-notation
El gato no divertido
fuente
fuente
Respuestas:
Permítanme comenzar con una recomendación: trate la notación de Landau tal como debería (debería) tratar el redondeo: ronda raramente, ronda tarde. Si sabes algo más preciso que , Úsalo hasta que hayas terminado con todos los cálculos y Landauify al final.O(.)
En cuanto a la pregunta, profundicemos en este abuso de notación¹. ¿Cómo interpretaríamos algo como ? Deberíamos reemplazar con su definición de adentro hacia afuera. Entonces, obtenemosh∈O(f+O(g)) O
y entonces
que es equivalente a
Como ciertamente²d(f(n)+cg(n))≤cd(f(n)+g(n)) , vemos que esto es equivalente a h∈O(f+g) ; la pérdida de precisión es ignorada porO de todas formas.
¿Qué pasa con otras combinaciones, digamosh ∈ O ( f+ Ω ( g) ) ? Si intentamos lo mismo aquí, obtenemos
Pero esta es una tautología:h ciertamente está limitado por algo arbitrariamente grande. Por lo tanto, combinar los límites superior e inferior de esta manera no tiene sentido.
fuente
Solo quería agregar esto porque recientemente lo encontré. Si bien este atajo está bien con la suma y la multiplicación (cuando no se mezclaO con Ω ; ver la respuesta aceptada), se debe tener cuidado al usar exponentes. Por ejemplo:
fuente
Por definición,O ( g) es un conjunto y si usa esta notación anidada, tendría un conjunto en un conjunto, lo que sería incorrecto.
La definición de la notación O
El error
Usaste términos comoO(O(n)+k) donde k y n son funciones y O(n) es un conjunto. Pero, ¿cuál es el resultado de una función agregada a un conjunto? ¡No está definido!
Versión correcta
En lugar de utilizar los símbolos de Landau anidados, puede hacer lo siguiente:O(m+k),m∈O(n)
fuente
En la sección 9.3 "O Manipulación "del libro Matemáticas concretas (segunda edición), Knuth ha enumerado algunas reglas de manipulación en elO -notation (En lo siguiente, supongo que ambos F( n ) y sol( n ) son positivos observe que se ha cambiado el orden de las reglas).
Por (3), puede envolver / desenvolver una funciónF( n ) con una notación O. Luego, mediante (5), puede envolver / desenvolver (o llamar, anidar ) veces arbitrariamente finitas. Usando (4), también puede agregar / eliminar factores de multiplicación constantes a / deO .
Luego, (2) y (6) le permiten manipular anidadosO -notaciones en la forma compatible con + y × .
fuente