Algoritmalar DERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
ALİ YALKIN İLKÖĞRETİM OKULU 2/A SINIFI ÇALIŞMA SAYFASI
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
Birlikler ve onluklar Aşağıdaki tabloyu inceleyerek, sonuçları üzerinde konuşalım.
Saydığımızda 15 tane sayı olduğunu görürüz.
AVL-Ağaçları (Trees).
B+-Ağaçları.
Silme Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazı iç düğümlerde bir anahtar.
Silme Sil 12 Tek dönüş.
İkili Ağaçlar İkili Arama Ağaçları
Algoritmalar En kısa yollar I En kısa yolların özellikleri
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember)
MATEMATİKSEL PROGRAMLAMA
Verimli Ders Çalışma Teknikleri.
Prof. Dr. Leyla Küçükahmet
FONKSİYONLAR ve GRAFİKLER
İkili Arama Ağaçları (Binary Search Trees) BST
Yarbaşı İlköğretim Yarbaşı İlköğretim.
Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama
Algoritmalar Ders 14 En Kısa Yollar II Bellman-Ford algoritması
1 2 BİR YOKMUŞ BİR YOKMUŞ BİR VARMIŞ 3 Kızı, hayatında çok sıkıntı yaşadığını ve bunlarla nasıl baş edeceğini bilemediğini söylemiş babasına. Bir baba.
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
1 ÖMER ASKERDEN EMLAK KREDİ İLKÖĞRETİM OKULU UZMAN MATEMATİK ÖĞRETMENİ AKSARAY ÜNİTE: HARFLİ İFADELER VE DENKLEMLER KONU:HARFLİ İFADELERİ ÇARPANLARA AYIRMA.
ORHAN EREN İLKOKULU 1-A.
Bölüm 3 – Yapısal Programlama
ARALARINDA ASAL SAYILAR
ZAMBAK 1 SORU BANKASI UĞUR CESUR 1 ZAMBAK 1 SORU BANKASI ÖZEL SORULARI Hazırlayan: UĞUR CESUR.
Gün Kitabın Adı ve Yazarı Okuduğu sayfa sayısı
SAYILAR VE YARIMLARI.
Algoritmalar DERS 4 Çabuk sıralama Böl ve fethet Bölüntüler
KONU KESİRLER BASİT KESİR GJFX BİLEŞİK KESİR.
Problem Çözme Ve Problem Çözme Stratejileri Ödevi Cihan GÖÇ
Matematik 2 Örüntü Alıştırmaları.
22 Eylül 2006 TBB BANKACILIK ALT ÇALIŞMA GRUBU Nurhan Aydoğdu
TÜRKİYE İSTATİSTİK KURUMU İzmir Bölge Müdürlüğü 1/25.
Formül Hazırlama ve Kullanma
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Operatörler ve Denetim Yapıları
Tam sayılarda bölme ve çarpma işlemi
TEST – 1.
HABTEKUS' HABTEKUS'08 3.
Akış Kontrol Mekanizmaları
Dotnetfx (Microsoft.net framework 2.0 kurulumu) Bilnex - Ticari ve Muhasebe Paket Programları1.
Ek-2 Örnekler.
İKİNCİ DERECEDEN FONKSİYONLAR ve GRAFİKLER
EŞİTSİZLİK GRAFİKLERİ
Diferansiyel Denklemler
DENEY TASARIMI VE ANALİZİ (DESIGN AND ANALYSIS OF EXPERIMENTS)
VERİ İŞLEME VERİ İŞLEME-4.
1 (2009 OCAK-ARALIK) TAHAKKUK ARTIŞ ORANLARI. 2 VERGİ GELİRLERİ TOPLAMIDA TAHAKKUK ARTIŞ ORANLARI ( OCAK-ARLIK/2009 )
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
İSMİN HALLERİ.
Toplama Yapalım Hikmet Sırma 1-A sınıfı.
RASYONEL SAYILARLA TOPLAMA ve ÇIKARMA İŞLEMLERİ
SAYILAR NUMBERS. SAYILAR 77 55 66 99 11 33 88.
DÖRTGENSEL BÖLGELERİN
1/22 GEOMETRİ (Dikdörtgen) Aşağıdaki şekillerden hangisi dikdörtgendir? AB C D.
1.HAFTA 26 Ağustos 2009 ÇARŞAMBA 2.HAFTA 01 EYLÜL 2009 SALI 3.HAFTA 09 EYLÜL 2009 ÇARŞAMBA 4.HAFTA 15 EYLÜL 2009 SALI 5.HAFTA 23 EYLÜL 2009 ÇARŞAMBA 6.HAFTA.
Partially Ordered Trees (POT)
PERSONaL QUALITIES (KİŞİSEL ÖZELLİKLER)
CEBİRSEL İFADELERİ ÇARPANLARINA AYIRMA
Yard. Doç. Dr. Mustafa Akkol
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
AVL(Adel’son-Vel’skiĭ and Landis) Ağacı AVL ağacı, iki alt ağacının yükseklikleri farkının en fazla 1 olabildiği dengeli ikili arama ağacıdır. AVL ağacında.
Kırmızı Siyah Ağaçlar.
Sunum transkripti:

