Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama

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.
Yrd. Doç. Dr. Mustafa Akkol
41 adımda ahşap inşaat Yapımcı : Y.Orman Müh. Abdullah Arslan Proje : Y.Mim. Çelik Erengezgin.
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
Diferansiyel Denklemler
ALİ YALKIN İLKÖĞRETİM OKULU 2/A SINIFI ÇALIŞMA SAYFASI
Değişkenler ve bellek Değişkenler
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
FAKÜLTE/BÖLÜM/ YÜKSEKOKUL ADI STRATEJİK PLANLAMA SUNUMU Not:Süreçler değişebilir…
KİŞİSEL KAMP MALZEMEN Kamp malzemelerini şu ana başlıklar altında düşünebilirsin. Uyku malzemesi Yemek malzemesi Temizlik malzemesi Zorluklara karşı hazır.
ASELSAN- TOKİ YAPRACIK KONUTLARI KOORDİNASYON KURULU
MATRİSLER Şekildeki gibi bir cismin elemanlarından oluşan sıralı tabloya m x n tipinde bir matris denir. i= 1,2,3, .. , m ve j = 1,2,3, ... , n olmak üzere,
BASİT MAKİNELER.
Atlayarak Sayalım Birer sayalım
Diferansiyel Denklemler
JEODEZİ I Doç.Dr. Ersoy ARSLAN.
ÖRNEKLEME DAĞILIŞLARI VE TAHMİNLEYİCİLERİN ÖZELLİKLERİ
Microsoft Danışman Öğrenci
TÜRKİYE EKONOMİSİNE GENEL BAKIŞ VE SON GELİŞMELER KEMAL UNAKITAN MALİYE BAKANI 05 Eylül 2008 T.C. MALİYE BAKANLIĞI.
5) DOĞRUSAL DENKLEM SİSTEMLERİNİN SAYISAL ÇÖZÜMLERİ
Algoritmalar DERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar
Algoritmalar En kısa yollar I En kısa yolların özellikleri
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
Yönetim Bilgi Sistemleri Şubat TAPU VE KADASTRO GENEL MÜDÜRLÜĞÜ.
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
HİSTOGRAM OLUŞTURMA VE YORUMLAMA
Soruya geri dön
Prof. Dr. Leyla Küçükahmet
MÜRŞİT BEKTAŞ 1-A SINIFI
Algoritmalar Ders 14 En Kısa Yollar II Bellman-Ford algoritması
Özel Üçgenler Dik Üçgen.
TOPLAMA İŞLEMİNDE VERİLMEYEN TOPLANANI BULMA
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
1/25 Dört İşlem Problemleri A B C D Sınıfımızda toplam 49 öğrenci okuyor. Erkek öğrencilerin sayısı, kız öğrencilerin sayısından 3 kişi azdır.
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
ARALARINDA ASAL SAYILAR
TÜRKİYE KAMU HASTANELERİ KURUMU
Algoritmalar DERS 4 Çabuk sıralama Böl ve fethet Bölüntüler
Matematik 2 Örüntü Alıştırmaları.
MATRİSLER ve DETERMİNANTLAR
Tam sayılarda bölme ve çarpma işlemi
DERS 2 MATRİSLERDE İŞLEMLER VE TERS MATRİS YÖNTEMİ
DOĞUŞ ÜNİVERSİTESİ VI. LİSELERARASI MATEMATİK YARIŞMASI
HABTEKUS' HABTEKUS'08 3.
Anadolu Öğretmen Lisesi
Mukavemet II Strength of Materials II
Chapter 6: Using Arrays.
Yard. Doç. Dr. Mustafa Akkol
MURAT ŞEN AKDENİZ ÜNİVERSİTESİ Üçgenler.
DERS 3 DETERMİNANTLAR ve CRAMER YÖNTEMİ
Diferansiyel Denklemler
1 DEĞİŞMEYİN !!!
1 2 3 GÜVENLİK İÇİN ÖNCELİKLE RİSKİ YOK EDİLMELİDİR. RİSKİ YOK EDEMIYORSANIZ KORUNUN KKD; SİZİ KAZALARDAN KORUMAZ, SADECE KAZANIN ŞİDDETİNİ AZALTIR.
Bankacılık sektörü 2010 yılının ilk yarısındaki gelişmeler “Temmuz 2010”
AB SIĞIR VE DANA ETİ PAZAR DURUMU 22 Ekim AB TOPLAM BÜYÜKBAŞ HAYVAN VARLIĞI CANLI HAYVAN May / June SURVEY CANLI HAYVAN May / June SURVEY.
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?
Toplama Yapalım Hikmet Sırma 1-A sınıfı.
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
Proje Konuları.
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.
ECHİNODERMATA Kambriyen – Güncel tümüyle denizel Filum
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
Diferansiyel Denklemler
Sunum transkripti:

Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama Sayı üstelleri Fibonacci sayıları Matriks çarpımı Strassen’in algoritması September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Böl-ve-hükmet tasarım paradigması Problemi (anlık durumu) alt problemlere böl. Altproblemleri özyinelemeli olarak çözüp, onları fethet. Altproblem çözümlerini birleştir. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Birleştirme sıralaması Bölmek: Kolay. Hükmetmek: 2 altdiziyi özyinelemeli sıralama. Birleştirmek: Doğrusal-zamanda birleştirme. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Birleştirme sıralaması Bölmek: Kolay. Hükmetmek: 2 altdiziyi özyinelemeli sıralama. Birleştirmek: Doğrusal-zamanda birleştirme. T(n) = 2 T(n/2) + Θ(n) altproblem sayısı altproblem boyutu bölme ve birleştirme işi September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Master teoremi (hatırlatma) T(n) = a T(n/b) + f (n) DURUM 1: f (n) = O(nlogba – ε), sabit ε > 0 ⇒ T(n) = Θ (nlogba). DURUM 2: f (n) = Θ (nlogba) ⇒ T(n) = Θ (nlogba ). DURUM 3: f (n) = Ω(nlogba + ε ), sabit ε > 0, ve düzenleyici koşul (regularity condition). ⇒ T(n) = Θ ( f (n)). September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Master teoremi (hatırlatma) T(n) = a T(n/b) + f (n) DURUM 1: f (n) = O(nlogba – ε), sabit ε > 0 ⇒ T(n) = Θ (nlogba). DURUM 2: f (n) = Θ (nlogba) ⇒ T(n) = Θ (nlogba ). DURUM 3: f (n) = Ω(nlogba + ε ), sabit ε > 0, ve düzenleyici koşul (regularity condition). ⇒ T(n) = Θ ( f (n)). nlogba = nlog22 = n Birleştirme sıralaması: a = 2, b = 2 ⇒ ⇒ DURUM 2 (k = 0) ⇒ T(n) = Θ(n lg n) . September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.6

