Algoritmalar Ders 8 Dinamik Programlama.

Slides:



Advertisements
Benzer bir sunumlar
MIT503 Veri Yapıları ve algoritmalar
Advertisements

LİMİT.
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
MIT503 Veri Yapıları ve algoritmalar Algoritma Oluşturma – Açgözlü algoritmalar ve buluşsallar Y. Doç. Yuriy Mishchenko.
5 EKSENLİ ROBOT KOLUNUN YÖRÜNGE PLANLAMASI ve DENEYSEL UYGULAMA
Baz Değişimi Bir sorun için uygun olan bir baz, bir diğeri için uygun olmayabilir, bu nedenle bir bazdan diğerine değişim için vektör uzayları ile çalışmak.
MATRİSLER Şekildeki gibi bir cismin elemanlarından oluşan sıralı tabloya m x n tipinde bir matris denir. i= 1,2,3, .. , m ve j = 1,2,3, ... , n olmak üzere,
SAÜ. ENDÜSTRİ MÜHENDİSLİĞİ BL. GENETİK ALGORİTMALARIN UYGULANMASI
EN KÜÇÜK ORTAK KAT.
ORAN – ORANTI.
Prof. Dr. Halil İbrahim Karakaş
9. ADİ DİFERANSİYEL DENKLEMLERİN SAYISAL ÇÖZÜMLERİ
Support Vector Machines
MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
TÜREV UYGULAMALARI.
MATEMATİKSEL PROGRAMLAMA
Ek 2A Diferansiyel Hesaplama Teknikleri
Özyinelemeli(Recursive) Algoritma Tasarımı
doğal sayısındaki rakamların sayı değerleri toplamı kaçtır?
Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama
ASAL SAYILAR VE ÇARPANLARINA AYIRMA
Optimizasyon Teknikleri
İŞLEM ÖNCELİĞİ MATEMATİK 5,6.
DERS 2 MATRİSLERDE İŞLEMLER VE TERS MATRİS YÖNTEMİ
MATRİS-DETERMİNANT MATEMATİK.
Bölüm6:Diferansiyel Denklemler: Başlangıç Değer Problemleri
FİZ363 KLASİK MEKANİK (4-0-4)
GEOMETRİK PROGRAMLAMA
ÜSLÜ SAYILAR ileri.
ÜSLÜ İFADELER.
Lineer Cebir Prof.Dr.Şaban EREN
SONLU ELEMANLAR YÖNTEMİ
MATLAB’ de Programlama
Karenin Çevresi ve Alanı
Prof. Dr. Halil İbrahim Karakaş
PROGRAMLAMA Doç.Dr. Murat ÇAKIROĞLU 2015 – 2016 Güz Dönemi Kredi : 3+1
Algoritmalar ve Programlama I Ders 2: Akış Diyagramları
Matrisler ( Determinant )
Optimizasyon.
SİMPLEKS METOT Müh. Ekonomisi.
TAM SAYILARIN KUVVETİ.
‘nin çözümünü bulmanın bir yolu yok mu?
n bilinmeyenli m denklem
Hatırlatma: Durum Denklemleri
Dinamik programlama ve açgözlü yaklaşım soruları.
ISIS IRIR ITIT Z=10e -j45, 3-fazlı ve kaynak 220 V. I R, I S, I T akımları ile her empedansa ilişkin akımları belirleyin.
Lineer Cebir (Matris).
Dynamic Programming Introduction to Algorithms MIT Press (Chapter 15)
Lineer cebrin temel teoremi-kısım 1
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Lineer Vektör Uzayı ‘de iki
Algoritmalar II Ders 5 Açgözlü Algoritmalar.
Algoritmalar II Ders 10 Dinamik Programlama ve Açgözlü Yaklaşım Soruları-2.
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Algoritmalar II Ders 7 Açgözlü Algoritmalar.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
İleri Algoritma Analizi
SAĞLIK KURUMLARINDA KARAR VERME YÖNTEMLERİ
9. Ders Tüm ikililer arasında en kısa yollar
TAM SAYILAR.
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
Optimizasyon Teknikleri
İleri Algoritma Analizi
doğal sayısındaki rakamların sayı değerleri toplamı kaçtır?
Algoritmalar II Ders 9 Dinamik Programlama ve Açgözlü Yaklaşım Soruları.
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
10. HAFTA BİLGİSAYAR PROGRAMLAMA DERSİ
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Sunum transkripti:

Algoritmalar Ders 8 Dinamik Programlama

Dinamik Programlama Böl-ve-fethet gibi bir tasarım tekniği. Böl ve yönet yönteminde alt problemlerin bağımsız olması gerekiyor. DP’ da alt problemler bağımsız değilse de, DP uygulanabilir. DP her alt problemi bir kez çözer ve çözümleri bir tabloda saklar Aynı alt problemin birden fazla ortaya çıkma durumunda her seferinde tekrar çözüm yapmaz, tabloda saklamış olduğu değeri problemde yerine koyar. Bu şekilde işlemlerin çözümünün hızlanması sağlanmış olur.

