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

Benzer belgeler
Algoritmalar ve Karmaşıklık

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

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

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

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

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İ

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

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

YZM 2116 Veri Yapıları

Alıştırma 1: Yineleme

VERİ YAPILARI VE PROGRAMLAMA

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

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

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

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

(m+2) +5<0. 7/m+3 + EŞİTSİZLİKLER A. TANIM

BÖLÜM 6. ÇEŞİTLİ KONULARDA ALGORİTMA VE AKIŞ ŞEMALARI

ESKİŞEHİR OSMANGAZİ ÜNİVERSİTESİ

İleri Yöneylem Araştırması Uygulamaları Tam Sayılı Programlama

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

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

YZM 2116 Veri Yapıları

GAP (Grup, Algoritma ve Programlama)

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

LYS MATEMATİK DENEME - 1

KONU 4: DOĞRUSAL PROGRAMLAMA MODELİ İÇİN ÇÖZÜM YÖNTEMLERİ I

KPSS MATEMATÝK. SOYUT CEBÝR ( Genel Tekrar Testi-1) N tam sayılar kümesinde i N için, A = 1 i,i 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);

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

O NOTASYONU. Abdullah Gazi Emre DAĞLI

Zeki Optimizasyon Teknikleri

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

Zeki Optimizasyon Teknikleri

Yrd. Doç. Dr. A. Burak İNNER

BÖLÜM 1 1. ALGORİTMALAR Algoritmanın Tanımı, Matematikteki Yeri ve Önemi

Algoritma Hazırlama. Programlama. nereden başlamalı? ALGORİTMA VE PROGRAMLAMA Öğr.Gör.Günay TEMUR

FONKSİYONLAR. Örnek: (2x-2,y-3)=(10,-3) olduğuna göre x ve y sayılarını bulunuz.

Ağaç (Tree) Veri Modeli

Mantıksal çıkarım yapmak. 9 ve üzeri

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

ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU

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

HOMOGEN OLMAYAN DENKLEMLER

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

Cebir Notları. Gökhan DEMĐR, ÖRNEK : A ve A x A nın bir alt kümesinden A ya her fonksiyona

BMT 206 Ayrık Matematik. Yük. Müh. Köksal GÜNDOĞDU 1

Değişken içeren ve değişkenlerin belli değerleri için doğru olan cebirsel eşitliklere denklem denir.

Şimdi de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor. teoreminini iki kere kullanarak

Altın Oran Arama Metodu(Golden Search)

Problem Set 1 Çözümler

VERİ YAPILARI VE PROGRAMLAMA (BTP104)

10.Konu Tam sayıların inşası

Arama Algoritmaları. Doğrusal Arama ve Binary Arama

Apriori Algoritması. Konu İçeriği. Giriş. Tarihçesi. Apriori Nedir? Örnekler. Algoritma. Açıklama. Weka İle Kullanımı. Kaynakça.

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

Taşkın, Çetin, Abdullayeva

{\} /\ Suhap SAHIN Onur GÖK

İç-Çarpım Uzayları ÜNİTE. Amaçlar. İçindekiler. Yazar Öğr. Grv. Dr. Nevin ORHUN

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

ALGORİTMA İ VE PROGRAMLAMA

Elemanter fonksiyonlarla yaklaşım ve hata

BIL222 Veri Yapıları ve Algoritmalar

YZM 2116 Veri Yapıları

13.Konu Reel sayılar

BIP116-H14-1 BTP104-H014-1

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

Otomata Teorisi (BİL 2114)

Pratik Ara Sınav 1 Çözümleri

ALGORİTMA VE PROGRAMLAMA I

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

a.c = 48 3a + 2b c = 37 ise, a nın alacağı en küçük değer kaçtır?

Bilgisayar Programlamaya Giriş I KAREKÖK BULMA Acaba hesap makinesi bir sayının karekökünü nasıl buluyor? başlangıç değeri olmak üzere,

MATM 133 MATEMATİK LOJİK. Dr. Doç. Çarıyar Aşıralıyev

BLGM BÖLÜM. Problem Çözme Kavramları (Algoritma ve Akış Şemaları)

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER

