Суми перелічених термінів Ландау


10

Я задав (насіння) питання про суми термінів Ландау до , намагаючись оцінити небезпеку зловживання асимптотика позначення в арифметиці, зі змінним успіхом.

Тепер, тут наш рецидиви гуру JeffE робить в основному це:

i=1nΘ(1i)=Θ(Hn)

Хоча кінцевий результат правильний, я думаю, що це неправильно. Чому? Якщо додати, що мається на увазі існування констант (лише верхня межа), ми маємо

i=1nci1icHn .

Тепер, як ми обчислимо c з c1,,cn ? Відповідь, я вважаю, що ми не можемо: c має обмежуватися для всіх n але ми отримуємо більше ci в міру зростання nМи нічого не знаємо про них; ci може дуже залежати від i , тому ми не можемо припустити обмеження: кінцевий c може не існувати.

Крім того, існує ця тонка проблема, яка змінна переходить у нескінченність зліва - i чи n ? Обидва? Якщо n (заради сумісності), яке значення Θ(1/i) , знаючи, що 1in ? Чи означає це не тільки Θ(1) ? Якщо так, ми не можемо обмежити суму краще, ніж Θ(n) .

Отже, де це залишає нас? Це кричуща помилка? Тонкий? Або це просто звичайне зловживання нотацією, і ми не повинні дивитися на = такі ознаки поза контекстом? Чи можемо ми сформулювати (суворо) правильне правило для оцінки (певних) сум термінів Ландау?

Я думаю, що головне питання: що ? Якщо ми вважаємо це постійним (оскільки воно знаходиться в межах суми), ми можемо легко побудувати контрприклади. Якщо вона не є постійною, я не маю уявлення, як її читати.i


2
Це питання на math.SE добре читати про арифметику з термінами Ландау в цілому.
Рафаель

4
З посилання, яке ви надали, рівність видно як відношення підмножини, або відношення "знаходиться в" (тобто ). Для ви просто говорите, що вона обмежена вище і знизу постійною. Чому б не вибрати і ? Θc=min(c1,c2,,cn)C=max(c1,c2,,cn)
user834

5
Почекай, Бакі. Я не писав жодної суми з тетою в ній. Я написав рецидив з Тетою в ньому. Ви дійсно інтерпретуєте повторення " " як щось інше, ніж "Існує функція таким, що "? t(n)=Θ(1/n)+t(n1)fΘx(x1/x)t(n)=f(n)+t(n1)
JeffE

4
@Raphael Ні, повтор математично не такий, як сума, саме з тієї причини, яку ви описуєте! Рецидив має в ньому рівно один термін Theta, який однозначно відноситься до однієї функції.
JeffE

2
Це не дуже інтуїтивно - я категорично не згоден, але я думаю, що це питання смаку та досвіду.
JeffE

Відповіді:


5

Мені правильно підходить наступна конвенція:

Sn=k=1nΘ(1/k) є зручним позначенням для

Є (як ) такий, щоf(x)Θ(1/x)x

Sn=k=1nf(k) .

Таким чином, отриманий (або з позначенням у цій відповіді ), насправді не залежить від .cickk

Згідно з цією інтерпретацією, справді вірно, що .Sn=Θ(Hn)

Насправді у відповіді Джеффа він показує, що де , тому воно узгоджується з наведеною вище інтерпретацією.T(k+1)=f(k)+T(k)fΘ(1/k)

Зрозуміло, що плутанина виникає з розумового "розкручування" та припущення різних функцій для кожного виникнення ...Θ


Jup, але кожен може мати свою функцію і постійну. Таким чином, ця конвенція працює лише з контекстом, тобто якщо ми знаємо, що ландауські терміни випливають із дещо «рівномірного» (у і ) визначення суми. Θ kn
Рафаель

2
@Raphael: Здається, безглуздо знімати, а потім дозволяти різні : константи будуть залежати від змінної! і це стає неправильним використанням , припустимо, що змінною є (або у відповіді вище). Навіть якщо ми припустимо, що змінна є , вона все ще виглядає для мене безглуздою. fiΘΘikn
Ар'ябхата