İkili arama Sıralı dizide bir elemanını bulma: Böl: Orta elemanı belirle. Hükmet: 1 altdizide özyinelemeli arama yap. Birleştir: Kolay. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

İkili arama Sıralı dizide bir elemanını bulma: Böl: Orta elemanı belirle. Hükmet: 1altdizide özyinelemeli arama yap. Birleştir: Kolay. Örnek: 9' u bul. 3 5 7 8 9 12 15 September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

İkili arama Sıralı dizide bir elemanını bulma: Böl: Orta elemanı belirle. Hükmet: 1altdizide özyinelemeli arama yap. Birleştir: Kolay. Örnek: 9'u bul. 3 5 7 8 9 12 15 September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

İkili arama Sıralı dizide bir elemanını bulma: Böl: Orta elemanı belirle. Hükmet: 1altdizide özyinelemeli arama yap. Birleştir: Kolay. Örnek: 9'u bul. 3 5 7 8 9 12 15 September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

İkili arama Sıralı dizide bir elemanını bulma: Böl: Orta elemanı belirle. Hükmet: 1 altdizide özyinelemeli arama yap. Birleştir: Kolay. Örnek: 9'u bul. 3 5 7 8 9 12 15 September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

İkili arama Sıralı dizide bir elemanını bulma: Böl: Orta elemanı belirle. Hükmet: 1 altdizide özyinelemeli arama yap. Birleştir: Kolay. Örnek: 9'u bul 3 5 7 8 9 12 15 September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

