YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

Benzer belgeler
Algoritma Nedir? Algoritma

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#3: ALGORİTMA ANALİZİ#2

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

Algoritma Analizi. Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan

YZM 2116 Veri Yapıları

Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR

Selection Sort Insertion Sort

Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği

VERİ YAPILARI DERS NOTLARI BÖLÜM 2 ALGORİTMA ANALİZİ. Yard. Doç. Dr. Deniz KILINÇ

Algoritma Analizi Big O

Problem Set 1 Çözümler

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Algoritmalara Giriş 6.046J/18.401J DERS 2

ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü

Algoritmalar ve Karmaşıklık

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);

Bölüm Özeti. Algoritmalar. Fonksiyonların Büyümesi. Algoritmaların Karmaşıklığı. Örnek Algoritmalar Algoritmik Paradigmalar

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

O NOTASYONU. Abdullah Gazi Emre DAĞLI

3.Hafta Master Teorem ve Böl-Fethet Metodu

Bir algoritma aşağıdaki ğ dki özelliklere sahip komutların sonlu bir kümesidir.

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Örnek...3 : Aşağıdaki ifadelerden hangileri bir dizinin genel terim i olabilir?

BİLGİSAYAR PROGRAMLAMA DERSİ

Örnek...3 : Aşağıdaki ifadelerden hangileri bir dizinin genel terim i olabilir? Örnek...4 : Genel terimi w n. Örnek...1 : Örnek...5 : Genel terimi r n

Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları

Yrd. Doç. Dr. Ümit ATİLA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

Algoritmalar. DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama Sayı üstelleri Fibonacci sayıları Matriks çarpımı Strassen in algoritması

Matlab da Dizi ve Matrisler. Mustafa Coşar

ALGORİTMA İ VE PROGRAMLAMA

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Veri Yapıları Laboratuvarı

Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ALGORİTMA VE PROGRAMLAMA I

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#1: ALGORİTMA KAVRAMI

Dr. Fatih AY Tel: fatihay@fatihay.net

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

f(x) ve g(x) reel sayılarda tanımlı iki fonksiyon olmak üzere, x > k olacak şekilde bir k vardır öyle ki,

13.Konu Reel sayılar

İşaret ve Sistemler. Ders 3: Periyodik İşaretlerin Frekans Spektrumu

PERGEL YAYINLARI LYS 1 DENEME-6 KONU ANALİZİ SORU NO LYS 1 MATEMATİK TESTİ KAZANIM NO KAZANIMLAR

YMT316 Algoritma Analizi

Temel Kavramlar. (r) Sıfırdan farklı kompleks sayılar kümesi: C. (i) Rasyonel sayılar kümesi: Q = { a b

Bu tanım aralığı pozitif tam sayılar olan f(n) fonksiyonunun değişim aralığı n= 1, 2, 3,, n,

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

HSancak Nesne Tabanlı Programlama I Ders Notları

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI Bahar Yarıyılı

ALGORİTMA VE PROGRAMLAMA I

2.Hafta Algoritmaların Analizi. Araya Yerleştirme Sırlaması (Insert Sort) Birleştirme Sıralaması (Merge Sort ) Yinelemeler

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ

Fonksiyon Optimizasyonunda Genetik Algoritmalar

Olimpiyat Soruları. sonuçları tekrar fonksiyonda yerine koyup çıkan tüm sonuçları toplayan program (iterasyon sayısı girilecek)

MATEMATİK ÖĞRETMENLİK ALAN BİLGİSİ - DENEME SINAVI DENEME. Diğer sayfaya geçiniz.

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

Alıştırma 1: Yineleme

ÜNİT E ÜNİTE GİRİŞ. Algoritma Mantığı. Algoritma Özellikleri PROGRAMLAMA TEMELLERİ ÜNİTE 3 ALGORİTMA

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

Pratik Ara Sınav 1 Çözümleri

b) Algoritmanızın en kötü durumda işlem zamanını asimptotik olarak bulunuz

Algoritmalar. Heap Sort. Bahar 2017 Doç. Dr. Suat Özdemir 1

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

VERİ YAPILARI. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ HASH TABLOLARI.

BİL1001 Bilgisayar Bilimlerine Giriş 1