3
В принципі, кожен може мати свою власну постійну, але в даному контексті ви описали , це ясно , що кожен зовсім НЕ має свою власну константу. ΘΘ
JeffE

2
@JeffE: Правильно. Ми можемо мати декілька з власними константами, якщо константи дійсно постійні :-)Θ
Ар'ябхата

1
@JeffE То чому б ти просто не написав, що маєш на увазі, а віддаєш перевагу щось неоднозначне / неправильне? Зауважте, що моя оновлена ​​відповідь пропонує запропонувати спосіб зробити це. Буду вдячний за коментарі до цього; downvotes без жодної причини не допомагають мені зрозуміти, чому люди, здається, відкидають мою думку.
Рафаель

1

Я думаю, що я усунув проблему. По суті: використовуючи терміни Ландау, відокремлюємо змінну функції зведення від запущеної змінної суми. Ми все-таки (хочемо) читати їх як однакові, тому, плутанина.

Формально це розвивати, що робить

Sni=1nΘ(f(i))(1)

насправді означає? Тепер я припускаю, що ці дозволяють - не - до нескінченності; якщо дозволити , кожна така сума оцінюється до (якщо суми незалежні від і тому постійні), що явно неправильно. Ось перший подарунок, який ми мусимо робити сирі речі: пов'язаний (і постійний) всередині суми, але ми все одно відпускаємо це до нескінченності?ΘinnΘ(n)ni

Перекладаючи (для верхньої межі нижня межа працює аналогічно), отримуємо(1)

f1,,fnΘ(f). Sni=1nfi(i)

Тепер зрозуміло, що сума параметр роз'єднані: ми можемо легко визначити щоб вони використовували як константу. У прикладі із запитання ми можемо визначити і матиiifiifi(j)=i1jΘ(1/j)

i=0nfi(i)"="i=0nΘ(1/j)=i=0nΘ(1/i)

але початкова сума явно не оцінює щось у . Тепер обмін на - що є лише перейменуванням - у може здатися дивним, оскільки не є незалежним від респ. Сума, але якщо ми заперечуємо проти цього зараз , ми ніколи не повинні були використовувати в першу чергу всередині (як це має однакові дивацтва).Θ(Hn)=Θ(logn)jiΘiniΘ

Зауважимо, що ми навіть не використовували, що також може залежати від .fin

На закінчення запропонована ідентичність є хибною. Звичайно, ми можемо домовитись про умовності щодо того, як слід читати такі суми, як абревіатура суворого обчислення. Однак такі конвенції будуть несумісними з визначенням термінів Ландау (разом із звичайним зловживанням ними), неможливо правильно зрозуміти без контексту та ввести в оману (принаймні для початківців) - але це, в кінцевому рахунку, питання смаку (і безжалісності ?).

Мені прийшло в голову, що ми також можемо написати саме те , що ми маємо на увазі, і все-таки скористатися зручністю ландауських термінів. Ми знаємо, що всі підсумки походять від однієї загальної функції, маючи на увазі, що асимптотичні межі використовують однакові константи. Це втрачається, коли ми поміщаємо до суми. Тож давайте не вкладаємо його туди і пишемоΘ

i=1n2i1i(i+1)Θ(i=1n1i)=Θ(Hn)

замість цього. Поміщення поза сумою призводить доΘ

  • математично правильне твердження і
  • простий термін всередині в ми можемо легко мати справу з (це те , що ми хочемо тут, НЕ так?).Θ

Тож мені здається, що це і правильний, і корисний спосіб запису справи, і тому слід віддати перевагу використанню символів Ландау всередині суми, коли ми маємо на увазі їх поза нею.


Розглянемо . Я можу визначити (використовуючи як константу), тому вашими міркуваннями, правда? Але ця сума дорівнює . inifi(n)=iiini=inO(1)=O(n)O(n2)
Xodarap