İkili arama Sıralı dizilimin bir elemanını bulma: Böl: Orta elemanı belirle. Hükmet: 1 altdizilimde özyinelemeli arama yap. Birleştir: Kolay. Örnek: 9'u bul. 3 5 7 8 9 12 15 September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

İkili arama için yineleme T(n) = 1 T(n/2) + Θ(1) altproblem sayısı altproblem boyutu bölme ve birleştime işi September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

İkili arama için yineleme T(n) = 1 T(n/2) + Θ(1) altproblem sayısı altproblem boyutu bölme ve birleştime işi nlogba = nlog21 = n0 = 1 ⇒ DURUM 2 ⇒ T(n) = Θ (lg n) . September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.15

Bir sayının üstellenmesi Problem: a n 'yi, n ∈ N iken hesaplama. Saf (Naive) algoritma: Θ (n). September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Bir sayının üstellenmesi Problem: a n 'yi, n ∈ N iken hesaplama. Saf (Naive) algoritma: Θ(n). Böl-ve-fethet algoritması: a n/2 ⋅ a n/2 a (n–1)/2 ⋅ a (n–1)/2 ⋅ a n çift sayıysa; n tek sayıysa. a n = September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Bir sayının üstellenmesi iken hesaplama. Problem: a n 'yi n ∈ N Saf (Naive) algorithm: Θ(n). Böl-ve-fethet algoritması: a n/2 ⋅ a n/2 a (n–1)/2 ⋅ a (n–1)/2 ⋅ a n çift sayıysa; n tek sayıysa. a n = T(n) = T(n/2) + Θ (1) ⇒ T(n) = Θ(lg n) . September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Fibonacci sayıları Özyinelemeli tanım: September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Fibonacci sayıları Özyinelemeli tanım: September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.20

Fibonacci sayılarını hesaplama Aşağıdan yukarıya: F0, F1, F2, …, Fn'i sırayla, her sayı iki öncekinin toplamı olacak şekilde hesaplayın. Yürütüm süresi: Θ(n). September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Fibonacci sayılarını hesaplama Aşağıdan yukarıya: F0, F1, F2, …, Fn'i sırayla, her sayı iki öncekinin toplamı olacak şekilde hesaplayın. •Çalışma zamanı: Θ(n). Saf özyinelemeli kare alma (Naive recursive squaring): • Bu yöntem güvenilir değildir, yuvarlama hatalarına gebedir. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Özyineleme ile kare alma (Recursive squaring) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Özyineleme ile kare alma (Recursive squaring) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.24

Özyineleme ile kare alma (Recursive squaring) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.25

Özyineleme ile kare alma September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Matrislerde çarpma Girdi: Çıktı: A = [aij], B = [bij]. C = [cij] = A⋅ B. i, j = 1, 2,… , n. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Standart algoritma for i ← 1 to n do for j ← 1 to n do cij ← 0 (i 1'den n'ye kadar) do for j ← 1 to n do cij ← 0 for k ← 1 to n do cij ← cij + aik⋅ bkj (j 1'den n'ye kadar) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Standart algoritma Çalışma zamanı = Θ(n3) for i ← 1 to n (i 1'den n'ye kadar) do for j ← 1 to n do cij ← 0 for k ← 1 to n do cij ← cij + aik⋅ bkj (j 1'den n'ye kadar) Çalışma zamanı = Θ(n3) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.29

Böl-ve-fethet algoritması September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Böl-ve-fethet algoritması September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.31

Böl-ve-Fethet algoritmasının çözümlemesi T(n) = 8 T(n/2) + Θ(n2) altmatris sayısı altmatris boyutu altmatrisleri toplama işi September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

nlogba = nlog28 = n3 Böl-ve-Fethet algoritmasının çözümlemesi T(n) = 8 T(n/2) + Θ(n2) altmatris sayısı altmatris boyutu altmatrisleri toplama işi nlogba = nlog28 = n3 ⇒ DURUM 1 ⇒ T(n) = Θ(n3). September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.33

nlogba = nlog28 = n3 Böl-ve-Fethet algoritmasının çözümlemesi T(n) = 8 T(n/2) + Θ(n2) altmatris sayısı altmatris boyutu altmatrisleri toplama işi nlogba = nlog28 = n3 ⇒ DURUM 1 ⇒ T(n) = Θ(n3). Sıradan algoritmadan daha iyi değil. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.34

