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

Benzer belgeler
Problem Seti 2 Çözümler

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

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

Problem Set 1 Çözümler

Pratik Ara Sınav 1 Çözümleri

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

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

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

Algoritmalara Giriş 6.046J/18.401J

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

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

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

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

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

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

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

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

Problem Seti 4 Çözümler

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

Alıştırma 1: Yineleme

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

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

Algoritmalara Giriş 6.046J/18.401J

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

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

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

Veri Yapıları Laboratuvarı

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

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

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

Algoritmalara Giriş. Prof. Erik Demaine. November 16, 2005 Copyright by Erik D. Demaine and Charles E. Leiserson L18.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);

ÖZEL EGE LİSESİ 11. MATEMATİK YARIŞMASI 7. SINIF ELEME SINAVI TEST SORULARI

Algoritmalara Giriş 6.046J/18.401J DERS 2

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

Algoritmalar. Doğrusal Zamanda Sıralama. Bahar 2017 Doç. Dr. Suat Özdemir 1

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

2. (x 1 + x 2 + x 3 + x 4 + x 5 ) 10 ifadesinin açılımında kaç terim vardır?

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

VERİ YAPILARI VE PROGRAMLAMA

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

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

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

TEMEL KAVRAMLAR TEST x, y, z sıfırdan farklı gerçel sayılar ve x y = a ve b gerçel sayılar olmak üzere, a + 3b = 18. y + z = 0.

YMT219 VERİ YAPILARI ÖDEV-1

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

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

2013 YGS MATEMATİK. a a olduğuna göre, a kaçtır? olduğuna göre, m kaçtır? A) 1 2 C) 1 4 E) 4 9 B) 3 2 D) 1 9 A) 3 B) 4 C) 5 D) 6 E) 7

Ö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.

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

Genel olarak test istatistikleri. Merkezi Eğilim (Yığılma) Ölçüleri Merkezi Dağılım (Yayılma) Ölçüleri. olmak üzere 2 grupta incelenebilir.

YZM 2116 Veri Yapıları

ÖSYM M TEMEL MATEMATİK TESTİ YGS / MAT. Diğer sayfaya geçiniz. 1. Bu testte 40 soru vardır.

Ağaç (Tree) Veri Modeli

Örnek...2 : Hilesiz iki zar atma deneyinin bütün çıktılarını aşağıdaki tabloya yazınız.

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

BIL222 Veri Yapıları ve Algoritmalar

2011 YGS MATEMATİK Soruları

2. Aşağıdaki pseudocode ile verilen satırlar işletilirse, cnt isimli değişkenin son değeri ne olur?

Diğer sayfaya geçiniz YGS / MAT TEMEL MATEMATİK TESTİ. olduğuna göre, a kaçtır? olduğuna göre, m kaçtır?

Dr. Musa KILIÇ Öğretim Görevlisi

Bilgisayar programlamanın üç temel mantık yapısından biridir. Diğer ikisi ise Seçilim(Selection) ve Döngü(Loop, Iteration)dür.

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

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

Problem Seti 8 Çözümleri

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

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

SİVAS FEN LİSESİ. Soru Kitapçığı Türü. 25 Nisan 2015 Cumartesi, 9:30 12:30

Bireylerin yaşadığı çevreye uyum sağlaması durumunda ortaya çıkan olumsuzluklara PROBLEM denir.

DOSYA ORGANİZASYONU. Sıralı erişimli dosya organizasyonu yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

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

Algoritmalar ve Karmaşıklık

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

Dr. Fatih AY Tel: fatihay@fatihay.net

BIP116-H14-1 BTP104-H014-1

Zeki Optimizasyon Teknikleri

ÖĞRENCİNİN ADI SOYADI: NUMARASI: SINIFI: KONU: Olasılık

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

BİNOM AÇILIMI. Binom Açılımı. çözüm. kavrama sorusu. çözüm. kavrama sorusu. ö æ ö æ ö,,

Final Sınavı Örnek Soruları Bahar 2018

Algoritmalara Giriş 6.046J/18.401J

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İ

