Poprosiłem (nasion) pytanie o sumach Landau warunkach przed , próbując ocenić niebezpieczeństwa nadużywania notacji asymptotyka w arytmetyce, z mieszanym powodzeniem.
Teraz, tutaj nasz guru ds. Nawrotów, JeffE , zasadniczo robi to:
Chociaż wynik końcowy jest prawidłowy, myślę, że to źle. Dlaczego? Jeśli dodamy całe istnienie stałych implikowanych (tylko górna granica), otrzymamy
.
Jak teraz obliczyć z ? Odpowiedź jest, uważam, że nie możemy: musi wiązany dla wszystkich ale mamy więcej jak rośnie. Nic o nich nie wiemy; może bardzo zależeć od , więc nie możemy założyć ograniczenia: skończone może nie istnieć. i c
Ponadto istnieje subtelna kwestia, która zmienna przechodzi w nieskończoność po lewej stronie - czy ? Obie? Jeśli (ze względu na kompatybilność), jakie jest znaczenie , wiedząc, że ? Czy to oznacza nie tylko ? Jeśli tak, nie możemy powiązać sumy lepiej niż .n n Θ ( 1 / i ) 1 ≤ i ≤ n Θ ( 1 ) Θ ( n )
Gdzie nas to opuściło? Czy to rażący błąd? Subtelny? Czy jest to tylko zwykłe nadużycie notacji i nie powinniśmy patrzeć znaków podobny do tego z kontekstu? Czy możemy sformułować (rygorystycznie) prawidłową zasadę do oceny (pewnych) sum terminów Landaua?
Myślę, że główne pytanie brzmi: co to jest ? Jeśli uznamy, że jest stała (ponieważ mieści się w zakresie sumy), możemy łatwo zbudować kontrprzykłady. Jeśli to nie jest stałe, nie mam pojęcia, jak to odczytać.
źródło
Odpowiedzi:
Wygląda mi dobrze w następującej konwencji:
to wygodna notacja dlaSn=∑nk=1Θ(1/k)
Zatem (lub z notacją w tej odpowiedzi c k ), którą otrzymujesz, tak naprawdę nie są zależne od k .ci ck k
Zgodnie z tą interpretacją, prawdą jest, że .Sn=Θ(Hn)
W rzeczywistości, w odpowiedzi Jeffa, pokazuje on, że gdzie f ∈ Θ ( 1 / k ) , więc jest to zgodne z powyższą interpretacją.T(k+1)=f(k)+T(k) f∈Θ(1/k)
Zamieszanie wydaje się wynikać z mentalnego „rozwijania” i zakładania różnych funkcji dla każdego wystąpienia Θ ...∑ Θ
źródło
Myślę, że rozwiązałem problem. Zasadniczo: użycie terminów Landau oddziela zmienną funkcji summand od zmiennej bieżącej sumy. Nadal (chcemy) odczytać je jako identyczne, dlatego zamieszanie.
Aby formalnie go rozwinąć, co robi
prawdziwe znaczenie? Teraz zakładam, że te niech ja - nie n - do nieskończoności; jeśli pozwolimy n → ∞ , każda taka suma będzie oceniana na Θ ( n ) (jeśli sumy są niezależne od n, a zatem stałe), co jest wyraźnie błędne. Oto pierwsza gratka, którą mamy do prymitywnych rzeczy: jestem związany (i stały) wewnątrz sumy, ale wciąż pozwalamy jej przejść do nieskończoności?Θ i n n→∞ Θ(n) n i
Tłumacząc (dla górnej granicy dolna granica działa podobnie), otrzymujemy(1)
Teraz jest jasne, że podsu- i parameter- i są oddzielone: możemy łatwo zdefiniować f I tak, że oni używają I jako stała. W przykładzie z pytania możemy zdefiniować f i ( j ) = i ⋅ 1i i fi i i miećfi(j)=i⋅1j∈Θ(1/j)
ale pierwotna suma wyraźnie nie daje wartości czegoś w . Teraz wymiany j na I - co jest tylko zmiana nazwy - w Θ może czuć się dziwnie, bo ja nie jest niezależna od n wzgl. suma, ale jeśli sprzeciwiamy się temu teraz , nigdy nie powinniśmy używać i wewnątrz Θ (ponieważ to ma tę samą dziwność).Θ(Hn)=Θ(logn) j i Θ i n i Θ
Zauważ, że nawet nie wykorzystać, że może również zależeć od n .fi n
Podsumowując, proponowana tożsamość jest fałszywa. Możemy oczywiście uzgodnić konwencje dotyczące sposobu odczytywania takich kwot, jak skrót rygorystycznych obliczeń. Jednak takie konwencje będą niezgodne z definicją terminów Landaua (wraz z ich normalnym nadużywaniem), niemożliwe do prawidłowego zrozumienia bez kontekstu i przynajmniej wprowadzające w błąd (dla początkujących) - ale ostatecznie jest to kwestia gustu (i bezwzględności) ?).
Przyszło mi do głowy, że możemy również napisać dokładnie to , co mamy na myśli i nadal korzystać z wygody warunków Landau. My wiemy , że wszystkie summands pochodzą z jednej wspólnej funkcji, co oznacza, że asymptotyczne granice używać tych samych stałych. Jest to tracone, gdy dodamy do sumy. Więc nie umieszczajmy go tam i nie piszmyΘ
zamiast. Umieszczenie poza sumą powodujeΘ
Wydaje mi się więc, że jest to zarówno poprawny, jak i użyteczny sposób spisania sprawy i dlatego powinien być preferowany nad używaniem symboli Landau wewnątrz sumy, gdy mamy na myśli je poza nią.
źródło
If eachci is a constant, then there is some cmax such that ∀ci:ci≤cmax . So clearly
I think the problem here is that1/i≠Θ(1) . It's o(1/n) (since there is no ϵ such that ∀i:1/i>ϵ ), so the overall sum will be no(1/n)=o(1) . And each term is O(1) , meaning the overall sum is O(n) . So no tight bounds can be found from this method.
I think your questions are:
Hopefully someone else can answer #2 more clearly.
EDIT: Looking over your question again, I think you are asking
To which the answer is yes. In this case though, each term is notΘ of anything, so that approach falls apart.
EDIT 2: You say "considerci=i , then there is no cmax ". Unequivocally true. If you say that ci is a non-constant function of i , then it is, by definition, non-constant.
Note that if you define it this way, thencii is not Θ(i) , it's Θ(i2) . Indeed, if you define "constant" to mean "any function of i ", then any two functions of i differ by a "constant"!
Perhaps this is an easier way to think of it: we have the sequence1,12,…,1n . What's the smallest term in this sequence? Well, it will depend on n . So we can't consider the terms as constant.
(Computer scientists are often more familiar with big-O, so it might be more intuitive to ask if1,…,n has a constant largest term.)
To provide your proof: letf(imin) be the smallest value of f(i) in the range 1,…,n . Then
An analogous proof can be made for the upper bound.
Lastly, you write thatHn=o(n) and as proof give that Hn=Θ(logn) . This is in fact a counter-proof: if Hn is "bigger" than n , then it can't be "smaller" than logn , which is what's required for it to be Θ(logn) . So it can't be o(n) .
źródło