Chapter 6 Transform-and-Conquer

Slides:



Advertisements
Benzer bir sunumlar
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.
Advertisements

Dinamik sistemin kararlılığını incelemenin kolay bir yolu var mı? niye böyle bir soru sorduk? Teorem 1: (ayrık zaman sisteminin sabit noktasının kararlılığı.

Determinant Bir kare matrisin tersinir olup olmadığına dair bilgi veriyor n- boyutlu uzayda matrisin satırlarından oluşmuş bir paralel kenarın hacmine.
Girişimcilik Öğr.Gör.Seda AKIN GÜRDAL. Ders Akışı İşletmenin Amaçları İşletme Çevre İlişkisi.
A1 sistemi A2 sistemi Hangisi daha hızlı sıfıra yaklaşıyor ? Hatırlatma.
CSS ile Konumlandırma Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu.
Graf Teorisi Pregel Nehri
Kararlılık Sıfır giriş kararlılığı Tanım: (Denge noktası) sisteminin sabit çözümleri, sistemin denge noktalarıdır. nasıl belirlenir? Cebrik denkleminin.
Hopfield Ağı Ayrık zamanSürekli zaman Denge noktasının kararlılığı Lyapunov Anlamında kararlılık Lineer olmayan sistemin kararlılığı Tam Kararlılık Dinamik.
 LÖSEV, 24 Eylül 2000 tarihinde, lösemili çocuklara özel, modern tıbbın tüm olanaklarını bünyesinde barındıran 2000'li yılların.
DEPREME DAYANIKLI BETONARME YAPI TASARIMI
FATİH MERCAN GÖKSU İ.Ö.O 5/B SINIFI ÖĞRENCİSİ SİLİFKE/MERSİN
KİRİŞ YÜKLERİ HESABI.
OLASILIK TEOREMLERİ Permütasyon
TAMLAMALAR.
MATEMATİK PROJE ÖDEVİ Adı-Soyadı:Nihat ELÇİ Sınıfı-Numarası:7/C 1057
ÇARPMA İŞLEMİ X x x x xx x.
Beşinci Bölüm EKONOMİK ORGANİZASYON
222. Kaç tabak var? …… Her tabakta kaç şeftali var? …… Toplam şeftali sayısı kaçtır? ……
TEMELLER.
f:(a,b)==>R fonksiyonu i)  x 1,x 2  (a,b) ve x 1  x 2 içi f(x 1 )  f(x 2 ) ise f fonksiyonu (a,b) aralığında artandır. y a x 1 ==>x 2 b.
Çoklu Doğrusal Bağlantı X3X3 X2X2 r X 2 X 3 = 1 Tam Çoklu Doğrusal Bağlantı.
TESVİYE EĞRİLERİNİN ÇİZİMİ
BİLGİSAYAR PROGRAMLAMA DERSİ
İÇİNDEKİLER NEGATİF ÜS ÜSSÜ SAYILARIN ÖZELLİKLERİ
Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu
MATEMATİK ÖĞRENEBİLİR
TAM SAYILAR.
Basit ve Kısmi Korelasyon Dr. Emine Cabı
ÖZDEŞLİKLER- ÇARPANLARA AYIRMA
DOĞAL SAYILAR TAM SAYILAR
- Sağlama - Kısa yoldan Çarpmalar
. . AÇILAR ..
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
TANIMLAYICI İSTATİSTİKLER
-MOMENT -KÜTLE VE AĞIRLIK MERKEZİ
YÖNETİM- ÖRGÜT TEORİLERİ MODERN EKOL- SİSTEM TEORİSİ
MESLEK NEDİR? Meslek , ‘bir kişinin hayatını kazanmak geçimini sağlamak için yaptığı iş’ olarak tanımlanmaktadır. Belli bir eğitimi gerektiren bilgi,
Fluvyal Jeomorfoloji Yrd. Doç. Dr. Levent Uncu.
5.Konu: Kimyasal Tepkimeler.
DOSYA BÜYÜKLÜKLERİ İkili Sistem Dosya Büyüklükleri ve Hesaplamalar
MATEMATİK ORAN ORANTI.
Kırınım, Girişim ve Müzik
Ders 8 Değerlendirme ve kavram öğretimi
PARANIN ZAMAN DEĞERİ.
MİMARLIK BÖLÜMÜ STATİK DERSİ KUVVET SİSTEMİ BİLEŞKELERİ
Bilgisayar Mühendisliğine Giriş
B+-Ağaçları.
SAYI ÖRÜNTÜLERİ ANAHTAR KAVRAMLAR MODELLEME ÖRÜNTÜ SAYI ÖRÜNTÜSÜ ÜS
Doğrusal Mantık Yapısı İle Problem Çözme
KALITIM VE ÇEVRE I. Kalıtım II. Çevre
Ayrıştırma Ağaçları Tanımlar Soldan ve Sağdan Türemeler ile İlişkisi
Bilgisayar Mühendisliğine Giriş
Sonlu Özdevinirlere Giriş
Düzenli Dillerin Kapalılık Özellikleri
CİHANGİR ÇAĞLAR ZAMİRLER
5 Esneklik BÖLÜM İÇERİĞİ Talebin Fiyat Esnekliği
Derse giriş için tıklayın...
İleri Algoritma Analizi
İŞ SAĞLIĞI ve GÜVENLİĞİ EĞİTİMİ
OLASILIK Uygulamada karşılaşılan olayların birçoğu kesin olmayan diğer bir ifadeyle belirsizlik içeren bir yapıya sahiptir. Olasılık kavramı kesin olmayan.
Ders 9: İkili arama ağaçları
Kırmızı Siyah Ağaçlar.
RASTGELE DEĞİŞKENLER Herhangi bir özellik bakımından birimlerin almış oldukları farklı değerlere değişken denir. Rastgele değişken ise tanım aralığında.
Chapter 4 Divide-and-Conquer
EŞ YÜKSELTİ (TESVİYE) EĞRİLERİNİN
KİMYA DERSİNİ SEVMENİN YOLU
Bilimsel bir Bildiri veya Makale Nasıl Yazılır ve Yayımlanır?
Sunum transkripti:

