FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ

Slides:



Advertisements
Benzer bir sunumlar
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Advertisements

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
MIT503 Veri Yapıları ve algoritmalar
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
IT503 Veri Yapıları ve algoritmalar
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Algoritmalar Ders 8 Dinamik Programlama.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
MIT503 Veri Yapıları ve algoritmalar Algoritma Oluşturma – Açgözlü algoritmalar ve buluşsallar Y. Doç. Yuriy Mishchenko.
Sistem Analizi ve Planlama
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Enerji Sistemlerinde Yöneylem Araştırması EBT Bahar Yarıyılı
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Babamın ayakkabı imalathanesi var
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ KONTROL : Prof. Dr. Asaf VAROL
MIT503 Veri Yapıları ve algoritmalar Algoritmalara giriş
BPR151 ALGORİTMA VE PROGRAMLAMA - I
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Bölüm 10 Yapılar ve Birleşimler
Özyinelemeli(Recursive) Algoritma Tasarımı
Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama
Çizge Algoritmaları.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
BPR152 ALGORİTMA VE PROGRAMLAMA - II
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : KAPSÜLLEME.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : LİSTELERE.
Nesneye Yönelik Programlama
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
CEBİRSEL İFADELER ŞEHİT POLİS İSMAİL ÖZBEK ORTA OKULU BURSA/KESTEL.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
YMT219: Veri Yapıları Ders Saatleri: Pazartesi 9:15-12, 17:30-20:15
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Tuğçe ÖZTOP İlköğretim Matematik Öğretmenliği 2. sınıf
HABTEKUS 2008 İstanbul 1 rekabet yaratan altyapı Prof. Dr. E. Murat ESİN Maltepe Üniversitesi
C PROGRAMLAMA FONKSİYONLAR Adres ile Fonksiyon Çağırma Pointer (İşaretçiler) ile Fonksiyon Çağırma Rekürsif Fonksiyonlar.
DENKLEM ÇÖZME Sonraki sayfa
SONLU ELEMANLARA GİRİŞ DERSİ
SOSYAL BİLGİLER ÖĞRETMENLİĞİ BİLGİSAYAR 2 NOT Sum (Topla) Fonksiyonu Belirtilen hücreler arasındaki sayıların toplamını alır. =SUM (E2;E11) E2 hücresinden.
Şahin BAYZAN Kocaeli Üniversitesi Teknik Eğitim Fakültesi
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Hosoya Üçgeninin Üçgenleri
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Bölüm10 İteratif İyileştirme Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Algoritmalar II Ders 5 Açgözlü Algoritmalar.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Tamsayılı Doğrusal Programlama Algoritmaları
İleri Algoritma Analizi
Optimizasyon Teknikleri
VERİ TÜRLERİ.
FONKSİYONLAR.
Problem Çözme Yaklaşımları
İleri Algoritma Analizi
Algoritma Nedir? Algoritmayı, herhangi bir problemin çözümü için izlenecek yolun adımlar halinde yazılması olarak tanımlayabiliriz. Algoritma, bir problemin.
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
NİŞANTAŞI ÜNİVERSİTESİ
Bilgisayar Bilimi Fonksiyonlar-2.
Bilgisayar Bilimi Problem Çözme Süreci-3.
İleri Algoritma Analizi
Temel Matematik 2 Diziler ve Seriler Ocak 2016 İstanbul Üniversitesi
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Sunum transkripti:

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ KONU : DİNAMİK PROGRAMLAMA ve ÖRTÜŞEN ALT PROBLEMLER DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL

İÇERİK Dinamik Programlama Dinamik Programlama ve Örtüşen Alt Problemler Dinamik Programlama ve Optimum(En iyi) Alt Yapılar Kaynaklar

Dinamik Programlama Bir problem tahlil ve çözüm yöntemi olan dinamik programlama yapı olarak parçala fethet yöntemine benzer. Tek farkı problemi parçalara böldükten sonra aynı problemin tekrarı olan parçaları bir kerede çözüp her tekrar için ayrı bir çözüm yapmamasıdır. Dinamik programlama bir başka açıdan bakıldığında ise bir optimizasyon tekniğidir. Özyinemeli (rekürsif) çözüme sahip problemlerde dinamik programlama problem çözüm yolumuzun verimini olağanüstü bir biçimde artırmaktadır.