BLM-431 YAPAY ZEKA. Ders-5 Bilgili Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

Diziler. Yukarıdaki bilgileri bilgisayar belleğinde saklamak için aşağıdaki gibi değişkenler tanımlanır ve değerler bu değişkenlere aktarılır :

ALGORİTMA VE PROGRAMLAMA I

Algoritmalara Giriş Eylül 21, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Çalışma notu 6


BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

28/04/2014 tarihli LYS-1 Matematik-Geometri Testi konu analizi SORU NO LYS 1 MATEMATİK TESTİ KAZANIM NO KAZANIMLAR 1 / 31

2012 LYS MATEMATİK SORU VE ÇÖZÜMLERİ Niyazi Kurtoğlu

YZM 2116 Veri Yapıları

Matris Cebiriyle Çoklu Regresyon Modeli

Ayrık Fourier Dönüşümü

CEVAP ANAHTARI. Tempo Testi D 2-B 3-A 4-A 5-C 6-B 7-B 8-C 9-B 10-D 11-C 12-D 13-C 14-C

Algoritmalara Giriş 6.046J/18.401J

YZM 2105 Nesneye Yönelik Programlama

BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları

ALGORİTMA VE PROGRAMLAMA I

Tecrübeye Dayanan Risklerde Aksiyon Planına Dahil Edilir

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Zeki Optimizasyon Teknikleri

C# Örnek Uygulamalar I

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

C Programlama Dili (MCS116) Ders Detayları

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

Transkript:

YZM 3207- ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

Algoritma Analizi Çerçevesi Algoritma Analizinde Göz Önünde Bulundurulması Gerekenler Neler? Algoritmanın Doğruluğu (Correctness) Zaman Verimliliği (Time Efficiency) Bellek Alanı Verimliliği (Space Efficiency) Gelişen donanım teknolojisi ile artık çok önemli değil Uygunluk, en iyilik (Optimality)

Algoritma Analizi Çerçevesi Girdi Büyüklüğünün Ölçülmesi Çalışma Zamanı Ölçü Biriminin Belirlenmesi Büyüme Derecesi (Order of Growth) En kötü durum, en iyi durum, ortalama durum değerlendirmeleri

Girdi Büyüklüğünün Ölçülmesi Girdi Büyüklüğünün Ölçülmesi Tüm algoritmalar için büyük girdiler üzerinde çalışma süresi daha uzundur Büyük dizi içinde arama Büyük boyutlu matrisleri çarpma Algoritmaya girilen veriyi belirten n değerinin belirlenmesi önemli Bazı algoritmalar için kolay Arama, sıralama, eleman sayısı bulma Bazı algoritmalar için değil İki matrisin çarpımı» Matrislerin derecesi mi? Eleman Sayıları mı? Yazım hatası programı» Karakter Sayısı mı? Kelime Sayısı mı?

Çalışma Zamanı Ölçü Biriminin Belirlenmesi Bir Algoritmanın Çalışma Zamanı Çalıştığı bilgisayar sisteminin hızı Algoritmanın kullanıldığı programın kalitesine Makine kodunu üreten derleyici gibi etkenlere bağımlıdır Bu yüzden dış etkenlere bağımlı olmayan bir ölçüm yolu bulunmalıdır Bir yaklaşım: Algoritma içerisindeki tüm işlemlerin kaç kere gerçekleştiğinin sayılması Zor ve Gereksiz Bir diğer yaklaşım: Algoritma içerisindeki temel işlemin belirlenip, kaç kere gerçekleştiğinin sayılması

Çalışma Zamanı Ölçü Biriminin Belirlenmesi Zaman verimliliğinin teorik incelenmesi Zaman verimliliği girdi üzerindeki temel işlemin tekrar sayısı üzerinden değerlendirilir Temel işlem Algoritmanın çalışma süresince en çok gerçekleştirilen işlem

Çalışma Zamanı Ölçü Biriminin Belirlenmesi Temel işlemin belirlenmesi Genellikle en çok gerçekleşen işlem Genellikle en iç döngüde yapılan işlem Sıralama algoritmaları için karşılaştırma Matematiksel işlemler için genellikle 4 işlem / en uzun işlem, sonra *, + ve