Chapter 6 Transform-and-Conquer Copyright © 2007 Pearson Addison-Wesley. All rights reserved.

İkili Arama Ağaçları (BST) İkili arama ağaçları aşağıdaki özellikli ağaçlardır: K <K >K Örnek: 5, 3, 1, 10, 12, 7, 9

Dengeli arama ağaçları 2 yol var: yeni eleman eklendiğinde “çok dengesizlik” oluşursa denge ayarı yap AVL ağaçlar kırmızı siyah ağaçlar arama ağacında her düğüm (node) için birden fazla anahtara izin ver 2-3 ağaçlar 2-3-4 ağaçlar B-ağaçlar

AVL ağaçlar

Dengeli ikili arama ağaçları En kötü durumda bile yüksekliği O(log n) olan ağaçlara dengeli ağaçlar denir En iyi örneklerinden biri AVL (Adelson-Velsky ve Landis) ağaçlarıdır

AVL Ağaçları Tanım İkili ağaçtır. T boş olmayan ikili bir ağaç ve TL ve TR bu ağacın sol ve sağ altağaçları olsun. Aşağıdaki koşullar sağlanırsa T ağacına AVL ağacı denir: TL ve TR ikisi de AVL ağaçlarıdır ve |hL – hR|  1 dir, burada hL ve hR TL ve TR ağaçlarının yükseklikleridir

AVL arama ağaçları AVL arama ağaçları ikili arama ağaçlarıdır ve aynı zamanda AVL ağaçlarıdır

Denge faktörü (df) Her ekleme ve silme işlemi sonrasında her düğüm için denge faktörü (df) hesaplanır Bir x düğümü için df(x) aşağıdaki gibi tanımlanır: height(xleftChild) – height(xrightChild) AVL ağaçlarda her düğüm için df(x) –1, 0, veya 1 olur.

AVL ağaçları ve denge faktörü -1 1 10 40 30 45 20 35 25 60 7 3 8 1 5 Bu bir AVL ağacı mıdır? Her düğüm için denge faktörleri kaçtır? Bu bir AVL arama ağacı mıdır?

AVL arama ağaçlarına ekleme Eklemeden sonra AVL ağacı özelliği bozulabilir Yani ağaç dengesizleşebilir Bu durumda ağacın dengesini onarmamız gerekir, bunun için yapılan işleme döndürme( rotation) denir.

Dengesizlik çeşitleri Eklemeden sonra, A düğümünün denge faktörü –2 veya 2 ise A düğümünde aşağıdaki 4 çeşit dengesizlik oluşabilir : LL: yeni düğüm A nın sol alt ağacının sol alt ağacındadır. LR: yeni düğüm A nın sol alt ağacının sağ alt ağacındadır. RR: yeni düğüm A nın sağ alt ağacının sağ alt ağacındadır . RL: yeni düğüm A nın sağ altağacının sol alt ağacındadır.

Döndürme (Rotation) iki veya üç komşu düğüm için çocuk ve veli arasında dönüşüm (ağacın dengesini onarmak için)

