Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

İleri Algoritma Analizi

Benzer bir sunumlar


... konulu sunumlar: "İleri Algoritma Analizi"— Sunum transkripti:

1 İleri Algoritma Analizi
Ders1 Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

2 Giriş Algoritma nedir? Algoritmanın doğruluğu nedir?
Algoritmalar teorisinin araştırma konuları Algoritma tasarlama yöntemleri Problem çözüm aşamaları Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

3 Algoritma nedir? Bilgisayar algoritması bir problemin bilgisayarın yardımıyla sonlu bir zaman süresinde çözülebilmesini sağlayan detaylı ve adım adım ne yapılacağını anlatan talimatlar dizisidir Algoritma problemin verilenlerini (bu verilenlere giriş denir) elde edilmesi istenen sonuçlara (bu sonuçlara da çıkış denir) dönüştürebilmelidir. Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

4 Algoritmanın doğruluğu nedir?
Algoritma problemin koşulunu sağlayan her girişi istenen çıkışa dönüştürebiliyorsa bu algoritma doğrudur denir. Bir algoritma problemin koşularını sağlayan en az bir girişi yanlış bir çıkışa dönüştürüyorsa veya herhangi bir çıkışa dönüştüremiyorsa bu algoritma yanlıştır denir. Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

5 Algoritmalar teorisinin araştırma konuları
Algoritma tasarlama yöntemleri Algoritmanın analizi: -Doğruluğunun ispatı -İşlem zamanı analizi -Hafıza analizi -Optimal (en iyi) algoritma olma analizi Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

6 Algoritma tasarlama yöntemleri
Bir problemin çözümü için bir algoritma yazmadan önce bu algoritmanın hangi yöntemle tasarlanabileceğine karar verilmelidir. Aşağıdaki algoritma tasarlama yöntemleri vardır: -Kaba kuvvet yöntemi -Böl ve yönet yöntemi -Azalt ve yönet yöntemi -Dönüştür ve yönet yöntemi -Hafıza ve zaman takası yöntemi -Dinamik programlama yöntemi -Açgözlü yaklaşım yöntemi -İteratif iyileştirme yöntemi Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

7 Kaba Kuvvet yöntemi Akla gelen ilk yöntemdir
Genelde verimli bir algoritma üretmez ama iyi algoritma üretilebilen problemler de vardır. Örneğin, 2 matrisin çarpım algoritması Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

8 Böl ve yönet Problemi daha küçük alt problemlere bölerek çözebilen algoritma tasarlama yöntemidir. Sıralama algoritmaları olan Birleştirmeli sıralama (Merge Sort) ve Hızlı Sıralama (Quicksort) algoritmaları böl ve yönet yöntemi ile tasarlanmışlardır. Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

9 Azalt ve yönet yöntemi Problemde verilen boyutu azaltarak yapılan algoritma tasarlama yöntemidir. Azaltma sabit sayı kadar(genelde bir) veya sabit çarpan kadar (genelde iki) olabilir. Bir sıralama algoritması olan Eklemeli Sıralama (Insertion sort) algoritması azalt ve yönet (bir azaltma ile) yöntemi ile tasarlanmıştır. Sıralı dizide bir arama algoritması olan İkili Arama (Binary Search) algoritması azalt ve yönet (yarıya kadar azaltma) yöntemi ile tasarlanmışlardır. Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

10 Dönüştür ve yönet yöntemi
Problemi daha kolay çözülebilen başka bir probleme dönüştürerek yapabilen algoritma tasarlama yöntemidir. Örneğin, bir sıralama algoritması olan Yığın Sıralama (Heapsort) algoritması dönüştür ve yönet yöntemi ile tasarlanmıştır. Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

11 Hafıza Zaman takası yöntemi
Bir problemin daha hızlı çözülebilmesi için hafızayı daha fazla kullanarak tasarlanan algoritmalar hafıza zaman takası yöntemi ile tasarlanan algoritmalardır. Bu yöntemle tasarlanmış algoritmalardan biri bir sıralama algoritması olan Sayarak Sıralama (Counting Sort) algoritmasıdır. Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

12 Dinamik Programlama (DP) yöntemi
Bu yöntem optimizasyon (en iyiyi bulma) problemlerinde kullanılır. Böl ve yönet yönteminde olduğu gibi problemi daha küçük alt problemlere bölerek algoritma tasarlanır ama bu yöntemde alt problemler böl ve yönet yönteminde olduğu gibi bağımsız olmazlar. DP yöntemi ayrıca problemi çok daha hızlı çözebilmek için hafıza zaman takası yöntemini de kullanmaktadır. DP yöntemi ile tasarlanmış algoritmalara örnek olarak En Uzun Ortak Alt dizi (EUOA)(İngilizcesi LCS) bulma algoritması gösterilebilir. Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

13 Açgözlü yaklaşım Bu yöntem de optimizasyon problemlerini çözmek için kullanılır. Yöntemin ana fikri çok basittir: Her adımda o adım için en iyi olan seçim yapılır ve bu seçimin ana problem için en iyi çözüme ulaştıracağı umut edilir. Genelde yöntem başarılı sonuç vermez ama doğru sonuca ulaştırdığı örnekler de vardır, örneğin kesirli çanta problemi bu yöntemle çözülebilir. Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

14 İteratif iyileştirme yöntemi
Bu yöntem de genelde optimizasyon problemleri için kullanılır. Yöntemin ana fikri: Her adımda en iyi değeri (maksimumu veya minimumu) aranan fonksiyonun bir önceki adıma göre daha iyi değerine ulaşmak Örnek olarak, Doğrusal Programlama problemi için var olan Simpleks algoritma gösterilebilir Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

15 Problem çözüm aşamaları
Problemi anlama Çözüm için strateji belirleme, yani algoritma tasarlama yöntemi için karar verme Algoritma tasarlama (Sözde kod yazma) -Giriş -Çıkış -Adımlar Algoritma analizi -Doğruluğunun ispatı -İşlem süresi ve hafıza analizi -Algoritmanın optimal (en iyi) olma analizi Algoritmayı bir programlama dilinde yazma (Kod yazma) Test ve gerçekleştirme Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

16 2. Derse kadar dersi alan öğrencilerin yapması gerekenler
Aşağıdaki algoritmaların sözde kodlarının incelenmesi ve nasıl çalıştıklarının örnekler üzerinde öğrenilmesi: -Selection Sort -Insertion Sort -Quick Sort -Binary Search Aşağıdaki problemlerin ne olduklarını okumak ve problemi anlamak -Hırsız çantası problemi (0-1 ve kesirli problem) -En uzun ortak altdizi bulma problemi


"İleri Algoritma Analizi" indir ppt

Benzer bir sunumlar


Google Reklamları