Kırmızı-Siyah ağaçlarının hepsi dengeli değil mi?


30

Sezgisel olarak "dengeli ağaçlar", her düğümdeki sol ve sağ alt ağaçların "yaklaşık aynı" düğüm sayısına sahip olması gereken ağaçlar olmalıdır.

Tabii ki, kırmızı-siyah ağaçlardan * bahsedince (sondaki tanımlara bakınız) dengelendikten sonra, aslında yükseklik dengeli olduklarını ve bu anlamda dengeli olduklarını kastediyoruz .

Yukarıdaki sezgiyi resmileştirmeye çalıştığımızı varsayalım:

Tanım: İkili Ağaç, dengelenmiş, , eğer her düğüm için eşitsizlik varsaμ0≤μ≤12N

μ≤|NL|+1|N|+1≤1−μ

tutar ve her μ′>μ için, yukarıdaki ifadenin başarısız olduğu bazı düğümler vardır. | N_L | N ve | N | '|NL| nin sol alt ağacındaki düğümlerin sayısıdır. ağacın altındaki ve kök olarak N ile düğümlenen düğüm sayısıdır .N|N|N

İnanıyorum ki, bu konuyla ilgili bazı literatürlerde ağırlık dengeli ağaçlar denir .

Biri n düğümleri olan bir ikili ağacın μ dengelenmiş (bir sabit μ>0 ) ise, o zaman ağacın yüksekliğinin O(log⁡n) , böylece güzel aramayı korur. özellikleri.

Yani soru şudur:

Bazı yeteri kadar büyük her kırmızı-siyah ağacın \ mu- dengesiz olması için var mı?μμ>0μ


Kullandığımız Kırmızı-Siyah ağaçlarının tanımı (Cormen ve arkadaşlarının Algoritmalara Girişinden):

Her düğümün kırmızı ya da siyah renkli olduğu ikili arama ağacı ve

  • Kök siyah
  • Tüm NULL düğümleri siyah
  • Bir düğüm kırmızıysa, her ikisi de siyahtır.
  • Her düğüm için, o düğümden soyundan NULL düğümlere giden tüm yollar aynı sayıda siyah düğüme sahiptir.

Not: Yukarıda μ balanced tanımındaki NULL düğümleri saymıyoruz . (Buna rağmen yapmamızın bir önemi olmadığını sanıyorum).


@Aryabhata: Düzenlemenizdeki benzersizliğin ( ) nesi var ? Ben gerçeği ile iyiyim -balanced ima -balanced. Yüksekliği olarak ispatlamak için tam bulmanız gerektiğini sanmıyorum . Bir şey mi eksik? μ′>μ1314 O ( log n )μO(log⁡n)
— Jmad

Ayrıca, her için bir ağaç içeren bir karşı örnek zincir sağlamak için negatif bir ifadeye ihtiyacınız var . Düğüm boyutunda küçülmeyen herhangi bir sonsuz zincir yeterlidir, değil mi? n∈N
— Raphael

@jmad: Without düzenlemek, her ağacın trivially olduğu 0 -balanced ve biz soruya önemsiz bir cevabım yok bu yüzden. Bundan kaçınmak istedim. μ′0
— Aryabhata

@Raphael: Anlamıyorum. ağacının düğüm büyüklüğü n'dir . Bunu biz almak ne ağaç fark etmez diyorsun R B n ve o μ n → 0 ? Bana açık görünmüyor ve soru bununla ilgili! nthnRBnμn→0
— Aryabhata

1
Bu sorunun önceki bir sürümü, her adımda doğrusal miktarda çalışma yapan kırmızı-siyah bir ağaçta özyinelemeli bir algoritmanın çalışma zamanının mutlaka olmadığını iddia etti . Bu iddia yanlıştı; yükseklik dengesi, bir n düğümü kırmızı-siyah ağacının derinliğinin O ( log n ) olduğunu gösterir . Bu nedenle, ağacın her düzeyinde O ( n ) çalışması yaparsanız , toplam çalışma O ( n log n ) olur . O(nlog⁡n)nO(log⁡n)O(n)O(nlog⁡n)
— JeffE

Yanıtlar:


31

İddia : Kırmızı-siyah ağaçlar un- keyfi olabilir μ -balanced.

Kanıt Fikir : Birçok mümkün olduğunca düğümler ve belirli bir sayıda için mümkün olduğunca az düğümler olarak birlikte solda olarak doğru alt ağacı doldurun k her kök-yaprak yolda siyah düğümlerin.

Kanıt : Bir dizi tanımlayın Tk böylece kırmızı-siyah ağaçların Tk sahiptir k herhangi (sanal), ağacın köküne kadar her yolda siyah düğümleri. Tk=B(Lk,Rk) ile tanımlayın

  • Rk tam boy ağacı2k−1 diğerleri siyah, kırmızı renkli birinci, üçüncü, ... düzeyiyle ve
  • Lk yüksekliği tam ağacınık−1 siyah renkli tüm düğümlerle.

Açıkçası, tüm Tk kırmızı-siyah ağaçlardır.

Örneğin, bunlar T1 , T2 ve T3 , sırasıyla:


T_1
[ kaynak ]


T_2
[ kaynak ]


T_3
[ kaynak ]


Şimdi sağ tarafın görsel izlenimini sola göre çok büyük olduğunu doğrulayalım . Sanal yaprakları saymayacağım; sonucu etkilemezler.

Tk sol alt ağacı tamamlanmıştır ve daima k−1 yüksekliğine sahiptir ve bu nedenle 2k−1 düğüm içerir. Diğer yandan sağ alt ağaç tam ve 2k−1 yüksekliğe sahip ve dolayısıyla 22k−1 düğüm içeriyor . Şimdi kök için μ -balance değeri

2k2k+22k=11+2k→k→∞0

istendiği gibi μ>0 olmadığını kanıtlar .


14

Hayır . Aşağıdaki özel yapıya sahip kırmızı-siyah bir ağaç düşünün.

  • Sol alt ağaç derinliği ile tam bir ikili ağaçtır her düğüm siyah olduğu.d
  • Sağ alt ağaç , tek derinlikteki her düğümün kırmızı olduğu ve çift derinlikteki her düğümün siyah olduğu, derinliği olan tam bir ikili ağaçtır .2d

Bunun geçerli bir kırmızı-siyah ağaç olduğunu kontrol etmek kolaydır. Fakat sağ alt ağaçtaki düğüm sayısı ( ), kabaca sol alt ağaçtaki düğüm sayısının karesidir ( 2 d + 1 - 1 ).22d+1−12d+1−1


+1: Teşekkürler! Ancak düğüm sayısı . Belki 'ped' bunlar yeterince bir ağacını belirli bir boyut almaya Can n ? (Yapılması gereken gibi görünüyor). 22d+1+2d+1−1n
— Aryabhata

1
Sınırsız sayıda için zaten bir karşı örnek var , öyleyse neden rahatsız ettin ? Ancak, isterseniz sol alt gruba daha fazla kırmızı düğüm ekleyebilir veya sağ alt ağaçtan biraz kırmızı düğüm alabilir. n
— JeffE,

@JeffE: Temel olarak karşı örnek zincir, 'seyrek' bir altküme yerine 'yoğun' bir altküme olacaktır. Belki de sorunun formülasyonunu değiştiririm.
— Aryabhata
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.