Döndürme

Sol Döndürme Tanım İkili arama ağacını dengelemek için A düğümünü aşağı ve sola çeker . A‘nın sağ çocuğu A nın yerine geçer, A ise bu sağ çocuğun sol çocuğu olur, A nın sağ çocuğunun sol çocuğu A nın sağ çocuğu olur . 9 4 15 12 22 A 15 22 9 12 4 Left Rotation

Sol döndürme Root P A Q C B

Sol döndürme Root P A Q C B

Sol döndürme Root P A Q C B

Sol döndürme Root P A Q C B

Sol döndürme Root Q P C A B

Sol döndürme Root Q C P A B

Sağ döndürme Tanım İkili arama ağacını dengelemek için A düğümünü aşağı ve sağa çeker . A‘nın sol çocuğu A nın yerine geçer, A ise bu sol çocuğun sağ çocuğu olur, A nın sol çocuğunun sağ çocuğu A nın sol çocuğu olur . 15 22 9 12 4 A 9 4 15 12 22 Right Rotation

Sağ döndürme Root Q C P A B

Sağ döndürme Root Q C P A B

Sağ döndürme Root Q C P A B

Sağ döndürme Root Q C P B A

Sağ döndürme Root P Q A C B

Sağ döndürme Root P A Q C B

B’nin çocuğu olarak yeni düğüm eklenirse? Çift Döndürme B’nin çocuğu olarak yeni düğüm eklenirse? Root Q C P A B

Ağaç dengeli olacak mı?? Değilse sağ döndürme sorunu çözer mi ? Çift döndürmeler Ağaç dengeli olacak mı?? Değilse sağ döndürme sorunu çözer mi ? Root Q C P A B D

Çift döndürmeler Deneyelim…. Root Q C P A B D

Çift döndürmeler Deneme…. Root Q C P A B D

Çift Döndürmeler Deneme…. Root Q C P A B D

Çift döndürmeler Dengelendi mi?? Root P A Q C B D

Çift döndürmeler Sağ döndürmenin çalışmamasının nedeni sol altağacın pozitif denge faktörüne sahip olmasıdır. Root Q C P A B D

Sonra ise ağacın tamamında sağ döndürme yapılır. Çift döndürmeler Problemi çözmek için, önce sol alt ağaçta sol döndürme yapmak gerekir ki solun solu ağırlaşsın. Sonra ise ağacın tamamında sağ döndürme yapılır. Root Q C P A B D

Sol döndürme “sol alt ağaçta” Çift döndürmeler Sol döndürme “sol alt ağaçta” Root Q C P SubRoot A B D

Sol döndürme “sağ altağaçta” Çift döndürme Sol döndürme “sağ altağaçta” Root Q C P SubRoot A B D

Sol döndürme “sol altağaçta” Çift döndürmeler Sol döndürme “sol altağaçta” Root Q C P SubRoot A B D

Çift döndürmeler Şimdi “sol” altağacın “solu” ağırdır ve biz tüm ağaçta “sağ” döndürme yapıyoruz . Root Q C B P D A

Çift döndürmeler Root Q C B P D A

Çift döndürmeler Root Q C B P D A

Çift döndürmeler Root Q C B P D A

Çift döndürmeler Root Q C B P D A

Çift döndürmeler Root Q B D P C A

Çift döndürmeler B Root Q P C A D

Tek ve Çift Döndürmeler Tek döndürme: LL ve RR dengesizliği içindir Çift döndürme: LR ve RL dengesizliğinde kullanılır LR dengesizliği için önce RR döndürmesi sonra LL döndürmesi yap RL dengesizliği için önce LL sonra RR döndürmesi yap

1. Durum (RR sağın sağı) Bu şekilde X ve Y birer düğüm, A ve B ise birer altağaç olsun. A ağacının yüksekliği h(A)= h, B ağaçıcın yüksekliği h(B)= h, C ağacının yüksekliği h(C)=h+1 olsun. df(Y)=h-(h+1)=-1 ve df(X)=h-(h+2)=-2 olur X A Y C B

1. Durum (RR sağın sağı devam ) Bir önceki slayttaki şekilde dengesi bozulmuş düğümün denge faktörü -2 ve onun çocuğunun denge faktörü -1 dir. Bu durumda X e göre sol döndürme yapılır ve sonuç aşağıdaki gibi olur Y X C A B

2. Durum (LL solun solu) Aşağıdaki şekilde X ve Y birer düğüm, A,B,C birer altağaç ve h(A)=h+1, h(B)=h(C)=h olsun. Bu durumda df(Y)=1, df(X)=2 olur. X Y C A B

