İleri Algoritma Analizi

Slides:



Advertisements
Benzer bir sunumlar
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Advertisements

Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
BİLGİSAYAR PROGRAMLAMA Ders 2: Algoritma ve Akış Şemaları
Özdeğerler ve özvektörler
Determinant Bir kare matrisin tersinir olup olmadığına dair bilgi veriyor n- boyutlu uzayda matrisin satırlarından oluşmuş bir paralel kenarın hacmine.
Metrik koşullarını sağlıyor mu?
A1 sistemi A2 sistemi Hangisi daha hızlı sıfıra yaklaşıyor ? Hatırlatma.
CSS ile Konumlandırma Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu.
Graf Teorisi Pregel Nehri
TANIMI: TANIMI: Görevdeş sözcükleri,söz öbeklerini veya cümleleri birbirine bağlayan sözcüklere bağlaç denir. Genel olarak söylenirse ya görevdeş öğeleri.
Greedy Algorithms.
O R T L G İ M A A Ve Problem çözme.
OLASILIK TEOREMLERİ Permütasyon
MATEMATİK PROJE ÖDEVİ Adı-Soyadı:Nihat ELÇİ Sınıfı-Numarası:7/C 1057
Arasınav ders ve temaları. Tıbbi Mikrobiyoloji Anabilim Dalı , Bahar, Trakya Üniv Tıp Fak 6. Kurul, Neşe Akış, PhD, Tıbbi Mikrobiyoloji.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
YÖNLENDİRME. Yönlendirme ● Statik ● Dinamik ● Kaynakta yönlendirme ● Hop by hop yönlendirme.
BİLGİSAYAR PROGRAMLAMA DERSİ
0-1 Sırt Çantası Problemi
Algoritmalar II Ders 5 Açgözlü Algoritmalar.
Bölüm 2: Bir Boyutta Hareket. Bölüm 2: Bir Boyutta Hareket.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Tüm ikililer arasında en kısa yollar
1-a) Şekildeki devrede 5 Gauss yüzeyi belirleyin ve KAY yazın.
BM-103 Programlamaya Giriş Güz 2016 (7. Sunu)
Veri Yapıları ve Algoritmalar
APARTMANLAR OYUNU NEDİR?
SINIR ETKİLERİ VE GİRİŞİM
Öğr. Gör. Mehmet Ali ZENGİN
MODEL YETERSİZLİKLERİNİ DÜZELTMEK İÇİN DÖNÜŞÜMLER VE AĞIRLIKLANDIRMA
Mekanizmalarda Hız ve İvme Analizi
İleri Algoritma Analizi
BİRİNCİ DERECEDEN İKİ BİLİNMEYENLİ DENKLEMLER
BİLİŞİM SİSTEMLERİ GÜVENLİĞİ (2016)
Derinlik öncelikli arama (Depth-first Search(DFS))
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
İleri Algoritma Analizi
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
X=(X,d) metrik uzayında bazı özel alt kümeler
KAY ve KGY toplu parametreli devrelerde geçerli
İleri Algoritma Analizi
İleri Algoritma Analizi
PARANIN ZAMAN DEĞERİ.
İleri Algoritma Analizi
İleri Algoritma Analizi
Benzetim 11. Ders İmalat Yönetimde Benzetim.
SAYI ÖRÜNTÜLERİ ANAHTAR KAVRAMLAR MODELLEME ÖRÜNTÜ SAYI ÖRÜNTÜSÜ ÜS
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
ANALİTİK KİMYA DERS NOTLARI
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
NİŞANTAŞI ÜNİVERSİTESİ
Ayrıştırma Ağaçları Tanımlar Soldan ve Sağdan Türemeler ile İlişkisi
Sonlu Özdevinirlere Giriş
İKİNCİ DERECEDEN DENKLEMLER
Değerler ve Değişkenler
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
Düzenli Dillerin Kapalılık Özellikleri
NİŞANTAŞI ÜNİVERSİTESİ
Tanımlar Sonlu Özdevinirlerle Eşdeğerlik
İleri Algoritma Analizi
Kesikli Olay benzetimi Bileşenleri
İleri Algoritma Analizi
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
Rekürensler Rekürens aranan fonksiyonun ve onun daha önceki girişlerdeki değerinin bir arada bulunduğu denklem veya eşitsizliktir. Örneğin, MERGE-SORT.
Chapter 4 Divide-and-Conquer
Çizge Algoritmalari 6. ders.
Introduction to Algorithms (2nd edition)
Sunum transkripti:

