You are on page 1of 16

Özyinelemeli Algoritmaların

Matematiksel Analizi
Özyinelemeli Algoritmaların Matematiksel
Analizi
• F(n) = n! Değerinin hesaplanması

• F(n) = F(n-1).n
• Temel işlem: Çarpma
• M(n) = Temel işlemin gerçekleşme sayısı
Özyinelemeli Algoritmaların Matematiksel Analizi

• M(n-1) tane çarpma işlemi F(n-1)’i hesaplamak


için kullanılır
– Bir tane de sonucu n ile çarpmak için
• M(n) serisini tanımlayan bu denklem
– Sadece n’e bağlı bir fonksiyon olarak direkt
tanımlamaz
– (n-1)’e bağlı olarak dolaylı tanımlar
– Bu tür denklemlere özyineleme ilişkisi denir.
Özyinelemeli Algoritmaların Matematiksel Analizi
• Bir özyineleme ilişkisini sağlayan birden çok seri olabilir
– Birini belirlemek için seriyi başlatan değerini söyleyen başlangıç
koşulunu bilmek gerekir
– Bu değer özyineleme çağrısını bitiren satır incelendiğinde bulunabilir

– Çağırma n=0 olduğunda bittiğine göre M(n) en küçük değeri 0 olur


– n=0 olduğunda algoritma çarpma işlemi gerçekleştirmez.
Özyineleme ile Faktöriyel
• if n = 0 return 1. satırı n =0 olduğunda özyineleme çağırımının
duracağını ve çarpma işlemi yapılmayacağını belirtir

• Bu durum özyineleme ilişkisini ve çarpma sayısı algoritması için


başlangıç koşulunu verir
Özyineleme ile Faktöriyel
• Özyineleme ilişkisinin çözümü için kullanılan yöntemlerden biri
– Backward Substitution (Geriye doğru değiştirme)

– Seri incelendiğinde şu örüntü görülebilir.

– n = 0’dan i = n’e kadar gidildiğinde


Özyineli Algoritmaların Zaman Etkinliğinin
Analizinin Genel Planı
1. Girdi büyüklüğünü gösteren parametrelerin belirlenmesi
2. Algoritmanın temel işleminin belirlenmesi
3. Girdi büyüklüğüne bağımlı olarak temel işlemin kaç kez
gerçekleştiğinin bulunması
– Aynı büyüklükteki girdiler için farklı sayıda gerçekleşiyorsa en kötü, en
iyi, ortalama durum incelemeleri
4. Temel işlemin kaç kez gerçekleştiğinin bir özyineleme ilişkisiyle
gösterilmesi
5. Özyinelemenin çözülmesi ve büyüme derecesinin araştırılması
ÖRNEK
• x(n) = x(n-1) + 5 for n>1, x(1)=0
ÖRNEK
• x(n) = 3x(n-1) for n>1, x(1) = 4
ÖRNEK
• x(n) = x(n-1) + n for n>0, x(0) = 0
ÖRNEK
• S(n)= 13 + 23 + 33 + .. + n3 için özyinelemeli algoritma:

• Özyineleme ilişkisini ve temel işlemin gerçekleşme sayısını bulun


Hanoi Kuleleri Bulmacası
• Hanoi Kuleleri Bulmacası
– Farklı büyüklüklerde diskler
– 1. Çubuktan 3. çubuğa aynı sırayla taşınacak
– Her defasında bir disk hareket ettirilecek
– Büyük disk küçük diskin üzerine gelmeyecek
Hanoi Kuleleri Bulmacası

• n>1 adet disk Ç1’den Ç3’e özyinelemeli olarak taşınması


– Önce n-1 disk Ç1’den Ç2’ye özyinelemeli olarak taşınır
– n. Disk Ç1’den Ç3’e taşınır
– Son olarak n-1 disk Ç2’den Ç3’e özyinelemeli olarak taşınır
– n=1 ise 1 hareketle işlem gerçekleşir.
– Önce n-1 disk Ç1’den Ç2’ye özyineli olarak taşınır
– n. Disk Ç1’den Ç3’e taşınır
– Son olarak n-1 disk Ç2’den Ç3’e özyineli olarak taşınır
• Girdi büyüklüğü: Disk sayısı
• Hamle Sayısı (M(n)) n’e bağımlı

• Başlangıç koşulu M(1)=1 olduğuna göre özyineleme ilişkisi

• Backward Substitution (Geriye doğru değiştirme)

• Örüntü
Hanoi Kuleleri Bulmacası
• Örüntü

• Başlangıç koşulu n=1, i=n-1 tekrar sayısı formülde yerine konursa:

• Algoritmanın büyüme derecesi üssel bir fonksiyondur.


• Büyük n değerleri için çözüm çok uzun sürecektir.
• Bu durum algoritmanın etkin olmadığını göstermez

You might also like