Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Algoritmalar II Ders 17 İteratif İyileştirme Yöntemi.

Benzer bir sunumlar


... konulu sunumlar: "Algoritmalar II Ders 17 İteratif İyileştirme Yöntemi."— Sunum transkripti:

1 Algoritmalar II Ders 17 İteratif İyileştirme Yöntemi

2 Bölüm10 İteratif İyileştirme
Copyright © 2007 Pearson Addison-Wesley. All rights reserved.

3 İteratİf İyİleştİrme Optimizasyon problemlerini çözmek için bir algoritma geliştirme yöntemi Uygun bir çözüm ile başla Aşağıdaki adımları iyileştirme bulunduğu sürece tekrar et: Mevcut uygun çözümü amaç fonksiyonun daha iyi değerine sahip olan başka bir uygun çözümle değiştir En son uygun çözümü optimal çözüm olarak geri gönder Eksik yönü: Yerel ekstremum değerine takılabilir These were discussed in the first lecture. At this point, the claims made then about “efficient” algorithms can be discussed in more concrete terms. Before launching into this lecture, I usually read to my students the introductory whimsical example from Garey and Johnson “Computers and Intractability”, while showing overhead transparencies of their cartoons. These are not reproduced here because it would require copyright clearance.

4 Önemli örnekler Maksimum akış problemi için Ford-Fulkerson algoritması
Maximum eşleştirme problemi Dayanıklı evlilik için Gale-Shapley algoritması

5 MAKSİMUM AKİŞ PROBLEMİ
CLRS 26. Bölüm

6 Akış tanımları Kaynak köşe s Hedef köşe t Diğer tüm köşeler
Ürünün üretildiği yer Hedef köşe t Ürünün gönderileceği yer Diğer tüm köşeler Kaynaktan hedefe giderken ara duraklar Amaç: kaynaktan hedefe maksimum sayıda ürün taşımak

7 Örnek Örnek: Petrol akışı Model Yönlü çizge G=(V,E) Kaynak Hedef v1 v3
S S t t v2 v4 Kaynak v2 v4 Hedef

8 Kapasite Büyük boru Küçük boru c(u,v)=12 c(u,v)=6 8 3 6 S t v1 v2 v3

9 Kapasite Eğer (u,v)  E  c(u,v) = 0 3 v1 v3 v1 v3 6 8 3 S S t t 3 6 8
v4 v3

10 Akış Kapasiteden az akış Bu boru için maksimum akış f(u,v)=6 8 3 6 S t
6/12 u v f(u,v)=6 Kapasiteden az akış 6/6 u v Bu boru için maksimum akış

11 Akış 8 3 6 6/8 6/6 S t v1 v2 v3 v4 v1 v3 S t v2 v4

12 Akış 3/8 3/3 3/6 6/8 6/6 3 S t v1 v2 v3 v4 v1 v3 S t v2 v4

13 Akış 5/8 3/3 3/6 8/8 6/6 2/3 3 S t v1 v2 v3 v4 v1 v3 S t v2 v4

14 Akış Özellikleri

15 Flow properties 12/12 11/16 15/20 10 1/4 7/7 4/9 4/4 8/13 11/14 v1 v3

16 Net Akış u u f(u,v) = 5 f(v,u) = -5 8/10 3/4 5/10 4 v v

17 Maksimum akış problemi
Verilen ağırlıklı yönlü G çizgesinde kaynak köşeden hedef köşeye maksimum akışı bulmaktır. Ağırlıklar kapasiteleri göstermektedir.

18 Ford-Fulkerson Algoritması
2 önemli kavram içeriyor:        1) kalan ağ     2) büyüyen yol     

19 Kalan Ağ G çizgesinde f akışına göre kalan ağ Gf aşağıdaki gibi tanımlanıyor: Kalan ağın her kirişinin kapasitesi cf(u,v) = c(u,v) – f(u,v) formülü ile belirleniyor. Akış çizgesi G = (V,E) Kalan ağ Gf = (V,Ef) 12/12 v1 v3 v1 v3 5 11 11/16 15/20 10 1/4 7/7 S t S t 4/9 8 5 4/4 8/13 v2 v4 v2 v4 11/14 cf(u,v) = c(u,v) – f(u,v)

20 Ford Fulkerson – Kalan Ağ
Akış çizgesi G = (V,E) Kalan Ağ Gf = (V,Ef) 12/12 12 v1 v3 v1 v3 5 11/16 5 15/20 11 4 10 1/4 7/7 11 3 7 15 S t S t 4/9 5 5 4/4 4 8/13 8 3 v2 v4 v2 v4 11/14 11 cf(u,v) = c(u,v) – f(u,v)

21 Ford Fulkerson –Büyüyen yol
Definition: Gf kalan ağında kaynak köşe s den hedef köşe t ye olan yol p yolunun kapasitesi aşağıdaki formülle hesaplanır: cf(p) = min{cf (u,v): (u,v) p yolunda ise} Akış çizgesi G = (V,E) Kalan ağ Gf = (V,Ef) 12/12 12 v1 v3 v1 v3 5 11/16 5 15/20 11 4 10 1/4 7/7 11 3 7 15 S t S t 4/9 5 5 4/4 4 8/13 8 3 v2 v4 v2 v4 11/14 11

