Решение вопросов «разделяй и властвуй», если коэффициент разделения зависит от

20

Существует ли общий метод решения повторения формы:

T(n)=T(nnc)+T(nc)+f(n)

для или в более общем случаеc<1

T(n)=T(ng(n))+T(r(n))+f(n)

где - некоторые сублинейные функции от .g(n),r(n)n

Обновление : я просмотрел ссылки, представленные ниже, а также проанализировал все повторяющиеся отношения в заметках Джеффа Эриксона . Эта форма рецидива нигде не обсуждается. Метод Аккра-Бази применяется только в случае дробного дробления. Любая острая ссылка будет оценена.

пламмер
источник
2
Попробуйте сгенерировать функции.
saadtaame
1
Применяется ли метод Акра-Бацци ? Он дает только оценки , но этого может быть достаточно. O()
vonbrand
4
Поскольку вы не включили большую часть попыток решить свою проблему самостоятельно, мы будем рады работать с вами. Позвольте мне направить вас к нашим справочным вопросам, в которых подробно рассматриваются проблемы, аналогичные вашим. Пожалуйста, проработайте соответствующие вопросы, перечисленные там, попробуйте решить вашу проблему снова и отредактируйте, чтобы включить ваши попытки наряду с конкретными проблемами, с которыми вы столкнулись.
Рафаэль
1
Ознакомьтесь с раздаточными материалами Тома Лейтона «Примечания к лучшим основным теоремам для повторений« разделяй и властвуй »», они доступны в сети. Возможно, вы можете адаптировать доказательство Акра-Бацци там к вашему делу.
vonbrand
1
@EngrStudent Генерирующие функции были предложены в самом первом комментарии. :)
Рафаэль

Ответы:

6

Допустим, у вас есть рецидив которые охватывают положительные реалы.

