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

11

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

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

nlog2(2)=n.

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

  • nlognO(n1ε) или
  • nlognΘ(n) .

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

  • nlognΩ(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)=Θ(nlogbalogbkn)k0

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

.

T(n)=Θ(nlogbalogbk+1n)

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

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

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

Более подробную информацию об основной теореме можно найти на превосходной (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журналбК+1N,

Доказательство: подставляя в выражение для 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журналбК+1N,

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журналбК+1N),

Nб

Дмитрий Чубаров
источник
1

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

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

vonbrand
источник