Основная теорема не применима?


11

Дано следующее рекурсивное уравнение

T(n)=2T(n2)+nlog⁡n
мы хотим применить основную теорему и отметить, что

nlog2⁡(2)=n.

Теперь мы проверим первые два случая для ε>0 , то есть

  • nlog⁡n∈O(n1−ε) или
  • nlog⁡n∈Θ(n) .

Два случая не удовлетворены. Таким образом, мы должны проверить третий случай, то есть

  • nlog⁡n∈Ω(n1+ε) .

Я думаю, что третье условие также не выполняется. Но почему? И что было бы хорошим объяснением того, почему основная теорема не может быть применена в этом случае?



4
Случай 3 не выполняется, потому что не является Ω ( n ϵ ) для любого ϵ > 0 . Используйте правило l'Hôpital в журнале лимитов nжурнал⁡NΩ(Nε)ε>0журнал⁡NNε
— sdcvvc

1
Если вы покажете, что ни один из этих случаев не применим, это доказывает, что вы не можете применить основную теорему, как указано.
— Рафаэль

Кому нужна основная теорема? Используйте рекурсивные деревья.
— Джефф

Ответы:


7

Три случая основной теоремы, на которые вы ссылаетесь, доказаны во введении к алгоритмам Томасом Х. Корменом, Чарльзом Э. Лейзерсоном, Рональдом Л. Ривестом и Клиффордом Стейном (2-е издание, 2001).

Правильно замечено, что рассматриваемая повторяемость находится между случаем 2 и случаем 3. То есть растет быстрее, чем n, но медленнее, чем n 1 + ε для любого ε > 0 .е(N)знак равноNжурнал⁡NNN1+εε>0

Однако теорема может быть обобщена, чтобы охватить это повторение. Рассматривать

Случай 2А. Рассмотрим для некоторого k ≥ 0 .f(n)=Θ(nlogb⁡alogbk⁡n)k≥0

Этот случай сводится к случаю 2 , когда . Интуитивно ясно , что вдоль каждой ветви дерева повторения F ( х ) добавляется thetas ; ( лог б п ) раз. Эскиз более формального доказательства можно найти ниже. Окончательный результат в том , чтоk=0f(x)Θ(logb⁡n)

.

T(n)=Θ(nlogb⁡alogbk+1⁡n)

В введении к алгоритмам это утверждение остается в качестве упражнения.

Применяя это утверждение к рассматриваемой рекурсии, мы, наконец, получаем

T(N)знак равноΘ(N⋅журнал2⁡N),

Более подробную информацию об основной теореме можно найти на превосходной (imho) странице Википедии .

Поскольку @sdcvvc указывает в комментариях, чтобы доказать, что случай 3 здесь не применим, можно использовать правило Л'Оспиталя, которое гласит, что для любых функцийF(х)иг(х)дифференцируема в окрестностис. Применяя это кF(п)=пвойтипиг(п)=п1+εможно показатьчтожурналп∉thetas(п1+ε).

ИтИкс→се(Икс)грамм(Икс)знак равноИтИкс→се'(Икс)грамм'(Икс)
е(Икс)грамм(Икс)се(N)знак равноNжурнал⁡Nграмм(N)знак равноN1+εжурнал⁡N∉Θ(N1+ε),

Набросок доказательства основной теоремы для случая 2А.

Это воспроизведение частей доказательства из введения в алгоритмы с необходимыми модификациями .

Сначала докажем следующую лемму.

Лемма А:

Рассмотрим функцию , где ч ( п ) = п войти б в журнал K б н . Тогда g ( n ) = n log b a log k + 1 b n .

грамм(N)знак равноΣJзнак равно0журналб⁡N-1aJчас(N/бJ)
час(N)знак равноNжурналб⁡aжурналбК⁡N,грамм(N)знак равноNжурналб⁡aжурналбК+1⁡N,

Доказательство: подставляя в выражение для g ( n ), можно получить g ( n ) = n log b a log k b nчас(N)грамм(N)

грамм(N)знак равноNжурналб⁡aжурналбК⁡NΣJзнак равно0журналб⁡N-1(aбжурналб⁡a)Jзнак равноNжурналб⁡aжурналбК+1⁡N,

QED

Nб

T(N)знак равноaT(N/б)+е(N),T(1)знак равноΘ(1)
T(N)знак равноΘ(Nжурналб⁡a)+ΣJзнак равно0журналб⁡N-1aJT(N/бJ),
е(N)Θ(Nжурналб⁡aжурналбК⁡N)Θ

T(N)знак равноΘ(Nжурналб⁡aжурналбК+1⁡N),

Nб


1

Теорема Акра-Бацци является строгим обобщением основной теоремы. В качестве бонуса его доказательство - метель интегралов, которые заставят вашу голову вращаться ;-)

T(N)~грамм(N)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.