İleri Algoritma Analizi

Slides:



Advertisements
Benzer bir sunumlar
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Advertisements

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ı

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?
HİPOTEZ TESTLERİNE GİRİŞ 1. Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
CSS ile Konumlandırma Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu.
Hopfield Ağı Ayrık zamanSürekli zaman Denge noktasının kararlılığı Lyapunov Anlamında kararlılık Lineer olmayan sistemin kararlılığı Tam Kararlılık Dinamik.
Greedy Algorithms.
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
O R T L G İ M A A Ve Problem çözme.
OLASILIK TEOREMLERİ Permütasyon
DİRENÇ. Cisimlerin elektrik akımını geçirirken gösterdiği zorluğa direnç denir. Birimi ohm olup kısaca R ile gösterilir. Devredeki her elemanın direnci.
MATEMATİK PROJE ÖDEVİ Adı-Soyadı:Nihat ELÇİ Sınıfı-Numarası:7/C 1057
HİPOTEZ TESTLERİNE GİRİŞ Şu ana kadar örneklemden elde edilmiş istatistiklerden yararlanarak, kitle parametresini kestirebilmek için nokta tahmini.
İleri Excel Formüller 2 Fuat TOSUN.
Öğr. Gör. Dr. İnanç GÜNEY Adana MYO
BİLGİSAYAR PROGRAMLAMA DERSİ
PROGRAMLI ÖĞRETİM Tanımı:
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
TAM SAYILAR.
Tüm ikililer arasında en kısa yollar
BM-103 Programlamaya Giriş Güz 2016 (7. Sunu)
Veri Yapıları ve Algoritmalar
Öğr. Gör. Mehmet Ali ZENGİN
ÖZDEŞLİKLER- ÇARPANLARA AYIRMA
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
DOĞAL SAYILAR TAM SAYILAR
Ünite 9: Korelasyon Öğr. Elemanı: Dr. M. Cumhur AKBULUT.
- Sağlama - Kısa yoldan Çarpmalar
. . AÇILAR ..
İleri Algoritma Analizi
BİRİNCİ DERECEDEN İKİ BİLİNMEYENLİ DENKLEMLER
Derinlik öncelikli arama (Depth-first Search(DFS))
X-IŞINLARI KRİSTALOGRAFİSİ
Çözülemiyen Matematik Soruları
İleri Algoritmalar 2. ders.
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
KİMYASAL BAĞLAR.
Çizge Teorisi ve Algoritmaları
İleri Algoritma Analizi
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
İleri Algoritma Analizi
Teknoloji Fakültesi Mekatronik MTM326 Veri Toplama ve İşleme
Çizge Teorisi ve Algoritmalari
İleri Algoritma Analizi
Benzetim 11. Ders İmalat Yönetimde Benzetim.
B+-Ağaçları.
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
X-IŞINLARI KRİSTALOGRAFİSİ
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Çizge Algoritmaları.
İleri Algoritma Analizi
Bilgisayar Mühendisliğine Giriş
Sonlu Özdevinirlere Giriş
NİŞANTAŞI ÜNİVERSİTESİ
İKİNCİ DERECEDEN DENKLEMLER
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
İleri Algoritma Analizi
Derse giriş için tıklayın...
İleri Algoritma Analizi
Kesikli Olay benzetimi Bileşenleri
Ders 9: İkili arama ağaçları
8. Ders Tüm ikililer arasında en kısa yollar
Chapter 6 Transform-and-Conquer
NİŞANTAŞI ÜNİVERSİTESİ
Çizge Algoritmalari 6. ders.
Prof. Dr. Halil İbrahim Karakaş
Bilimsel araştırma türleri (Deneysel Desenler)
Sunum transkripti:

İleri Algoritma Analizi Ders11: Algoritma problemleri Prof. Dr. Şahin EMRAH İleri Algoritma Analizi

