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

Benzer belgeler
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ş. Prof. Erik Demaine. November 16, 2005 Copyright by Erik D. Demaine and Charles E. Leiserson L18.1

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

Algoritmalara Giriş 6.046J/18.401J

Problem Set 1 Çözümler

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

Dinamik Programlama. En uzun ortak altdizi En uygun altyapı Altproblemlerin çakışması

Algoritmalara Giriş 6.046J/18.401J DERS 2

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

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

Problem Seti 7 Çözümleri

Pratik Ara Sınav 1 Çözümleri

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

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

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

Sevdiğim Birkaç Soru

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

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

Algoritmalara Giriş Massachusetts Institute of Technology Profesör Erik D. Demaine ve Charles E. Leiserson. Problem Seti 6 Çözümleri

Merge Sort Bireşen Sıralama

Özyineleme (Recursion)

Algoritmalar (MCS 401) Ders Detayları




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İLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

İleri Diferansiyel Denklemler

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ş 6.046J/18.401J

Algoritmalara Giriş 6.046J/18.401J

MIT Açık Ders Malzemeleri Bu materyallerden alıntı yapmak veya Kullanım Koşulları hakkında bilgi almak için

Zeki Optimizasyon Teknikleri

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

GEDİZ ÜNİVERSİTESİ SİSTEM MÜHENDİSLİĞİ YÜKSEK LİSANS PROGRAMI SMY 544 ALGORİTMALAR GÜZ 2015

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

MAT223 AYRIK MATEMATİK

MAT223 AYRIK MATEMATİK

MIT Açık Ders Malzemeleri Bu materyallerden alıntı yapmak veya Kullanım Koşulları hakkında bilgi almak için

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

İÇİNDEKİLER ÖNSÖZ Bölüm 1 SAYILAR 11 Bölüm 2 KÜMELER 31 Bölüm 3 FONKSİYONLAR

Problem Seti 4 Çözümler

Yrd. Doç. Dr. Caner ÖZCAN

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

yöneylem araştırması Nedensellik üzerine diyaloglar I

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ÇARPANLAR VE KATLAR ÖĞRENİYORUM

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

EME 3117 SİSTEM SİMÜLASYONU. Rassal Sayı ve Rassal Değer. Üretimi. Rassal Sayı Üretimi

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

İleri Diferansiyel Denklemler

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

Alıştırmalar 1. 1) Aşağıdaki diferansiyel denklemlerin mertebesini ve derecesini bulunuz. Bağımlı ve bağımsız değişkenleri belirtiniz.

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

Sayılar Kuramına Giriş Özet

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

Önermeler mantığındaki biçimsel kanıtlar

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

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

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAYINLARI NO:89 MATEMATİK I (12. BASKI) Prof. Dr. A. Nihat BADEM Yrd. Doç. Dr.

MIT Açık Ders Malzemeleri Bu materyallerden alıntı yapmak veya Kullanım Koşulları hakkında bilgi almak için

11.Konu Tam sayılarda bölünebilme, modüler aritmetik, Diofant denklemler

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

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

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

Azalt ve Fethet Algoritmaları

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

İLKMATZUM 8. SINIF MATEMATİK 2016 DENEME-2

Algoritmalara Giriş 6.046J/18.401J

Problem Seti 8 Çözümleri

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

İleri Diferansiyel Denklemler

13.Konu Reel sayılar

TBP101 (4. Hafta) Alıştırma Soruları ve Cevapları

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

İleri Diferansiyel Denklemler

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

Yrd. Doç. Dr. Caner ÖZCAN

Şartlı Olasılık. Pr[A A ] Pr A A Pr[A ] Bir olayın (A 1 ) olma olsılığı, başka bir olayın (A 2 ) gerçekleştiğinin bilinmesine bağlıysa;

12.Konu Rasyonel sayılar

BLM 111 Algoritma ve Programlama I Güz 2018

NİSAN 2010 DENEMESİ A)75 B)80 C)85 D)90 E)95 A)0 B)1 C)2 D)3 E)4

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