T(n)={T(nnc)+T(nc)+f(n)n > 21otherwise

Что мы можем сделать с этой функцией? Ну, не много, если мы не наложим на него определенные структуры. Я пришел из фона численного анализа, который выложен числовыми рецептами, которые каким-то образом работают, даже когда основная проблема либо недостаточно гладкая (не имеет значения, давайте все же бросим метод Ньютона при ее разделенных различиях), либо слишком сложная для анализа (сортировка как эта проблема). Моя внутренняя реакция на эти проблемы состоит в том, чтобы сделать некоторые предположения о волнах, скрестить пальцы и надеяться на лучшее. В этом случае, кажется, дают относительно хорошие границы.

В частности, я хочу сделать два основных предположения. Одно из этих предположений более или менее беспочвенно, но без него мы далеко не уйдем. У другого есть несколько приятная визуальная интуиция, которую, можно надеяться, можно уловить, но она все же более волнистая, чем все остальное.

  1. Я буду предполагать, что является «гладким». Довольно легко увидеть, что не везде дифференцируемо. На самом деле, он даже не непрерывен, так как для и , и . Поэтому, учитывая итерированные карты, сгенерированные или , будет содержать разрыв в если его дерево итераций содержитT(n)T(n)f(n)=log(n)c=12limn2T(n)=1limn2+T(n)=2+ln2nnnnnT(n)n2где-то на своей траектории. Это много разрывов, это может даже дать функции Дирихле за деньги. Если мы подходим к тому, что сравниваем поведение функции с прототипом примера нигде-непрерывной функции, разве не смешно пытаться утверждать, что это «плавный переход»? Что ж, получается, что на практике влияние этих разрывов асимптотически уменьшается до такой степени, что ваш график выглядит почти гладким, когда стремится к бесконечности! Поэтому я предлагаю, чтобы мы сложили наши вилы и просто смотрели в этом случае по-другому. В частности, я буду предполагать, что в любой точке интереса которая достаточно далеко от начала координат,nnT(n)дифференцируемо или, по крайней мере, приблизительно дифференцируемо в некоторой окрестности.
  2. Я также приму еще более сильную позицию гладкости, когда достаточно далеко. Предположим , что некоторая сублинеен функция , такая , что (например ), то производная делает не изменяется значительно, когда достаточно медленно. Интуитивно понятно, что увеличении относительный размер окрестности уменьшается (поскольку его размер равен просто , который растет намного медленнее, чем ). В конце концов, размер этой окрестности становится настолько незначительным (по сравнению сnα(n)n>α(n)ncT(ξ(nα(n),n)α(n)n(nα(n),n)α(n)nn) что скорость изменения в этой окрестности больше не меняет все это резко.T(n)

Теперь оба эти свойства предполагаются, и я не имею ни малейшего представления о том, как на самом деле доказать любой из этих способов. Но, как я уже говорил, давайте скрестим пальцы и будем надеяться на лучшее.

Давайте начнем с рекуррентного соотношения: Теперь я предполагаю, что достаточно гладкая на интервале между и . Обращение к одному из наших классических аналитических инструментов, теореме о среднем значении, дает нам Кроме того, когда достаточно велико, мы предполагаем, что примерно одинаково во всем этом интервале и, следовательно, принимает значение любой из конечных разностей в этом интервале. Это значит, что

T(n)=T(nnc)+T(nc)+f(n)T(n)T(nnc)=T(nc)+f(n)ncT(n)T(nnc)nc=T(nc)+f(n)
Tnncn
T(n)T(nnc)nc=T(ξ(nnc,n)).
nT(ξ)
T(ξ)T(n)T(nϵ)ϵ    ϵ<nc
В частности, взять чтобы получить единицу разделенное разностное приближение Мы можем выдвинуть это, чтобы получить ϵ=1
nc(T(n)T(n1))T(nc)+f(n)T(n)T(n1)T(nc)+f(n)nc
T(n)knT(kc)kc+knf(k)kc

Возмущение показывает, что имеет две асимптотические фазы, в зависимости от асимптотической природы функции .T(n)T(n)f(z)

Когда ( быстрее, чем ), тогда правая сумма доминирует, и мы имеем который часто можно аппроксимировать целым .f(n)=o(nc)fncT(n)=Θ(knf(k)kc)nf(x)xcdx

Когда , тогда левая сумма доминирует над правой. Здесь мы должны проанализировать сумму где .f(n)=ω(nc)

(knT(kc)kc)+Fc(n)
Fc(n)=nf(x)xcdx

В силу аргумента гладкости мы можем еще раз взглянуть на это как на левую сумму Римана, аппроксимирующую интеграл . Применение аналогичной теоремы о среднем значении для интеграла дает Мы можем просто пойти дальше и приблизить это к , что дает аппроксимация для некоторой константы которая ограничивает ряд.nT(xc)xcdx

kT(kc)kcnf(xc)xcdx=nT(ξ<nc)ξc
nT(nc)nc
T(n)nMT(nc)nc+Fc(n)
M

Теперь предположим, что у нас есть повторяющаяся последовательность где , тогда мы можем использовать эту последовательность для телескопирования вышеупомянутого неравенства, чтобы получить: Еще раз, мы можем связать термин некоторой постоянной , чтобы обнаружить , что где . Упрощение и объединение некоторых слагаемых (в частности, мы знаем, что(n,nc,nc2,nc3,,nck)nck<2

(*)T(n)n(ik1MinciFc(nci)+Mknck)
Fc(nci)
T(n)=O(Fc(n)+nFc(nc)(Mnc+M2nc2++Mknck))
k=logc(log(2)log(n))Mncnckявляется константой), мы получаем
T(n)=O(nkFc(n)Mk)

Однако эта граница относительно свободна, и вы должны ссылаться на всякий раз, когда это возможно.(*)

Имейте в виду, что это ни в коем случае не является строгим. Я не предоставил никакой поддержки, что это должно работать за пределами некоторых неуклюжих приближений. Тем не менее, если вам просто нужно быстрое асимптотическое предположение для неформального анализа, то вы можете увидеть, что эта схема хорошо работает (для достаточно больших значений , обычно достаточно ) на практике.nn>10

В любом случае, для всех вариантов и которые я пробовал, следующее вычисление где кажется, дают хорошие приближения , Этот метод также обобщает рецидивы вида которые можно аппроксимировать с помощью гдеcf

T^(n)=nklogclogn2MknckF(nck)F(n)=knf(k)kc
MkT(kc)kcnT(nc)nc
T(n)=T(nα(n))+T(β(n))+f(n)
T^(n)=nk#β(n)Mkαk(n)F(βk(n))F(n)=knf(k)α(k)
αk(n)=α(k(α(n)))и обозначает количество элементов последовательности , что последний член находится между и .#β(n)n,β(n),β(β(n)),,β#β(n)(n)12
подветренный
источник