dene/ders2.ppt
- 1. Algoritmalar
DERS 2
Asimptotik Notasyon
•O-, Ω-, ve Θ-notasyonları
Yinelemeler
•Yerine koyma metodu
•Yineleme döngüleri
•Özyineleme ağacı
•Ana Metot (Master metod)
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.1
- 2. Asimptotik notasyon
O-notasyonu (üst sınırlar):
Tüm n ≥ n0 değerleri için sabitler c > 0, n0 > 0 ise
0 ≤ f(n) ≤ cg(n) durumunda
f(n) = O(g(n)) yazabiliriz.
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.2
- 3. Asimptotik notasyon
O-notasyonu (üst sınırlar):
Tüm n ≥ n0 değerleri için sabitler c > 0, n0 > 0 ise
0 ≤ f(n) ≤ cg(n) durumunda
f(n) = O(g(n)) yazabiliriz.
ÖRNEK: 2n2 = O(n3) (c = 1, n0 = 2)
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.3
- 4. Asimptotik notasyon
O-notasyonu (üst sınırlar):
Tüm n ≥ n0 değerleri için sabitler c > 0, n0 > 0 ise
0 ≤ f(n) ≤ cg(n) durumunda
f(n) = O(g(n)) yazabiliriz.
ÖRNEK: 2n2 = O(n3) (c = 1, n0 = 2)
fonksiyonlar,
değerler değil
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.4
- 5. Asimptotik notasyon
O-notasyonu (üst sınırlar):
Tüm n ≥ n0 değerleri için sabitler c > 0, n0 > 0 ise
0 ≤ f(n) ≤ cg(n) durumunda
f(n) = O(g(n)) yazabiliriz.
ÖRNEK: 2n2 = O(n3) (c = 1, n0 = 2)
komik, “tek yönlü”
fonksiyonlar, eşitlik
değerler değil
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.5
- 6. O-notasyonunun tanımı
O(g(n))= { f(n) : tüm n ≥ n0 değerlerinde
c > 0, n0 > 0 ise ve
0 ≤ f(n) ≤ cg(n) }
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.6
- 7. O-notasyonunun tanımı
O(g(n))= { f(n) : tüm n ≥ n0 değerlerinde
c > 0, n0 > 0 ise ve
0 ≤ f(n) ≤ cg(n) }
ÖRNEK: 2n2 ∈ O(n3)
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.7
- 8. Ω-notasyonu (alt sınırlar)
O-notasyonu bir üst-sınır notasyonudur.
f(n) en az O(n2)'dir demenin bir anlamı yoktur.
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.8
- 9. Ω-notasyonu (alt sınırlar)
O-notasyonu bir üst-sınır notasyonudur.
f(n) en az O(n2)'dir demenin bir anlamı yoktur.
Ω(g(n))= { f(n) : tüm n ≥ n0 değerlerinde
c > 0, n0 > 0 ise ve
0 ≤ cg(n) ≤ f(n) }
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.9
- 10. Ω-notasyonu (alt sınırlar)
O-notasyonu bir üst-sınır notasyonudur.
f(n) en az O(n2)'dir demenin bir anlamı yoktur.
Ω(g(n))= { f(n) : tüm n ≥ n0 değerlerinde
c > 0, n0 > 0 ise ve
0 ≤ cg(n) ≤ f(n) }
ÖRNEK: n = Ω (lg n) (c = 1, n0 = 16)
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.10
- 11. Θ-notasyonu(sıkı sınırlar)
Θ(g(n)) = O(g(n)) ∩ Ω(g(n))
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.11
- 12. Θ-notasyonu(sıkı sınırlar)
Θ(g(n)) = O(g(n)) ∩ Ω(g(n))
ÖRNEK: 1
2
n2 − 2n = Θ(n2 )
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.12
- 13. Θ, Ω ve O notasyonlarının
grafik üzerinde örneklenmesi
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.13
- 14. ο ve ω notasyonları
O-notasyonu ve Ω-notasyonu ≤ ve ≥ gibidir.
o-notasyonu ve ω-notasyonu < ve > gibidir..
o(g(n))= { f(n) : tüm n ≥ n0 değerlerinde
c > 0 sabiti için n0 sabiti varsa
0 ≤ f(n) ≤ cg(n) }
ÖRNEK: 2n2 = o(n3) (n0 = 2/c)
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.14
- 15. ο ve ω notasyonları
O-notasyonu ve Ω-notasyonu ≤ ve ≥ gibidir.
o-notasyonu ve ω-notasyonu < ve > gibidir..
o(g(n))= { f(n) : tüm n ≥ n0 değerlerinde
c > 0 sabiti için n0 sabiti varsa
0 ≤ f(n) ≤ cg(n) }
ÖRNEK: n = ω(lg n) (n0 = 1+1/c)
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.15
- 16. Yinelemelerin çözümü
• Ders 1' deki birleştirme sıralaması analizi bir
yinelemeyi çözmemizi gerektirmişti.
• Yinelemeler integral, türev, v.s.
denklemlerinin çözümlerine benzer.
• Ders 3: Yinelemelerin "böl-ve-fethet"
algoritmalarına uygulanması.
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.16
- 17. 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. L2.17
- 18. 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
1. T(1) = Θ(1) olduğunu varsayın.
2. O(n3)'ü tahmin edin. (O ve Ω ayrı ayrı kanıtlayın.)
3. k< n için T(k) ≤ ck3 olduğunu varsayın.
• T(n) ≤ cn3'ü tümevarımla kanıtlayın.
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.18
- 19. 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
(c/2)n3 – n ≥ 0 olduğu zamanlarda, örneğin,
eğer c ≥ 2 ve n ≥ 1 ise.
kalan
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.19
- 20. Ö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 < n0 için, ki n0
uygun bir sabittir.
•1 ≤ n < n0 için, elimizde “Θ(1)” ≤ cn3, olur;
yeterince büyük bir c değeri seçersek.
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.20
- 21. Ö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 < n0 için, ki n0
uygun bir sabittir.
•1 ≤ n < n0 için, elimizde “Θ(1)” ≤ cn3, 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. L2.21
- 22. Daha sıkı bir üst sınır?
T(n) = O(n2) olup olmadığını kanıtlayacağız.
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.22
- 23. Daha sıkı bir üst sınır?
T(n) = O(n2) olduğunu kanıtlayacağız.
Varsayın ki k < n için T(k) ≤ ck2 olsun:
T (n) = 4T (n / 2) + n
≤ 4c(n / 2)2 + n
= cn2 + n
= cn2 – (– n ) [ istenen –kalan ]
≤ cn2
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.23
- 24. Daha sıkı bir üst sınır?
T(n) = O(n2) olduğunu kanıtlayacağız. Varsayın
ki k < n için T(k) ≤ ck2 olsun:
T (n) = 4T (n / 2) + n
≤ 4c(n / 2)2 + n
= cn2 + n
= cn2 – (– n )
≤ cn2 Yanlış
c > 0 için eşitsizlik doğru değildir. Kaybettik.
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.24
- 25. Özyineleme-ağacı metodu
• Özyineleme-ağacı, bir algoritmadaki özyineleme
uygulamasının maliyetini (zamanı) modeller.
• Özyineleme-ağacı metodu, bazen güvenilir
olmayabilir.
• Öte yandan özyineleme-ağacı metodu "öngörü"
olgusunu geliştirir.
• Özyineleme-ağacı metodu "yerine koyma
metodu" için gerekli tahminlemelerde yararlıdır .
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.25
- 27. Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2: çözün
T(n)
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.27
- 28. Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2: çözün
n2
T(n/4) T(n/2)
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.28
- 29. Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2: çözün
n2
(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. L2.29
- 30. Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
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. L2.30
- 31. Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
n2 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. L2.31
- 32. Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
n2 n2
(n/4)2 (n/2)2 5 n2
16
(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. L2.32
- 33. Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
n2 n2
(n/4)2 (n/2)2 5 n2
16
(n/16)2 (n/8)2 (n/8)2 (n/4)2 25 n 2
256
…
Θ(1)
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.33
- 34. Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
n2 n2
(n/4)2 (n/2)2 5 n2
16
(n/16)2 (n/8)2 (n/8)2 (n/4)2 25 n 2
256
…
Θ(1) Toplam
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E.
- 35. Ana Metod (The Master Method)
Ana method aşağıda belirtilen yapıdaki
yinelemelere uygulanır:
T(n) = a T(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. L2.35
- 36. Üç yaygın uygulama
f (n)'i nlogba ile karşılaştırın:
1. f (n) = O(nlogba – ε) ε > 0 sabiti durumunda
• f (n) polinomsal olarak nlogba
göre daha yavaş büyür (nε faktörü oranında).
ÇÖZÜM: T(n) = Θ(nlogba) .
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.36
- 37. Üç yaygın uygulama
f (n)'i nlogba ile karşılaştırın:
1.f (n) = O(nlogba – ε) ε > 0 sabiti durumunda;
• f (n) polinomsal olarak nlogba
göre daha yavaş büyür(nε faktörü oranında).
Çözüm: T(n) = Θ(nlogba) .
•f (n) = Θ(nlogba lgkn) k ≥ 0 sabiti durumunda;
• f (n) ve nlogba benzer oranlarda
Çözüm: T(n) =büyürler. k+1n) .
Θ(nlogba lg
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.37
- 38. Üç yaygın uygulama
f (n)'i nlogba ile karşılaştırın:
3.f (n) = Ω(nlogba + ε)ε > 0 sabiti durumunda;
• f (n) polinomsal olarak nlogba '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. L2.38
- 39. Örnekler
Örnek. T(n) = 4T(n/2) + n
a = 4, b = 2 ⇒ nlogba = n2; f (n) = n.
Durum 1: f (n) = O(n2 – ε) ε = 1 için.
∴ T(n) = Θ(n2).
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.39
- 40. Örnekler
Ör. T(n) = 4T(n/2) + n
a = 4, b = 2 ⇒ nlogba = n2; f (n) = n.
Durum 1: f (n) = O(n2 – ε) ε = 1 için.
∴ T(n) = Θ(n2).
Ör. T(n) = 4T(n/2) + n2
a = 4, b = 2 ⇒ nlogba = n2; f (n) = n2.
Durum 2: f (n) = Θ(n2lg0n), yani, k = 0.
∴ T(n) = Θ(n2lg n).
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.40
- 41. Örnekler
Ör. T(n) = 4T(n/2) + n3
a = 4, b = 2 ⇒ nlogba = n2; f (n) = n3.
DURUM 3: f (n) = Ω(n2 + ε) ε = 1için
ve 4(n/2)3 ≤ cn3 (düz. koş.) c = 1/2 için.
∴ T(n) = Θ(n3).
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.41
- 42. Örnekler
Ör. T(n) = 4T(n/2) + n3
a = 4, b = 2 ⇒ nlogba = n2; f (n) = n3.
DURUM 3: f (n) = Ω(n2 + ε) ε = 1için
ve 4(n/2)3 ≤ cn3 (düz. koş.) c = 1/2 için.
∴ T(n) = Θ(n3).
Ör. T(n) = 4T(n/2) + n2/lg n
a = 4, b = 2 ⇒ nlogba = n2; f (n) = n2/lg n.
Ana metod geçerli değil. Özellikle,
ε > 0 olan sabitler için nε = ω(lg n) elde edilir.
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.42
- 43. Appendix/EK: Geometrik seriler
n+1
1−x ; x ≠ 1 için
1 + x + x + ... + x =2 n
1−x
1
1 + x + x + ... = 2 ; |x| < 1 için
1−x
September 12, 2005 Copyright © 2001-5 Erik D. Demaine and Charles E. L2.43