Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15.

Benzer belgeler
Problem Seti 4 Çözümler

Algoritmalara Giriş Ekim 31, 2005 Massachusetts Institute of Technology Professors Erik D. Demaine ve Charles E. Leiserson Dağıtım 19.

Algoritmalara Giriş Eylül 21, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Çalışma notu 6

Ara Sınav 1. Algoritmalara Giriş 14 Ekim 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Kitapçık 14

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

Problem Set 1 Çözümler

Pratik Ara Sınav 1 Çözümleri

Algoritmalara Giriş Ekim 24, 2005 Massachusetts Institute of Technology Profesör Erik D. Demaine ve Charles E. Leiserson Dağıtım 16.

6.046J/18.401J DERS 7 Kıyım Fonksiyonu (Hashing I) Prof. Charles E. Leiserson

Algoritmalara Giriş Kasım 7, 2005 Massachusetts Institute of Technology Profesör Erik D. Demaine ve Charles E. Leiserson Dağıtım 22.

Algoritmalara Giriş 6.046J/18.401J

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritmalara Giriş Ekim 10, 2005 Massachusetts Institute of Technology Professors Erik D. Demaine ve Charles E. Leiserson. Problem Seti 3 Çözümler

BIP116-H14-1 BTP104-H014-1

YZM 2116 Veri Yapıları

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

Algoritmalara Giriş 6.046J/18.401J

b) Algoritmanızın en kötü durumda işlem zamanını asimptotik olarak bulunuz

BIL222 Veri Yapıları ve Algoritmalar

Problem Seti 8 Çözümleri

Algoritmalara Giriş. Prof. Erik Demaine. November 16, 2005 Copyright by Erik D. Demaine and Charles E. Leiserson L18.1

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

Algoritmalara Giriş 6.046J/18.401J DERS 2

Algoritmalara Giriş 6.046J/18.401J

Algoritmalar. Kırmızı Siyah Ağaçları Red Black Trees. Bahar 2017 Doç. Dr. Suat Özdemir 1

Algoritmalar. İkili Arama Ağaçları. Bahar 2016 Doç. Dr. Suat Özdemir 1

Çok Yollu Ağaçlar: B*-Trees B*-Trees

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

Ders 8: Konikler - Doğrularla kesişim

SU DALGALARINDA GİRİŞİM

Problem Seti 2 Çözümler

Ağaç (Tree) Veri Modeli

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

7.Hafta Dengeli Arama Ağaçları (Red - Black Tree)

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

Final Sınavı Soruları Bahar 2018

SORULAR. 2. Noktaları adlandırılmamış 6 noktalı kaç ağaç vardır? Çizerek cevaplayınız.

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

Algoritma ve Akış Diyagramları

Bu materyallerden alıntı yapmak veya kullanım şartları hakkında bilgi almak için:

Algoritmalara Giriş J/18.401J Ders 15. Dinamik Programlama En uzun ortak altdizi En uygun altyapı Altproblemlerin çakışması

Algoritmalar. DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama Sayı üstelleri Fibonacci sayıları Matriks çarpımı Strassen in algoritması

Arasınav Örnek Soruları Bahar 2018

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Veri Yapıları Dersi. Proje#2

Algoritmalara Giriş. Prof. Erik Demaine. September 26, 2005 Copyright Erik D. Demaine and Charles E. Leiserson L5.1

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

6.Hafta Kıyım Fonksiyonu (Hashing), BST. Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

T I M U R K A R A Ç AY - H AY D A R E Ş C A L C U L U S S E Ç K I N YAY I N C I L I K A N K A R A

Math 103 Lineer Cebir Dersi Final Sınavı

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

Gerçekten Asal Var mı? Ali Nesin

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

VERİ YAPILARI VE PROGRAMLAMA

Genel Graf Üzerinde Mutlak 1-merkez

6.046J/18.401J DERS 9. Post mortem (süreç sonrası) Prof. Erik Demaine

Dr. Fatih AY Tel: fatihay@fatihay.net

Akademik Rapor Hazırlama ve Yazışma Teknikleri

YZM 2116 Veri Yapıları

Tanım Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki. boş karakter dizgisi (null string) denir ve l ile gösterilir.

İleri Diferansiyel Denklemler

Pratik Final Sınavı Çözümleri 2

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CME 2001

Bu kısımda işlem adı verilen özel bir fonksiyon çeşidini ve işlemlerin önemli özelliklerini inceleyeceğiz.

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

Algoritmalar. Doğrusal Zamanda Sıralama. Bahar 2017 Doç. Dr. Suat Özdemir 1

