tümevarım ve Özyineleme...1 tümevarım ve Özyineleme csc-2259 ayrık yapılar konstantin busch...
Post on 29-Nov-2020
2 Views
Preview:
TRANSCRIPT
1
Tümevarım ve Özyineleme
CSC-2259 Ayrık Yapılar
Konstantin Busch - LSU 1
Tümevarım
Konstantin Busch - LSU 2
Tümevarım çok kullanışlı bir ispat tekniğidir.
Bilgisayar bilimlerinde, tümevarım algoritmalarının özelliklerini kanıtlamak için kullanılır.
Tümevarım ve öz yineleme bir biri ile ilişkilidir.•Özyineleme algoritmalar için bir tanımlama metotdor.•Tümevarım öz yineleme algoritmalrı için uygun bir ispat metodudur.
2
Konstantin Busch - LSU 3
önermesinin doğru olduğunu ispat etmek içintümevarım yöntemini kullanınız:
)(nP
Temel tümevarım:
Tümevarım hipotezi:
Tümevarım basamğı:
doğru olduğunu ispatlayınız
doğru olduğunu varsayınız.
)1(P
)(kP
)1( kP
(her hangi bir k pozitif tam sayısı için)
doğru olduğunu varsayınız.
Konstantin Busch - LSU 4
)1( kP
)(kP
)1()( kPkP
Tümevarım basamaklarını diğer bir ifade ile ispatlarsak:
k her pozitif tam sayı için
Tümevarım hipotezi: doğru olduğunu varsayınız.
(her hangi bir k pozitif tam sayısı için)
Tümevarım basamğı:doğru olduğunu varsayınız.
3
Konstantin Busch - LSU 5
)1()( kPkP)1(PDoğru Doğru
)4()3()2()1( PPPP
Temel tümevarım Tümevarım basamağı
Bütün pozitif tamsayılar için önerme doğrudur
Konstantin Busch - LSU 6
Çıkarım kuralı olarak tümevarım:
)())]1()(()1([ nnPkPkPkP
4
7
2
)1(321:)(
nnnnP
2
)11(11:)1(
P
2
)1(21:)(
kkkkP
K. Busch - LSU
Teorem:
İspat:
2
)1)1)((1()1(21:)1(
kkkkkP
İspatlarsak
olduğunu varsayalım
Temel tümevarım:
Tümevarım hipotezi:
Tümevarım basamğı:
Konstantin Busch - LSU 8
2
)1)1)((1(
2
)1(2)1(
)1(2
)1(
)1(21:)1(
kk
kkk
kkk
kkkP (tümevarım hipotezi)
İspat sonu
Tümevarım basamğı:
5
Konstantin Busch - LSU 9
Harmonik sayılar
jH j
1
4
1
3
1
2
11
12
25
4
1
3
1
2
114 HÖrnek:
,3,2,1j
Konstantin Busch - LSU 10
Teorem:2
12
nH n
İspat:
0n
Temel tümevarım:
21
2
011122 0
nHHH n
0n
6
Konstantin Busch - LSU 11
Tümevarım hipotezi: kn
21
2
kH k Beklendiğini varsayalım:
Tümevarım basamağı: 1 kn
2
1112
kH kGöstereceğiz:
2
11
2
1
21
2
12
21
2
1
12
1
21
2
1
12
1
2
1
12
1
2
1
3
1
2
11
1
1
12
12 1
k
k
k
k
H
H
kk
kk
kk
kkk
k
k
Konstantin Busch - LSU 12
İspat sonu
Tümevarım hipotezinden
7
Konstantin Busch - LSU 13
Teorem: nH n 12
İspat:
0n
Temel tümevarım:
nHHH n 1011122 0
0n
Konstantin Busch - LSU 14
Tümevarım hipotezi: kn
kH k 12
Beklendiğini varsayalım:
Tümevarım hipotezi: 1 kn
)1(112 kH kGöstereceğiz:
8
Konstantin Busch - LSU 15
)1(1
11 12
121
2
1
12
11
2
1
12
1
2
1
12
1
2
1
3
1
2
11
1
12
12 1
k
k
k
k
H
H
kk
kk
kk
kkk
k
k
İspat
Tümevarım hipotezinden
Konstantin Busch - LSU 16
nHn
n 12
12
Gördüğümüz gibi:
Beklendiği gibi: kk HHH k loglog 22
kHk
k log12
log1
)(log kHk
9
Konstantin Busch - LSU 17
boşlukboşluk
boşluk
2222 22
33 22
Triominos
Konstantin Busch - LSU 18
Teorem: Her dama tahtasında Triominoes’in kuyruğu bir kare hareket edebilir.
1,22 nnn
İspat: Temel tümevarım: 1n
boşluk
11 22
10
Konstantin Busch - LSU 19
Tümevarım hipotezi: kn
kk 22
Boşluk her hangi bir yerde
dama tahtasında boşluğun her hangi bir yere yerleştiğini varsayalım
kk 22
Konstantin Busch - LSU 20
Tümevarım basamağı: 1 kn
11 22 kk
11
Konstantin Busch - LSU 21
kk 22 kk 22
Tümevarım hipoteziyle karede boşluğun döşendiğini düşünelim.
kk 22
Üç yapay delikler eklendi
Konstantin Busch - LSU 22
23 x 23 durumda:
12
Konstantin Busch - LSU 23
kk 22 kk 22
Triomine ile üç boşluğu yer değiştirelim. Şimdi bütün alanlar döşenmiş olur.
Konstantin Busch - LSU 24
İspat sonu
23 x 23 durum için:
13
Güçlü Tümevarım
Konstantin Busch - LSU 25
Temel tümevarım:
Tümevarım hipotezi:
Tümevarım basamağı:
doğru olduğunu ispatlayalım
doğru olduğunu varsayalım
doğru oldğunu varsayalım
)1(P
)()2()1( kPPP
)1( kP
)(nP Önermesi için:
Konstantin Busch - LSU 26
Teorem: her tamsayı, asal sayıların sonucudur.(sonuçlarından en az biri asal sayıdır)
2n
İspat:
Temel tümevarım: 2n
2 sayısı bir asal sayıdır.
Tümevarım hipotezi: kn 2
ve arasındaki her tamsayı asal sayıların bir sonucudur diye söylenebilir.2 k
(Güçlü tümevarım)
14
Konstantin Busch - LSU 27
Tümevarım basamakları: 1 kn
Eğer asal sayı ise ispat bitmiştir.1k
Eğer asal sayı değilse, o biileşiktir.1k
bak 1 kba ,2
Konstantin Busch - LSU 28
bak 1 kba ,2
Tümevarım hipotezine göre;
ipppa 21
jqqqb 21
1, ji
ji qqppbak 111
Asal sayıAsal sayı
İspat sonu
15
Konstantin Busch - LSU 29
Teorem:
için her posta gönderim bedeli 4 ve 5 sentlik posta pulları kullanılarak ayarlanabilir.
12n
İspat:Tümevarım temelleri:
44412 n
Dört durumu inceleyelim.(tüme varım basamakları için)
54413 n
45514 n
55515 n
(Güçlü tüme varım)
Konstantin Busch - LSU 30
Tümevarım hipotezi:
ile arasındaki her posta bedelinin 4 sent ve 5 sentlik pullar kullanarak üretilebileceğini varsayalım
kn 12
12 k
Tümevarım basamağı: 1 kn
Eğer ise tümevarım basamağı tümevarım temelinden direkt olarak takip eder
1412 k
54 ban
16
Varsayım olarak:
Konstantin Busch - LSU 31
15k 4)3(1 kk
kk )3(12
Tümevarım hipotezi
54)3( bak
54)1(4)3(1 bakk
İspat sonu
Faktoriyal fonksiyon !)( nnf
Özyineleme
Konstantin Busch - LSU 32
Özyineleme; fonksiyonların, kümelerin, algoritmaların tanımlanmasında kullanılır.
Örnek:
1)0( f
)()1()1( nfnnf Özyineleme basamak:
Özyineleme temel
17
Konstantin Busch - LSU 33
factorial( ) {if then
return else
return }
n1n
1
)1factorial(n-n
//özyineleme temel
//özyineleme basamak
Faktoriyel için özyineleme algoritması
Konstantin Busch - LSU 34
Fibonacci sayıları
21 nnn fff
1,0 10 ffÖzyineleme temel:
Özyineleme basamak:
,,,, 3210 ffff
,4,3,2n
18
Konstantin Busch - LSU 35
1358
835
523
312
211
101
1
0
567
456
345
234
123
012
1
0
fff
fff
fff
fff
fff
fff
f
f
Konstantin Busch - LSU 36
fibonacci( ) {if then
return else
return }
n}1,0{nn
)2fibonacci()1fibonacci( n-n-
//özyineleme temel
//özyineleme basamak
Fibonacci fonksiyonu için özyineleme algoritması
19
Konstantin Busch - LSU 37
fibonacci( ) {if thenelse {
for to do {
}return
}
n0n
Fibonacci fonksiyonu için iterasyon algoritması
0y
0x1y
1i 1nyxz
yx zy
y
Konstantin Busch - LSU 38
Teorem: 2 nnf
2
51
3n
(altın oran)
için
İspat: Tümevarım (güçlü) ile ispat
Tümevarım temel: 3n 4n
23f
24 3 f
20
için olduğunu ispatlayalım
Konstantin Busch - LSU 39
Tüme varım hipotez:
2 nnf
kn 3
Tümevarım basamak: 1 kn
Olduğunu varsayalım
)1(1
k
kf k4
Konstantin Busch - LSU 40
13211
kkk
kkk fff
12
için denklemini çözelim012 xx
323321 )1( kkkkk
İspat sonuTümevarım hipotezi
21
Konstantin Busch - LSU 41
En büyük ortaka bölen
aa )0,gcd(
)mod,gcd(),gcd( babba
Özyinelemeli basamak:
Özyinelemeli temel:
ba
Konstantin Busch - LSU 42
gcd( ) {if then
return else
return }
ba,0b
a
)mod gcd(b, ba
//özyineleme temel
//özyineleme basamak
En büyük ortak bölen içinözyinelemeli algoritma
//a>b olduğunu varsayalım
22
Konstantin Busch - LSU 43
Lames Teoremi:, için Euclidian algoritması
en çok bölerek (iterasyon) kullanılır.),gcd( ba
b10log5 ba
İspat:
Algoritmanın bölümünde Fibonacciilişkilerinde göstermiştik.
Konstantin Busch - LSU 44
0
0
0
0
1
1112
233221
122110
nnn
nnnnnn
qrr
rrrqrr
rrrqrr
rrrqrr
0ra 1rb
nnnnnn rrrrrr
rrrrrrba
)0,gcd(),gcd(),gcd(
),gcd(),gcd(),gcd(),gcd(
112
322110
İlk sıfır sonuç
10 / rr
21 / rr
12 / nn rr
nn rr /1
Bölümler kalanlar
23
Konstantin Busch - LSU 45
nnnnn
nnnnnnn
rrqrr
rrrrqrr
rrrrqrr
rrrrqrr
20 11
12112
3213221
2102110
ve tam sayı olduğu için burada sonlanır.
1 nn rr nq
Konstantin Busch - LSU 46
321
432
123
12
1 2
1
rrr
rrr
rrr
rrr
rr
r
nnn
nnn
nn
n
11211
21432
534123
42312
321
2
222
1
nnn
nnn
nnn
nnn
nn
n
fffrrr
fffrrr
fffrrr
fffrrr
ffrr
fr
olduğu için burada kalır.1),gcd( barn
24
Konstantin Busch - LSU 47
11 nfrb
11
n
nf
2
51
1 nb
1010 log)1(log nb
1log51log
log10
10
10 bb
n
bn 10log5
İspat sonu
Konstantin Busch - LSU 48
Mergesort (Birleştirme sıralı) algoritma
8 2 4 6 9 7 10 1 5 3
8 2 4 6 9 7 10 1 5 3
2 4 6 8 9 1 3 5 7 10
1 2 3 4 5 6 7 8 9 10
Böl
sırala sırala
birleştir
25
Konstantin Busch - LSU 49
sort( ) {if then {
return }else return
}
naaa ,,, 21 1n 2/nm
),,,sort( 21 maaaA ),,,sort( 1 nmm aaaB
),merge( BA
1a
Konstantin Busch - LSU 50
8 2 4 6 9 7 10 1 5 3Özyinelemeli çağrıların giriş değerleri
8 2 4 6 9 7 10 1 5 3
8 2 4 6 9 7 10 1 5 3
48 2 6 9
8 2
7 10 1
7 10
5 3
26
Konstantin Busch - LSU 51
1 2 3 4 5 6 7 8 9 10
Birleştirmenin giriş ve çıkış değerleri
2 4 6 8 9 1 3 5 7 10
2 4 8 6 9 7 10 1 5 3
42 8 6 9
8 2
7 10 1
7 10
5 3
Konstantin Busch - LSU 52
merge( ) {
while do {Listeden en küçük eleman çıkartılır ve eklenir
}if then {
kalan elemanlar eklenir}return
}
LBA, //iki sıralanmış liste
BA and BA,
L
BA or L
L
27
Konstantin Busch - LSU 53
2 4 6 8 9
2 4 8 6 9
Birleştirme
A B L Karşılaştırma2 4 8
4 888
6 96 96 9
99
22 42 4 62 4 6 82 4 6 8 9
2<64<66<88<9
Konstantin Busch - LSU 54
İki listeyi birleştirmek için karşılaştırılan toplam en çok sayı;
BA,
|||| scomparison# BA
A’nın uzunluğu B’nin uzunluğu
Birleştirme büyüklüğü
28
Konstantin Busch - LSU 55
Özyinelemeli çağırma ağacınaaa ,,, 21
2
21 ,,, naaa nnn aaa ,,,2
21
2
21,aa 43,aa 23, nn aann aa ,1
1a 2a 3a 4a 3na 2na 1na na
41 ,, aa nn aa ,,3
4
1 ,, naa 2
14
,, nn aa
4
31
2
,, nn aa
nn aa ,,1
4
3
kn 2Varsayım olarak
Konstantin Busch - LSU 56
Liste başına elemanlar
#ağacın seviyesi = nlog1kn 2Varsayım
nn loglog21
0log2 nn
1log22/ nn
)1(loglog22 nn
)2(loglog24 nn
Özyinelemeli çağırma ağacı
2log24/ nn
n
2/n 2/n
4/n 4/n 4/n 4/n
4 4
2 2 2 2
1 1 1 11 1 1 1
29
Konstantin Busch - LSU 57
Birleştirme ağacınaaa ,,, 21
2
21 ,,, naaa nnn aaa ,,,2
21
2
21,aa 43,aa 23, nn aann aa ,1
1a 2a 3a 4a 3na 2na 1na na
41 ,, aa nn aa ,,3
4
1 ,, naa 2
14
,, nn aa
4
31
2
,, nn aa
nn aa ,,1
4
3
Konstantin Busch - LSU 58
Birleştirme ağacı
2
4
2/n
n
4/n
1
n
2/n 2/n
4/n 4/n 4/n 4/n
4 4
2 2 2 2
1 1 1 11 1 1 1
Liste başına elemanlar
30
nn 44/
Konstantin Busch - LSU 59
nn 2/2
nn 4/4
nn 22/
nn 1
Seviye başına birleştirme
Toplam maliyet: nnn log1)-levels(#
Birleştirme ağacı Seviye başına karşılaştırma
n
2/n 2/n
4/n 4/n 4/n 4/n
4 4
2 2 2 2
1 1 1 11 1 1 1
Birleştirme başına elemanlar
Eğer karşılaştırma sayısı ise en çok
Konstantin Busch - LSU 60
kn 2nn log
Eğer karşılaştırma sayısı ise en çok
kn 2)log(log nnOmm
nm n 22 log
Birleştirmeli sıralamanın zaman karmaşıklığı:)log( nnO
top related