Ana teoremde neden düzenlilik koşulu var?


15

Cormen ve ark. Tarafından Algoritmalara Giriş okuyorum . ve sayfa 73'ten başlayarak Master teoreminin ifadesini okuyorum . 3. durumda, teoremi kullanmak için yerine getirilmesi gereken bir düzenlilik koşulu da vardır:

... 3. Eğer

f(n)=Ω(nlogba+ε)

Bazı sabit için ve eğerε>0

     [düzenlilik şartı budur]af(n/b)cf(n)

bazı sabit ve yeterince büyük n için , o zaman ..c<1n

Birisi bana düzenlilik koşulunun neden gerekli olduğunu söyleyebilir mi? Koşul karşılanmazsa teorem nasıl başarısız olur?


davanın ne olduğunu ve düzenleyici koşulun ne olduğunu yazabilir misiniz?

3
Sizin için kesin bir cevabım yok, ancak düzenlilik koşulu yoksa, o zaman alt problemler daha küçük olduklarından daha fazla zaman alırlar, böylece sonsuz karmaşıklık elde edersiniz.

Teoremin sonuçlandırılması için düzenlilik koşulunun gerekli olduğundan emin değilim, ancak kullanılan kanıt için gerekli olduğunu düşünüyorum. Düzenlilik koşulu ile, oldukça basit bir kanıtınız var, olmadan, en azından kıllı olurdu.

Yanıtlar:


10

Titiz bir kanıt değil, ama "başımın tepesinden" açıklaması.

Nüks düşünün bir ağaç olarak. Üçüncü durum, kök düğümün çalışma zamanına asimptotik olarak baskın olduğu senaryoyu kapsar, yani işin çoğu, yineleme ağacının üstündeki ölçülü düğümde yapılır. O zaman çalışma süresi Θ ( f ( n ) ) olur .birT(n/b)+f(n)Θ(f(n))

Kökün gerçekten daha fazla iş yaptığından emin olmak için

.birf(n/b)cf(n)

Bu, 'nin ( kökte yapılan iş miktarının) en azından daha düşük seviyelerde yapılan işin toplamı kadar büyük olması gerektiğini söylüyor. (Nüks, girişin n / b'sinde bir kez çağrılır .)f(n)birn/b

Örneğin tekrarlama için kök aşağıdaki düzeyi üzerindeki çalışma büyük bir dördüncü ve sadece iki kez yapılır ( n / 4 + n / 4 ) karşı n kök baskındır yüzden .T(n)=2T(n/4)+n(n/4+n/4)n

Peki ya fonksiyon düzenlilik koşulunu yerine getirmezse? Örneğin yerine n ? Daha sonra alt seviyelerde yapılan iş, kökte yapılan işten daha büyük olabilir, böylece kökün hakim olduğundan emin olmazsınız.marul(n)n


3
Matematik metniniz için daha güzel biçimlendirme kullandım. "Düzenlendi" bağlantısını tıklayabilir ve ne yaptığımı görebilirsiniz.
Juho

7

Let ve b = 2 , yani bu , T ( 2 , n ) = N Σ k = 0 f ( 2 k ) . Durum 3'ün uygulanması için f ( n ) = Ω ( n ϵ ) (bazı ϵ > 0 için ) ve düzenlilik koşulu, f ( n / 2 ) ( 1 - δ ) fbir=1b=2

T(2n)=Σk=0nf(2k).
f(n)=Ω(nε)ε>0 (bazıları δ > 0 için > 2 2 günlük 2 N -f(n/2)(1-δ)f(n)δ>0). Düzenlilik koşulunu kanıttan alırsınız, yani kanıt tarafından oluşturulan bir kavramdır. Düzenlilik koşulu gerekli olmasa da (Wikipedia'da verilen örneği düşünün, ), aşağıdaki örnekte gösterildiği gibi tamamen bırakamazsınız. F ( 2 n ) = 2 2 log 2 n düşünün f(n)=n(2-maruln) Let, n=2m+1-1 k +k=Θ(2 2 m +
f(2n)=22günlük2n>22günlük2n-1=2n/2.
n=2m+1-1. Sonra Bu yüzden T ( 2 n )
T(2n)=Σk=0mΣt=2k2k+1-122k=Σk=0m22k+k=Θ(22m+m),f(2n)=22m.
.T(2n)=Θ(f(2n))

Daha genel bir teorem var, düzenlilik koşulunun yerini sonuca çıkan açık bir miktarla değiştiren Akra-Bazzi.


Bu eski cevaba devam ettiğim için üzgünüm. F işlevinizin neden düzenlilik koşulunu ihlal ettiğini açıklayabilir misiniz?
Maiaux

f(n/2)=f(n)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.