Bunun gibi garip bir tekrarlama ile karşılaştığınız zamanlar olabilir:
Benim gibiyseniz, Master Teoremini kullanamayacağınızı fark edersiniz ve sonra düşünebilirsiniz, " hmmm ... belki bir yineleme ağacı analizi işe yarayabilir. " Öyleyse ağacın iğrenç bir şekilde hızlı büyümeye başladığını fark edersiniz. İnternette biraz arama yaptıktan sonra Akra-Bazzi yönteminin işe yarayacağını göreceksiniz! Öyleyse gerçekten araştırmaya başlıyorsunuz ve tüm matematiği gerçekten yapmak istemediğinizi anlıyorsunuz. Bu noktaya kadar benim gibi olsaydın, daha kolay bir yol olduğunu bilmek heyecanlı olacaksın.T(n)={c2T(n5)+4T(n7)+cnn<7n≥7
Düzensiz Bölünmüş Teorem Bölüm 1
Let ve pozitif sabitler olmak.ck
Sonra olacak şekilde pozitif sabitler olsun .{a1,a2,…,ak}∑k1ai<1
Ayrıca, formun yinelenmesini sağlamalıyız (yukarıdaki örneğindeki gibi):
T(n)T(n)≤c≤cn+T(a1n)+T(a2n)+…T(akn)0<n<max{a−11,a−12,…,a−1k}n≥max{a−11,a−12,…,a−1k}
İddia
Sonra olduğunu iddia ediyorum, burada bir sabittir (örneğin asimptotik olarak doğrusal) ve:T(n)≤bnb
b=c1−(∑k1ai)
İndüksiyonla Kanıt
Temel :n<max{a−11,a−12,…,a−1k}⟹T(n)≤c<b<bn
İndüksiyon : Herhangi için de geçerlidir varsayalım , biz o zaman varn′<n
T(n)≤cn+T(⌊a1n⌋)+T(⌊a2n⌋)+⋯+T(⌊akn⌋)≤cn+b⌊a1n⌋+b⌊a2n⌋+⋯+b⌊akn⌋≤cn+ba1n+ba2n+⋯+bakn=cn+bn∑1kai=cn−cn∑k1ai1−(∑k1ai)+cn∑k1ai1−(∑k1ai)=cn1−(∑k1ai)=bn□
Sonra alırsak .T(n)≤bn⟹T(n)=O(n)
Örnek
T(n)={c2T(n5)+4T(n7)+cnn<7n≥7
Önce özyinelemeli aramaların içindeki katsayıların bir taneden daha az olduğunu doğrularız:
1>∑1kai=15+15+17+17+17+17=25+47=3435
Daha sonra, temel durumun katsayıların daha az olduğunu doğruladık:
n<max{a−11,a−12,…,a−1k}=max{5,5,7,7,7,7}=7
Bu koşullar yerine , biliyoruz ki burada , aşağıdakilere eşittir:
Bu nedenle:
T(n)≤bnbb=c1−(∑k1ai)=c1−3435=35c
T(n)∧T(n)∴T(n)≤35cn≥cn=Θ(n)
Düzensiz Bölünme Teoremi Bölüm 2
Benzer şekilde olduğunda bir sınırlama kanıtlayabiliriz . Kanıt aynı formatın çoğunu izleyecektir:∑k1=1
ve , olacak şekilde pozitif sabitler olsun .ckk>1
Sonra olacak şekilde pozitif sabitler olsun .{a1,a2,…,ak}∑k1ai=1
Ayrıca, formun yinelenmesini sağlamalıyız (yukarıdaki örneğindeki gibi):
T(n)T(n)≤c≤cn+T(a1n)+T(a2n)+…T(akn)0<n<max{a−11,a−12,…,a−1k}n≥max{a−11,a−12,…,a−1k}
İddia
Sonra İstem (seçtiğimiz tabanı için yineleme ağacının dal sayısı olacaktır) burada ve sabitleri (asimptotik linearithmic olan ) öyle ki:T(n)≤αnlogkn+βnlogkkαβ
β=c
ve
α=c∑k1ailogka−1i
İndüksiyonla Kanıt
Temel :n<max{a−11,a−12,…,a−1k}⟹T(n)≤c=β<αnlogkn+βn
İndüksiyon : Herhangi için de geçerlidir varsayalım , biz o zaman varn′<n
T(n)≤cn+T(⌊a1n⌋)+T(⌊a2n⌋)+⋯+T(⌊akn⌋)≤cn+∑1k(αainlogkain+βain)=cn+αn∑1k(ailogkain)+βn∑1kai=cn+αn∑1k(ailogkna−1i)+βn=cn+αn∑1k(ai(logkn−logka−1i))+βn=cn+αn∑1kailogkn−αn∑1kailogka−1i+βn=αn∑1kailogkn+βn=αnlogkn+βn□
Sonra .T(n)≤αnlogkn+βn⟹T(n)=O(nlogn)
Örnek
Önceki örnekte sadece küçük bir bit kullandığımızı değiştirelim:
T(n)={c2T(n5)+4T(n7)+T(n35)+cnn<35n≥35
Önce özyinelemeli aramaların içindeki katsayıların birleştiğini doğrularız:
1=∑1kai=15+15+17+17+17+17+135=25+47+135=3535
Daha sonra, temel durumun katsayıların daha az olduğunu doğruladık:
n<max{a−11,a−12,…,a−1k}=max{5,5,7,7,7,7,35}=35
Bu şartlar sağlandığında, biliyoruz ki burada ve şuna eşit bir sabittir:
Bu nedenle:
T(n)≤αnlogn+βnβ=cαb=c∑k1ailogka−1i=c2log755+4log777+log73535≈1.048c
T(n)∴T(n)≤1.048cnlog7n+cn=O(nlogn)