Как сформулировать рекуррентное уравнение для времени работы алгоритма «разделяй и властвуй»

Я работаю над своей домашней работой, и я увидел эту проблему:

Алгоритм «разделяй и властвуй» Икс делит любой заданный экземпляр задачи ровно на два меньших экземпляра задачи и решает их рекурсивно. Кроме того, всякий раз, когда Икс делит заданный экземпляр задачи размером н на более мелкие экземпляры с размерами а и б , затем а + б "=" н и 1 4 н а , б 3 4 н .

  1. Если процедуры разделения и слияния требуют 2 н шаги для проблемного экземпляра размера н , вывести асимптотическое время работы Т ( н ) Θ ( ) ).
  2. Если процедуры разделения и слияния требуют н 2 шаги для проблемного экземпляра размера н , вывести асимптотическое время работы Т ( н ) Θ ( ) ).

Я знаю, что после получения рекуррентного уравнения мне нужно использовать основную теорему, но я понятия не имею, как сформулировать форму Т ( н ) . В других примерах я видел что-то вроде "он разбивается на три части", что понятно, но а + б часть меня смущает. Может кто-то мне помочь, пожалуйста? Спасибо!!

Если я правильно понимаю, а , б здесь не фиксированы -- они могут меняться на каждом уровне рекурсии?

Ответы (2)

Хорошо, Т ( н ) "=" Т ( а ) + Т ( б ) + 2 н в первом случае с а , б ограничено, как вы упомянули

Сначала сформулируем задачу в терминах явного рекуррентного соотношения.

Позволять а 1 "=" а 2 "=" 1 и б 1 "=" б 2 "=" 1 2 , и рассмотрим функции Т , час 1 , час 2 , г и с тем свойством, что

Т ( Икс ) "=" г ( Икс ) + а 1 Т ( б 1 Икс + час 1 ( Икс ) ) + а 2 Т ( б 2 Икс + час 2 ( Икс ) ) .
Также предположим, что | час 1 ( Икс ) | , | час 2 ( Икс ) | Икс 4 . Найдите асимптотические оценки для Т , когда г ( Икс ) "=" 2 Икс , и когда г ( Икс ) "=" Икс 2 .

Я намеренно сформулировал проблему так, как указано выше, чтобы она выглядела похожей на форму, фигурирующую в теореме Акра-Бацци , которая является одним из самых известных обобщений основной теоремы . Как вы можете видеть в примечании Лейтона к теореме Акра-Бацци, данная асимптотическая оценка теоремы гарантированно работает только тогда, когда существует некоторая положительная константа ϵ такой, что у нас есть | час 1 ( Икс ) | , | час 2 ( Икс ) | Икс ( бревно Икс ) 1 + ϵ для всех достаточно большой Икс (вместе с другими требованиями, которые выполняются в нашей задаче). К сожалению, в нашей задаче это не так, и вы не можете использовать основную теорему или ее известные обобщения, как вы ожидали. Но, к счастью, порядок роста, заданный теоремой, работает в нашей задаче по другой простой причине. Таким образом, у нас есть хорошее предположение, использующее обобщенную главную теорему, и нам нужно только предоставить доказательство. Как п "=" 1 это единственное действительное число, удовлетворяющее а 1 б 1 п + а 2 б 2 п "=" 1 (критическая мощность), заданный порядок роста Θ ( Икс п ( 1 + 1 Икс г ( ты ) ты п + 1   г ты ) ) становится Θ ( Икс бревно Икс ) в случае г ( Икс ) "=" 2 Икс , и Θ ( Икс 2 ) в случае г ( Икс ) "=" Икс 2 .

Чтобы понять, почему границы работают, обратите внимание, что обе Икс Икс бревно Икс и Икс Икс 2 являются дифференцируемыми выпуклыми функциями (в нашей области интереса, скажем, Икс 1 ). Таким образом, их производные, Икс 1 + бревно Икс и Икс 2 Икс , строго возрастают и, следовательно, инъективны. Рассмотрим дифференцируемую функцию с действительным знаком ф определенный на интервале я "=" [ н 2 м , н 2 + м ] для некоторого положительного н и м , такое, что его производная ф строго возрастает. Определять Ф : я р с Ф ( а ) "=" ф ( а ) + ф ( н а ) . Затем Ф является дифференцируемым и Ф ( а ) "=" ф ( а ) ф ( н а ) . Как ф является инъективным, значение Ф может стать нулем только тогда, когда а "=" н а , т.е. а "=" н 2 . Таким образом, в качестве экстремумов Ф может происходить только в конечных точках я или где значение Ф становится нулем, мы можем проверить, что для всех а е я ,

