Algoritmalara Giriş 6.046J/18.401J DERS 2 Asimptotik Simgelem O-, Ω-, ve Θ-simgelemi Yinelemeler Yerine koyma metodu Yineleme döngüleri Özyineleme ağacı Ana Metot (Master metod) Prof. Erik Demaine September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.1
Asimptotik simgelem O-simgelemi (üst sınırlar): We write f(n) = O(g(n)) if ther exist constants c > 0, n 0 > 0 such that 0 f(n) cg(n) for all n n 0. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.2
Asimptotik simgelem O-simgelemi (üst sınırlar): We write f(n) = O(g(n)) if there exist constants c > 0, n 0 > 0 such that 0 f(n) cg(n) for all n n 0. ÖRNEK: 2n 2 = O(n 3 ) (c = 1, n 0 = 2) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.3
Asimptotik simgelem O-simgelemi (üst sınırlar): We write f(n) = O(g(n)) if there exist constants c > 0, n 0 > 0 such that 0 f(n) cg(n) for all n n 0. ÖRNEK: 2n 2 = O(n 3 ) (c = 1, n 0 = 2) fonksiyonlar, değerler değil September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.4
Asimptotik simgelem O-simgelemi (üst sınırlar): We write f(n) = O(g(n)) if there exist constants c > 0, n 0 > 0 such that 0 f(n) cg(n) for all n n 0. ÖRNEK: 2n 2 = O(n 3 ) (c = 1, n 0 = 2) fonksiyonlar, değerler değil komik, tek yönlü eşitlik September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.5
O-simgeleminin tanımı O(g(n)) = { f(n) : there exist constants c > 0, n 0 > 0 such that 0 f(n) cg(n) for all n n 0 } September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.6
O-simgeleminin tanımı O(g(n)) = { f(n) : there exist constants c > 0, n 0 > 0 such that 0 f(n) cg(n) for all n n 0 } ÖRNEK: 2n 2 O(n 3 ) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.7
O-simgeleminin tanımı O(g(n)) = { f(n) ::ere exist constants c > 0, n 0 > 0 such that 0 f(n) cg(n) for all n n 0 } ÖRNEK: 2n 2 O(n 3 ) (Mantıksallar: λn.2n 2 O(λn.n 3 ); ne olup bittiğini anladığımız sürece özensiz olmak yararlı olabilir.) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.8
Makro ornatımı (substitution) Uzlaşım (Convention): Bir formülün içindeki bir set, o setin içindeki anonim bir fonksiyonu temsil eder. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.9
Makro ornatımı (substitution) Uzlaşım: Bir formülün içindeki bir set, o setin içindeki anonim bir fonksiyonu temsil eder. f(n) = n 3 + O(n 2 ), bazı h(n) Є O(n2) için f(n) = n 3 + h(n) anlamına gelir. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.10
Makro ornatımı (substitution) Uzlaşım: Bir formülün içindeki bir set, o setin içindeki anonim bir fonksiyonu temsil eder. ÖRNEK: n 2 + O(n) = O(n 2 ) şu anlama da gelir; her f(n) O(n)için: n 2 + f(n) = h(n), bazı h(n) O(n 2 ) olunca. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.11
Ω-simgelemi (alt sınırlar) O-simgelemi bir üst-sınır simgelemidir. f(n) en az O(n 2 )'dir demenin bir anlamı yoktur. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.12
Ω-simgelemi (alt sınırlar) O-simgelemi bir üst-sınır simgelemidir. f(n) en az O(n 2 )'dir demenin bir anlamı yoktur. Ω(g(n)) = { f(n) : there exist constants c > 0, n 0 > 0 such that 0 cg(n) f(n) for all n n 0 } September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.13
Ω-simgelemi (alt sınırlar) O-simgelemi bir üst-sınır simgelemidir. f(n) en az O(n 2 )'dir demenin bir anlamı yoktur. Ω(g(n)) = { f(n) : there exist constants c > 0, n 0 > 0 such that 0 cg(n) f(n) for all n n 0 } ÖRNEK: n = Ω(lgn) (c = 1, n 0 = 16) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.14
Θ-simgelemi (sıkı sınırlar) Θ(g(n)) = O(g(n)) Ω(g(n)) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.15
Θ-simgelemi (sıkı sınırlar) Θ(g(n)) = O(g(n)) Ω(g(n)) ÖRNEK: 1 2 n 2 2n = Θ( n 2 ) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.16
ο-simgelemi ve ω-simgelemi O-simgelemi ve Ω-simgelemi ve gibidir. o-simgelemi ve ω-simgelemi < ve > gibidir.. ο(g(n)) = { f(n) : for any constant c > 0, there is a constant n 0 > 0 such that 0 f(n) < cg(n) for all n n 0 } ÖRNEK: 2n 2 = o(n 3 ) (n 0 = 2/c) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.17
ο-simgelemi ve ω-simgelemi O-simgelemi ve Ω-simgelemi ve gibidir. o-simgelemi ve ω-simgelemi < ve > gibidir. ω(g(n)) = { f(n) : for any constant c > 0, there is a constant n 0 > 0 such that 0 cg(n) < f(n) for all n n 0 } ÖRNEK: n = ω(lg n) (n 0 = 1+1/c) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.18
Yinelemelerin çözümü Ders 1' deki birleştirme sıralaması çözümlemesi bir yinelemeyi çözmemizi gerektirmişti. Yinelemeler entegral, türev, v.s. denklemlerinin çözümlerine benzer. o Bazı numaralar öğrenin. Ders 3: Yinelemelerin "böl-ve-fethet" algoritmalarına uygulanması. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.19
Yerine koyma metodu (yöntemi) En genel yöntem: 1. Çözümün şeklini tahmin edin. 2. Tümevarım ile doğrulayın. 3. Sabitleri çözün. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.20
Yerine koyma metodu (yöntemi) En genel yöntem: 1. Çözümün şeklini tahmin edin. 2. Tümevarım ile doğrulayın. 3. Sabitleri çözün. ÖRNEK: T(n) = 4T(n/2) + n [ T(1) = Θ(1) olduğunu varsayın.] O(n 3 )'ü tahmin edin. (O ve Ω ayrı ayrı kanıtlayın.) k< n için T(k) ck 3 olduğunu varsayın. T(n) cn 3 'ü tümevarımla kanıtlayın. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.21
Yerine koyma örneği T ( n) = 4T ( n / 2) + n 4c( n / 2) 3 + n = ( c / 2) n3 + n = cn3 (( c / 2) n3 n) istenen kalan cn3 istenen ne zaman ki (c/2)n 3 n 0, örneğin, eğer c 2 ve n 1. kalan September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.22
Örnek (devamı) Başlangıç koşullarını da ele almalı, yani, tümevarımı taban şıklarına (base cases) dayandırmalıyız. Taban: T(n) = Θ(1) tüm n < n 0 için, ki n 0 uygun bir sabittir. 1 n < n 0 için, elimizde Θ(1) cn 3, olur; yeterince büyük bir c değeri seçersek. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.23
Örnek (devamı) Başlangıç koşullarını da ele almalı, yani, tümevarımı taban şıklarına (base cases) dayandırmalıyız. Taban: T(n) = Θ(1) tüm n < n 0 için, ki n 0 uygun bir sabittir. 1 n < n 0, için, elimizde Θ(1) cn 3, olur; yeterince büyük bir c değeri seçersek. Bu, sıkı bir sınır değildir! September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.24
Daha sıkı bir üst sınır? T(n) = O(n 2 ) olduğunu kanıtlayacağız. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.25
September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.26 Daha sıkı bir üst sınır? T(n) = O(n 2 ) olduğunu kanıtlayacağız. Varsayın ki T(k) ck 2, k < n için olsun : ) ( 2) / ( 4 2) / ( 4 ) ( 2 2 2 n O n cn n n c n n T n T = + = + + =
Daha sıkı bir üst sınır? T(n) = O(n 2 ) olduğunu kanıtlayacağız. Varsayın ki T(k) ck 2 ; k < n: için T ( n) = 4T ( n / 2) + n 2 4c( n / 2) + n 2 = cn + n 2 = O( n ) Yanlış!I.H.(tümevarım hipotezini) kanıtlamalıyız. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.27
Daha sıkı bir üst sınır? T(n) = O(n 2 ) olduğunu kanıtlayacağız. Varsayın ki T(k) ck 2 ; k < n: için T ( n) = 4T ( n / 2) + n 2 4c( n / 2) + n 2 = cn + n 2 = O( n ) = cn cn 2 ( n) 2 Yanlış! I.H.(tümevarım hipotezini) kanıtlamalıyız. [ istenen kalan ] seçeneksiz durum c > 0. Kaybettik! September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.28
Daha sıkı bir üst sınır! FİKİR: Varsayım hipotezini güçlendirin. Düşük-düzeyli bir terimi çıkartın. Varsayım hipotezi: T(k) c 1 k 2 c 2 k ; k < n için. (Inductive hypothesis) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.29
Daha sıkı bir üst sınır! FİKİR:Varsayım hipotezini güçlendirin. Düşük-düzeyli bir terimi çıkartın. Varsayım hipotezi: T(k) c 1 k 2 c 2 k ; k < n için. T(n) = 4T(n/2) + n = 4(c 1 (n/2) 2 c 2 (n/2)) + n = c 1 n 2 2c 2 n + n = c 1 n 2 c 2 n (c 2 n n) c 1 n 2 c 2 n eğer c 2 1. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.30
Daha sıkı bir üst sınır! FİKİR:Varsayım hipotezini güçlendirin. Düşük-düzeyli bir terimi çıkartın. Varsayım hipotezi: T(k) c 1 k 2 c 2 k ; k < n için. T(n) = 4T(n/2) + n = 4(c 1 (n/2) 2 c 2 (n/2)) + n = c 1 n 2 2c 2 n + n = c 1 n 2 c 2 n (c 2 n n) c 1 n 2 c 2 n eğer c 2 1. c 1 'i başlangıç koşullarını karşılayacak kadar büyük seçin. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.31
Özyineleme-ağacı metodu Özyineleme-ağacı, bir algoritmadaki özyineleme uygulamasının maliyetini (zamanı) modeller. Özyineleme-ağacı metodu, elipsleri ( ) kullanan diğer yöntemler gibi, güvenilir olmayabilir. Öte yandan özyineleme-ağacı metodu "öngörü" olgusunu geliştirir. Özyineleme-ağacı metodu "yerine koyma metodu" için gerekli tahminlerinde yararlıdır. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.32
Özyineleme-ağacı örneği T(n) = T(n/4) + T(n/2) + n 2 : çözün September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.33
Özyineleme-ağacı örneği T(n) = T(n/4) + T(n/2) + n 2 : çözün T(n) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.34
Özyineleme-ağacı örneği T(n) = T(n/4) + T(n/2) + n 2 : çözün n 2 T(n/4) T(n/2) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.35
Özyineleme-ağacı örneği T(n) = T(n/4) + T(n/2) + n 2 : çözün n 2 (n/4) 2 (n/2) 2 T(n/16) T(n/8) T(n/8) T(n/4) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.36
Özyineleme-ağacı örneği T(n) = T(n/4) + T(n/2) + n 2 : n 2 (n/4) 2 (n/2) 2 (n/16) 2 (n/8) 2 (n/8) 2 (n/4) 2 Θ(1) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.37
Özyineleme-ağacı örneği T(n) = T(n/4) + T(n/2) + n 2 : n 2 n2 (n/4) 2 (n/2) 2 (n/16) 2 (n/8) 2 (n/8) 2 (n/4) 2 Θ(1) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.38
Özyineleme-ağacı örneği T(n) = T(n/4) + T(n/2) + n 2 : n 2 (n/4) 2 (n/2) 2 (n/16) 2 (n/8) 2 (n/8) 2 (n/4) 2 n2 5 n 2 16 Θ(1) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.39
Özyineleme-ağacı örneği T(n) = T(n/4) + T(n/2) + n 2 : n 2 (n/4) 2 (n/2) 2 (n/16) 2 (n/8) 2 (n/8) 2 (n/4) 2 n2 5 n 2 16 25 n 2 256 Θ(1) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.40
Özyineleme-ağacı örneği T(n) = T(n/4) + T(n/2) + n 2 : (n/4) 2 (n/16) 2 (n/8) 2 (n/8) 2 (n/4) 2 n 2 n2 5 n 2 16 25 n 2 256 Θ(1) ( ( ) 2 ( ) 3 ) 1+ + + +L September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.41 2 Total = n = Θ(n 2 ) 16 5 16 5 16 5
Ana Metod (The Master Method) Ana method aşağıda belirtilen yapıdaki yinelemelere uygulanır: T(n) = at(n/b) + f (n), burada a 1, b > 1, ve f asimptotik olarak pozitiftir. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.42
Üç yaygın uygulama f (n)'i n log ba ile karşılaştırın: 1. f (n) = O(n log ba ε ) ε > 0 sabiti durumunda f (n) polinomsal olarak n log ba göre daha yavaş büyür (n ε faktörü oranında). ÇÖZÜM: T(n) = Θ(n log ba ). September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.43
Üç yaygın uygulama f (n)'i n log ba ile karşılaştırın: 1. f (n) = O(n log ba ε ) ε > 0 sabiti durumunda; f (n) polinomsal olarak n log ba göre daha yavaş büyür(n ε faktörü oranında). Çözüm: T(n) = Θ(n log ba ). 2. f (n) = Θ(n log ba lg k n) k 0 sabiti durumunda; f (n) ve n log ba benzer oranlarda büyürler. Çözüm: T(n) = Θ(n log ba lg k+1 n). September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.44
Üç yaygın uygulama f (n)'i n log ba ile karşılaştırın: 3. f (n) = Ω(n log ba + ε ) ε > 0 sabiti durumunda; f (n) polinomsal olarak n log ba 'ye göre daha hızlı büyür ( n ε faktörü oranında), ve f (n), düzenlilik koşulunu af(n/b) cf(n) durumunda, c < 1 olmak kaydıyla karşılar. Çözüm: T(n) = Θ( f (n)). September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.45
Örnekler Örnek. T(n) = 4T(n/2) + n a = 4, b = 2 n log ba = n 2 ; f (n) = n. Durum 1: f(n) = O(n 2 ε ) ε = 1 için. T(n) = Θ(n 2 ). September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.46
Örnekler Ör. T(n) = 4T(n/2) + n a = 4, b = 2 n log ba = n 2 ; f (n) = n. Durum 1: f(n) = O(n 2 ε ) ε = 1 için. T(n) = Θ(n 2 ). Ör. T(n) = 4T(n/2) + n 2 a = 4, b = 2 n log ba = n 2 ; f (n) = n 2. Durum 2: f(n) = Θ(n 2 lg 0 n), yani, k = 0. T(n) = Θ(n 2 lg n). September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.47
Örnekler Ör. T(n) = 4T(n/2) + n 3 a = 4, b = 2 n log ba = n 2 ; f (n) = n 3. DURUM 3: f(n) = Ω(n 2+ ε ) ε = 1için ve 4(n/2) 3 cn 3 (düz. koş.) c = 1/2 için. T(n) = Θ(n 3 ). September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.48
Örnekler Ör. T(n) = 4T(n/2) + n 3 a = 4, b = 2 n log ba = n 2 ; f (n) = n 3. DURUM 3: f(n) = Ω(n 2+ ε ) ε = 1 için ve 4(n/2) 3 cn 3 (düz. koş.) c = 1/2 için T(n) = Θ(n 3 ). Ör. T(n) = 4T(n/2) + n 2 /lgn a = 4, b = 2 n log ba = n 2 ; f (n) = n 2 /lgn. Ana metod geçerli değil. Özellikle, ε > 0 olan sabitler için n ε = ω(lgn) elde edilir. September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.49
Master teoremdeki düşünce Yineleme ağacı: f (n) a f (n/b) f (n/b) a f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b) Τ (1) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.50
Master teoremdeki düşünce Yineleme Ağacı: f (n) a f (n/b) f (n/b) a f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b) f (n) af(n/b) a 2 f (n/b 2 ) Τ (1) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.51
Master teoremdeki düşünce f (n) a f (n/b) a2 f (n/b2) Recursion tree: ( Özyineleme Ağacı ) f (n) a f (n/b) f (n/b) f (n/b) a h = logbn f (n/b2) f (n/b2) f (n/b2) Τ (1) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.52
Master teoremdeki düşünce ( Özyineleme Ağacı ) f (n) a f (n/b) f (n/b) f (n/b) a h = logbn f (n/b2) f (n/b2) f (n/b2) Τ (1) September 12, 2005 #leaves = ah yaprak sayısı = alogbn = nlogba Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson f (n) a f (n/b) a2 f (n/b2) Recursion tree: nlogbaτ (1) L2.53
Master teoremdeki düşünce h = log b n Yineleme Ağacı: f (n) a f (n/b) f (n/b) a f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b) f (n) af(n/b) a 2 f (n/b 2 ) Τ (1) CASE 1: 1: The weight increases geometrically from the root to to the leaves. The leaves hold a constant fraction of of the total weight. n log ba Τ (1) Θ(n log ba ) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.54
Master teoremdeki düşünce h = log b n Yineleme Ağacı: f (n) a f (n/b) f (n/b) a f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b) f (n) af(n/b) a 2 f (n/b 2 ) Τ (1) CASE 2: 2: (k (k = 0) 0) The weight is is approximately the same on each of of the log b n levels. n log ba Τ (1) Θ(n log ba lg n) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.55
Master teoremdeki düşünce h = log b n Yineleme ağacı: f (n) a f (n/b) f (n/b) a f (n/b 2 ) f (n/b 2 ) f (n/b 2 ) f (n/b) f (n) af(n/b) a 2 f (n/b 2 ) Τ (1) CASE 3: 3: The weight decreases geometrically from the root to to the leaves. The root holds a constant fraction of of the total weight. n log ba Τ (1) Θ( f (n)) September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.56
September 12, 2005 Copyright 2001-5 Erik D. Demaine and Charles E. Leiserson L2.57 Appendix/EK: Geometrik seriler 1 1 1 1 2 x x x x x n n = + + + + + L ; x 1 için 1 1 1 2 x x x = + + + L ; x < 1 için