• Sonuç bulunamadı

Tümevarım ve Özyineleme

N/A
N/A
Protected

Academic year: 2022

Share "Tümevarım ve Özyineleme"

Copied!
30
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Tümevarım ve Özyineleme

CSC-2259 Ayrık Yapılar

Konstantin Busch - LSU 1

Tümevarım

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çin tümevarım yöntemini kullanınız:)

(n P

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

) (k P

) 1 ( kP

(her hangi bir k pozitif tam sayısı için) doğru olduğunu varsayınız.

) 1 ( kP

) (k P

) 1 (

)

( kP kP

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 (

)

( kP k  ) P

1 ( P

Doğru Doğru

 

 ( 2 ) ( 3 ) ( 4 ) )

1

( P P P

P

Temel tümevarım Tümevarım basamağı

Bütün pozitif tamsayılar için önerme doğrudur

Çıkarım kuralı olarak tümevarım:

) ( ))]

1 (

) ( ( )

1 (

[ P   k P kP k    nP n

(4)

7

2 ) 1 3 (

2 1 : )

( 

n n

n n

P

2 ) 1 1 ( 1 1 : ) 1

(

P

2 ) 1 2 (

1 : )

( k k k

k

P

K. Busch - LSU

Teorem:

İspat:

2

) 1 ) 1 )((

1 ) (

1 ( 2

1 : ) 1

(

k k

k k k

P

İspatlarsak

olduğunu varsayalım Temel tümevarım:

Tümevarım hipotezi:

Tümevarım basamğı:

2

) 1 ) 1 )((

1 (

2

) 1 ( 2 ) 1 (

) 1 2 (

) 1 (

) 1 ( 2

1 : ) 1 (

 

 

 

k k

k k

k k k k

k k k

P  (tümevarım

hipotezi) Tümevarım basamğı:

(5)

Konstantin Busch - LSU 9

Harmonik sayılar

H

j

1 j

4 1 3 1 2

1  1    

 

12 25 4

1 3 1 2 1 1

4     

Örnek: H

,  3 , 2 ,

 1 j

Teorem:

1 2

2

H

n

  n

İspat:

 0 n

Temel tümevarım:

1 2 2 1 0

1

1

2

2 0

H n H

H

n

      

 0

n

(6)

Konstantin Busch - LSU 11

Tümevarım hipotezi:

nk

1 2

2

H

k

  k

Beklendiğini varsayalım:

Tümevarım basamağı:

n  k  1 2 1 1

2 1

 

H

k

k

Göstereceğiz:

1 2 1 1 2

2 2 1 1 2

2 1 1

2 1 1 2

2 1 1

2 1

2 1 1

2 1 2

1 3

1 2 1 1

1

1 2 1

2 1 1

 

 

 

k k k k H H

k k

k k

k k

k k

k

k k

Tümevarım hipotezinden

(7)

Konstantin Busch - LSU 13

Teorem:

H

2n

 1  n

İspat:

 0 n

Temel tümevarım:

n H

H

H

2n

20

1

 1  1  0  1 

 0 n

Tümevarım hipotezi:

nk

k H

2k

1 

Beklendiğini varsayalım:

Tümevarım hipotezi:

n  k  1

) 1 (

1

2 1

  kH

k

Göstereceğiz:

(8)

Konstantin Busch - LSU 15

 

 

 

) 1 ( 1

1 1

1 2 2 1 1

2 1 1

2 1 1

2 1 1

2 1

2 1 1

2 1 2

1 3

1 2 1 1

1 2 1

2 1 1

k k k k H H

k k

k k

k k

k k

k

k k

İspat Tümevarım hipotezinden

n n H

n

 

 1

1 2

2

Gördüğümüz gibi:

Beklendiği gibi:

H

2logk

H

k

H

2logk

log 2 kH

k

1log k

1    

)

(log k

H  

(9)

Konstantin Busch - LSU 17

boşluk boşluk

boşluk

2

2  2

2

 2

2

3

3

2

2 

Triominos

Teorem: Her dama tahtasında Triominoes’in kuyruğu bir kare hareket edebilir.

1 ,

2

2

n

n

n

İspat: Temel tümevarım:

n  1

boşluk

1

1

2

2 

(10)

Konstantin Busch - LSU 19

Tümevarım hipotezi:

nk

k

k

2

2 

Boşluk her hangi bir yerde

dama tahtasında boşluğun her hangi bir yere yerleştiğini varsayalım

k

k

2

2 

Tümevarım basamağı:

n  k  1

1

1

2

2

k

k

(11)

Konstantin Busch - LSU 21

k

k

2

2  2

k

 2

k

Tümevarım hipoteziyle karede boşluğun döşendiğini düşünelim.

k

k 2

2 

Üç yapay delikler eklendi

23 x 23 durumda:

(12)

Konstantin Busch - LSU 23

k

k

2

2  2

k

 2

k

Triomine ile üç boşluğu yer değiştirelim.

Şimdi bütün alanlar döşenmiş olur.

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

( P P k

P    

) 1 ( kP )

(n

P

Önermesi için:

Teorem: her tamsayı, asal sayıların sonucudur.

(sonuçlarından en az biri asal sayıdır)

 2 n

İspat:

Temel tümevarım:

n  2

2 sayısı bir asal sayıdır.

Tümevarım hipotezi:

2  nk

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ı:

n  k  1

Eğer

k  1

asal sayı ise ispat bitmiştir.

Eğer

k  1

asal sayı değilse, o biileşiktir.

b a

k 1   2  , a bk

b a

k 1   2  , a bk

Tümevarım hipotezine göre;

p

i

p p

a

1 2

q

j

q q

b

1 2

 1 , ji

j

iq q

p p b a

k1   11

Asal sayı Asal sayı

(15)

Konstantin Busch - LSU 29

Teorem:

için her posta gönderim bedeli

4 ve 5 sentlik posta pulları kullanılarak ayarlanabilir.

 12 n

İspat:

Tümevarım temelleri:

4 4 4

12    n

Dört durumu inceleyelim.

(tüme varım basamakları için)

5 4 4

13    n

4 5 5

14    n

5 5 5

15    n

(Güçlü tüme varım)

Tümevarım hipotezi:

ile arasındaki her posta bedelinin 4 sent ve 5 sentlik pullar kullanarak

üretilebileceğini varsayalım

k n

 12 12 k

Tümevarım basamağı:

n  k  1

Eğer ise tümevarım basamağı tümevarım temelinden direkt olarak

takip eder

14 12  k

5 4  

a b

n

(16)

Varsayım olarak:

Konstantin Busch - LSU 31

 15

k k  1  ( k  3 )  4 k

k  

 ( 3 ) 12

Tümevarım hipotezi

5 4

) 3

( k   a   b 

5 4

) 1 (

4 ) 3 (

1         

k a b

k

İspat sonu

Faktoriyal fonksiyon

f ( n )  n ! Özyineleme

Özyineleme; fonksiyonların, kümelerin, algoritmaların tanımlanmasında kullanılır.

Örnek:

1 ) 0 (  f

) ( ) 1 (

) 1

( n n f n

f    

Özyineleme basamak:

Özyineleme temel

(17)

Konstantin Busch - LSU 33

factorial( ) { if then

return

elsereturn }

1 n n

1

) 1 factorial(n- n

//özyineleme temel //özyineleme basamak

Faktoriyel için özyineleme algoritması

Fibonacci sayıları

2

1

n n

n

f f

f

1 ,

0

1

0

f

Özyineleme temel:

f

Özyineleme basamak:

,  ,

,

,

1 2 3

0

f f f

f

,  4 , 3 ,

 2

n

(18)

Konstantin Busch - LSU 35

13 5 8

8 3 5

5 2 3

3 1 2

2 1 1

1 0 1 1

0

5 6 7

4 5 6

3 4 5

2 3 4

1 2 3

0 1 2 1 0

f f f

f f f

f f f

f f f

f f f

f f f f f

fibonacci( ) { if then

return elsereturn }

n

} 1 , 0

{ n

n

) 2 fibonacci(

) 1

fibonacci(n-n-

//özyineleme temel //özyineleme basamak

Fibonacci fonksiyonu için özyineleme algoritması

(19)

Konstantin Busch - LSU 37

fibonacci( ) { if then else {

for to do {

return} }

n

 0 n

Fibonacci fonksiyonu için iterasyon algoritması

0 y

0 xy 1

1

i n1 y

x z  

y x

z y

y

Teorem:

f

n

 

n2

2 5 1

 

3 n

(altın oran)

için

İspat: Tümevarım (güçlü) ile ispat Tümevarım temel:

n  3 n  4

3

 2 f

2 4

 3  

f

(20)

için olduğunu ispatlayalım

Konstantin Busch - LSU 39

Tüme varım hipotez:

2

n

f

n

k n  3 

Tümevarım basamak:

n  k  1

Olduğunu varsayalım

) 1 ( 1

k

f

k

k 4

1 3

2 1

1

k

k

k

k

k

k

f f

f   

2

   1

için denklemini çözelim

x

2

 x  1  0

3 2

3 3

2

1

( 1 )

 

k

 

k

k

k

k

     

(21)

Konstantin Busch - LSU 41

En büyük ortaka bölen

a a , 0 )  gcd(

) mod ,

gcd(

) ,

gcd( a bb a b

Özyinelemeli basamak:

Özyinelemeli temel:

b a

gcd( ) { if then

return elsereturn }

b a,

 0 b

a

) mod gcd(b,a b

//ö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( b a

10

b log 5  ab

İspat:

Algoritmanın bölümünde Fibonacci ilişkilerinde göstermiştik.

0

0 0 0

1

1 1

1 2

2 3 3

2 2 1

1 2 2

1 1 0

n n n

n n n

n n n

q r r

r r r

q r r

r r r

q r r

r r r

q r r

r

0

abr

1

r r r

r r

r b

a

) 0 , gcd(

) , gcd(

) , gcd(

) , gcd(

) , gcd(

) , gcd(

) ,

gcd( 0 1 1 2 2 3

İlk sıfır sonuç

1 0 / r r

2 1/ r r

1 2 /

n

n r

r

n

n r

r 1/

Bölümler kalanlar

(23)

Konstantin Busch - LSU 45

n n

n n n

n n

n n

n n n

r r

q r r

r r

r r

q r r

r r r r

q r r

r r r r

q r r

2

0 1

1

1 2

1 1 2

3 2 1 3

2 2 1

2 1 0 2

1 1 0

ve tam sayı olduğu için burada sonlanır.1

n

n

r

r q

n

3 2 1

4 3 2

1 2

3

1 2

1 2

1

r r r

r r r

r r

r

r r r

r r

r

n n

n

n n n

n n

n

1 1

2 1 1

2 1

4 3 2

5 3 4 1 2 3

4 2 3 1

2

3 2

1

2

2 2

2 1

n n

n

n n

n n n n

n n n

n n

n

f f

f r r r

f f

f r r r

f f f r

r r

f f f r r r

f f

r r

f r

olduğu için burada kalır.

1 ) , gcd( 

a b

r

n

(24)

Konstantin Busch - LSU 47

1

1

r f

n

b

1 1

n

f

n

2 5 1

 

1

n

b

10

10

( 1 ) log

log b  n

1 log

5 log 1

log

10 10

10

   

b b

n

b n  5  log

10

İspat sonu

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 }

an

a

a1, 2,,

1

n

n/2

m

) , , ,

sort(a1 a2 am

A 

) , , ,

sort(am am 1 an

B

) , merge( BA

a1

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

8 2 4 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

2 8 4 6 9

8 2

7 10 1

7 10

5 3

merge( ) {

while do {

Listeden en küçük eleman çıkartılır ve eklenir

}if then { kalan elemanlar eklenir }return

}

L

B

A, //iki sıralanmış liste

B

A and B A,

L

B

A 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ırma

2 4 8 4 88 8

6 96 9 6 99 9

22 4 2 4 6 2 4 6 8 2 4 6 8 9

2<6 4<6 6<8 8<9

İki listeyi birleştirmek için karşılaştırılan toplam en çok sayı; B A,

|

|

|

| s

comparison

#  AB

A’nın uzunluğu B’nin uzunluğu Birleştirme büyüklüğü

(28)

Konstantin Busch - LSU 55

Özyinelemeli çağırma ağacı

an

a a1, 2,,

2 2

1,a , ,an

a an ,an , ,an

2 2 2 1

2 1, a

a a3, a4 an3,an2

n

n a

a1,

a1 a2 a3 a4 an3 an2 an1 an

4 1, ,a

a an3,,an

4 1, ,an a

1 2 4

,

, n

n a

a

4 1 3 2

,

, n

n a

a a n , ,an 4 1

3

n  2

k

Varsayım olarak

Liste başına elemanlar

#ağacın seviyesi =

1 log n

Varsayım

n n log

2log

1

0

2log

n n

1

2log

2

/ n n

) 1 (log

2log

2 n n

) 2 (log

2log

4 n n

Özyinelemeli çağırma ağacı

2

2log

4

/ n n

n 2

/

n n/2

4 /

n n/4 n/4 n/4

4 4

2 2 2 2

1 1 1 1 1 1 1 1

(29)

Konstantin Busch - LSU 57

Birleştirme ağacı

an

a a1, 2,,

2 2

1,a , ,an

a an ,an , ,an

2 2 2 1

2 1, a

a a3, a4 an3,an2

n

n a

a1,

a1 a2 a3 a4 an3 an2 an1 an

4 1, ,a

a an3,,an

4 1, ,an a

1 2 4

,

, n

n a

a

4 1 3 2

,

, n

n a

a a n , ,an 4 1

3

Birleştirme ağacı

2 4 2 / n

n

4 / n

1 n

2 /

n n/2

4 /

n n/4 n/4 n/4

4 4

2 2 2 2

1 1 1 1 1 1 1 1

Liste başına elemanlar

(30)

n n/4 4

Konstantin Busch - LSU 59

n n

 /2 2

n n

 /4 4

n n/2 2

n n1

Seviye başına birleştirme

Toplam maliyet:n(#levels-1) nlogn

Birleştirme ağacı Seviye başına karşılaştırma

n 2

/

n n/2

4 /

n n/4 n/4 n/4

4 4

2 2 2 2

1 1 1 1 1 1 1 1

Birleştirme başına elemanlar

Eğer karşılaştırma sayısı ise en çok

n  2

k

n n log

Eğer karşılaştırma sayısı ise en çok

n  2

k

) log (

log m O n n

m

n

m  2

logn

 2

Birleştirmeli sıralamanın zaman karmaşıklığı:

)

log

(

Referanslar

Benzer Belgeler

Ön organize edici, yeni bilgiler için bir yapı oluşturan, yeni bilginin çerçevesini çizen ve yeni bilginin öğrencinin daha önce kazanmış olduğu bilgi ile

[r]

Ayrıca aynı Kanun m.204 hükmü, ilamlarla noterler tarafından düzenlenen senetleri, sahtelikleri ispat olunmadıkça, kesin delil saymış ve bu suretle resmi sicil ve

Teorem 3.1 [11]. İspatı n üzerinden tümevarım kullanarak yapalım.. İspatı n üzerinden tümevarım kullanarak yapalım. Çift indisli Jacobsthal sayılarının

Teorem: Çarpımları 1 olan, pozitif n tane reel Çarpımları 1 olan, pozitif n tane reel sayının toplamı en az n dir3. sayının toplamı en az

&#34;Polis, direni şi kırmak ya da yakalamak amacıyla zor veya silah kullanma yetkisini kullanırken kendisine karşı silahla sald ırıya teşebbüs edilmesi halinde,

Bu çalışmada, Türkiye’de belirli kriterlere göre seçilmiş yedi üniversitenin Eğitim Fakültelerinin Müzik Eğitimi Ana Bilim dallarında, bireysel çalgıları keman olup

Anlatım, Soru- Cevap, Örnekleme, Tümevarım, Problem