@Xodarap: За моїми міркувань, руйнується суму , як це не працює, тому що муфта внутрішня и (які пов'язані з , ні ) до чи змінити значення. Θinn
Рафаель

Я не зв'язую їх з , я просто використовую той факт, що . (І я гадаю також, що .)nink=nknO(f)=O(nf)
Xodarap

@Xodarap: Але ви не маєте один , але один в складовою. Якщо основні функції використовують (як постійний коефіцієнт), ви повинні розширити це, і сума в кінцевому підсумку є правильною. Очевидно, що, мої міркування, правило, яке ви пропонуєте, не працює, як ви пишете. ffifii
Рафаель

Якщо у мене є послідовність , кожна з них є (за умови, що вони не збільшуються в міру просування серії). Ви б сказали, що додавання з них генерує суму ? Яка різниця, якщо замість констант я описую їх як постійні функції ? 5,1,3,2,O(1)nO(n)f1(x)=5,f2(x)=1,
Xodarap

-1

Якщо кожен є постійною, то існує деяка така, що . Так чітко Те саме уявлення для мало о.cicmaxci:cicmax

cif(i)cmaxf(i)=cmaxf(i)=O(f(i))

Я думаю, що тут проблема полягає в тому, що . Це (оскільки немає такого, що ), тож загальна сума буде . І кожен доданок - , тобто загальна сума - . Тож ніяких жорстких меж від цього методу не знайти.1/iΘ(1)o(1/n)ϵi:1/i>ϵno(1/n)=o(1)O(1)O(n)

Я думаю, що ваші запитання:

  1. Чи обмежувати , виконуючи маленьке o кожного доданка, а велике o кожного члена, а потім помноживши на прийнятне? (Відповідь: так)inf(i)n
  2. Чи є кращий метод? (Відповідь: Не те, що я знаю.)

Сподіваємось, хтось ще може відповісти №2 чіткіше.

EDIT: Переглянувши ваше запитання ще раз, я думаю, ви запитуєте

inΘ(f(n))=Θ(nf(n)) ?

На що відповідь - так. У цьому випадку кожен термін не є нічого, тому такий підхід розпадається.Θ

EDIT 2: Ви кажете "вважати , тоді немає ". Однозначно правда. Якщо ви говорите, що - це незмінна функція , то, за визначенням, вона є непостійною.ci=icmaxcii

Зауважте, що якщо ви визначите це таким чином, то не є , це . Дійсно, якщо ви визначаєте "константа" означати "будь-яку функцію ", то будь-які дві функції відрізняються "константою"!ciiΘ(i)Θ(i2)ii

Можливо, це простіший спосіб його думати: у нас є послідовність . Який найменший термін у цій послідовності? Ну, це залежатиме від . Тому ми не можемо вважати умови постійними.1,12,,1nn

(Комп'ютерні вчені часто більше знайомі з великим O, тому може бути більш інтуїтивно запитати, чи не має постійний найбільший термін.)1,,n

Для підтвердження: нехай - найменше значення в діапазоні . Тодіf(imin)f(i)1,,n

inf(i)inf(imin)=nf(imin)=no(f(n))

Аналогічний доказ може бути зроблений для верхньої межі.

Нарешті, ви пишете, що і як доказ даєте, що . Це насправді зустрічне підтвердження: якщо "більший", ніж , то він не може бути "меншим", ніж , для чого потрібно . Отже, це не може бути .Hn=o(n)Hn=Θ(logn)HnnlognΘ(logn)o(n)


1) ".. тоді є якийсь такий, що ..." - ні, нема. Розглянемо з . 2) "Я не думаю, що " - 3) . Це - Це неправильно. Як , . 4) "(відповідь: так)" - доки я не бачу формального доказу цього факту, я не вірю в це. Крім того, "множення на " - це не те, що сталося у виставковій справі. cmax(ci)iNci=iHn=o(n)HnΘ(lnn)1/iΘ(1)o(1/n)1/i1/n1/iΩ(1/n)n
Рафаель

Я думаю, що ви пропускаєте суть. Ваше доказ не працює, тому що ми можемо не мати однакову у кожній зведеній доріжці, і навіть не однакову для одного і того ж підсумову, але різні . Я думаю, що я прибив це; Невдовзі я складу відповідь. fn
Рафаель

Я досі не розумію, що ти говориш, тому радий, що ти це зрозумів :-)
Xodarap
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.