9 m 3 m. 10 kn/m. 5 m m. 3 m P=50 kn. 10 kn/m. P=50 kn. 20 kn/m. 10 kn/m. 1 8 m 2 m 3 m 3 m. 10 kn/m. 5 m. (Şekil-1b) (Şekil-1a) 20 kn /m

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

ALGORİTMA VE PROGRAMLAMA II

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

Özyineleme (Recursion)

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,

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

MIT Açık Ders Malzemeleri Bu materyallerden alıntı yapmak veya Kullanım Koşulları hakkında bilgi almak için

NÜMER IK ANAL IZ. Nuri ÖZALP. Sabit Nokta ve Fonksiyonel Yineleme. Bilimsel Hesaplama Matemati¼gi

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

Soru 1. Soru 5. Soru 2. Soru 6. Soru 3. Soru 7.

14.Konu Reel sayılarının topolojisi. 1.Tanım:, verilsin. açık aralığına noktasının -komşuluğu denir. { } kümesine nın delinmiş -komşuluğu denir.

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

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Transkript:

Algoritmalara Giriş 6.046J/18.401J Ders 15 Dinamik Programlama En uzun ortak altdizi En uygun altyapı Altproblemlerin çakışması Prof. Charles E. Leiserson November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.1

Dinamik Programlama Böl-ve-fethet gibi bir tasarım tekniği. Örnek: En uzun ortak altdizi (LCS) İki tane, x[1.. m]ve y[1.. n] dizisi verilmiş, ikisinde de ortak olan en uzun altdiziyi bulun. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.2

Dinamik Programlama Böl-ve-fethet gibi bir tasarım tekniği. Örnek: En uzun ortak altdizi (LCS) İki tane, x[1.. m]ve y[1.. n] dizisi verilmiş, ikisinde de ortak olan en uzun altdiziyi bulun. En uzun altdizi tek değildir. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.3

Dinamik Programlama Böl-ve-fethet gibi bir tasarım tekniği. Örnek: İki tane, x[1.. m]ve y[1.. n] dizisi verilmiş, En uzun altdizi tek değildir. x: A B C B D A B y: B D C A B A November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.4

Dinamik Programlama Böl-ve-fethet gibi bir tasarım tekniği. Örnek: İki tane, x[1.. m]ve y[1.. n] dizisi verilmiş, ikisinde de ortak olan en uzun altdiziyi bulun. En uzun altdizi tek değildir. x: A B C B D A B y: B D C A B A BCBA = LCS(x, y) fonksiyonel gösterim, ama fonksiyon değil. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.5

Kaba-kuvvet algoritması x[1.. m]' nin her altdizisini y[1.. n]' nin de altdizisi mi diye kontrol edin. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.6

Kaba-kuvvet algoritması x[1.. m]' nin her altdizisini y[1.. n]' nin de altdizisi mi diye kontrol edin. Analiz Kontrol etme = her altdizi için O(n) zamanı. x' in 2 m sayıda altdizisi var.(m uzunluğunda her bir bit-vektörü, x'in farklı bir altdizisini belirler.) En kötü durum koşma süresi = O(n2 m ) = üstel zaman. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.7

Daha iyi bir algoritmaya doğru Basitleştirme: 1.En uzun ortak bir altdizinin uzunluğuna bakalım. 2.Algoritmayı LCS' yi kendisi bulacak şekilde genişletin. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.8

Daha iyi bir algoritmaya doğru Basitleştirme: 1.En uzun ortak bir altdizinin uzunluğuna bakalım. 2.Algoritmayı LCS' yi kendisi bulacak şekilde genişletin. Simgelem: s dizisinin uzunluğunu s ile belirtin. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.9

Daha iyi bir algoritmaya doğru Basitleştirme: 1.En uzun ortak bir altdizinin uzunluğuna bakalım. 2.Algoritmayı LCS' yi kendisi bulacak şekilde genişletin. Simgelem: s dizisinin uzunluğunu s ile belirtin. Strateji: x ve y'nin öneklerini düşünün. Define(tanımlama) c[i, j] = LCS(x[1.. i], y[1.. j]). Then(sonra), c[m, n] = LCS(x, y). November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.10

