Решение рекуррентных уравнений, содержащих два рекурсивных вызова


15

Я пытаюсь найти Θ ; направляющийся следующего рекуррентного уравнения:

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

Я считаю, что основная теорема неуместна из-за разного количества подзадач и разделов. Также рекурсивные деревья не работают, так как нет T(1) или, вернее, T(0) .


5
Если у вас повторение этой формы, ДОЛЖЕН быть базовый случай, скажем, T(n)42 для всех n<100 . Если нет, то невозможно сказать, к чему приведет повторение: возможно, T(n)=2m для всех n<100 , где m - размер исходной задачи! (вообразите рекурсию, которая заканчивается сравнением постоянного числа того, что вы повторяете со всеми подмножествами исходных элементов) Другими словами: ни один базовый случай не подразумевает недостаточно информации для решения рекурсии.
Алекс тен Бринк

Ответы:


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

  • Корень имеет трех дочерних элементов со значениями , ( n / 2 ) 2 и ( n / 3 ) 2 . Таким образом, общая стоимость всех детей ( 11 / 18 ) п 2 .(N/2)2(N/2)2(N/3)2(11/18)N2

  • Проверка работоспособности: корень имеет девять внуков: четыре со значением , четыре со значением ( n / 6 ) 2 и один со значением ( n / 9 ) 2 . Сумма этих значений ( 11 / 18 ) 2 н 2 .(N/4)2(N/6)2(N/9)2(11/18)2N2

  • Легко индукции доказательство предполагает , что для любого целого , то 3 л узлы на уровне л имеют общее значение ( 11 / 18 ) л п 2 .03(11/18)N2

  • Суммы уровня образуют нисходящий геометрический ряд, поэтому имеет значение только самый большой член .знак равно0

  • Мы заключаем, что .T(N)знак равноΘ(N2)


14

Вы можете использовать более общий метод Акра-Бацци .

В вашем случае нам нужно найти такой, чтоп

12п-1+13пзнак равно1

(что дает )п1,364

и тогда у нас есть

T(Икс)знак равноΘ(Иксп+Иксп1ИксT1-пdT)знак равноΘ(Икс2)

Обратите внимание, что вам не нужно решать для . Все, что вам нужно знать, это то, что 1 < p < 2 .п1<п<2

Более простым методом было бы установить и попытаться доказать, что g ( x ) ограничена.T(Икс)знак равноИкс2грамм(Икс)грамм(Икс)


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