Чому в головній теоремі існує умова регулярності?


15

Я читав « Вступ до алгоритмів » Кормена та ін. і я читаю твердження основної теореми, починаючи з сторінки 73 . У випадку 3 також існує умова регулярності, яку необхідно виконати, щоб використовувати теорему:

... 3. Якщо

f(n)=Ω(nlogba+ε)

для деякої постійної і якщоε>0

af(n/b)cf(n)      [ це умова регулярності ]

для деякої постійної і для всіх досить великих n , тоді ..c<1n

Хтось може мені сказати, навіщо потрібна умова регулярності? Як теорема виходить з ладу, якщо умова не виконується?


чи можете ви написати, що це за справа, і яка норма регулювання?

3
Я не маю для вас остаточної відповіді, але, схоже, якщо умова регулярності не дотримується, тоді підпрограми забирають все більше часу, тим меншими вони є, тож ви отримуєте нескінченну складність.

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

Відповіді:


10

Не суворий доказ, а пояснення «зверху голови».

Уявіть , повторення Т ( п / б ) + е ( п ) у вигляді дерева. Третій випадок охоплює сценарій, коли кореневий вузол домінує над робочим часом асимптотично, тобто велика частина роботи виконується в лугкому вузлі на вершині дерева рецидивів. Тоді час роботи - Θ ( f ( n ) ) .aT(n/b)+f(n)Θ(f(n))

Щоб переконатися, що корінь справді виконує більше роботи, вам потрібно

.af(n/b)cf(n)

Це говорить про те, що (обсяг виконаної роботи в корені) повинен бути принаймні таким же великим, як сума роботи, виконаної на нижчих рівнях. (Повторення називається раз на п / б входу.)f(n)an/b

Наприклад, для повторення робота на рівні нижче кореня на чверть більша і виконується лише двічі ( n / 4 + n / 4 ) проти n, тому корінь домінує .T(n)=2T(n/4)+n(n/4+n/4)n

Але що робити, якщо функція не відповідала умові регулярності? Наприклад, замість n ? Тоді робота, проведена на нижчих рівнях, може бути більшою, ніж робота в корені, тому ви не впевнені, що корінь домінує.cos(n)n


3
Я використовував приємніше форматування для вашого математичного тексту. Ви можете натиснути посилання "відредаговано" і подивитися, що я зробив.
Juho

7

Нехай і b = 2 , так що T ( 2 n ) = n k = 0 f ( 2 k ) . Для застосування випадку 3 нам знадобиться f ( n ) = Ω ( n ϵ ) (для деяких ϵ > 0 ) і умова регулярності, f ( n / 2 ) ( 1 - δ ) fа=1б=2

Т(2н)=к=0нf(2к).
f(н)=Ω(нϵ)ϵ>0f(н/2)(1-δ)f(н)δ>0f(n)=n(2cosn)
f(2n)=22log2n>22log2n1=2n/2.
n=2m+11
T(2n)=k=0mt=2k2k+1122k=k=0m22k+k=Θ(22m+m),f(2n)=22m.
So it's not true that T(2n)=Θ(f(2n)).

There is a more general theorem, Akra-Bazzi, in which the regularity condition is replaced by an explicit quantity that comes into the result.


Вибачте за відновлення цієї старої відповіді. Чи можете ви пояснити, чому ваша функція f порушує умову регулярності?
Maiaux

Sometimes f(n/2)=f(n).
Yuval Filmus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.