Problem Set 1 Çözümler



Benzer belgeler
Algoritmalara Giriş 6.046J/18.401J DERS 2

Pratik Ara Sınav 1 Çözümleri

Ara Sınav 1. Algoritmalara Giriş 14 Ekim 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Kitapçık 14

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

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

Algoritmalara Giriş Ekim 17, 2005 Massachusetts Institute of Technology Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 15.

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

Problem Seti 2 Çözümler

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

Algoritmalara Giriş 6.046J/18.401J

Algoritmalara Giriş Ekim 10, 2005 Massachusetts Institute of Technology Professors Erik D. Demaine ve Charles E. Leiserson. Problem Seti 3 Çözümler

Algoritmalara Giriş J/18.401J Ders 15. Dinamik Programlama En uzun ortak altdizi En uygun altyapı Altproblemlerin çakışması

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);

Algoritmalara Giriş. Prof. Erik Demaine. November 16, 2005 Copyright by Erik D. Demaine and Charles E. Leiserson L18.1

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

Problem Seti 4 Çözümler

6.046J/18.401J DERS 7 Kıyım Fonksiyonu (Hashing I) Prof. Charles E. Leiserson

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

Algoritmalar. DERS 7 Dengeli Arama Ağaçları Kırmızı-siyah ağaçlar Kırmızı-siyah ağacın yüksekliği Rotation / Dönme Insertion / araya yerleştirme

Algoritmalara Giriş Ekim 31, 2005 Massachusetts Institute of Technology Professors Erik D. Demaine ve Charles E. Leiserson Dağıtım 19.

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

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

Pratik Final Sınavı Çözümleri 2

Algoritmalara Giriş. Prof. Erik Demaine. September 26, 2005 Copyright Erik D. Demaine and Charles E. Leiserson L5.1

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

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

Algoritmalara Giriş 6.046J/18.401J

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

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İ

Algoritmalar ve Karmaşıklık

Algoritmalara Giriş 6.046J/18.401J

Selection Sort Insertion Sort

YZM 2116 Veri Yapıları

YMT316 Algoritma Analizi

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

Algoritmalara Giriş Kasım 7, 2005 Massachusetts Institute of Technology Profesör Erik D. Demaine ve Charles E. Leiserson Dağıtım 22.

Ö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

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

12.Konu Rasyonel sayılar

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

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

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

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

Alıştırma 1: Yineleme

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

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

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

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

köşe (vertex) kenar (edg d e)

BÖLÜM 9 ÇÖZÜLMESİ ÖNERİLEN ÖRNEK VE PROBLEMLER

Cahit Arf Matematik Günleri XIII

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

T I M U R K A R A Ç AY - H AY D A R E Ş C A L C U L U S S E Ç K I N YAY I N C I L I K A N K A R A

2 şeklindeki bütün sayılar. 2 irrasyonel sayısı. 2 irrasyonel sayısından elde etmekteyiz. Benzer şekilde 3 irrasyonel sayısı

13.Konu Reel sayılar

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

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

Algoritmalar. Ders 14 En Kısa Yollar II Bellman-Ford algoritması Floyd-Warshall algoritması

B Ö L Ü M. ve kitaplar yayınlamış olan bir bilim adamıdır. 2 JULIUS WILHELM RICHARD DEDEKIND ( ), Gauss un öğrencilerinden biridir.

SORULAR. 2. Noktaları adlandırılmamış 6 noktalı kaç ağaç vardır? Çizerek cevaplayınız.

OPTİMİZASYON TEKNİKLERİ. Kısıtsız Optimizasyon

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

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

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

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

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

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

ULAŞTIRMA MODELİ VE ÇEŞİTLİ ULAŞTIRMA MODELLERİ

Özyineleme (Recursion)

Fatih University- Faculty of Engineering- Electric and Electronic Dept.

ULAŞTIRMA MODELİ VE ÇEŞİTLİ ULAŞTIRMA MODELLERİ

1.GRUPLAR. c (Birleşme özelliği) sağlanır. 2) a G için a e e a a olacak şekilde e G. vardır. 3) a G için denir) vardır.

Doğrusal Denklem Sistemlerini Cebirsel Yöntemlerle Çözme. 2 tişört + 1 çift çorap = 16 lira 1 tişört + 2 çift çorap = 14 lira

Problem Seti 7 Çözümleri

1. GRUPLAR. c (Birleşme özelliği) sağlanır. 2) a G için a e e a a olacak şekilde e G (e ye birim eleman denir) vardır.

Robot İzleme (Robot Tracing)

olsun. Bu halde g g1 g1 g e ve g g2 g2 g e eşitlikleri olur. b G için a b b a değişme özelliği sağlanıyorsa