Çalışma Zamanı Ölçü Biriminin Belirlenmesi c op : Bir algoritmanın temel işleminin bir bilgisayardaki çalışma süresi C(n) : Temel işlemin gerçekleşme sayısı T(n) : Algoritmanın uygulandığı programın çalışma süresi T(n) c op C(n) Bu formülün yaklaşık ve tahmini bir değer verdiği unutulmamalı

Çalışma Zamanı Ölçü Biriminin Belirlenmesi T(n) c op C(n) Bu programı 10 kat hızlı bir bilgisayarda çalıştırsak ne kadar hızlı sonuç alırız? Cevap : 10 kez ise girdiyi iki kat büyütürsek çalışma zamanı ne kadar artar?

Büyüme Derecesi Büyüme derecesi Küçük girdi boyutları ile bir algoritmanın etkinliğinin değerlendirilmesi sağlıklı değil

En İyi, En Kötü, Ortalama Durum En kötü durum n boyutunda girdi üzerinden en yüksek değer En iyi durum n boyutunda girdi üzerinden en düşük değer Ortalama durum n boyutunda girdi için «ortalama» değer Tipik bir girdi için temel işlemin kaç kere olduğu En kötü ile en iyinin ortalaması değil Temel işlem sayısı olarak bir olasılık dağılımı içerisinden rastgele bir değişken değeri beklenir

En Kötü Durum Sıralı arama için En kötü durum: Aranan değerin dizide bulunmaması N boyutunda girdi için maksimum sayıda karşılaştırma C worst (n) = n En kötü durum incelemesi bir algoritmanın çalışma zamanı açısından üst sınırını belirler

En İyi Durum İncelemesi Sıralı arama için En iyi durum: Aranan değerin ilk karşılaştırmada bulunması N boyutunda girdi için maksimum sayıda karşılaştırma C best (n) = 1 En iyi durum incelemesi en kötü durum kadar önemli bir veri sağlamaz.

Ortalama Durum İncelemesi En iyi durum incelemesi de en kötü durum incelemesi de bir algoritmayı değerlendirmek için yeterli veri sağlamaz Algoritmanın tipik veya rastgele bir girdi karşısındaki davranışı?

Ortalama Durum İncelemesi Sıralı arama için Standart kabule göre başarılı bir aramanın olasılığı p (0<=p<=1) İlk karşılaştırmada bulma olasılığı her hangi bir i değeri için aynı. (p/n) Bulunamama olasılığı n.(1-p)

Ortalama Durum p=1 ise (Başarılı arama) C avg (n) = (n+1) / 2 olur. Bu durum başarılı bir aramda algoritmanın ortalama olarak dizinin yarısına kadar aranan elemanı bulacağı kabul edilir.

1. n elemanın toplamı 2. n! değerinin hesaplanması 3. n elemanlı dizinin en büyük elemanının bulunması 4. Öklid in EBOB algoritması 5. n*n boyutlu iki matrisin toplanması 6. n*n boyutlu iki matrisin çarpımı Yukarıdaki algoritmaların temel işlemlerini ve gerçekleşme sayılarını bulunuz. C(n) Sıralı aramayı aranan verinin yer aldığı indis listesi veren versiyonunu tasarlayıp(birden fazla kez yer alma durumu), verimliliğini klasik sıralı aramayla karşılaştırın. (C(n), T(n), En kötü, en iyi durumlar)

Büyüme Derecesinin Asimptotik İncelemesi Algoritma verimliliğinin değerlendirilmesinde büyüme derecesi temel işlemin gerçekleşme sayısı ile ilgilidir Büyüme derecesi değerlendirilirken 3 farklı notasyon kullanılır O (Big Oh) Ω (Big Omega) Θ (Big Theta)