Dinamik Programlama Dinamik programlama uygulamalarımızda temel olarak; çözümü aynı olan alt-problemler, büyük bir problemi küçük parçalara bölmek ve bu küçük parçaları kullanarak baştaki büyük problemimizin sonucuna ulaşmak, çözdüğümüz her alt-problemin sonucunu bir yere not almak ve gerektiğinde bu sonucu kullanarak aynı problemi tekrar tekrar çözmeyi engellemek, gibi üç ayrı teknikten faydalanılmaktadır.

Dinamik Programlama ve Örtüşen Alt problemler Dinamik programlamanın çok güzel ve zekice kullanılabileceği temel bir problem olan Fibonacci dizisi üzerinden dinamik programlamanın ne olduğunu daha net bir şekilde inceleyelim. 1. Yol (Rekürsif Yöntem):

Dinamik Programlama ve Örtüşen Alt problemler Örtüşme Tablosu : Dikkat edilirse fonksiyonlar açıldığında kendisinden önceki iki sayının toplamını bulmakta ve bu işlemi yaparken de ortak elemanlar kullanmaktadır. Örneğin fib(2) fonksiyonu çözüm ağacın üç farklı yerinde bulunmaktadır ve her defasında iç içe hesaplanmıştır. İşte dinamik programlamada amaç bunu kaldırarak bir kerede çözüme ulaşmaktır

Dinamik Programlama 2. Yol (Dinamik Programlama Yöntemi): k. aşamada, yalnızca fib(k-1) ve  fib(k-2)'nin değerlerine ihtiyaç duyarız, fakat, her birini birçok kez çağırmışızdır. Kuru kalabalığı azaltmak için sondan başlayıp yukarı çıkarak bir sonraki aşamada gerekli sayıları aşağıdaki şekilde hesaplayabiliriz.

Dinamik Programlama Sonuç: fib ve fib2 fonksiyonlarına karşılık girdi parametrelerinin gösterildiği çalışma zamanları (milisaniye cinsinden) karşılaştırıldığında fib2 fonksiyonunun daha verimli çalıştığı görülmektedir.

Dinamik Programlama ve Optimum Altyapılar Optimum(En İyi) Altyapı : Global çözüm, alt problemlerdeki yerel en iyi çözümlerden inşa edilebiliyorsa, böyle bir problem için en iyi altyapıya sahiptir denir. Örnek : Maksimum Alt Dizi Toplamı (Maximum Subarray Sum) Verilen bir tamsayı listesi içerisinde/dizisinde elemanları komşu olmak şartıyla hangi (bitişik) alt dizi en yüksek toplamı verir? Örneğin ; a=[1,2,-5,4,7,-2] [4,7], b=[1,5,-3,4,-2,1] [1, 5, -3, 4] alt dizileri en büyük toplama sahip alt dizilerdir.

Dinamik Programlama ve Optimum Altyapılar Çözüm 1. Yol(Dinamik Olmayan Yöntem): i değerleri j değerleri Alt dizi sınırları Dizi Max.Top 1 (0,1) [1,2,-5,4,7,-2] 2 0,1 (0,2)-(1,2) 3 0,1,2 (0,3)-(1,3)-(2,3) -2 4 0,1,2,3 (0,4)-(1,4)-(2,4)-(3,4) 5 0,1,2,3,4 (0,5)-(1,5)-(2,5)-(3,5)-(4,5) 11 6 0,1,2,3,4,5 (0,6)-(1,6)-(2,6)-(3,6)-(4,6)-(5,6)

Dinamik Programlama ve Optimum Altyapılar Çözüm 2. Yol(Dinamik Yöntem): t= Sol sınırdan dizinin ilgili elemanına kadar olan toplam s= En yüksek toplam değeri bounds= En yüksek toplamı veren alt dizinin ana dizi içindeki sınırları

Dinamik Programlama ve Optimum Altyapılar Çözüm: 2. Yol(Dinamik Yöntem):

Dinamik Programlama ve Optimum Altyapılar Sonuç: Bu problemde "global en iyi" çözüm, global en yüksek toplama sahip alt dizi ile ilişkilidir, her aşamada o ana kadar gördüklerimizi kullanarak karar veririz. Yani her aşamada, o ana kadarki en iyi sonucu biliriz fakat bir sonraki aşamaya geçmeden bu aşamada gördüklerimizle değerlendirip değiştirebiliriz. Problemin en iyi altyapı özelliğine sahip olması budur.

Kaynaklar [1] http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/lecture-videos/ [2] http://e-bergi.com/2008/Mart/Dinamik-Programlama [3] http://burakisikli.wordpress.com/2009/08/14/dinamik-programlamadynamic-programming/ [4] http://ismailari.com/?s=dinamik+programlama