Problem1 n>=1 tam sayı, x de 1<=x<=n koşuluna uyan bilinmeyen bir sayıdır. Bu x sayısını 1<=i<=n olmak üzere mümkün oldukça az x<=i türü karşılaştırma yaparak bulmak gerekir. (örneğin, n=10 olsun. Kullanıcıya 1<=x<=10 koşuluna uyan bir x sayısı düşün diyoruz ve kullanıcıya evet veya hayır yanıtı verebileceği sorular soruyoruz. x<=7 mi Evet x<=4 mü Hayır x<=6 mı Evet x<=5 mi Hayır cevap 6). Aşağıdaki 3 durum için en kötü durumda da log2n den daha az karşılaştırma yapan ve ikili arama algoritmasına benzer bir algoritma yazınız ve sonra en kötü durum için karşılaştırma sayısını tam olarak bulunuz. x tek sayıdır. x=y2 ve y tam sayıdır. x=2y ve y pozitif tam sayıdır.

Çözüm

Problem2 n x n boyutlu M matrisi n2 sayıda farklı tam sayılardan oluşmuştur. Bu matrisin her satırı soldan sağa ve her sütunu yukarıdan aşağıya artan sıralıdır. x sayısı M in bir elemanı olsun. M de x in yerini bulmak için verimli bir algoritma tasarlayınız. Algoritmanızın en kötü durumdaki karşılaştırma sayısını bulunuz.

Çözüm

Çözüm (devam)

Problem3 A dizisi sıralı olmayan n (n≥4) tane farklı sayıdan oluşan n elemanlı bir dizidir ve bu dizinin terimleri arasında n den çok büyük pozitif tam sayılar da vardır. Bu dizinin 2 en büyük ve 2 en küçük elemanını bulabilen verimli bir algoritma tasarlayınız. Algoritmanızın en kötü durumdaki karşılaştırma sayısını kesin olarak bulunuz.

Çözüm

Çözüm devam Örnek. Algoritmayı 16 elemanlı 1,2,3,...16 dizisine uygulayalım. İlk turda komşu sayıları karşılaştıralım. Bu durumda 8 karşılaştırma sonucunda “Büyükler”={2,4,6,8,10,12,14,16} ve “küçükler”={1,3,5,7,9,11,13,15} kümelerini belirleriz. “Büyükler” arasında eleme usulü turnuva (2<4, 6<8, 10<12, 14<16 sonra 4<8, 12<16 sonra 8<16) ile 7 karşılaştırma ile “şampiyon” olarak 16 yı buluruz. 16 nın elediği sayılar {15, 14, 12, 8} arasında 3 karşılaştırma ( 14<15, 8<12, 12<15) yaparak 2.büyük sayı olan 15 i buluruz. Benzer olarak “küçükler” arasındaki minimum sayıyı bulmak için eleme usulü turnuva (1<3, 5<7, 9<11, 13<15 sonra 1<5, 9<13 sonra 1<9) ile 7 karşılaştırma ile “şampiyon” olarak 1 i buluruz. 1 in elediği sayılar {2, 3, 5, 9} arasında 3 karşılaştırma ( 2<3, 5<9, 2<5) yaparak 2. Küçük sayı olan 2 yi buluruz. Toplam 28 karşılaştırma oldu.

Problem4

Çözüm Önce SELECT algoritmasının yardımıyla A dizisinin medianını buluruz. (Dizide esas eleman varsa bu eleman median olmalıdır.) Sonra da diziyi baştan sona tarayarak (örneğin, bir for döngüsü ile) bu dizide medianın kaç defa geçtiğini sayarız. Eğer en az defa geçiyorsa median esas elemandır, aksi durumda esas eleman yoktur. Algoritmanın işlem süresi Θ(n)+Θ(n)=Θ(n) dir. (SELECT algoritmasının işlem süresi+döngünün çalışma süresi)

Problem 5 A dizisi artan sıralı n tane farklı tam sayıdan oluşan bir dizidir. A[i]=i koşuluna uyan elemanı bulabilen (eğer böyle bir eleman varsa) verimli bir algoritma tasarlayınız. Algoritmanızın işlem süresini bulunuz.

Çözüm