Concept Learning. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ. Yapay Zeka - Kavram Öğrenme

Final Sınavı Örnek Soruları Bahar 2018

(a,b) şeklindeki ifadelere sıralı ikili denir. Burada a'ya 1. bileşen b'ye 2. bileşen denir.

TÜREV VE UYGULAMALARI

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

Örnek 1: 2 x = 3 x = log 2 3. Örnek 2: 3 2x 1 = 2 2x 1 = log 3 2. Örnek 3: 4 x 1 = 7 x 1 = log 4 7. Örnek 4: 2 x = 3 2 x 2 = 3

6 Devirli Kodlar. 6.1 Temel Tan mlar

Gezgin Satıcı Probleminin İkili Kodlanmış Genetik Algoritmalarla Çözümünde Yeni Bir Yaklaşım. Mehmet Ali Aytekin Tahir Emre Kalaycı

Tanım Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki. boş karakter dizgisi (null string) denir ve l ile gösterilir.

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

YÖNEYLEM ARAŞTIRMASI - III

Yrd. Doç. Dr. Caner ÖZCAN


( 2x+1, 3y 1. Örnek...4 : A = {1, 2, 3} ve B = {a, b} kümeleri için, AxB ve BxA kümelerini liste biçimde yazınız.

BİL1001 Bilgisayar Bilimlerine Giriş 1

YZM 2116 Veri Yapıları

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

Sınav Dağılım & IMKB Endeks

6. loga log3a log5a log4a. 7. x,y R olmak üzere;

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

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

Lineer Dönüşümler ÜNİTE. Amaçlar. İçindekiler. Yazar Öğr. Grv.Dr. Nevin ORHUN

ÜNİTE 1: TEMEL KAVRAMLAR

Transkript:

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

Algoritmaların Özellikleri Algoritmalar Input Girdi, bir kümedir, Output ÇıkF, bir kümedir (çözümdür) Definiteness Kesinlik (algoritmanın adımlarının belirli olması), Correctness Doğruluk (bütün girdiler için algoritmanın tanımlı olması), Finiteness Sonluluk (çalışma adımlarının sonlu olması), Effec3veness Verimlilik (Her adımın ve sonuca ulaşan yolun) Generality Genellenebilirlik (bir problem kümesi için). 2

Örnek Kaba Kod (pseudocode, müsveue kod). Örnek: Bir kümede bulunan en büyük değeri bulan kod procedure max(a 1, a 2,, a n : integers) max := a 1 for i := 2 to n if max < a i then max := a i {max en büyük elemandır} 3

Örnek 2 Doğrusal arama (linear search): Verilen bir girdi içerisinde baştan sona kadar elemanlara teker teker bakarak bir elemanın aranması procedure linear_search(x: integer; a 1, a 2,, a n : integers) i := 1 while (i n and x a i ) i := i + 1 if i n then konum := i else konum := 0 {konum, aranan elemanın sırasını göstermektedir, şayet 0 ise aranan eleman bulunamamışfr} 4

Örnek 3 Şayet aranan liste sıralı ise ikili arama (binary search) daha iyi sonuç verir Sayı oyunu 5

Algorithm Examples procedure binary_search(x: integer; a 1, a 2,, a n : integers) i := 1 {i arama aralığının sol sınırı} j := n {j arama aralığının sağ sınırı} while (i < j) begin m := (i + j)/2 if x > a m then i := m + 1 else j := m end if x = a i then konum := i else konum := 0 {konum aranan x değerinin bulunduğu konumu gösterir, şayet 0 ise aranan x değeri bulunamamışfr} 6

Karmaşıklık (Complexity) Şayet girdi küçükse hajza (Space) ve zaman (kme) karmaşıklıkları çok önemli değildir. Örneğin n = 10, için ikili veya doğrusal arama kullanılması çok önemli değildir ama n = 2 30 gibi eleman sayılarında aralarında yıllarca fark olabilir. 7

Karmaşıklık Örneğin, aynı problemi çözen A ve B gibi iki farklı algoritma olsun. A için zaman karmaşıklığı 5,000n, ve B için 1.1 n olsun. n = 10 için A algoritması 50,000 adımda biterken, B sadece 3, adımda bitmektedir. B çok daha iyidir denebilir mi? n = 1000 için A 5,000,000 adımda biterken B requires 2.5 10 41 adımda bitmektedir. Peki hangisi iyidir? 8

Karmaşıklık A, büyük veri kümeleri için de kullanışlıyken B nin kullanılamayacağı anlaşılmaktadır. Karmaşıklığın büyümesi (growth) çok daha önemlidir. Algoritmaların karşılaşfrılması için algoritmaların zaman ve hajza karmaşıklıklarındaki büyüme karşılaşfrılır. 9

Karmaşıklık A ve B algoritmalarının karmaşıklıkları Girdi Boyu n 10 100 1,000 1,000,000 Algoritma A 5,000n 50,000 500,000 5,000,000 5 10 9 Algoritma B 1.1 n 3 13,781 2.5 10 41 4.8 10 41392 10

Bir fonksiyonun büyümesi (Growth) Fonksiyonların büyüme hızını matemakkte big-o olarak ifade edilen fonksiyon gösterir. Tanım: f ve g fonksiyonları reel sayılardan reel sayılara tanımlı iki fonksiyon olsun. f(x) fonksiyonu için c ve k sabit olmak üzere O(g(x)) aşağıdaki şekilde tanımlanır f(x) c g(x) +k x > k olmak koşuluyla 11

Fonksiyonların Büyümesi Karmaşıklık fonksiyonlarının büyümesini karşılaşfrırken, f(x) ve g(x) fonksiyonları her zaman pozikf kabul edilir (neden?). Dolayısıyla gösterim sadeleşkrilebilir f(x) C g(x)+k,x > k şarf ile. Şayet f(x) in O(g(x)) olduğunu göstermek iskyorsak bunu sağlayan bir (C,k) ikilisi bulmamız yeterlidir. 12

Örnek f(x) = x 2 + 2x + 1 fonksiyonunun büyüme fonkisyonunun x 2 olduğunu (yani O(x 2 ) olduğunu) gösteriniz x > 1 için (bu aynı zamanda x>k): x 2 + 2x + 1 x 2 + 2x 2 + x 2 x 2 + 2x + 1 4x 2 Öyleyse C = 4 ve k = 1 için: f(x) Cx 2 +k, x > k durumu sağlanır. f(x) is O(x 2 ). 13

Fonksiyonların Büyüme Soru: Şayet f(x) için O(x 2 ) dir deniyorsa aynı zamanda O(x 3 ) tür de denebilir mi? Evet. x 3 fonksiyonu x 2 den daha hızlı büyür dolayısıyla x 3 fonksiyonu da f(x) den daha hızlı büyüyecekkr. Ancak karşılaşfrma yapabilmek için her zaman bulunabilecek en küçük büyüme fonksiyonunu bulmak isteriz. 14

Fonksiyonların Büyümesi Sık karşılaşılan fonksiyonlar: n log n, 1, 2 n, n 2, n!, n, n 3, log n En yavaştan hızlıya doğru sıralanmış hali: 1 log n n n log n n 2 n 3 2 n n! 15

Uysal Karmaşıklık Polinom zamanda çözülebilen algoritmalara uysal (tractable) ismi verilir. Polinom zamandan daha hızlı büyüyen fonksiyonlara uysal olmayan (untractable) ismi verilir. 16

Örnek 1 Aşağıdaki algoritma ne işe yarar? Procedure gizemli(a 1, a 2,, a n : integers) m := 0 for i := 1 to n-1 for j := i + 1 to n if a i a j > m then m := a i a j {m verilen girdideki herhangi iki sayı arasındaki en uzak mesafeyi verir} KarşılaşFrma: n-1 + n-2 + n-3 + + 1 = (n 1)n/2 = 0.5n 2 0.5n Zaman karmaşıklığı O(n 2 ). 17

Örnek 2 Aynı problemi çözen farklı bir algoritma procedure max_diff(a 1, a 2,, a n : integers) min := a1 max := a1 for i := 2 to n if a i < min then min := a i else if a i > max then max := a i m := max - min KarşılaşFrma Sayıları: 2n - 2 Zaman Karmaşıklığı O(n). 18