Ф ( н 2 ) Ф ( а ) Ф ( н 2 м ) "=" Ф ( н 2 + м ) ,
или эквивалентно
2 ф ( н 2 ) ф ( а ) + ф ( н а ) ф ( н 2 м ) + ф ( н 2 + м ) ,
путем определения знака Ф . Это простое наблюдение позволяет нам доказать, что наши оценки работают.


Случай Т ( н ) "=" Т ( а ( н ) ) + Т ( б ( н ) ) + 2 н

Выберите положительные константы с 1 2 и с 2 1 1 3 8 бревно 2 3 такой, что у нас есть

(0) с 1 н бревно 2 н Т ( н ) с 2 н бревно 2 н
для достаточно многих значений н . Мы используем (сильную) индукцию, чтобы доказать, что с этого момента (0) действует для всех н . В качестве предположения индукции предположим, что мы имеем (0) для всех н с Н 4 н 3 Н 4 . Тогда у нас есть
Т ( Н ) "=" Т ( а ( Н ) ) + Т ( б ( Н ) ) + 2 Н с 1 а ( Н ) бревно 2 а ( Н ) + с 1 б ( Н ) бревно 2 б ( Н ) + 2 Н "=" с 1 а ( Н ) бревно 2 а ( Н ) + с 1 ( Н а ( Н ) ) бревно 2 ( Н а ( Н ) ) + 2 Н 2 с 1 ( Н 2 ) бревно 2 ( Н 2 ) + 2 Н "=" с 1 Н бревно 2 Н + ( 2 с 1 ) Н с 1 Н бревно 2 Н ,
и
Т ( Н ) "=" Т ( а ( Н ) ) + Т ( б ( Н ) ) + 2 Н с 2 а ( Н ) бревно 2 а ( Н ) + с 2 б ( Н ) бревно 2 б ( Н ) + 2 Н "=" с 2 а ( Н ) бревно 2 а ( Н ) + с 2 ( Н а ( Н ) ) бревно 2 ( Н а ( Н ) ) + 2 Н с 2 ( Н 4 ) бревно 2 ( Н 4 ) + с 2 ( 3 Н 4 ) бревно 2 ( 3 Н 4 ) + 2 Н "=" с 2 Н бревно 2 Н + ( 2 ( 2 3 4 бревно 2 3 ) с 2 ) Н с 2 Н бревно 2 Н ,
что завершает шаг индукции.


Случай Т ( н ) "=" Т ( а ( н ) ) + Т ( б ( н ) ) + н 2

Выберите положительные константы с 1 2 и с 2 8 3 такой, что у нас есть

(1) с 1 н 2 Т ( н ) с 2 н 2
для достаточно многих значений н . Мы используем (сильную) индукцию, чтобы доказать, что с этого момента (1) действует для всех н . В качестве предположения индукции предположим, что мы имеем (1) для всех н с Н 4 н 3 Н 4 . Тогда у нас есть
Т ( Н ) "=" Т ( а ( Н ) ) + Т ( б ( Н ) ) + Н 2 с 1 а ( Н ) 2 + с 1 б ( Н ) 2 + Н 2 "=" с 1 а ( Н ) 2 + с 1 ( Н а ( Н ) ) 2 + Н 2 2 с 1 ( Н 2 ) 2 + Н 2 "=" ( с 1 2 + 1 ) Н 2 с 1 Н 2 ,
и
Т ( Н ) "=" Т ( а ( Н ) ) + Т ( б ( Н ) ) + Н 2 с 2 а ( Н ) 2 + с 2 б ( Н ) 2 + Н 2 "=" с 2 а ( Н ) 2 + с 2 ( Н а ( Н ) ) 2 + Н 2 с 2 ( Н 4 ) 2 + с 2 ( 3 Н 4 ) 2 + Н 2 "=" ( 5 с 2 8 + 1 ) Н 2 с 2 Н 2 ,
что завершает шаг индукции.