Final sınavı konularına aşağıdaki sorular dahil değildir: 1, 2, 3, 4, 5, 6, 7, 19, 20, 21, 25, 27, 28, 29, 30, 33-b.

11.Hafta En kısa yollar I-II-III Devam. Negatif Ağırlıklı En Kısa Yollar Doğruluk Çözümleme

Algoritma Analizi Big O

Problem Seti 8 Çözümleri

Onur NURTAN. Danışman Öğretmen: Mustafa YAZAGAN. Özel Atacan Anadolu Lisesi

Zeki Optimizasyon Teknikleri

KISITLI OPTİMİZASYON

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

DİZİLER. Bu ünitede yapılan örnekler Visual Studio 2010 programındaki Visual Basic programlama diliyle çözülmüştür.

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Dr. Fatih AY Tel: fatihay@fatihay.net

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

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

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

1.4. KISMİ SIRALAMA VE DENKLİK BAĞINTILARI

Programın Akışının Denetimi. Bir arada yürütülmesi istenen deyimleri içeren bir yapıdır. Söz dizimi şöyledir:

Bu amaçla, if ve switch gibi karar verme deyimleri, for, while, do..while gibi döngü deyimleri kullanılır.

Sevdiğim Birkaç Soru

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

Binary Search. (Yarılama) Bölüm Dizide Bir Öğe Arama

BIL222 Veri Yapıları ve Algoritmalar

Transkript:

Algoritmalara Giriş Eylül 30, 2005 Massachusetts Institute of Technology 6.046J/18.410J Profesörler Erik D. Demaine ve Charles E. Leiserson Dağıtım 8 0J Professors Erik D. Demaine ve Charles E. Leiserson Çalışma notları 8 Problem Set 1 Çözümler Problem 1-1. As mptotik Simgelem Aşağıdaki her şık için asimptotik olarak negatif olmayan fonksiyonlar durumunda; çözümün her zaman doğru (always true), hiçbir zaman doğru değil (never true) veya bazen doğru (some times true) olduğuna karar verin ve her zaman doğru ya da hiçbir zaman doğru değil durumlarında neden böyle olduğunu açıklayın. Bazen doğru durumunda, doğru olduğu durum için ve yanlış olduğu durum için birer örnek verin. (a) f(n) = O(f(n) 2 ) Çözüm: Bazen doğru: f(n) = n için doğru ama f(n) = 1/n için doğru değil. (Bu beyan f(n) = Ω(1) için her zaman doğrudur ve bu nedenle bu derste çalışacağımız çoğu fonksiyon ve özellikle tüm zaman ve mekan karmaşıklık fonksiyonları için geçerlidir.) (b) f(n)+g(n) = Θ(max(f(n),g(n))) Çözüm: Her zaman doğru: max(f(n), g(n)) f(n) + g(n) 2 max(f(n), g(n)). (c) f(n) + O(f(n)) = Θ(f(n)) Çözüm: Her zaman doğru: f(n) + g(n) yi düşünün ve burada g(n) = O(f(n)) ve c öyle bir sabit olsun ki yeterince büyük n değerleri için 0 g(n) < cf(n). Bu durumda yeterince büyük n için, f(n) f(n) + g(n) (1 + c)f(n). (d) f(n) = Ω (g(n)) ve f (n) = o(g(n)) (küçük-o ya dikkat edin) Çözüm: Hiçbir zaman doğru değil: Eğer f(n) = Ω(g(n)) ise, tüm n > değerleri için bir pozitif sabit ve vardır ve bu durumda cg(n) f(n) olur. Ama eğer f(n) = o(g(n)) ise tüm n > n o (c), f(n) < cg(n) durumlarında, her pozitif sabit c için bir n o (c) vardır. Eğer f(n) = Ω(g(n)) ve f(n) = o(g(n))ise o zaman bunu n > max(, n o ( )) olur; oysaki olması gereken f(n) < g(n) f(n) dir ve bu bir çelişkidir. 1

