En CLRS (en las páginas 49-50), ¿cuál es el significado de la siguiente declaración:
es solo una función anónima (de ), pero no es lo mismo que , que realmente no tiene una interpretación ".
asymptotics
landau-notation
kesari
fuente
fuente
Respuestas:
Dado que , es tentador sugerir que ... pero esto de hecho no es válido. La razón es que puede haber una constante diferente para cada término en la suma.1+2+⋯+n=O(n2) O(1)+O(2)+⋯+O(n)=O(n2)
Un ejemplo
Déjame dar un ejemplo. Considere las sumas , , , , y así sucesivamente. Tenga en cuenta que , , , , y así sucesivamente para cada término en el suma. Por lo tanto, sería razonable escribir en la forma . Entonces, ¿podemos concluir que ? No De hecho, , entonces .S(1)=12 S(2)=12+22 S(3)=12+22+32 S(4)=12+22+32+42 12∈O(1) 22∈O(2) 32∈O(3) 42∈O(4) S(j)=12+⋯+j2 S(j)=O(1)+⋯+O(j) S(j)=O(j2) S(n)=n(n+1)(2n+1)/6 S(n)=Θ(n3)
Si eso no ayuda, intentemos el siguiente desarrollo matemático más preciso:
Una formalizacion
Recuerde que la interpretación de, digamos, es que es un conjunto de funciones no negativas (es decir, el conjunto de funciones modo que existen constantes tal que para todo ).O(n2) f(n) f(n) c≥0,d≥0 f(n)≤c⋅n2 n≥d
Lo más cercano que podemos llegar a una interpretación de es que es el conjunto de funciones de la forma tal que , , ..., .O(1)+O(2)+⋯+O(n) f1(n)+f2(n)+⋯+fn(n) f1(n)∈O(1) f2(n)∈O(2) fn(n)∈O(n)
Pero ahora las constantes para cada pueden ser diferentes. Por lo tanto, cada es una función no negativa modo que existen constantes con para todos .fi fi fi ci≥0,di≥0 fi(n)≤ci⋅i n≥di
Ahora, dado esto, ¿qué podemos decir sobre ? No muy útil Sabemos que existe una constante tal que para todos . Ahora, ¿qué podemos decir sobre esta suma? Bueno, la respuesta es que no podemos decir nada en absoluto. Podría ser arbitrariamente grande. Es tentador dejar que y decir que ... pero esto no es realmente correcto, ya que necesitamos un único valor constante de que funcione para todos , y el valorg(n)=f1(n)+f2(n)+⋯+fn(n) d=max(d1,d2,…,dn) g(n)≤c1⋅1+c2⋅2+⋯+cn⋅n n≥d c=max(c1,c2,…,cn) g(n)≤c⋅(1+2+⋯+n)≤c⋅n2=O(n2) c n max(c1,c2,…,cn) es una función de , no una constante.n
Por lo tanto, puede que no haya una constante tal que ; puede que no haya una constante tal que . No hay garantía de que .c g(n)≤c⋅(1+2+⋯+n) c g(n)≤c⋅n2 g(n)∈O(n2)
Para más lectura
Consulte https://math.stackexchange.com/q/86076/14578 y los términos Sumas de Landau revisados para otras preguntas que aborden este problema general.
fuente
La razón por la cual el comentario de CLRS es confuso es que, técnicamente, se define como . Lo que realmente está sucediendo es que CLRS está abusando de la notación por simplicidad:∑ni=1O(i) O(1)+O(2)+…O(n)
En cambio, CLRS quisiera que interprete como donde la función genérica . Por ejemplo, escribirían que es u .∑ni=1O(i) ∑ni=1f(i) f(i)∈O(i) ∑ni=13i−5 ∑ni=1O(i) O(n2)
fuente