Big Oh Notasyonu O(g(n) : Bir g(n) fonksiyonu ile aynı veya daha düşük büyüme derecesine sahip fonksiyonların tümü Bir sabit katsayı ve n değeri sonsuza giderken

Big Oh Notasyonu

Big Oh Notasyonu Bir t(n) fonksiyonu için O(g(n)) içerisindedir diyebilmek için (- t (n) O(g(n)) -) T(n), Daha büyük n değerleri için üstten, sabit çarpanlı bir g(n) fonksiyonu ile sınırlandırılmış olmalıdır. Pozitif sabit katsayı c, n 0 negatif olmayan bir tamsayı ise t (n) cg(n), n n 0 ise 100n + 5 O(n 2 ) için ispat 100n + 5 100n + n, n 5 ise 100n + 5 101n 101n 101n 2 c = 101, n 0 = 5 alınabilir

Big Omega Notasyonu Ω(g(n)) Bir g(n) fonksiyonu ile aynı veya daha büyük büyüme derecesine sahip fonksiyonların tümü Bir sabit katsayı ve n değeri sonsuza giderken

Big Omega Notasyonu

Big Omega Notasyonu Bir t(n) fonksiyonu için Ω(g(n)) içerisindedir diyebilmek için (- t (n) Ω (g(n)) -) T(n), Daha büyük n değerleri için alttan, sabit çarpanlı bir g(n) fonksiyonu ile sınırlandırılmış olmalıdır. Pozitif sabit katsayı c, n 0 negatif olmayan bir tamsayı ise t (n) cg(n), n n 0 ise n 3 Ω(n 2 ) ispatı için n 3 n 2, n 0 ise c = 1, n 0 = 0 alınabilir

Big Theta Notasyonu Θ(g(n)) Bir g(n) fonksiyonu ile aynı büyüme derecesine sahip fonksiyonların tümü Bir sabit katsayı ve n değeri sonsuza giderken an 2 + bn + c, a > 0 ise Θ(n 2 ) içerisindedir

Big Theta Notasyonu

Big Theta Notasyonu Bir t(n) fonksiyonu için Θ (g(n)) içerisindedir diyebilmek için (- t (n) Θ (g(n)) -) t(n), Daha büyük n değerleri için alttan ve üstten, sabit çarpanlı bir g(n) fonksiyonu ile sınırlandırılmış olmalıdır. Pozitif sabit katsayı c 1 ve c 2, n 0 negatif olmayan bir tamsayı ise c 2 g(n) t (n) c 1 g(n), n n 0 ise

Asimptotik Büyüme Derecesi İçin Bazı Özellikler f(n) O(f(n)) f(n) O(g(n)), eğer g(n) (f(n)) Eğer f (n) O(g (n)) ve g(n) O(h(n)), ise f(n) O(h(n)) If f 1 (n) O(g 1 (n)) ve f 2 (n) O(g 2 (n)), ise f 1 (n) + f 2 (n) O(max{g 1 (n), g 2 (n)})

Büyüme Derecelerinin Karşılaştırılması O, Ω, ve Θ yaklaşımları tanımlarının birbirinden bağımsız olması sebebiyle iki fonksiyonun büyüme derecelerinin karşılaştırılmasında pek kullanılmaz Bu işlem için iki fonksiyonlarının oranının sonsuza giderken limit yaklaşımı daha uygundur

Limit Yöntemi İle Karşılaştırma 0 t(n) büyüme derecesi < g(n) büyüme derecesi c > 0 t(n) büyüme derecesi = g(n) büyüme derecesi t(n) büyüme derecesi > g(n) büyüme derecesi İlk iki durum : t (n) O(g(n)), İkinci durum : t (n) Θ(g(n)) Son iki durum : t (n) Ω(g(n)),

Limit Yöntemi İle Karşılaştırma L Hôpital Kuralı: Eğer lim n f(n) = lim n g(n) = ve f, g türevleri varsa Çok büyük n değerleri için Stirling Formülü

Örnek 1 n n 1 ile 2 n2 fonksiyonlarının büyüme derecelerini karşılaştırınız Sonuç sabit olduğu için eşit büyüme derecelerine sahipler

Örnek Log 2 n ve n fonksiyonlarının büyüme derecelerini karşılaştırınız. Log 2 n büyüme derecesi daha küçüktür

Örnek n! ve 2 n fonksiyonlarının büyüme derecelerini karşılaştırınız n! Daha hızlı büyümektedir. n! Ω(2 n )

Örnek 1 constant log n n n log n n 2 n 3 logarithmic linear linearithmic quadratic cubic 2 n exponential n! factorial