(e) f(n) O(g(n)) ve g(n). O(f(n)) Çözüm: Bazen doğru: f(n) = 1 ve g(n) = II n * sin(n) II için bu doğrudur ancak her f(n) = O(g(n)), örneğin f(n) = g(n) = 1 için doğru değildir. Problem 1-2. Yinelemeler Aşağıdaki yinelemelerde T(n) nin asimptotik üst ve alt sınırlarını verin. T(n) nin n 3 için sabit olduğunu varsayın. Sınırlarınızı mümkün olduğunca sıkı tutun ve yanıtlarınızın gerekçesini verin. (a) T(n) = 2T(n/3) + n lg n Çözüm: Ana Metodun 3. durumuna göre, T(n) = Θ (nlgn) (b) T(n) = 3T(n/5) + lg 2 n Çözüm: Ana Metodun 1. durumuna göre, T(n) = Θ ( ) (c) T(n) = T(n/2) + 2 n Çözüm: Ana teoremin 3. durumu, ( Düzenlilik koşulunu kontrol edin), Θ(2 n ) (d) T(n) = T( ) + Θ(lglgn) Çözüm: Değişkenleri değiştir: m = Ig n olsun. Yineleme S(m) = S(m/2) + Θ (lg m) olur. Ana teoremin 2. Durumu geçerlidir, yani T(n) = Θ((lg lg n) 2 ). (e) T(n) = 10T(n/3) + 17 Çözüm: log 3 9 = 2 olduğundan log 3 10 > 2 > 1.2 olur. Ana teoremin 1. durumu geçerlidir. Θ ( ) (f) T(n) = 7T(n/2) + n 3 Çözüm: Ana Metodun 3. Durumu gereği T(n) = Θ (n 3 ) 2

(g) T(n) = T(n/2 + ) + Çözüm: T(n), tümevarım gereği tekdüze artan bir fonksiyondur. Yani yeterince büyük n değerleri için T(n/2) T(n/2 + ) T(3n/4). Her evrede tutarında bir sabit gider olur ama problemin boyutu da en az ½, en çok ¾ oranında küçülür. Böylece T(n) = Θ(Ig n) dir. (h) T(n)=T(n-2)+lgn Çözüm: T(n) = Θ (n log n). T(n) = lg 2i lgi (n/4)(lg n/4) = Ω(n lg n). Üst sınırda m S(n) = S(n l)+lgn iken T(n) S(n),olur ve bu da açıkça 0(nlgn) dir. (i) T(n) = T(n/5) + T(4n/5) + Θ(n) Çözüm: Ana teorem burada geçerli değildir. Öz yineleme ağacını çizin. Her düzeyde Θ(n) iş yapın. Düzeylerin sayısı = Θ(lg n) olduğundan, T(n)= Θ( n lg n) yi tahmin edin ve tahmininizi kanıtlamak için yerine koyma metodunu kullanın. f(n)= Θ(n) teriminde, Ω(n) ve O(n) için sabitlerin sırasıyla, ve olduğunu varsayın. Diğer bir deyişle tüm n n 0, için n f(n) n olsun. Önce T(n) = O(n) olduğunu gösteririz. Taban durumunda yeterince büyük bir sabiti geçer ve T(n) < n lg n elde ederiz. Tümevarım adımında tüm k < n için, T(k) < durumda k = n için n lg n olduğunu varsayın. Bu 3

> 5 / (lg5+4lg(5/4)) seçtiğimiz sürece kalan negative olur, böylece tümevarımla T(n)=O(nlgn) çıkar. T(n)=Ω(n) olduğunu göstermek için, aynı matematiği kullanabiliriz. Taban durumu için yeterince küçük bir sabiti seçeriz ve T(n) > n lgn olur. Tüme varım adımında tüm k<n için, T(k) > Bu durumda k=n için: n lgn olduğunu varsayın. Kalan d 0 < 5c 0 /(lg5 + 4lg(5/4)) olduğu sürece pozitiftir. Böylece T(n) = Ω(nlgn)olur. (j) T(n) = T( ) + 100n Çözüm: burada ana teorem doğrudan geçerli değildir. S(n) = T(n)/n seçin. Yineleme S(n) = S( ) + 100 olur. Bu yinelemenin çözümü S(n) = Θ (lglgn) dir. ( bunu bir özyineleme ağacı kullanarak ya da m=lgn diyerek yapabilirsiniz) Böylece T(n)= Θ (n lg lg n) dir. 4

