Algoritmalar II Ders 5 Açgözlü Algoritmalar.

Slides:



Advertisements
Benzer bir sunumlar
Yinelemeli Algoritma Analizi & Asimptotik Notasyon
Advertisements

Ayrık Yapılar Algoritma Analizi.
MIT503 Veri Yapıları ve algoritmalar
IT503 Veri Yapıları ve algoritmalar
Algoritmalar Ders 8 Dinamik Programlama.
MIT503 Veri Yapıları ve algoritmalar Algoritma Oluşturma – Açgözlü algoritmalar ve buluşsallar Y. Doç. Yuriy Mishchenko.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Problemi Çözme Adımları
4 Kontrol Yapıları: 1.Bölüm.
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
MIT503 Veri Yapıları ve algoritmalar En önemli graf problemleri
BAĞINTI T ANIM: Boş olmayan A ve B kümeleri için, A×B nin her alt kümesine, Adan B ye bir bağıntı denir.A×B nin her alt kümesine de A dan A ya bir bağıntı.
İŞ SIRALAMA VE ÇİZELGELEME DERS 4
Bölüm 3 – Yapısal Programlama
Çizge Algoritmaları.
Yapısal Program Geliştirme – if, if-else
Görsel C# ile Windows Programlama
KÜMELER.
Bölüm 2 – Kontrol Yapıları
İŞLEM TANIM: A boş olmayan bir küme olmak üzere,A×A nın bir R alt kümesinden A ya tanımlanan her fonksiyona, işlem denir.İşlemi tanımlarken,’’
YMT219: Veri Yapıları Ders Saatleri: Pazartesi 9:15-12, 17:30-20:15
ALGORİTMA.
SONLU ELEMANLARA GİRİŞ DERSİ
Çizge Algoritmaları Ders 2.
DİFERANSİYEL DENKLEMLER
Problem Yaklaşım Temelleri, Algoritma ve Akış Şeması
Greedy Algorithms.
Dinamik programlama ve açgözlü yaklaşım soruları.
Bölüm10 İteratif İyileştirme Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Dinamik programlama ve Açgözlü algoritma
İleri Algoritmalar 1. ders.
Algoritmalar II Ders 6 Açgözlü Algoritmalar.
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
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 1: Alan zaman takası yöntemi.
Algoritmalar II Ders 7 Açgözlü Algoritmalar.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.
Tamsayılı Doğrusal Programlama Algoritmaları
Algoritmalar II Ders 14 Çizgelerde tüm ikililer arasında en kısa yollar.
Maksimum akış.
Kümeleme ve Regresyon Problemleri için Kolektif Öğrenme
MAKSİMUM AKİŞ PROBLEMİ
Algoritmalar II Ders 17 İteratif İyileştirme Yöntemi.
İleri Algoritma Analizi
İleri Algoritma Analizi
Diziler.
9. Ders Tüm ikililer arasında en kısa yollar
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
Optimizasyon Teknikleri
Prof. Dr. Şahin EMRAH Algoritmalar I
İleri Algoritma Analizi
Algoritmalar II Ders 11 Çizgeler. Çizgelerin bilgisayarda gösterimi. BFS algoritması.
KÜMELERDE KESİŞİM VE BİRLEŞİM İŞLEMİ
İleri Algoritma Analizi
Chapter 6 Dönüştür ve Yönet (Transform-and-Conquer)
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
doğal sayısındaki rakamların sayı değerleri toplamı kaçtır?
İleri Algoritma Analizi
Algoritmalar II Ders 9 Dinamik Programlama ve Açgözlü Yaklaşım Soruları.
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
NİŞANTAŞI ÜNİVERSİTESİ
Çizge Teorisi ve Algoritmalari
İleri Algoritma Analizi
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Rekürensler Rekürens aranan fonksiyonun ve onun daha önceki girişlerdeki değerinin bir arada bulunduğu denklem veya eşitsizliktir. Örneğin, MERGE-SORT.
Çizge Algoritmalari 10. Ders.
Bölüm 5 Azalt ve yönet (Decrease-and-Conquer)
10. Ders Floyd-Warshal algoritması
Sunum transkripti:

Algoritmalar II Ders 5 Açgözlü Algoritmalar

Greedy Algorithms

Açgözlü(Greedy) yaklaşım Dinamik programlama tekniği gibi optimizasyon sorularına uygulanır Uygulanması çok daha kolay bir yaklaşımdır Problem optimallık prensibini sağlamalıdır (DP gibi). Problemin aynı zamanda açgözlü (greedy)-seçim özelliği olmalıdır. Her adımda o adımda en iyi görünen elemanı seçiyoruz (yerel optimal seçim) yerel optimal seçim yaparak global optimal çözümü bulacağımızı umut ediyoruz