Özyinelemeli formülleme Teorem. c[i, j] = c[i 1, j 1] + 1 if x[i] = y[j] ise, max{c[i 1, j], c[i, j 1]} aksi takdirde. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.11

Teorem. c[i 1, j 1] + 1 if x[i] = y[j] ise, c[i, j] = max{c[i 1, j], c[i, j 1]} aksi takdirde. Kanıt. Durum x[i] = y[ j]: x: y: Özyinelemeli formülleme 1 2 i m = L 1 2 j n L November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.12

x: y: Özyinelemeli formülleme Teorem. c[i 1, j 1] + 1 if x[i] = y[j] ise, c[i, j] = max{c[i 1, j], c[i, j 1]} aksi takdirde. Kanıt. Durum x[i] = y[ j]: 1 2 i m = November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.13 L 1 2 j n c[i, j]= k iken z[1.. k] =LCS(x[1.. i], y[1.. j]) olsun. Sonra, z[k] = x[i], ya da başka z genişletilebilir. Böylece, z[1.. k 1], x[1.. i 1] ve y[1.. j 1]'nin CS'sidir. L

Kanıt (devamı) İddia: z[1.. k 1] = LCS(x[1.. i 1], y[1.. j 1]). Diyelim ki w, x[1.. i 1] ve y[1.. j 1]' nin daha uzun bir CS'si,yani w > k 1. Öyleyse, kes ve yapıştır: w z[k] (w, z[k]ile bitiştirilmiş.) x[1.. i] ve y[1.. j]' nin ortak altdizisidir ve w z[k] > k' dır. Çelişki, iddiayı kanıtlar. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.14

Kanıt (devamı) İddia: z[1.. k 1] = LCS(x[1.. i 1], y[1.. j 1]). Diyelim ki w, x[1.. i 1] ve y[1.. j 1]' nin daha uzun bir CS'si,yani w > k 1. Sonra, kes ve yapıştır: w z[k] (w, z[k]ile bitiştirilmiş.) x[1.. i] ve y[1.. j]' nin ortak altdizisidir ve w z[k] > k' dır.çelişki, iddiayı kanıtlar. Böylece, c[i 1, j 1] = k 1'dir ki bu c[i, j] = c[i 1, j 1] + 1 anlamına gelir. Diğer durumlar benzerdir. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.15

Dinamik-programlama kalite işareti #1 Optimal altyapı Bir probleme optimal çözüm (örnek) alt-problemlere optimal çözümler içerir. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.16

Dinamik-programlama kalite işareti #1 Optimal altyapı Bir probleme optimal çözüm (örnek) alt-problemlere optimal çözümler içerir. Eğer z = LCS(x, y) ise, z nin her öneki,x' in ve y' nin öneklerinin LCS' sidir. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.17

LCS için özyinelemeli algoritma LCS(x, y, i, j) if x[i] = y[ j] then c[i, j] LCS(x, y, i 1, j 1) + 1 else c[i, j] max{lcs(x, y, i 1, j), LCS(x, y, i, j 1)} November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.18

LCS için özyinelemeli algoritma LCS(x, y, i, j) if x[i] = y[ j] then c[i, j] LCS(x, y, i 1, j 1) + 1 else c[i, j] max{lcs(x, y, i 1, j), LCS(x, y, i, j 1)} En kötü durum: x[i] y[ j], bu durumda algoritma, tek parametrenin azaltıldığı iki alt-problemi değerlendirir. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.19

Özyineleme ağacı m = 3, n = 4: 3,4 2,4 3,3 1,4 1,4 2,3 2,3 3,2 3,2 1,3 2,2 1,3 2,2 2,2 November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.20

Özyineleme ağacı m = 3, n = 4: 3,4 2,4 3,3 1,4 1,4 2,3 2,3 3,2 3,2 m+n 1,3 2,2 1,3 2,2 2,2 Yükseklik = m + n iş potansiyel olarak üsteldir. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.21

Özyineleme ağacı m = 3, n = 4: 3,4 1,4 1,4 2,4 2,3 aynı altproblem 2,3 3,3 3,2 3,2 m+n 1,3 2,2 1,3 2,2 2,2 Yükseklik = m + n iş potansiyel olarak üsteldir, ama biz zaten çözülmüş olan altproblemleri çözüyoruz! November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.22