Problem 1-3. 7HN GRUXNOX DUDPD Unimodal Search Bir A[1.. n] dizilimi, eğer artan bir diziyi takip eden azalan bir dizi varsa unimodal ya da tek dorukludur; daha kesin bir anlatımla m Є {1, 2,..., n} dizininde A[i] < A[i + 1] tüm 1 i < m için ve A[i] > A[i + 1] tüm m i < n için. Özellikle A[m] maksimum elemandır ve (A[m 1] ve A[m + 1]) elemanları tarafından çevrili tek yerel maksimumdur. (a) Tek doruklu giriş dizilimi A[1.. n] için O (lg n) süresinde maksimum elemanı hesaplayacak algoritmayı bulun. Algoritmanızın doğruluğunu kanıtlayın ve koşma süresindeki sınırı kanıtlayın. Çözüm: Tek doruklu dizilimlerin tanımı gereği her 1 i < n için, ya A[i] < A[i + 1] ya da A[i] > A[i + 1] dir. Anafikir bu iki durumu ayırt edebilmektir: 1. Tek doruklu dizilimlerin tanımı gereği, eğer A[i] < A[i + 1] ise, A[1..n] nin en büyük elemanı A[i + 1..n] nin içindedir. 2. Benzer şekilde, eğer A[i] > A[i + 1] ise, A[1..n] nin en büyük elemanı A[1..i] nin içindedir. Bu aşağıdaki böl-ve-fethet çözümüne yol açar ( bunun ikili aramaya olan benzerliğine dikkat edin): 1 a, b 1, n 2 while a < b 3 do mid (a + b)/2 4 if A[mid] < A[mid+ 1] 5 then a mid + 1 6 if A[mid] > A[mid+ 1] 7 then b mid 8 return A[a] 5

Ön koşul bize bir tek-doruklu A[1...n] diziliminin verilmesidir. Son koşul A[a] nın A[1..n] nin en büyük elemanı olmasıdır. Döngü için A[1..n] nin en büyük elemanının A[a..b] nin içindedir ve a b dir. değişmezini öneririz. Döngü tamamlandığında a b ( çünkü döngü durumu geçersizdir) ve a b (döngü değişmezinden dolayı ) olur. Bu nedenle a = b olur ve döngü değişmezinin ilk kısmına bağlı olarak A[1..n] nin en büyük elemanı A[a] ya eşittir. Değişmezin doğruluğunu kanıtlamak için Tümevarım kullanırız. Başlangıçta a=1 ve b=n olduğundan değişmez kolaylıkla sağlanır. Değişmezin döngünün başında geçerli olduğunu farzedin. Bu durumda A[1..n] nin en büyük elemanının A[a..b] nin içinde olduğunu biliriz. A[a..b] nin de tek-doruklu olduğuna dikkat edin. Eğer A[mid] < A[mid + 1] ise, 1. durum uyarınca A[a...b] nin enbüyük elemanı A[mid] < A[mid + 1] içinde olur. Böylece 4. satırda a mid+1 olduğunda ve b değişmediğinde en büyük eleman yinea[a...b] içindedir. Kanıtlamayı tamamlamak için değişmezin a b olduğundaki 2. durumunda doğru olduğunu göstermeliyiz. Döngünün başında a < b' dir. Yani a (a + b)/2 < b. Bunun anlamı a mid < b olduğu ve 4. veya 5. satırdan sonra a ile b nin güncellenerek a b nin yeniden geçerli olmasıdır. Böl ve fethet yaklaşımı şu koşma süresini verir:t(n)=t(n/2)+θ(1)=θ(lgn). Bir poligonun tüm iç açıları 180 den küçükse, ve hiçbir kenar birbirini kesmiyorsa o poligon, konveks yani iç bükeydir. Şekil 1 de bir örnek verilmiştir. İçbükey bir poligonu biz V[1.. n] dizilimiyle gösteririz ve bu dizilimdeki her eleman poligonun bir köşesini (x,y) koordinat çiftleri olarak tanımlar. V[1] köşesi minimum x değeri olan köşe olarak verilmiştir ve V[1.. n] köşeleri şekilde olduğu gibi satin aksi istikametinde sıralanmıştır. Köşelerin tüm x koordinatlarının ve y koordinatlarının farklı olduklarını varsayabilirsiniz. (b) Maksimum x koordinatlı köşeyi O(lg n) süresinde bulacak algoritmayı belirleyin. Çözüm: Köşelerin x-koordinatlarının tek doruklu bir dizilim oluşturduğuna dikkat edin; ( a ) şıkkını kullanarak en büyük x- koordinatı olan köşeyi Θ(lgn) sürede bulabiliriz. 6

(c) Maksimum y koordinatlı köşeyi O(lg n) süresinde bulacak algoritmayı belirleyin. Çözüm: En büyük x- koordinatı ( konaçı ) olan V[max] köşesini bulduktan sonra, V[max], V[max+1 ],, V[n 1], V[n], V[1] deki y- koordinatlarının bir tek doruklu dizilim oluşturduğuna V[1..n] nin en büyük y- koordinatının da bu dizilimin içinde olduğuna dikkat edin. En büyük y- koordinatlı köşe gene (a) şıkkıyla bulunabilir. Toplam koşma süresi Θ(lgn) dir. Şekil 1: V[1.. 9] diziliminin bir iç bükey poligon şeklinde gösterilmesine örnek. V[1]en küçük x koordinatı değeri olan köşedir ve V[1.. 9] saatin ters yönünde sıralanmıştır. 7