AÇGÖZLÜ YAKLAŞIM Bir problemin ardışık kararlar dizisi sonucu çözülebileceğini varsayalım. Açgözlü yaklaşım şudur: her adımdaki karar o adım için en iyi karardır(yerel optimaldir). Bu yerel optimal çözümler sonuçta global optimal çözümü(asıl problemin çözümünü) oluşturuyorlar. Çok az sayıda optimizasyon problemine açgözlü yaklaşım uygulanabilir.

BASİT BİR ÖRNEK for i = 1 to k dizideki en büyük sayıyı al Problem: n sayı arasından toplamları en çok olan k sayı bulunuz. Algoritma: for i = 1 to k dizideki en büyük sayıyı al aldığın sayıyı diziden sil.

ÖZEL BİR ÇİZGEDE EN KISA YOL PROBLEMİ Problem: Aşağıdaki çizgede v0 dan v3 e olan en kısa yolu bulunuz greedy yöntem bu problemi çözer. En kısa yol: 1 + 2 + 4 = 7.

ÇOK KADEMELİ BİR ÇİZGEDE EN KISA YOL Problem: Aşağıdaki çok kademeli çizgede v0 dan v3 e olan en kısa yolu bulunuz Greedy method: v0v1,2v2,1v3 = 23 Optimal: v0v1,1v2,2v3 = 7 The greedy method does not work.

PROBLEMİN ÇÖZÜMÜ dmin(i,j): i ve j arasındaki en kısa uzaklık olsun. Problem dinamik programlama yöntemiyle çözülebilir.

ETKİNLİK SEÇİMİ PROBLEMİ Problem: n etkinlik var, S = {1, 2, …, n}, her i etkinliğinin başlangıç zamanı si ve bitiş zamanı fi, si  fi var. i etkinliği [si, fi] zaman aralığında yapılıyor. i ve j etkinlikleri için si  fj veya sj  fi ise bu etkinlikler uyumludur denir. Eleman sayısı maksimum ve tüm elemanları ikişerli uyumlu olan etkinlikler kümesi aranıyor.

Örnek: Çözüm kümesi = {1, 4, 8, 11} Algoritma: Başlangıçta çözüm kümesi boş küme olsun Adım 1: Bitiş zamanları fi dizisini küçükten büyüğe doğru sırala, sıralama sonrası f1  f2  f3  …  fn. Adım 2: Çözüm kümesinde bulunan tüm etkinliklerle uyumlu olan sıradaki i etkinliğini çözüm kümesine ekle . Adım 3: Bakılmamış etkinlik kalmadıysa dur. Aksi durumda, Adım 2 ye git. İşlem zamanı: O(nlogn) i 1 2 3 4 5 6 7 8 9 10 11 si 12 fi 13 14

Copyright © The McGraw-Hill Companies, Inc Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

Örneğin adım adım çözümü: Solution = {1, 4, 8, 11} si fi Kabul 1 4 Evet 2 3 5 Hayır 6 7 8 10 11 9 12 13 14

SON TESLİM TARİHLERİ BULUNAN İŞLER Problem: n iş var, S={1, 2, …, n}, her i işinin son teslim tarihi di  0 ve getirisi pi  0 veriliyor. Her işi bir birimlik zaman diliminde yapabiliyoruz ve bir işi teslim etmeden başka işi yapamıyoruz. i işini son teslim tarihinden önce teslim etmeden pi getirisini kazanamıyoruz. Amac en çok para kazanmaktır. Optimal çözüm= {1, 2, 4}. Toplam kazanç= 20 + 15 + 5 = 40. i 1 2 3 4 5 pi 20 15 10 di

Algorima: Başlangıçta çözüm kümesi boştur Adım 1: Getiriler pi dizisini artmayan biçimde sırala. Sıralama sonrası p1  p2  p3  …  pn. Adım 2: Son teslim tarihi geçmemiş sıradaki i işini al ve [r-1, r] zaman aralığında yapmayı planla. Burada r sayısı 1  r  di koşulunu sağlayan ve [r-1, r] zaman aralığının boş olduğu en büyük r tam sayısıdır. (Tabii eğer bu koşula uyan r sayısı varsa) Adım 3: Tüm işlere bakılmışsa dur. Aksi durumda 2. adıma geç. İşlem zamanı: O(n2)

Çözüm kümesi = {1, 2, 4} Toplam kazanç = 20 + 15 + 5 = 40 Örnek. i pi di 1 20 2 [1, 2] aralığını seç 15 [0, 1] aralığını seç 3 10 reddet 4 5 [2, 3] aralığını seç