Çanakkale Onsekiz Mart Üniversitesi. Bilgisayar Mühendisliği Bölümü

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

A GRUBU Her bir yüzü düzgün beşgen olan düzgün 12-yüzlünün kaç ayrıtı vardır? A) 30 B) 24 C) 12 D) 36 E) 48

F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Math 103 Lineer Cebir Dersi Final Sınavı

Ağaçlar (Trees) Ağaçlar (Trees)

2-Hafta Temel İşlemler

için Örnek 7.1. simetri grubunu göz önüne alalım. Şu halde dür. Şimdi kalan sınıflarını göz önüne alalım. Eğer ve olarak alırsak işlemini kullanarak

Makine Öğrenmesi 3. hafta

AYRIK YAPILAR ARŞ. GÖR. SONGÜL KARAKUŞ- FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ, ELAZIĞ

Algoritma ve Akış Diyagramları

MIT OpenCourseWare Ekonomide İstatistiksel Yöntemlere Giriş Bahar 2009

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR

YZM 2116 Veri Yapıları

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

İstatistik ve Olasılık

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş

SINAV YÖNERGESİ. Numarası : CEVAP. Adı Soyadı : ANAHTARI A) 512 B) 513 C) 256 D) 1024 E) 1025 A) 252 B) 256 C) 3024 D) 126 E) =?