Algoritmalar DERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Dengeli arama ağaçları Dengeli arama ağacı: n elemanlı bir değişken kümede işlem yaparken O(lg n) yüksekliğinin garanti edildiği bir arama ağacı veri yapısı. AVL ağaçları 2-3 ağaçları 2-3-4 ağaçları B-ağaçları Örnekler: Kırmızı-siyah ağaçlar October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağaçlar Bu veri yapısının her düğümünde bir-bitlik renk alanına ihtiyaç vardır. Kırmızı-siyah özellikler: Her düğüm ya kırmızı ya da siyahtır. Kök ve yapraklar (NIL’ler yani sıfır'lar) siyahtır. Eğer bir düğüm kırmızı ise, atası siyahtır. Herhangi bir x düğümünden ardıl yaprağa giden basit yollarda aynı sayıda siyah düğüm vardır = black-height(x) yani siyah-yükseklik(x). October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Bir kırmızı-siyah ağaç örneği 77 33 1188 NIL NIL h = 4 1100 2222 NIL 88 NIL NIL NIL NIL 1111 2266 NIL NIL October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Bir kırmızı-siyah ağaç örneği 77 33 1188 NIL NIL 1100 2222 NIL 88 NIL NIL NIL NIL 1111 2266 NIL NIL 1. Her düğüm ya kırmızı ya siyahtır. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Bir kırmızı-siyah ağaç örneği 77 33 1188 NIL NIL 1100 2222 NIL 88 NIL NIL NIL NIL 1111 2266 NIL NIL 2. Kök ve yapraklar (NIL’ler) siyahtır. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Bir kırmızı-siyah ağaç örneği 77 33 1188 NIL NIL 1100 2222 NIL 88 NIL NIL NIL NIL 1111 2266 NIL NIL 3. Eğer bir düğüm kırmızı ise, atası siyahtır. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Bir kırmızı-siyah ağaç örneği 77 bh = 2 33 1188 bh = 2 NIL NIL bh = 1 1100 2222 NIL bh = 1 bh = 0 NIL 88 1111 2266 NIL NIL NIL NIL NIL 4. Herhangi bir x düğümünden ardıl yaprağa giden basit yollarda aynı sayıda siyah düğüm vardır = siyah-yükseklik(x). October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt. (Kitap tümevarımı kullanıyor. Dikkatle okuyun.) SEZGİ YÖNTEMİ: Kırmızı düğümleri siyah atalarına yaklaştırın. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt. (Kitap tümevarımı kullanıyor. Dikkatle okuyun.) SEZGİ YÖNTEMİ: Kırmızı düğümleri siyah atalarına yaklaştırın. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt. (Kitap tümevarımı kullanıyor. Dikkatle okuyun.) SEZGİ YÖNTEMİ: Kırmızı düğümleri siyah atalarına yaklaştırın. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt. (Kitap tümevarımı kullanıyor. Dikkatle okuyun.) SEZGİ YÖNTEMİ: Kırmızı düğümleri siyah atalarıyla birleştirin. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt. (Kitap tümevarımı kullanıyor. Dikkatle okuyun.) SEZGİ YÖNTEMİ: Kırmızı düğümleri siyah atalarıyla bütünleştirin. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağacın yüksekliği Teorem. n anahtarlı bir kırmızı-siyah ağacın yüksekliği h ≤ 2 lg(n + 1) dir. Kanıt. (Kitap tümevarımı kullanıyor. Dikkatle okuyun.) SEZGİ YÖNTEMİ: Kırmızı düğümleri siyah atalarıyla bütünleştirin. h′ Bu işlem sonucunda oluşan ağacın her düğümünün 2, 3, ya da 4 ardılı olur. 2-3-4 ağacının yapraklarının derinliği h′ tekbiçimlidir. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kanıtlama (devamı) Elimizde h′ ≥ h/2 olur, çünkü her yoldaki yaprakların en çok yarısı kırmızıdır. Her ağaçtaki yaprakların sayısı: n + 1 ⇒ n + 1 ≥ 2h' ⇒ lg(n + 1) ≥ h' ≥ h/2 ⇒ h ≤ 2 lg(n + 1). h h′ October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Sorgulama işlemleri Corollary (Doğal sonuç). n düğümlü bir kırmızı-siyah ağaçta SEARCH (ARAMA), MIN, MAX, SUCCESSOR (ARDIL) ve PREDECESSOR (ATA) sorgulamalarının hepsi O(lg n) süresinde çalışırlar. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Değiştirme işlemleri INSERT (ARAYA YERLEŞTİRME) ve DELETE (SİLME) işlemleri kırmızı-siyah ağaçta değişime neden olur: işlemin kendi yapısı, renk değişimleri, ağacın bağlantılarının “rotations/rotasyonlar” yordamıyla yeniden yapılanması. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Rotasyonlar / Dönmeler SAĞA-DÖNME(B) BB AA AA SOLA-DÖNME(A) BB γ α α β β γ Rotasyonlar anahtarların sıralı düzenini korurlar: a ∈ α, b ∈ β, c ∈ γ ⇒ a ≤ A ≤ b ≤ B ≤ c. Bir rotasyon O(1) sürede yapılabilir. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağaçta araya yerleştirme FİKİR: Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzelene kadar taşıyın. 77 Örnek: 33 1188 1100 2222 88 1111 2266 October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağaçta araya yerleştirme FİKİR: Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzelene kadar taşıyın. 77 Örnek: Ar.Yer. x =15. 33 1188 Yeniden renklendirin ve ihlali yukarıya taşıyın. 1100 2222 88 1111 1155 2266 October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağaçta araya yerleştirme FİKİR: Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzelene kadar taşıyın. 77 Örnek: Ar.Yer. x =15. 33 1188 Yeniden renklendirin ve ihlali yukarıya taşıyın. SAĞA-DÖNME(18). 1100 2222 88 1111 1155 2266 October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağaçta araya yerleştirme FİKİR: Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzelene kadar götürün. 77 Örnek: Ar.Yer. x =15. 33 10 10 1188 Yeniden renklendirin ve ihlali yukarıya taşıyın. SAĞA-DÖNME(18). 8 2222 2266 11 1155 SOLA-DÖNME(7) ve renklendirme. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Kırmızı-siyah ağaçta araya yerleştirme FİKİR: Ağaçta x' i araya yerleştirin. x' i kırmızı yapın. Sadece kırmızı-siyah özellik 3 ihlal edilebilir. İhlali ağaç boyunca yukarı doğru, rotasyonlar ve yeniden renklendirmeyle düzeltilene kadar götürün . 1100 Örnek: Ar.Yer. x =15. Yeniden renklendir, ihlali yukarıya taşı. SAĞA-DÖNME(18). 77 1188 33 88 1111 1155 2222 2266 • SOLA-DÖNME(7) ve yeniden renklendirme. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Pseudocode-Sözde kod (İngilizce) RB-INSERT(T, x) TREE-INSERT(T, x) color[x] ← RED ⊳ only RB property 3 can be violated while x ≠ root[T] and color[p[x]] = RED do if p[x] = left[p[p[x]] then y ← right[p[p[x]] if color[y] = RED then 〈Case 1〉 else if x = right[p[x]] then 〈Case 2〉 〈Case 3〉 ⊳ y = aunt/uncle of x ⊳ Case 2 falls into Case 3 else 〈“then” clause with “left” and “right” swapped〉 color[root[T]] ← BLACK October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Grafik simgelem siyah kökü olan bir altağacı tanımlasın. ’ın tümünün siyah-yükseklikleri aynıdır. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Durum 1 Yen. renklendir yeni x y x DD CC CC y AA x DD AA BB BB (veya, A'nın ardılları yer değiştirir.) C ’nin siyahını A ve D 'ye doğru itin ve özyineleme yapın, çünkü C’nin atası kırmızı olabilir. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Durum 2 SOLA-DÖNME (A) y y x x Durum 3'e dönüştürün. CC CC AA BB BB AA October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Durum 3 SAĞA-DÖNME(C) y x CC BB BB AA CC x AA Bitti! RB ( Kırmızı- siyah) 3. özelliğin ihlali artık mümkün değil. October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson

Çözümleme Ağaçta yukarıya giderken Durum 1' i uygulayın; bu durumda sadece düğümler yeniden renklendirilir. Eğer Durum 2 veya 3 ile karşılaşırsanız, 1 ya da 2 rotasyon yapın ve işlemi sonlandırın. Yürütüm süresi: O(lg n) ve O(1) rotasyon. RB-DELETE ( KIRMIZI_SİYAH SİLME) — asimptotik koşma süresi ve rotasyonların sayısı RB-INSERT (KIRMIZI-SİYAH ARAYA YERLEŞTİRME) ile aynıdır. (Kitaba bakınız.) October 19, 2005 Copyright © 2001-5 by Erik D. Demaine and Charles E. Leiserson