2. Durum (LL solun solu devam) Bir önceki slayttaki şekilde dengesi bozulmuş düğümün yani X in denge faktörü 2 ve çocuğu Y nin denge faktörü 1 dir. Bu durumda X e göre sağ döndürme yapılır ve yukarıdaki şekil oluşur. Y A X C B

3. Durum (RL sağın solu) X Y A D Z C B Aşağıdaki şekilde X, Y, Z birer düğüm, A,B,C,D birer alt ağaç olsun. Yükseklikler h(A)=h(C)=h(D)=h ve h(B)=h-1 olsun. Bu durumda df(X)=-2, df(Y)=1 ve df(Z)=-1 olur. X Y A D Z C B

3. Durum (RL sağın solu devam) df(X)=-2, df(Y)=1 ve df(Z)=-1 durumunda çift döndürme yapılır ve aşağıdaki sonuca ulaşılır (Burada önemli olan -2 den sonra 1 gelmesidir yani zıt işaretler olmasıdır) Z Y X D A B C

3. Durum (RL sağın solu devam) Peki bu sonuca nasıl ulaşıldı? Önce Y den sağ döndürme yapıldı ve aşağıdaki şekil oluştu Sonra da X den sol döndürme yapıldı X Z A Y B D C

4. Durum (LR solun sağı) X D Y A Z B C Aşağıdaki şekilde X, Y, Z birer düğüm, A,B,C,D birer alt ağaç olsun. Yükseklikler h(A)=h(B)=h(D)=h ve h(C)=h-1 olsun. Bu durumda df(X)=2, df(Y)=-1 ve df(Z)=1 olur. X D Y A Z B C

4. Durum (LR solun sağı devam) df(X)=2, df(Y)=-1 ve df(Z)=1 durumunda çift döndürme yapılır ve aşağıdaki sonuca ulaşılır. (Burada önemli olan 2 den sonra -1 gelmesidir yani zıt işaretler olmasıdır) Z X Y D A B C

4. Durum (LR solun sağı devam) Peki bu sonuca nasıl ulaşıldı? Önce Y den sol döndürme yapıldı ve aşağıdaki şekil oluştu Sonra da X den sağ döndürme yapıldı X D Z Y C A B

AVL Ağacı döndürmeler Tek döndürmeler: ekle 14, 15, 16, 13, 12, 11, 10 Önce 14 ve 15 ekle: 14 15 Şimdi16 yı ekle

AVL ağacı döndürmeler Tek döndürmeler: 16 eklenmesi AVL özelliğini bozuyor 14 15 16 Döndürme gereksinimi var.

16 eklenmesi AVL özelliğini bozuyor: AVL Ağacı döndürmeler Tek döndürmeler: 16 eklenmesi AVL özelliğini bozuyor: 14 15 16 Döndürme gerekir.

AVL ağac döndürmeleri Tek döndürmeler: Döndürme : 14 15 16

Döndürme sonucu AVL özelliği onarıldı: AVL Ağaç döndürmeleri Tek döndürme: Döndürme sonucu AVL özelliği onarıldı: 15 14 16

AVL Ağaç döndürmeleri Tek döndürme: 13 ve 12ekle AVL özelliği bozuldu. 15 14 16 13 12 AVL özelliği bozuldu.

AVL ağaç döndürmeler Tek döndürmeler: Döndürme çeşidi?: 15 14 16 13 12

AVL ağaç döndürmeler Tek döndürmeler: 15 13 16 12 14 Ekle11.

AVL ağaç döndürmeler Tek döndürme: AVL özelliği bozuldu 15 13 16 12 14 11 AVL özelliği bozuldu

AVL ağaç döndürmeleri Tek döndürmeler: Döndürme çeşidi: 15 13 16 12 14 11

AVL ağaç döndürmeleri Tek döndürmeler: 13 12 15 16 14 11 ekle 10.

AVL ağaç döndürmeleri Tek döndürmeler: AVL özelliği bozuldu 13 12 15 16 14 11 10 AVL özelliği bozuldu

AVL ağaç döndürmeleri Tek döndürmeler: Döndürme çeşidi?: 13 12 15 16 14 11 10

AVL ağaç döndürmeleri Tek döndürmeler: 13 11 15 10 12 14 16 .

AVL ağaç döndürmeler Çift döndürmeler: ekle 1, 2, 3, 4, 5, 7, 6, 9, 8 Ekle 1 ve 2: 13 11 15 10 12 14 16

AVL ağaç döndürmeleri Çift döndürmeler: AVL özelliği bozuldu 13 11 15 16 14 10 12 1 2

