Как вы упоминаете, теорема Акра – Бацци показывает, что решением рекуррентности является для всех . Однако это не раскрывает характера зависимости от . Чтобы определить последнее, мы можем использовать подход дерева рекурсии.T ( n , p ) O ( n log n ) p ∈ ( 0 , 1 ) pT(n,p)O(nlogn)p∈(0,1)p
В корне дерева рекурсии находится интервал . Его двое детей являются интервалы и , общая длина которых снова . У каждого из этих узлов есть два дочерних элемента (при условии, что достаточно велико) и т. Д. Для простоты мы игнорируем ошибки округления, то есть предполагаем, что является целым числом; это всего лишь техническая составляющая, и я бы об этом не беспокоился. Мы останавливаем процесс всякий раз, когда длина узла не превышает . Сложность алгоритма пропорциональна общей длине интервалов в дереве. Когда , листья{ 1 , ... п } { 1 , ... , р п } { р п + 1 , ... , п } п п р п 1 р ≠ 1 / 2{1,…n}{1,…,pn}{pn+1,…,n}nnpn1p≠1/2 (узлы, на которых мы останавливаем процесс) имеют разную глубину, и это затрудняет определение общей сложности.
Мы можем получить простую верхнюю границу, отметив, что дерево имеет не более уровней: каждый узел по крайней мере в меньше своего родителя. Как и в анализе для , общая длина интервалов на любом уровне не превышает , и мы получаем верхнюю границу на Продолжительность. Так как и для малых , мы можем записать это как .войти 1 - р ( 1 / п ) 1 - р р = 1 / 2 п О ( п войти 1 - р ( 1 / п ) ) войти 1 - р ( 1 / п ) = войти п / журнал ( 1 - р ) - 1 журнал ( 1 - р ) - 1log1−p(1/n)1−pp=1/2nO(nlog1−p(1/n))log1−p(1/n)=logn/log(1−p)−1 = - log ( 1 - p ) = p ± O( с 2 )log(1−p)−1=−log(1−p)=p±O(p2)ppO(nlogn/p)O(nlogn/p)
Вот более точный расчет. Рассмотрим уровень . Предположим, мы не останавливаем процесс при достижении небольшого интервала. Мы можем создать случайную вершину, сделав шагов, в каждом из которых мы идем налево (скажем) с вероятностью и направо (скажем) с вероятностью . Каждый раз, когда мы делаем левый шаг, лог длины интервала уменьшается на , а каждый раз, когда мы делаем правый шаг, уменьшается на . Вершина находится в самом дереве журнала длина снизилась не более чем на . Общий вес интервалов на уровнеttttpp1−p1−p−logp−logp−log(1−p)−log(1−p)lognlognttдерева как раз и есть вероятность того, что вершина, сгенерированная в соответствии с этим процессом, соответствует уменьшению не более . То есть, если является распределение , которое равно с вероятностью и с вероятностью и являются независимыми, то общий вес уровня равен . Для суперконстантного случайная величина примерно нормально распределена со средним и дисперсией, линейной поlog n D - log p p - log ( 1 - p ) 1 - p X 1 , … , X t ∼ D t Pr [ X 1 + ⋯ + X t ≤ log n ] t X 1 + ⋯ + X t [ - p log p - ( 1 - p ) loglognD−logpp−log(1−p)1−pX1,…,Xt∼DtPr[X1+⋯+Xt≤logn]tX1+⋯+Xt(1−p)]t[−plogp−(1−p)log(1−p)]ttt, поэтому для удовлетворяющего , скажем, вероятность будет очень близка к , тогда как для удовлетворяя , скажем, оно будет очень близко к нулю. Определив (известный как двоичная энтропийная функция), мы заключаем, что время выполнения равно (равномерный по , так как ). В качестве мы имеем , поэтому наша более ранняя оценка не была точной.tt[−plogp−(1−p)log(1−p)]t≤(logn)/2[−plogp−(1−p)log(1−p)]t≤(logn)/211tt[−plogp−(1−p)log(1−p)]t≥2logn[−plogp−(1−p)log(1−p)]t≥2lognh(p)=−plogp−(1−p)log(1−p)h(p)=−plogp−(1−p)log(1−p)Θ(nlogn/h(p))Θ(nlogn/h(p))ppn→∞n→∞p→0p→0h(p)≈−plogph(p)≈−plogp
Другой способ взглянуть на тот же анализ состоит в том, чтобы иметь бесконечную последовательность независимых случайных величин как и раньше, и определить время остановки как первый момент времени такой что . Время работы пропорционально . Элементарная теорема об обновлении тогда утверждает, что , подразумевая, что общий размер интервалов равен . Точнее, для каждой константы общий размер интервалов равен , гдеX1,X2,…X1,X2,…TTttX1+⋯+Xt≥lognX1+⋯+Xt≥lognnE[T]nE[T]limn→∞E[T]/logn=1/E[D]=1/h(p)limn→∞E[T]/logn=1/E[D]=1/h(p)(1+o(1))nlogn/h(p)(1+o(1))nlogn/h(p)pp(1+αp(n))nlogn/h(p)(1+αp(n))nlogn/h(p)αp(n)=o(n)αp(n)=o(n) . Сходимость в элементарной теореме восстановления является экспоненциальной по параметру времени - в нашем случае - поэтому она должна быть полиномиальной от , то есть . Сходимость также, вероятно, равномерна для для любого .lognlognnnαp(n)=O(n−Cp)αp(n)=O(n−Cp)p∈(δ,1−δ)p∈(δ,1−δ)δ>0δ>0
Подводя итог, общая длина интервалов в дереве рекурсии, которая пропорциональна времени выполнения, имеет следующую форму для каждого : где и берутся в одну базу, а является функцией, зависящей от и стремящейся к с помощью .ppT(n,p)=(1+o(1))nlognh(p),
T(n,p)=(1+o(1))nlognh(p),
lognlognh(p)=−plogp−(1−p)log(1−p)h(p)=−plogp−(1−p)log(1−p)o(1)o(1)pp00nn
Более того, вероятно, верно, что для любого и любого верно, что общая длина интервалов имеет вид где и скрытая большая константа O зависят только от . В частности, должно быть так, что для всех констант ,
и сходимость полиномиально быстра.δ>0δ>0p∈(δ,1−δ)p∈(δ,1−δ)T(n,p)=(1+O(n−Cδ))nlognh(p),
T(n,p)=(1+O(n−Cδ))nlognh(p),
Cδ>0Cδ>0δδp1,p2p1,p2limn→∞T(n,p1)T(n,p2)=h(p2)h(p1),limn→∞T(n,p1)T(n,p2)=h(p2)h(p1),