İleri Algoritma Analizi Ders5: Rekürsif algoritmaların işlem zamanı analizi Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

Introduction to Algorithms (2nd edition) by Cormen, Leiserson, Rivest & Stein Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

Birleştirmeli Sıralama(Merge Sort) MergeSort algoritmasını hatırlayalım. Bu algoritmanın ana fikri şudur: Önce giriş dizisini her parçada tek eleman kalana kadar rekürsif olarak ortadan ikiye bölelim. Sonra da 2 sıralı komşu parçaya Merge(Birleştirme) algoritması uygulayalım. Merge algoritması 2 sıralı diziyi bir sıralı dizide birleştirmektedir. Bir elemandan oluşan dizi sıralı olduğu için bu algoritmayı aşağıdan yukarıya uyguladığımızda giriş dizisi sıralanmış olacaktır.

Örnek Giriş dizisi 23, 22, 10, 12, 3, 7, 6, 25 olsun. Bu diziyi ortadan iki parçaya ayıralım. Sol parça 23, 22, 10, 12 sağ parça 3, 7, 6, 25 olur. Sonra her iki parçaya aynısı uygulayalım. Bu defa 4 parçamız vardır 23, 22 ; 10, 12; 3, 7 ve 6, 25. Bu 4 parçanın herbirine de aynısını uygularsak 8 parça olur, 23; 22; 10; 12; 3; 7; 6 ve 25. Şimdi 23 ve 22 dizilerine Merge uygularsak dizi 22,23 olarak sıralanacaktır.

Örnek(devam) Benzer olarak 10 ve 12 dizileri 10, 12; 3 ve 7 dizileri 3, 7; 6 ve 25 dizileri 6, 25 sıralı dizilerinde birleşecektir. Daha sonra tekrar Merge uygulandığında 22, 23 ve 10, 12 dizileri 10, 12, 22, 23 dizilerinde; 3, 7 ve 6, 25 dizileri 3, 6, 7, 25 dizilerinde birleşecektir. Son olarak 10, 12, 22, 23 ve 3, 6, 7, 25 dizilerine Merge algoritması uygulandığında giriş dizisi 3, 6, 7, 10, 12, 22, 23, 25 olarak sıralanacaktır.

Merge algoritması Bu algoritmanın çalışmasını son iki dizi üzerinde anlatalım. Sol parçamız 10, 12, 22, 23 ; sağ parçamız 3, 6, 7, 25 idi. Her parçanın sonuna bu parçanın bittiğini özel olarak kontrol etmemek için +∞ ekleyelim. Sol parça için i, sağ parça için j indisi kullanalım ve her iki indisin başlangıç değeri bir olsun.

Merge Algoritması (devam) Şimdi sonuç olan A dizisine 8 elemanı aşağıdaki gibi yazalım: sol parçadaki L[i] ile sağ parçadaki R[j] elemanını karşılaştıralım, eğer L[i] elemanı R[j] den küçük ise A nın sıradaki elemanına L[i] atayalım ve i yi bir artıralım; aksi durumda A nın sıradaki elemanına R[j] yi atayalım ve j yi bir artıralım. Bu algoritmanın n elemanlı dizi için işlem süresinin θ(n) olacağı kolaylıkla görülmektedir.

MergeSort algoritmasının sözde kodu Bir sonraki 2 slaytta MergeSort algoritmasının sözde kodu yazılmıştır.

Copyright © The McGraw-Hill Companies, Inc Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

Copyright © The McGraw-Hill Companies, Inc Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