Temel Kavramlar. (r) Sıfırdan farklı kompleks sayılar kümesi: C. (i) Rasyonel sayılar kümesi: Q = { a b

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER

{\} /\ Suhap SAHIN Onur GÖK

11.Hafta En kısa yollar I-II-III Devam. Negatif Ağırlıklı En Kısa Yollar Doğruluk Çözümleme

YZM 3217 YAPAY ZEKA DERS#5: BİLGİLİ ARAMA YÖNTEMLERİ

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

olsun. Bu halde g g1 g1 g e ve g g2 g2 g e eşitlikleri olur. b G için a b b a değişme özelliği sağlanıyorsa

Veri Madenciliği Karar Ağacı Oluşturma

MS WORD 5. BÖLÜM. Şekil Sayfa Düzeni Sekmesi. Şekil Temalar Grubu

Transkript:

Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology 6.046J/18.410J Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15 Problem Seti 4 Okumalar: Bölüm 12 13 ve 18 Hem egzersizler hem de problemler çözülecek, ama sadece problemler teslim edilecektir. Egzersizler ders materyalini hazmettirmek amacıyla hazırlanmıştır. Her ne kadar egzersiz çözümlerini teslim etmeyecek olsanız da egzersizdeki konulardan sorumlu olacaksınız. Her sayfanın üstüne adınızı, dersin kod numarasını, problemin numarasını, etüt bölümünüzü ve ortak çalışma yaptığınız arkadaşlarınızın isimleriyle tarihleri yazın. Lütfen çözümlerinizi zımbalayın ve üç delikli kağıtta teslim edin. Sıksıkbir problem için bir algoritma bulun isteğiyle karşılaşacaksınız. Bu konudaki yanıtınız kısa bir makale şeklinde olmalıdır.konu paragrafı, çözdüğünüz problem ve sonuçlarınızı özetleyecek şekilde düzenlenmelidir. Makalenizin ana yapısında aşağıdaki bilgiler verilmelidir. 1. Algoritmanın İngilizce açıklaması ve eğer faydalı olacaksa sözde kodu.. 2.Algoritmanızın nasıl çalıştığını gösteren en az bir işlenmiş örnek veya şekil. 3.Algoritmanın doğruluğunun kanıtı (veya göstergesi). 4. Algoritmanın koşma zamanının çözümlemesi. Amacınız iletişim kurmaktır.tam not sadece iyi açıklanan doğru yanıtlara verilecektir. Net olmayan açıklamalar daha düşük notlandırılacaktır. Egzersiz 4-1. Kitaptaki 12.1-5 nolu egzersiz (256. Sayfa) Egzersiz 4-2. Kitaptaki 12.2-4 nolu egzersiz (260. Sayfa) Egzersiz 4-3. Kitaptaki 12.4-3 nolu egzersiz (268. Sayfa) Egzersiz 4-4. Kitaptaki 13.1-6 nolu egzersiz (277. Sayfa) Egzersiz 4-5. Kitaptaki 13.3-1 nolu egzersiz (287. Sayfa) Egzersiz 4-6. Kitaptaki 18.2-6 nolu egzersiz (449. Sayfa)

Algoritmalara Giriş Massachusetts Institute of Technology Professors Erik D. Demaine ve Charles E. Leiserson Ekim 29, 2005 6.046J/18.410J Dağıtım 18 Problem 4-1. Treaps Treap'ler ( Rastgele sıralanmış ikili arama ağaçları) Eğer tüm elemanlar aynı anda elimizde değilse - eğer elemanları birer birer alırsak, gene de bunlarla bir rastgele ikili arama ağacı oluşturabilir miyiz? Bu soruyu olumlu yanıtlayacak bir veri yapısını inceleyeceğiz. Treap, düğümleri değişik biçimde düzenlenmiş bir ikili arama ağacıdır. Şekil 1 bir treap örneğini göstermektedir. Genelde olduğu gibi ağaçtaki her x öğesinin bir key[x] anahtarı var. Buna ek olarak her x için rastgele seçilen bağımsız bir sayıyı priority[x] önceliği olarak atarız. Tüm önceliklerin ve tüm anahtarların farklı olduğunu kabul ederiz. Treap' in düğümleri öyle düzenlenmiştir ki, (1) anahtarların hepsi ikili-arama-ağacı özelliklerine uyarlar ve (2) özellikler de min-heap ( en küçük-yığın) düzeni özelliğine uyarlar. Başka birdeyişle, eğer v, u' nun sol ardılıysa, key[v] <key[u]; eğer v, u' nun sağ ardılıysa, key[v] >key[u]; ve eğer v, u' nun ardılıysa, o zaman priority (v) >priority(u) olur. ( Özelliklerin bu karışımı nedeniyle bu ağaça "treap" denir: Hem bir ikili arama ağacının (tree), hem de bir yığının ( heap ) niteliklerine sahiptir. Şekil 1: Bir treap. Her x düğümü key[x]: priority[x] olarak etiketlenmiş. Örneğin kökün anahtarı G ve önceliği 4.

Treapleri şöyle düşünmekte yarar vardır. x 1; x 2,..., x n, düğümlerinin her birini ilgili anahtarıyla bir treap' in içine rastgele düzende yerleştirelim. Bu durumda ortaya çıkan ağaç, normal bir ikili arama ağacına (rastgele seçilmiş) öncelikleri gözetilerek belirlenen düzende düğümler araya yerleştirildiğinde oluşacak ağaçtır. Başka bir deyişle, priority[x i ] < priority [X j ] X i 'nin uygulamada X j den önce araya yerleştirildiği anlamına gelir. (a) Her biri farklı anahtarları ve öncelikleri olan x 1; x 2,..., x n seti için bu düğümleri içeren özgün bir treap olduğunu gösterin. (b) Treap'in beklenen yüksekliğinin O(lg n) olduğunu ve bu nedenle treap' de bir değeri aramanın beklenen süresinin O(lg n) olduğunu gösterin. Mevcut bir treap de yeni bir x düğümünün nasıl araya yerleştirileceğini görelim. Yapacağımız ilk şey x e bir rastgele öncelik, priority[x] atamaktır. Sonra TREAP-INSERT dediğimiz araya yerleştirme algoritmasını çağırırız ve bunun işlemesi şekil 2 de gösterilmiştir. (c) TREAP-INSERT' ün nasıl çalıştığını açıklayın. Fikri İngilizce açıklayın ve sözde kodunu yazın. (İpucu: Normal ikili arama ağacı araya yerleştirmesi yapın ve sonra rotasyon yani dönmelerle min-heap (en-küçük yığın) düzeni özelliğini yeniden geri getirin. (d) TREAP-ARAYA YERLEŞTİRMESİ'NİN (TREAP-INSERT) beklenen koşma süresinin O(lg n) olduğunu gösterin. TREAP-INSERT bir arama ve ardından da bir dizi döndürme yapar. Arama ve döndürmenin asimptotik koşma süreleri aynı olmakla birlikte, pratikte maliyetleri farklıdır. Bir arama, treap deki bilgiyi değiştirmeden okurken, bir rotasyon, treap in içindeki ata ve ardıl işaretleyicilerini değiştirir. Birçok bilgisayarda okuma işlemleri, yazma işlemlerinden çok daha hızlıdır. Bu nedenle TREAP-INSERT ' ün az döndürme yapmasını isteriz. Beklenen döndürme sayısının bir sabitle sıralı olduğunu göstereceğiz (aslında 2 den az)! Bu özelliği gösterebilmek için şekil(3) de açıklanan bazı tanımlara ihtiyacımız var. Bir T ikili arama ağacının sol omurgası, kökten en küçük anahtara giden yoldur. Başka bir deyimle sol omurga kökten çıkan ve sadece sol kenarları içeren en uzun yoldur. Simetrik olarak T ağacının sağ omurgası kökten çıkan ve sadece sağ kenarları içeren en uzun yoldur. Bir omurganın uzunluğu, içerdiği düğümlerin sayısıdır. (e) TREAP-INSERT kullanılarak x' in araya yerleştirildiği anın sonrasında T Treap' ini düşünün. C, x' in sol alt-ağacının sağ omurgasının uzunluğu olsun. D de, x' in sağ alt-ağacının sol omurgasının uzunluğu olsun. x' in araya yerleştirilmesinde yapılan döndürmelerin toplam sayısının C + D' ye eşit olduğunu gösterin.

Şimdi C ve D' nin beklenen değerlerini hesaplayacağız. Basit olması için anahtarların 1, 2,..., n olduğunu varsayacağız. Bu varsayım, bizi genellikten uzaklaştırmaz çünkü sadece anahtarları karşılaştırıyoruz. İki ayrı düğüm x ve y için k = key[x] ve i = key[y] olsun ve göstergesel rastgele değişkeni şöyle tanımlayalım: (f) X i, k = 1, eğer ve sadece eğer, (if and only if) (1) priority[y] > priority[x], (2) key[y] < key[x], ve (3) her z için key[y] < key[z] < key[x], olursa priority[y] < priority[z] olacağını gösterin.

Şekil 2: TREAP-INSERT ün çalışması. Şekil 1 de olduğu gibi her x düğümü key[x] : priority[x] olarak etiketlenmiştir.(a), araya yerleştirme öncesi orijinal treap. (b), anahtarı C ve önceliği 25 olan bir düğümün araya yerleştirilmesi sonrası treap. (c) ve (d), anahtarı D ve önceliği 9 olan bir düğümün araya yerleştirilmesindeki ara evreler. (e), (c) ve (d) deki yerleştirilmeler tamamlandıktan sonraki treap. (f), anahtarı F ve önceliği 2 olan bir düğümün araya yerleştirilmesi sonrasında treap.

Şekil 3: Bir ikili arama ağacının omurgaları. Sol omurga (a) da kalın çizgiyle işaretlenmiş, sağ omurga da (b) de kalın çizgiyle işaretlenmiş. (g) Şunu gösterin: (h) Şunu gösterin; (i) Aşağıdakini göstermek için bir simetri argümanı kullanın: (j) Bir treap e bir düğüm eklenirken yapılan döndürmelerin beklenen sayısının 2 den az olduğu sonucunu çıkarın.

Problem 4-2. Dengeli olmak Bir ağaç ailesine, ailedeki her ağacın boyu O(lg n) ise dengeli deyin; burada n, ağaçtaki düğümlerin sayısıdır. ( Ağacın yüksekliğinin ağacın kökünden yaprağına kadar olan herhangi bir yoldaki kenar sayılarının maksimumu olduğunu hatırlayın. Özellikle tek düğümü olan bir ağacın yüksekliği 0 olur.) Aşağıdaki her özellik için ikili ağaçlar ailesinin dengeli olma özelliğini taşıyıp taşımadığını belirleyin. Eğer yanıtınız "hayır" ise, bir zıt örnek verin. Eğer yanıtınız "evet" ise kanıtlayın; (ipucu: Kanıtlama tümevarımla yapılmalıdır). Dengeli olmanın asimptotik bir özellik olduğunu hatırlayın; bu nedenle zıt örnekleriniz, sadece tek ağacı tanımlamamalı, ailedeki sonsuz sayıda sete yönelik olmalıdır. (a) Ağacın her düğümü ya bir yapraktır ya da 2 ardılı vardır. (b) Her alt ağacın boyutu 2 k - 1 olarak yazılabilir; burada k bir tamsayıdır (her alt ağaç için aynı değildir). (c) Öyle bir c > 0 sabiti vardır ki, ağaçtaki her düğüm için, o düğümden çıkan daha küçük alt- ağacın boyutu, daha büyük alt-ağacın boyutunun en az c ile çarpımına eşittir. (d) Öyle bir c sabiti vardır ki, ağaçtaki her düğüm için, o düğümün ardıl alt-ağaçlarının yükseklikleri arasındaki fark en çok c ' dir. (e) Bir düğümün ortalama derinliği O(lg n)'dir. ( Hatırlarsanız, bir x düğümünün derinliği, ağacın kökünden x düğümüne kadar olan yoldaki kenarların sayısıydı.)

13