Dinamik Programlama DP, genelde en iyileme (optimizasyon) problemlerine uygulanır. Bu tip problemlerin birden fazla çözümü olabilir. Amaç bu çözümler içinde en iyisini bulmaktır. DP gelişimi dört adımda özetlenebilir ve bu dört adım DP’ nin temelini oluştururlar.

Dinamik Programlama DP geliştirmek için şu dört adım izlenmelidir: Optimal çözümün yapısının karakteristiği ortaya çıkarılmalı. Özyinelemeli olarak optimal çözümün değerini tanımlamalı. Alttan-üste (bottom-up) mantığı ile bir optimal çözümün değerini hesaplamalı. Hesaplanan bilgilerden optimal çözüm elde edilir.

Zincir Matris Çarpımı <A1,A2,...,An> matris zinciri olsun. C=A1A2...An çarpımı hesaplanmak isteniyor. Matris çarpımının birleşme özelliği vardır. Bundan dolayı her türlü paranteze alma her zaman için aynı sonucu verecektir. Örneğin <A1,A2,A3,A4> için beş tane farklı hesaplama yöntemi vardır. (A1(A2(A3A4))) (A1(A2A3)A4)) Seçilecek olan parantezlemenin ((A1A2)(A3A4)) hesaplama maliyeti üzerinde ((A1(A2A3)A4) önemli bir etkisi vardır. (((A1A2)A3)A4)

Zincir Matris Çarpımı Seçilen yolun maliyet üzerindeki etkisini daha rahat görebilmek için <A1,A2,A3> zinciri ele alınsın. Boyutlar sırasıyla 10x100, 100x5, 5x50 olsun. p×q ve q×r boyutlarındaki iki matrisin çarpımında pqr tane skaler çarpım işlemi gerçekleştirilir. 1. alternatif: Bu üç matrisin çarpımı ((A1A2)A3) parantezlemesine göre yapılırsa, A1A2 matrislerinin çarpımında 10.100.5=500 tane skaler çarpım yapılır. Elde edilen sonuç matrisin boyutları 10x5 olur. Bu matris ile A3 matrisinin çarpımı içinde 10.5.50=2500 tane skaler çarpım yapılır. Toplam olarak 7500 tane skaler çarpım yapılır.

Zincir Matris Çarpımı 2. alternatif: Eğer matrisler (A1(A2A3)) şeklinde çarpılırlarsa, A2A3 matrislerinin çarpımı için 100.5.50=25000 tane skaler çarpıma ihtiyaç vardır. Elde edilen sonuç matrisinin boyutları 100x50 olur. Bu matris ile A1 matrisinin çarpımı için de 10.100.50=50000 tane skaler çarpımyapılır. Toplam olarak 75000 tane skaler çarpım yapılır.

DP: Zincir Matris Çarpımı Çarpılacak olan n tane matris için yapılabilecek parantez sayısı P(n) olsun. Bu durumda P(1)=P(2)=1 olur ve P(3)=2, P(4)=5 olur. Fakat n büyüdüğü zaman yapılabilecek parantez sayısı da oldukça hızlı artacaktır. Aşağıdaki yineleme bağıntısı n boyutlu matris zinciri için farklı parantezleme sayısını verir. P(n)=O(2n) dir. Yani çözüm sayısı üstel(exponential)dir.

Zincir Matris Çarpımı (Dinamik Programlama ile Çözümü) Adım 1: Optimal çözümün yapısının karakteristiği ortaya çıkarılmalı. AiAi+1...Aj çarpımı için aşağıdaki gibi optimal parantezleme yapabiliriz. AiAi+1...Ak ve Ak+1...Aj 1 ≤ i ≤ k < j ≤ n olmak üzere

Zincir Matris Çarpımı (Dinamik Programlama ile Çözümü) Adım 2: Özyinelemeli olarak optimal çözümün değerini tanımlamalı. AiAi+1...Aj çarpımının minimum maliyete sahip parantezlemesinin özyinelemeli tanımı şu şekildedir. Ai matrisinin boyutları pi-1 x pi dir.

Zincir Matris Çarpımı (Dinamik Programlama ile Çözümü) Adım 3: Alttan-üste (bottom-up) mantığı ile bir optimal çözümün değerini hesaplamalı.

Zincir Matris Çarpımı (Dinamik Programlama ile Çözümü) Örnek:

Zincir Matris Çarpımı (Dinamik Programlama ile Çözümü) Adım 4: Hesaplanan bilgilerden optimal çözüm elde edilir. Fonksiyonun ilk çalıştırılması: PRINT-OPTIMAL-PARENS(s,1,n)