22 Ford Fulkerson-Büyüyen yol
Akış çizgesi G = (V,E) Kalan Ağ Gf = (V,Ef) 12/12 12 v1 v3 v1 v3 5 11/16 5 15/20 11 4 10 1/4 7/7 11 3 7 15 S t S t 4/9 5 5 4/4 4 8/13 v2 v4 8 3 v2 v4 11/14 11 Büyüyen yol

23 Ford Fulkerson – Büyüyen yol
p yolunda akış fp: V x V  R aşağıdaki gibidir: cf(p) eğer (u,v) p de ise fp(u,v) = cf(p) eğer (v,u) p de ise aksi durumda Flow network G = (V,E) residual network Gf = (V,Ef) 12/12 12 v1 v3 v1 v3 5 11/16 5 15/20 11 4 10 1/4 7/7 11 3 7 15 S t S t 4/9 5 5 4/4 4 8/13 v2 v4 8 3 v2 v4 11/14 11

24 Ford Fulkerson – Büyüyen yol
Akış çizgesi G = (V,E) Kalan ağ Gf = (V,Ef) 12/12 12 v1 v3 v1 v3 5 11/16 4/5 15/20 11 4/4 10 1/4 7/7 11 3 7 -4/15 S t S t 4/9 -4/5 4/5 4/4 4 8/13 v2 v4 -4/8 3 v2 v4 11/14 11

25 Ford Fulkerson –Büyüyen yol
Akış çizgesi G = (V,E) Kalan Ağ Gf = (V,Ef) 12/12 12 v1 v3 v1 v3 5 11/16 4/5 19/20 11 4/4 10 1/4 7/7 11 3 7 15 S t S t 0/9 5 4/5 4/4 4 12/13 8 3 v2 v4 v2 v4 11/14 11 Yeni akış: f´: V x V  R : f´=f + fp

26 The Ford-Fulkerson Algoritması
Ford-Fulkerson(G,s,t) 1 for each edge (u,v) in G.E do 2 f(u,v) ¬ f(v,u) ¬ 0 3 while there exists a path p from s to t in residual network Gf do 4 cf = min{cf(u,v): (u,v) is in p} 5 for each edge (u,v) in p do f(u,v) ¬ f(u,v) + cf f(v,u) ¬ -f(u,v) 8 return f

27 Execution of Ford-Fulkerson (1)
Left Side = Residual Graph Right Side = Augmented Flow

28 Execution of Ford-Fulkerson (2)
Left Side = Residual Graph Right Side = Augmented Flow

29 En kötü durum En kötü durumda işlem süresi O(E|f*|), burada f* maksimum akış değeridir. En kötü durum için örnek:

30 Uygulama-Eşleştirme problemi
Örnek– n erkek ve m kadın veriliyor Her biri kimlerle evlenebileceğini belirtiyor (karşılıklı olarak) Örneğin, (A, X) veya (B, X) … Problem: Maksimum sayıda evlilik yapılmasını sağlamak Bir kişi sadece bir kişi ile evlenebilir Problem maksimum akış problemine dönüştürülerek çözülebilir

31 İki kümeli çizge G=(V,E) çizgesinde V kümesi birbiri ile kesişmeyen ve boş olmayan V1 ve V2 kümelerine öyle ayrılabiliyor ki (u,v)  E ise u  V1 ve v  V2 veya tersi olur. Örnek:

32 Eşleştirme problemi A A A X X X B B B Y Y Y C C C Z Z Z D D D Erkekler
Kadınlar Eşleştirme Maksimum eşleştirme

33 MAKSİMUM AKIŞ PROBLEMİNE DÖNÜŞTÜRME
Sanal başlangıç, sanal hedef ekleyelim ve tüm kapasiteleri 1 alalım (her kişi sadece 1 kişi ile evlenebilir) A A X X B B t Y s Y C C Z Z D D

34 Çok kaynaklı ve Çok hedefli taşıma
Verilen: yönlü çizge G=(V, E) Kaynak Si köşeleri ve üretim kapasiteleri si, i=1,…,p Hedef Di köşeleri ve kapasiteleri di, i=1,…,q Ara duraklar için kapasite fonksiyonu u: E  R Amaç: Kaynaklardan hedeflere maksimum akışı sağlamak Örnek.: 11 2 19 4 5 15 9 17 A D1 B C S1 D2 S2 8 16

35 Dönüştürme Sanal başlangıç O olsun. OSi kirişinin kapasitesi si olsun . Sanal hedef T ve Di  T kirişinin kapasitesi di olsun. 2 19 4 5 15 9 17 11 A D1 B C S1 D2 S2 17 11 T O 16 8 8 16


"Algoritmalar II Ders 17 İteratif İyileştirme Yöntemi." indir ppt

Benzer bir sunumlar


Google Reklamları