Nasıl bir rasgele inşa beklenen yüksekliği kanıtlamak do ikili arama ağacına sahip düğümler olan ? CLRS Algoritmalara Giriş'te (bölüm 12.4) bir kanıt var , ama anlamıyorum.
Nasıl bir rasgele inşa beklenen yüksekliği kanıtlamak do ikili arama ağacına sahip düğümler olan ? CLRS Algoritmalara Giriş'te (bölüm 12.4) bir kanıt var , ama anlamıyorum.
Yanıtlar:
Önce bunu sezgisel olarak düşünelim. En iyi senaryoda, ağaç mükemmel bir şekilde dengelenir; en kötü senaryoda, ağaç tamamen dengesizdir:
Kök düğümü başlayarak , bu sol ağacın izleyen her derinlikte iki kat fazla düğümü vardır, böylece ağaç düğüm ve bir yükseklik (bu durumda 3). Biraz matematikle , yani yükseklik. Tamamen dengesiz ağaç için ağacın yüksekliği basitçe . Yani sınırlarımız var., n = Σ h i = 0 2 i = 2 saat + 1 - 1 saat n ≤ 2 saat + 1 - 1 → h ≤ ⌈ log 2 ( n + 1 ) - 1 ⌉ ≤ ⌊ l O g 2 N ⌋ O ( log n ) n - 1 → O ( n )
sıralı bir listesinden dengeli bir ağaç orta düğümü kök düğümümüz olarak seçerdik. Bunun yerine rastgele bir ağaç inşa halinde, herhangi düğümler eşit olasılıkla alınmayı ve bizim ağacın yüksekliği: İkili bir arama ağacında, sol alt ağacın yalnızca kök düğümden daha az anahtar içermesi gerektiğini biliyoruz. Bu nedenle, öğesini rastgele seçersek, sol alt ağacın öğeleri ve sağ alt ağacın öğeleri vardır, bu yüzden daha kompakt:, n h e ı g h t t r e e = 1 + maks ( s e i g h t l e f t s u b t r e e , h , e i g h t r i g h t s u b t r e ei t h i - 1 n - i h n = 1 + maks ( h i - 1 , h n - i ) E [ h n ] = 1
Fark ettiğinizden eminim, CLRS'in bunu nasıl kanıtladığından biraz saptım, çünkü CLRS, başlatılmamışlar için rahatsız edici olan nispeten yaygın iki kanıt tekniği kullanıyor. Birincisi, bulmak istediğimiz şeyin (veya bu durumda yükseklik) üslerini (veya logaritmalarını) kullanmaktır, bu da matematiğin daha temiz çalışmasını sağlar; ikincisi (burada görmezden geleceğim) gösterge işlevlerini kullanmaktır. CLRS üstel yüksekliği olarak tanımlar , dolayısıyla benzer yineleme . Y n = 2 × maks ( Y i - 1 , Y n - i )
Bağımsızlık varsayalım (bir elemanın her bir çiziminin (mevcut elemanların dışında) bir alt ağacın kökü olduğu varsayılırsa, önceki tüm çekimlerden bağımsız olarak) şu ilişki var: iki adımda attım: (1) dışında bir sabit olduğu ve özelliklerinden biri ve (2) aynı zamanda sabit olduğu ve beklenen değerlerin özelliklerinden biri . Şimdi yerini alacağız1
Bu noktada CLRS, indüksiyon kanıtı olan ... matematiksel deneyim repertuarından çıkarır. kanıtlamak için kullanıcıya bıraktıkları kimliğini içerir . ilgili önemli olan, en büyük teriminin ve üstel yükseklik kullandığımızı . Belki birisi bu özel binomun neden seçildiğini yorumlayacaktır. Ancak genel fikir nüksümüzün yukarısından bazı sabit için ifadesi ile bağlanmaktır .
Tek bir astar ile sonuçlandırmak için:
n^k
) ise, sonuç aynıdır çünkü k
big-O notasyonuna bırakılır (3 yolu düşürülür). Ancak üstel ( e^n
) bir şeyle değiştirsek, hala doğru bir üst sınır olurdu , sadece sıkı bir tane değil . Beklenen yüksekliğin en az logaritmik olduğunu biliyoruz, bu yüzden en çok logaritmik olduğunu belirlemek onu sıkılaştırıyor.