MergeSort algoritmasının işlem süresi analizi Algoritmanın n eleman için işlem süresi T(n) olsun. Algoritmadan görüldüğü gibi n eleman için işlem yapmak için 2 tane n/2 sayıda eleman için işlem yapmak, sonra da bunları Merge ile birleşitirmek gerekir. Birleştirme işlemi için θ(n) süresi gerekmektedir. Bu nedenle T(n)=2T(n/2)+ θ(n) olduğunu yazabiliriz. n=1 ise işlem süresi sabit olduğundan T(1)= θ(1) olur.

Rekürensler Başka bir deyimle, MergeSort algoritmasını analiz etmek için bir T(n)=2T(n/2)+ θ(n) denkleminden T(n) i bulmamız gerekmektedir. Bu denklemde hem aranan fonksiyon T(n), hem de T(n) in n/2 deki değeri vardır. Aranan fonksiyonun güncel değeri ile önceki veya sonraki değerlerini de içeren denklemlere veya eşitsizliklere rekürens denir.

Rekürenslerin çözüm yolları Rekürenslerin kesin çözümleri bulunabilir veya rekürensler asimptotik olarak çözülebilirler. Çok az sayıda rekürensin kesin çözümünü bulabiliriz.

Kesin çözülebilen rekürenslere örnekler Örnek1. Aşağıdaki rekürensi kesin olarak çözünüz: x(n)=x(n+1)+7, n≥1 için x(1)=0 Çözüm. Verilen rekürensde sırası ile n yerine 1,2,..n-1 yazarak ifadeleri alt alta toplayalım:

Kesin çözülebilen rekürenslere örnekler (Örnek1 çözüm devamı) x(1)=x(2)+7 x(2)=x(3)+7 … x(n-1)=x(n)+7 Alt alta toplarsak x(1)=x(n)+7(n-1) x(1)=0 olduğundan x(n)=7-7n bulunur.

Kesin çözülebilen rekürenslere örnekler Örnek2. Aşağıdaki rekürensi kesin olarak çözünüz: x(n)=3x(n-1)+4, n>1 için x(1)=1 Çözüm. Verilen rekürensde n yerine n-1 yazalım: x(n-1)=3x(n-2)+4 Bunu ilk rekürensde yerine yazalım: x(n)=3[3x(n-2)+4]+4= 32x(n-2)+3.4+4 (1)

Kesin çözülebilen rekürenslere örnekler(Örnek2 çözüm devam) Şimdi verilen rekürensde n yerine n-2 yazalım: x(n-2)=3x(n-3)+4 Bunu (1) de yerine yazalım: x(n)= 32x(n-2)+3.4+4 =32[3x(n-3)+4]+3.4+4 =33x(n-3)+32.4+3.4+4 Bu işleme x(1) i elde edene kadar devam edersek aşağıdakini elde ederiz: x(n)=3n-1x(1)+3n-2.4+ 3n-2.4+…3.4+4

Kesin çözülebilen rekürenslere örnekler(Örnek3 çözüm devam) Buradan da x(n)=3n-1x(1)+3n-2.4+ 3n-2.4+…3.4+4 = 3n-1+4.(3n-2+ 3n-2+…3+1) = 3n-1+4.(3n-1-1)/2= 3n-2 bulunur.

Kesin çözülebilen rekürenslere örnekler Örnek3. Aşağıdaki rekürensi n=3k için kesin olarak çözünüz: x(n)=x(n/3)+2, n>1 için x(1)=1 Çözüm. Verilen rekürensde n yerine sırası ile 3k,3k-1,3k-2… 3 yazalım ve oluşan ifadeleri alt alta toplayalım:

Kesin çözülebilen rekürenslere örnekler (örnek3 çözüm devam) x(3k)=x(3k-1)+2 x(3k-1)=x(3k-2)+2 x(3k-2)=x(3k-3)+2 … x(3)=x(1)+2 Alt alta toplarsak x(3k)=x(1)+2k=2k+1 n=3k olduğundan k=log3n dır, yani x(n)=2k+1=2log3n+1 bulunur.