Problem6 A[1...n] dizisinin elemanları [1, n] aralığından olan farklı tam sayılardır. Eğer A[i1]=i2, A[i2]=i3,...A[ik-1]=ik ve A[ik]=i1 ise (i1,i2, ...ik) indisler dizisine k uzunluklu döngü denir. Bir i için A[i]=i ise (i) 1 uzunluklu döngüdür. Örneğin, 4, 6, 3, 5, 8, 7, 2, 1 dizisinde (1, 4, 5, 8) dizisi 4- uzunluklu döngüdür. Bu dizide (2, 5, 7) dizisi 3 uzunluklu ve (3) ise 1 uzunluklu döngülerdir. Yani bu dizide 3 adet döngü vardır. Verilen bir dizinin döngü sayısını bulabilen verimli bir algoritma tasarlayınız. Algoritmanızın işlem süresini bulunuz.

Çözüm. İlk elemandan başlarız, sonra bu dizinin bu elemanının değeri olan indise gideriz. Başladığımız indise geri döndüğümüzde döngü sayısını tuttuğumuz sayacı bir artırırız ve 2. elemana geçeriz. Eğer bu elemanda daha önceden bulunmadıysak aynı algoritmayı bu elemana uygularız, bulunduysak, gezinmediğimiz elemanı bulana kadar veya tüm indislere gidilene kadar indisi bir artırırız. Gezindiğimiz indislerin bilinmesi için değerleri 1 veya 0 olan n boyutlu bir B dizisi kullanırız. Dizinin her elemanına sadece bir defa bakıldığına göre işlem süresi O(n) olur.

Problem7 A dizisi n (n≥5) tane farklı çok büyük pozitif tam sayıdan oluşan bir dizidir. Aşağıdaki problemlerin her biri için en kötü durumda karşılaştırma sayısının en az olduğu verimli bir algoritma tasarlayınız. Algoritmanızın en kötü durumdaki karşılaştırma sayısını bulunuz. Dizinin en büyük veya en küçük olmayan bir elemanını bulunuz. Dizinin en büyük veya 2. en büyük veya en küçük veya 2. en küçük olmayan bir elemanını bulunuz. 1≤k≤n/2 koşuluna uyan k sayısı için dizinin ilk k en büyük veya ilk k en küçük elemanı arasında olmayan bir elemanını bulunuz.

Çözüm. a) 1. , 2. ve 3. elemanları birbiri ile karşılaştırarak ortanca (birinden büyük, diğerinden küçük olan) elemanı buluruz. Bu eleman istenen koşulu sağlar. Sadece 3 karşılaştırma yaptığımıza göre işlem süresi O(1) olur. b) İlk 5 elemanı bir biriyle karşılaştırarak ortanca (ikisinden büyük, diğer ikisinden küçük olan) elemanı buluruz. Bu eleman istenen koşulu sağlar. Sadece 10 karşılaştırma yaptığımıza göre işlem süresi O(1) olur. c) SELECT algoritmasını kullanarak (k+1). istatistiği buluruz. Bu eleman k elemandan büyüktür, n-k-1 elemandan küçüktür. k<n/2 olduğundan k+1≤n/2, buradan da n-k-1=n-(k+1)≥n-n/2=n/2>k olur. Yani (k+1). istatistik istenen koşulu sağlar. SELECT algoritmasının işlem süresi O(n) dir.

Problem 8 Bir x pozitif tamsayısı ve ikisi de doğal sayılardan oluşan ve artan sıralı n elemanlı A ve B dizileri veriliyor. (x ve dizilerin elemanları çok büyük sayılar olabilirler.) A[i]+B[j]=x koşuluna uyan A[i] ve B[j] sayılarını bulabilen (eğer varsa) verimli bir algoritma tasarlayınız. Algoritmanızın en kötü durumdaki işlem sayısını bulunuz.

Çözüm A yı baştan, B yi sondan başlayarak A[i] +B[j] ile x i karşılaştırırız. (Yani i nin başlangıç değeri 1, j nin başlangıç değeri n dir). Eğer eşit çıkarsa bulundu. Küçük çıkarsa A nın bir sonraki elemanı (yani i yi bir artırırız) ile B[j] nin toplamını x ile karşılaştırırız. Büyük çıkarsa A[i] ile B nin bir önceki elemanının toplamını x ile karşılaştırırız. (yani j yi bir azaltırız.) Karşılaştırma sayısı en fazla 2n-1 olur, yani işlem süresi O(n) dir.