Uploaded by common.user17991

Algoritma Bölüm 2 ( PDFDrive )

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. Leiserson
1
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. Leiserson
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.
ÖRNEK: 2n2 = O(n3)
September 12, 2005
(c = 1, n0 = 2)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
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)
fonksiyonlar,
değerler değil
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
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)
fonksiyonlar,
değerler değil
September 12, 2005
(c = 1, n0 = 2)
komik, “tek yönlü”
eşitlik
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
5
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. Leiserson
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) }
ÖRNEK: 2n2 ∈ O(n3)
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
7
Ω-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. Leiserson
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.
Ω(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. Leiserson
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) }
ÖRNEK:
n = Ω (lg n)
(c = 1, n0 = 16)
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
10
Θ-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. Leiserson
11
Θ-notasyonu (sıkı
sınırlar)
Θ(g(n)) = O(g(n)) ∩ Ω(g(n))
ÖRNEK:
September 12, 2005
1
2
n2 − 2n = Θ(n2 )
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
12
Θ, Ω ve O notasyonlarının
grafik üzerinde örneklenmesi
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
13
ο 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:
September 12, 2005
2n2 = o(n3)
(n0 = 2/c)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
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:
September 12, 2005
n = ω(lg n)
(n0 = 1+1/c)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
15
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. Leiserson
16
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
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.
ÖRNEK:
T(n) = 4T(n/2) + n
• T(1) = Θ(1) olduğunu varsayın.
• O(n3)'ü tahmin edin. (O ve Ω ayrı ayrı kanıtlayın.)
1. 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. Leiserson
18
Yerine koyma örneği
T (n) = 4T (n / 2) + n
≤ 4c(n / 2)3 + n
= (c / 2)n3 + n
istenen –kalan
= cn3 − ((c / 2)n3 − n)
istenen
≤ cn3
(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. Leiserson
19
Ö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. Leiserson
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.
Bu, sıkı bir sınır değildir !
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
21
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. Leiserson
22
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. Leiserson
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 )
≤ 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. Leiserson
24
Ö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. Leiserson
25
Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2: çözün
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
26
Ö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. Leiserson
27
Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2: çözün
n2
T(n/4)
September 12, 2005
T(n/2)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
28
Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2: çözün
n2
(n/4)2
T(n/16)
September 12, 2005
T(n/8)
(n/2)2
T(n/8)
T(n/4)
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
29
Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
n2
(n/4)2
(n/8)2
(n/8)2
(n/4)2
…
(n/16)2
(n/2)2
Θ(1)
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
30
Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
n2
(n/4)2
(n/8)2
(n/2)2
(n/8)2
(n/4)2
…
(n/16)2
n2
Θ(1)
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
31
Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
n2
(n/4)2
(n/8)2
(n/2)2
(n/8)2
5 n2
16
(n/4)2
…
(n/16)2
n2
Θ(1)
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
32
Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
n2
(n/4)2
(n/8)2
(n/2)2
(n/8)2
(n/4)2
5 n2
16
25 n 2
256
…
(n/16)2
n2
Θ(1)
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
33
Özyineleme-ağacı örneği
T(n) = T(n/4) + T(n/2) + n2:
n2
(n/2)2
(n/4)2
(n/8)2
(n/8)2
(n/4)2
…
(n/16)2
n2
Θ(1)
Toplam
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
5 n2
16
25 n 2
256
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. Leiserson
35
Üç 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. Leiserson
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) .
1.f (n) = Θ(nlogba )
durumunda;
• f (n) ve nlogba benzer oranlarda büyürler.
Çözüm: T(n) = Θ(nlogba lgn) .
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
37
Üç 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. Leiserson
38
Ö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. Leiserson
39
Ö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) = Θ(n2) olduğu için
∴ T(n) = Θ(n2lg n).
September 12, 2005
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
40
Ö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. Leiserson
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).
Ö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. Leiserson
42
Appendix/EK: Geometrik seriler
n+1
1 + x + x2 + ... + xn
1 + x + x2 + ... =
September 12, 2005
1
x
−
= 1−x
1
1−x
; x ≠ 1 için
; |x| < 1 için
Copyright © 2001-5 Erik D. Demaine and Charles E. Leiserson
43