AVL ağaç döndürmeleri Çift döndürmeler: Döndürme çeşitleri: 13 11 15 16 14 12 10 1 2

AVL özelliği onarıldı: AVL ağaç döndürmeleri Çift döndürmeler: AVL özelliği onarıldı: 13 15 11 2 12 14 16 1 10 Ekle 3.

AVL ağaç özellikleri Çift föndürmeler: AVL özelliği bozuldu: 13 11 15 16 2 12 14 1 10 3

AVL ağaç döndürmeleri Çift döndürmeler: Döndürme çeşitleri: 13 11 15 2 12 16 14 1 10 3

AVL ağaç döndürmeleri Çift Döndürmeler: AVL dengesi onarıldı: Ekle 4. 13 10 15 2 11 14 16 1 3 12 Ekle 4.

AVL ağaç döndürmeleri Çift döndürmeler: AVL özelliği bozuldu 13 10 15 2 14 16 11 1 12 3 4

AVL ağaç döndürmeleri Çift döndürmeler: Döndürme çeşidi: 13 10 15 16 2 11 14 1 12 3 4

AVL Ağaç döndürmeleri Çift döndürmeler: Ekle 5. 10 13 2 15 1 11 3 12 14 16 4 Ekle 5.

AVL Ağaç döndürmeleri Çift döndürmeler: AVL özelliği bozuldu. 10 2 13 15 1 11 3 12 14 16 4 5 AVL özelliği bozuldu.

AVL ağaç döndürmeleri Tek döndürme: Döndürme çeşidi: 10 13 2 15 1 11 3 12 14 16 4 5

AVL ağaç döndürmeleri Tek döndürme: AVL dengesi onarıldı: ekle7. 10 13 2 15 1 11 4 12 14 3 5 16 ekle7.

AVL ağaç döndürmeleri Tek döndürme: AVL özelliği bozuldu. 10 13 2 15 1 11 4 12 14 16 3 5 7

AVL ağaç döndürmeleri Tek döndürme: Döndürme çeşidi?: 10 13 2 15 1 11 4 12 14 16 3 5 7

AVL ağaç döndürmeleri Çift döndürme: AVL dengesi onarıldı. ekle 6. 10 13 4 15 2 11 5 12 14 16 7 1 3 ekle 6.

AVL ağaç döndürmeleri Çift döndürme: AVL özelliği bozuldu. 10 13 4 15 2 11 5 12 14 16 7 1 3 6

AVL ağaç döndürmeleri Çift döndürmeler: Döndürme çeşidi?: 10 13 4 11 15 2 5 12 14 16 7 1 3 6

AVL ağaç döndürmeleri Çift döndürmeler: AVL dengesi onarıldı. 10 13 4 11 15 2 6 12 14 16 1 3 5 7 ekle 9 ve 8.

AVL ağaç döndürmeleri Çift döndürmeler: AVL özelliği bozuldu. 10 13 4 15 2 11 6 12 14 16 1 3 5 7 9 8

AVL ağaç döndürmeler Çift döndürmeler: Döndürme çeşidi?: 10 13 4 15 2 11 6 12 14 16 1 3 5 7 9 8

Ağaç neredeyse tam dengeli bir ağaçtır AVL ağaç döndürmeler Son ağaç: Ağaç neredeyse tam dengeli bir ağaçtır 10 13 4 15 2 11 6 12 14 16 1 3 5 8 7 9

AVL ağacı oluşturma AVL ağacı oluştur liste: 5, 6, 8, 3, 2, 4, 7

Örnek devamı

AVL ağacı yüksekliği AVL ağacında N düğüm varsa, yükseklik en fazla 1.44log(N+2)-0.328 olur. Pratikte log N den bir az çoktur. Örnek: AVL ağaçı 9 yüksekli 143 düğümlü

AVL Ağacı yüksekliği Düğümlerim minimum sayısı S(h), yükseklik h ise S(0)=1, S(1)=2, S(h) = S(h-1) + S(h-2) +1 Fibonacci sayıalrı: (F(0) = F(1) = 1, F(n)=F(n-1) + F(n-2)) İddia: S(h) = F(h+2) -1 her h ≥ 0 için. İspat: Tümevarım. Temel durum; S(0)=1=F(2)-1=2-1, S(1)=2=F(3)-1=3-1. Tüm h , h-1,h-2,... için doğru olsun. Bu durumda S(h+1) = S(h) + S(h-1) + 1 = F(h+2) -1 +F(h+1) -1 + 1 (by inductive hypothesis) = F(h+3) – 1 Fibonacci sayıları

AVL ağacı yüksekliği