Bu kısımda işlem adı verilen özel bir fonksiyon çeşidini ve işlemlerin önemli özelliklerini inceleyeceğiz.

6. Ali her gün cebinde kalan parasının (2009) a, b ve c farklı pozitif tamsayılar, 9. x, y, z pozitif gerçek sayılar,

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

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

( 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.

kişi biri 4 kişilik, üçü ikişer kişilik 4 takıma kaç farklı şekilde ayrılabilir? (3150)

ALGORİTMA (ALGORITHM) M.İLKUÇAR -

Olasılık Föyü KAZANIMLAR

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

TMÖZ Türkiye Matematik Öğretmenleri Zümresi

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

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

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

D İ Z İ L E R A R R A Y S

8. SINIF MATEMATiK OLASILIK. Murat ÇAVDAR OLASILIK. Olasılık: Sonucu önceden kesin olarak bilinmeyen rastlantıya bağlı olaylara olasılık denir.

14. LİSELERARASI MATEMATİK YARIŞMASI EKİP FİNAL SORULARI

Transkript:

Algoritmalara Giriş Eylül 21, 2005 Massachusetts Institute of Technology 6.046J/18.410J Profesörler Erik D. Demaine ve Charles E. Leiserson Çalışma notu 6 Problem Seti 2 Okumalar: 5.1-5.3 kısımları ve Bölüm 6, 7, ve 9. Hem egzersizler hem de problemler çözülecek, ama sadece problemler teslim edilecektir. Egzersizler ders materyalini hazmettirmek amacıyla hazırlanmıştır. Her ne kadar egzersiz çözümlerini teslim etmeyecek olsanız da egzersizdeki konulardan sorumlu olacaksınız. Sık sık bir problem için '' 'bir algoritma bulun '' isteğiyle karşılaşacaksınız. Bu konudaki yanıtınız kısa bir makale şeklinde olmalıdır. Konu paragrafı, çözdüğünüz problem ve sonuçlarınızı özetleyecek şekilde düzenlenmelidir. Makalenizin ana yapısında aşağıdaki bilgiler verilmelidir: 1. Algoritmanın İngilizce açıklaması ve eğer faydalı olacaksa sözde kodu.. 2. Algoritmanızın nasıl çalıştığını gösteren en az bir işlenmiş örnek veya şekil. 3. Algoritmanın doğruluğunun kanıtı (veya göstergesi). 4. Algoritmanın koşma zamanının çözümlemesi. Amacınız iletişim kurmaktır. Tam not sadece iyi açıklanan doğru yanıtlara verilecektir. Ya da net olmayan açıklamalar daha düşük notlandırılacaktır. Egzersiz 2-1. Kitaptaki 5.2-4 nolu egzersiz (98. Sayfa) Egzersiz 2-2. Kitaptaki 6.5-7 nolu egzersiz (142. Sayfa) Egzersiz 2-3. Kitaptaki 7.2-1 nolu egzersiz (153. Sayfa) Egzersiz 2-4. Kitaptaki 9.3-8 nolu egzersiz (193. Sayfa) Egzersiz 2-5. Kitaptaki 9-1 nolu egzersiz (194. Sayfa) 1

Problem 2-1. Bu (yaklaşık) sıralanmış mıdır? Hogwarts ekolünün çocuk büyücüsü Harry Potter' ın başı bir kez daha derttedir. Profesör Snape Harry' i tutuklamış ve ona son 200 yılın eski ev ödevlerini sıralama işini vermiş. Harry bir büyücü olduğundan elini şöyle bir sallayıp ordinatus sortitus yani düzenli sıra demiş ve kağıtlar hızla kümelenmişler. Ancak Profesör Snape Harry' nin büyüsünün kağıtları doğru olarak kümelediğini belirlemek istemektedir. Öte yandan n sayıda çok fazla kağıt olduğundan, doğru sırada olup olmadıklarını belirlemek, Ω(n) süresini alacaktır. Bunun yerine Profesör Snape, kağıtların yaklaşık-sıralanmış olduğunu kontrol etmeye karar verir. Kağıtların %90' ının sıralandığını bilmek ister: kağıtların %10'u kümeden çıkarılırsa elde edilen liste sıralanmış olabilir mi? Bu problemde Profesör Snape' e, n farklı elemanlı A girdi listesini işleyecek bir algoritma bularak yardım edeceğiz; algoritma aşağıdaki gibi davranacak: Eğer A listesi sıralıysa, algoritma her zaman true/ doğru çıktısını verecek. Eğer A listesi % 90 sıralı değilse, algoritma en az 2/3 olasılıkla false/yanlış çıktısını verecek. (a) Profesör Snape önce şu algoritmayı düşünür: k kere tekrarla: 1. Kağıtları bağımsız, tekdüze ve rastgele olarak seç ve (1,n) aralığını kullan. ( Yani, 1 <i<n.) 2. A[i 1] ve A[i] kağıtlarını karşılaştır. Eğer doğru sırada değillerse yanlış çıktısını ver ve dur. 3. A[i] ve A[i+ 1] kağıtlarını karşılaştır.. Eğer doğru sırada değillerse yanlış çıktısını ver ve dur. Doğru çıktısını ver. 2

Bu algoritmanın, sıralama listesinin en az 2/3 olasılıkla yaklaşık doğru olduğunu keşfedebilmesi için k = Ω(n) gerektiğini gösterin. İpucu: Yaklaşık sıralı olmayan bir dizi bulun, ama algoritmanın yanlış çıktı vereceği az sayıda eleman olsun.. (b) Size içinde n sayıda top olan bir torba verilmiş olsun. İçinde en az %10 oranında mavi top olduğu ve kırmızı topların sayısının da % 90'ı geçmediği söyleniyor. Asimptotik olarak (yani n' nin büyük değerleri için) en az 2/3 olasılıkla mavi topu bulana dek kaç kez torbadan top çekmeniz gerekir? ( topların torbadan çıkarıldıktan sonra yeniden torbaya konulduğunu varsayabilirsiniz.) (c) Sıralanmamış bir listede bir ikili arama yaptığınızı varsayın: BINARY-SEARCH( A, key, left, right 1 if left = right 2 then return left 3 else mid (left + right)/2 4 if key < A[mid] Seach for key in A[left.. right] 5 then return BINARY-SEARCH(A,key,left,mid 1) 6 else return BINARY-SEARCH(A,key,mid,right) A' da (sıralı olmasa bile) key 1 için yapılan bir ikili aramanın i yuvasını geri dönüş olarak verdiğini farz edin. Benzer biçimde anahtar/ key 2 için ikili arama da j yuvasını versin. Aşağıdaki gerçeğin neden doğru olduğunu açıklayın: 3

Eğer i < j ise, key 1 key 2 'dir. Bir şekil çizin. İpucu: Öncelikle bunun A listesinin sıralı olması durumunda neden açıkça doğru olduğunu düşünün. (d) Profesör Snape listenin % 90 sıralı olduğunu belirlemek için rastgele bir algoritma öneriyor.. Algoritma bağımsız ve tekdüze bir tamsayıyı [1,n] kapalı aralığında rastgele seçmek için (Rastgele)/RANDOM (1,n) fonksiyonunu kullanıyor. Algoritma aşağıdaki gibidir: IS-ALMOST-SORTED(A,n,k) Determine if A[1..n] is almost sorted. ( Yaklaşık Sıralı ) (A[1,n]'nin Yaklaşık-Sıralı olduğunu belirleyin) 1 for r 1 to k 2 do i RANDOM(1,n) Pick i uniformly and independently. ( i' yi tekdüze ve bağımsız seçin) 3 j BINARY-SEARCH(A,A[i],1,n) 4 if i j 5 then return false (öyleyse yanlış döndür) 6 return true ( doğru geri döndür ) Algoritmanın, k' nın yeterince büyük bir sabitse geçerli olacağını gösterin. Yani k uygun seçildiğinde algoritma liste doğru sıralanmışsa her zaman doğru yu çıktı olarak veriyor, ve liste %90 doğru sıralanmamışsa, 2/3 olasılıkla yanlışı çıktı olarak veriyor. (e ) Profesör Snape'in listenin 0 < ϵ <1 arası bir epsilon değerinde 1 ϵ oranında sıralanmış olduğunu kontrol etmek istediğini düşünün. ( Önceki örnekte ϵ = 0.10 idi. Büyük n değerleri için asimptotik olarak k değerini belirleyip algoritmanın doğru olduğunu gösterin. Toplam koşma süresi nedir? 4

Problem 2-2. Yaklaşık sıralanmış bir listeyi sıralamak. Tutulduğu yerden dönerken Harry arkadaşı Hermione ile karşılaşır. Harry, sıralama büyüsünün tutmadığını Profesör keşfettiği için mutsuzdur. Kağıtları doğru sıralamak yerine, her kağıt doğru konumda k sayıda yuvaya konulmuştu. Hermione hemen araya yerleştirme sıralamasının bu sorunu kolayca çözeceğini söyler. Bu problemde Hermione'nun (çoğunlukla olduğu gibi) haklı olduğunu göstereceğiz. Önceki gibi, n farklı elemandan oluşan A[1..n] diziliminde.. (a) Önce bir evirme (inversion) tanımlayacağız. Eğer i< j ve A[i] > A[j] ise, (i,j) ikilisine A' nın evirmesi denir. { 1,2, n} diziliminin hangi devşiriminde ( permutation) en çok evirme vardır? Bunlardan kaç tane vardır? (b) Eğer her kağıt başlangıçta doğru konumdaki k yuvada ise, araya yerleştirme sıralamasının koşma süresi O (nk) dır. İpucu: Önce ARAYA- YERLEŞTİRME (A)'nın koşma süresinin O (n+i) olduğunu gösterin; burada I, A' daki evirmelerin sayısıdır. (c) Her kağıdın doğru konumdaki k yuvada olduğu bir listede sıralama için Ω(n lg k) sayıda karşılaştırma gerektiğini gösterin. İpucu: Karar ağacı tekniğini kullanın.. (d) Alt sınırı karşılayacak bir algoritma tasarlayın; yani her kağıdın doğru konumdaki k yuvada olduğu bir listede sıralamayı Θ (n lg k) sürede yapsın. İpucu: Kitabın 142. sayfasındaki 6.5-8 no.lu probleme bakın. Problem 2-3. Ağırlıklı Ortanca n sayıda farklı,,..., elemanı var ve positif ağırlıkları,,..., ; öyleyse teriminde ağırlıklı (alt) ortanca aşağıdaki durumları karşılayan ' dır. 5

ve (a),,..., 'nin ortancasının, =1/n ( i =1,2,...,n için) ağırlıkları olan,,..., 'nin ağırlıklı ortancası olduğunu savunun.. (b) En kötü durum O (n lg n) süresinde ağırlıklı ortancanın sıralama kullanarak nasıl hesaplanacağını gösterin. (c) Kitabın Bölüm 9.3'ündeki SELECT (SEÇ) gibi bir komutu bir doğrusal-zaman ortanca algoritması kullanarak ağırlıklı ortancayı Θ (n) en kötü sürede nasıl hesaplayacağınızı gösterin. (d) Postane yeri problemi şöyle tanımlanır. Bize ilintili ağırlıkları,,..., olan n sayıda,,..., noktası veriliyor. Biz a ile b noktalarının arasındaki uzaklığın d (a,b) olarak gösterildiği durumda d(p, ) toplamını en aza indirecek bir p noktası bulmak istiyoruz.( bu noktanın girişlerden bir olması şart değil). Ağırlıklı ortancanın tek-boyutlu postane yeri problemi için en iyi çözüm olduğunu savunun; burada noktalar basit gerçek sayılar ve a ile b noktası arasındaki uzaklık d(a,b)= a b. (e) İki boyutlu postane yeri problemi için en iyi çözümü bulun.; burada noktalar (x,y) koordinat çiftleri ve a =(, ) ve b =(, ) noktaları arasındaki uzaklık d(a,b)= + ile verilen Manhattan distance (uzaklığı). 6