Dinamik-programlama #2 Altproblemlerin çakışması Özyinelemeli bir çözüm, az sayıda birbirinden farklı altproblemin birçok kere tekrarlanmasını içerir. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.23

Dinamik-programlama #2 Altproblemlerin çakışması Özyinelemeli bir çözüm, az sayıda birbirinden farklı altproblemin birçok kere tekrarlanmasını içerir. m ve n uzunluklarının 2 dizgisi için farklı LCS altproblemlerinin sayısı mn' dir. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.24

Hatırlama algoritması Memoization(Hatırlama): Bir altprobleme ait çözümü hesapladıktan sonra onu bir tabloda depolayın. Ardışık çağırmalar, işlemi tekrar yapmamak için tabloyu kontrol eder. November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.25

Hatırlama algoritması Memoization(Hatırlama): Bir altprobleme ait çözümü hesapladıktan sonra onu bir tabloda depolayın. Ardışık çağırmalar, işlemi tekrar yapmamak için tabloyu kontrol eder. LCS(x, y, i, j) if c[i, j] = NIL then if x[i] = y[j] then c[i, j] LCS(x, y, i 1, j 1) + 1 else c[i, j] max{lcs(x, y, i 1, j), LCS(x, y, i, j 1)} önceki gibi November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.26

Hatırlama algoritması Memoization(Hatırlama): Bir altprobleme ait çözümü hesapladıktan sonra onu bir tabloda depolayın. Ardışık çağırmalar, işlemi tekrar yapmamak için tabloyu kontrol eder. LCS(x, y, i, j) if c[i, j] = NIL then if x[i] = y[j] then c[i, j] LCS(x, y, i 1, j 1) + 1 else c[i, j] max{lcs(x, y, i 1, j), LCS(x, y, i, j 1)} önceki gibi Süre = Θ(mn) =her tablo girişi için sabit miktarda iş. Yer(alan) = Θ(mn). November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.27

Dinamik-programlama algoritması Fikir: Aşağıdan yukarıya tabloyu hesaplayın. A B C B D A B 00 00 00 00 00 00 00 00 B 00 00 11 11 11 11 11 11 D 00 00 11 11 11 22 22 2 C 00 00 11 22 22 22 22 2 A 00 11 11 22 22 22 33 33 B 00 11 22 22 33 33 33 44 A 00 11 22 22 33 33 4 44 November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.28

Fikir: Süre = Θ(mn). Dinamik-programlama algoritması Aşağıdan yukarıya tabloyu hesaplayın. A B C B D A B 00 00 00 00 00 00 00 00 B 00 00 11 11 11 11 11 11 D 00 00 11 11 11 22 22 2 C 00 00 11 22 22 22 22 2 A 00 11 11 22 22 22 33 33 B 00 11 22 22 33 33 33 44 A 00 11 22 22 33 33 4 44 November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.29

Dinamik-programlama algoritması Fikir: A B C B D A B Aşağıdan yukarıya 000 000 00 00 00 00 00 00 tabloyu hesaplayın. B 00 00 111 11 11 11 11 11 Süre = Θ(mn). D 00 00 111 11 11 22 22 22 LCS' yi, geriye C 00 00 11 2 giderek 22 22 22 22 22 tekrar oluşturun. A 00 11 11 222 22 22 33 33 B 00 11 22 22 333 333 33 44 A 00 11 22 22 33 33 444 444 November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.30

Dinamik-programlama algoritması Fikir: A B C B D A B Aşağıdan yukarıya 000 000 00 00 00 00 00 00 tabloyu hesaplayın B 00 00 111 11 11 11 11 11 Süre = Θ(mn). D 00 00 111 11 11 22 22 22 LCS' yi, geriye C 00 00 11 2 giderek 22 22 22 22 22 tekrar oluşturun. A 00 11 11 222 22 22 33 33 Alan = Θ(mn). B 00 11 22 22 333 333 33 44 Alıştırma: O(min{m, n}). A 00 11 22 22 33 33 444 444 November 7, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L15.31