Strassen’in fikri 2×2 matrisleri yalnız 7 özyinelemeli çarpmayla çöz. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Strassen’in fikri 2×2 matrisleri yalnız 7 özyinelemeli çarpmayla çöz. P1 = a ⋅ ( f – h) P2 = (a + b) ⋅ h P3 = (c + d) ⋅ e P4 = d ⋅ (g – e) P5 = (a + d) ⋅ (e + h) P6 = (b – d) ⋅ (g + h) P7 = (a – c) ⋅ (e + f ) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Strassen’in fikri 2×2 matrisleri yalnız 7 özyinelemeli çarpmayla çöz. P1 = a ⋅ ( f – h) P2 = (a + b) ⋅ h P3 = (c + d) ⋅ e P4 = d ⋅ (g – e) P5 = (a + d) ⋅ (e + h) P6 = (b – d) ⋅ (g + h) P7 = (a – c) ⋅ (e + f ) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.37

Strassen’in fikri 2×2 matrisleri yalnız 7 özyinelemeli çarpmayla çöz. P1 = a ⋅ ( f – h) P2 = (a + b) ⋅ h P3 = (c + d) ⋅ e P4 = d ⋅ (g – e) P5 = (a + d) ⋅ (e + h) P6 = (b – d) ⋅ (g + h) P7 = (a – c) ⋅ (e + f ) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.38

Strassen’in algoritması Böl: A ve B'yi (n/2)×(n/2) altmatrislere böl. + ve – kullanarak çarpılabilecek terimler oluştur. 2.Fethet: (n/2)×(n/2) altmatrislerde özyinelemeli 7 çarpma yap. 3. Birleştir: + ve – kullanarak (n/2)×(n/2) altmatrislerde C 'yi oluştur. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Strassen’in algoritması Böl: A ve B'yi (n/2)×(n/2) altmatrislere böl. + ve – kullanarak çarpılabilecek terimler oluştur. 2.Fethet: (n/2)×(n/2) altmatrislerde özyinelemeli 7 çarpma yap. 3. Birleştir: + ve – kullanarak (n/2)×(n/2) altmatrislerde C 'yi oluştur. T(n) = 7 T(n/2) + Θ(n2) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.40

Strassen'in çözümlenmesi T(n) = 7 T(n/2) + Θ(n2) September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Strassen'in çözümlenmesi T(n) = 7 T(n/2) + Θ (n2) nlogba = nlog27 ≈ n2.81 ⇒ DURUM 1 ⇒ T(n) = Θ(nlg 7). September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson

Strassen'in çözümlenmesi T(n) = 7 T(n/2) + Θ (n2) nlogba = nlog27 ≈ n2.81 ⇒ DURUM 1 ⇒ T(n) = Θ(nlg 7). 2.81 değeri 3'den çok küçük görünmeyebilir ama, fark üstelde olduğu için, koşma süresine etkisi kayda değerdir. Aslında, n ≥ 32 değerlerinde, Strassen’in algoritması günün makinelerinde normal algoritmadan daha hızlı çalışır. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.43

Strassen'in çözümlenmesi T(n) = 7 T(n/2) + Θ (n2) nlogba = nlog27 ≈ n2.81 ⇒ DURUM 1 ⇒ T(n) = Θ(nlg 7). 2.81 değeri 3' den çok küçük görünmeyebilir ama, fark üstelde olduğu için, yürütüm süresine etkisi kayda değerdir. Aslında, n ≥ 32 değerlerinde Strassen’in algoritması günün makinelerinde normal algoritmadan daha hızlı çalışır. Bugünün en iyi değeri (teorik merak açısından, Coppersmith–Winograd algorithm): Θ(n2.376...). September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson L2.44

Sonuç Böl ve Fethet algoritma tasarımının güçlü tekniklerinden sadece biridir. Böl ve Fethet algoritmaları yinelemeler ve Ana (Master) metot kullanarak çözümlenebilir. (bu nedenle bu matematiğin pratiğini yapın). Böl ve Fethet stratejisi genellikle verimli algoritmalara götürür. September 14, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson