Розв’язування рівнянь повторення, що містять два виклики рекурсії


15

Я намагаюся знайти пов'язане для наступного рівняння повторення:Θ

T(n)=2T(n/2)+T(n/3)+2n2+5n+42

Я вважаю, що теорема магістра є недоцільною через різну кількість підпроблем та поділів. Також дерева рекурсії не працюють, оскільки немає а точніше .T(1)T(0)


5
Якщо у вас є повтор цієї форми, ОБОВ'ЯЗКОВО має бути базовий випадок, скажімо, для всіх . Якщо ні, то не сказано, на що вирішиться повтор: можливо, для всіх , де - розмір вихідної задачі! (уявіть собі рекурсію, яка закінчується порівнянням постійної кількості того, що ви повторюєте, для всіх підмножин початкових елементів) Іншими словами: жоден базовий випадок не передбачає недостатньої інформації для вирішення повторення. n < 100 T ( n ) = 2 m n < 100 mT(n)42n<100T(n)=2mn<100m
Олексій десять Бринк

Відповіді:


15

Так, дерева рекурсії все ще працюють! Це зовсім не має значення, чи має місце базовий випадок при або або або навіть . Також не має значення, яке фактичне значення має базовий випадок; яка б не була ця цінність, це константа.T ( 1 ) T ( 2 ) T ( 10 100 )T(0)T(1)T(2)T(10100)

Якщо ви бачите через окуляри великого тета, повторність становить .T(n)=2T(n/2)+T(n/3)+n2

  • Корінь дерева рекурсії має значення .n2

  • Корінь має трьох дітей із значеннями , та . Таким чином, загальне значення всіх дітей становить . ( п / 2 ) 2 ( п / 3 ) 2 ( 11 / 18 ) п 2(n/2)2(n/2)2(n/3)2(11/18)n2

  • Перевірка обґрунтованості: Корінь має дев'ять онуків: чотири зі значенням , чотири зі значенням та один зі значенням . Сума цих значень дорівнює .(n/4)2(n/6)2(n/9)2(11/18)2n2

  • Просте доведення індукції означає, що для будь-якого цілого , вузли на рівні мають загальне значення .03(11/18)n2

  • Рівні сум утворюють низхідний геометричний ряд, тому має значення лише найбільший термін .=0

  • Робимо висновок, що .T(n)=Θ(n2)


14

Можна скористатися більш загальним методом Акра-Бацці .

У вашому випадку нам потрібно було б знайти такий p

12p1+13p=1

(що дає )p1.364

і ми тоді маємо

T(x)=Θ(xp+xp1xt1pdt)=Θ(x2)

Зауважте, що вам не потрібно вирішувати питання на . Все, що вам потрібно знати, це те, що 1 < p < 2 .p1<p<2

Більш простим методом було б встановити і спробувати довести, що g ( x ) обмежений.T(x)=x2g(x)g(x)


14

Нехай - це скорочення для правої частини рецидиву. Ми знаходимо нижню і верхню межу для f , використовуючи T ( n / 3 ) T ( n / 2 ) :f(n)=2T(n/2)+T(n/3)+2n2+5n+42fT(n/3)T(n/2)

3T(n/3)+2n2+5n+42f(n)3T(n/2)+2n2+5n+42

Якщо ми використовуємо нижню респ. Верхня межа як права сторона рецидиву, отримуємо в обох випадках теоремою Майстра. Таким чином, T ( n ) обмежується зверху O ( n 2 ), а знизу Ω ( n 2 ) або, що рівно, T ( n ) Θ ( n 2 ) .T(n)Θ(n2)T(n)O(n2)Ω(n2)T(n)Θ(n2)


  1. Для повного доказу слід довести, що є функцією, що зростає.T


1
Цей трюк не працюватиме для подібних повторень, як-от , які можна вирішити за допомогою дерев рекурсії. (Але навіть дерева рекурсії не працюватимуть для T ( n ) = 2 T ( n / 2 ) + 4 T ( n / 3 ) + n 2 , що можна вирішити за допомогою Akra-Bazzi.)T(n)=2T(n/2)+3T(n/3)+n2T(n)=2T(n/2)+4T(n/3)+n2
JeffE
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.