Maksimum akış.

Slides:



Advertisements
Benzer bir sunumlar
Karar Verme: Eşitlik ve Karşılaştırma Operatörleri
Advertisements

Alakalı müşterileri hedefleyin. Google ile Yeniden Pazarlama Remarketing with Google. Target customers who are already showing interest in your business.
Kontrol Çevrimleri FOR WHILE DO-WHILE IF-ELSE SWITCH-CASE-DEFAULT
Diziler PHP.
Sustainable Developement & International Perspective in School Bu proje T.C. Başbakanlık DPT AB Eğitim ve Gençlik Programları Merkezi Başkanlığı (
İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember)
HAZıRLAYAN: YRD.DOÇ.DR.EMIN BORANDAĞ Oyun Programlama (Yol Bulma)
MIT503 Veri Yapıları ve algoritmalar En önemli graf problemleri
İŞ SIRALAMA VE ÇİZELGELEME DERS 4
Çizge Algoritmaları.
Atama ve eşleme (eşleştirme) problemleri (Matching and Assignment problems)
GRAPHS ÖZET.
4. KONTROL VE DÖNGÜ KOMUTLARI
Çizge Algoritmaları Ders 2.
COSTUMES KILIKLAR (KOSTÜMLER)
Veri Yapıları ve Algoritmalar
BM-305 Mikrodenetleyiciler Güz 2015 (6. Sunu) (Yrd. Doç. Dr. Deniz Dal)
AVL Trees / Slide 1 Silme * Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. * Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazi.
Ege ÜNİVERSİTESİ ULUSLARARASI BİLGİSAYAR ENSTİTÜSÜ AYCAN VARGÜN Prof
Sayısal Analiz / Uygulama
Bölüm10 İteratif İyileştirme Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Tokyo Sokaklarında In Tokyo Streets Poem: Can AKIN Translated by: Nilufer DURSUN.
GREETING MANNERS AND POLITE WORDS EMLAK KREDİ BANKASI İLKÖĞRETİM OKULU İstanbul(Bakırköy) SELAMLAMA VE KİBAR SÖZLER.
Doğrusal programlama:İkililik teorisi (Duality theory)
İleri Algoritmalar 1. ders.
Algoritmalar II Ders 6 Açgözlü Algoritmalar.
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Ağırlıksız ikili eşleştirme
MATLAB R2013’e Giriş.
Algoritmalar II Ders 5 Açgözlü Algoritmalar.
İSTATİSTİK II Hipotez Testleri 3.
İSTATİSTİK II Hipotez Testleri 3.
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
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.
Çizge Algoritmalari 6. ders.
Algoritmalar II Ders 14 Çizgelerde tüm ikililer arasında en kısa yollar.
Çizge gösterimleri G = (V, E) çizgesinin komşuluk listesi gösterimi
BİLİMSEL ÇALIŞMA BASAMAKLARI SCIENTIFIC WORKING STEPS MHD BASHAR ALREFAEI Y
MAKSİMUM AKİŞ PROBLEMİ
Algoritmalar II Ders 17 İteratif İyileştirme Yöntemi.
En Kısa Yol Problemleri (Shortest Path Problems)
İSTATİSTİK II Tahminler ve Güven Aralıkları - 2.
Ac POWER ANALYSIS Part III..
Ağırlıksız ikili eşleştirme
9. Ders Tüm ikililer arasında en kısa yollar
Prof. Dr. Şahin EMRAH Algoritmalar I
Döngüler ve Shift Register
İleri Algoritma Analizi
Algoritmalar II Ders 11 Çizgeler. Çizgelerin bilgisayarda gösterimi. BFS algoritması.
NİŞANTAŞI ÜNİVERSİTESİ
Chapter 3 Brute Force Copyright © 2007 Pearson Addison-Wesley. All rights reserved.
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Çizge Algoritmalari 5. ders.
NİŞANTAŞI ÜNİVERSİTESİ
TRİGONOMETRİ. 1-AÇI,YÖNLÜ AÇI, YÖNLÜ YAYLAR A- Açı: Başlangıç noktaları aynı olan iki ışının birleşim kümesine ‘açı’ denir. Bu ışınlara açının kenarları,
Çizge Algoritmalari 4. ders.
İSTATİSTİK II Hipotez Testleri 3.
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritmalar Ders 3.
Çizge Teorisi ve Algoritmalari
Chapter 5 – Balancing of accounts
İleri Algoritma Analizi
Çizge Algoritmaları 3. ders.
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
People with an entrepreneurial mindset are always brave.
Çizge Algoritmalari 10. Ders.
10. Ders Floyd-Warshal algoritması
Graf Teorisi (Graph Theory)
Kelime (Text) İşleme Algoritmaları
Sunum transkripti:

Maksimum akış

Akış problemi s kaynak köşesidir t hedef köşesidir Akacak olanın (petrol, gaz veya veri) üretildiği yerdir t hedef köşesidir Akacak olanın ulaşması gereken yerdir Diğer tüm köşeler akacak olanın geçeceği ara köşelerdir Amaç: Kaynaktan hedefe olabildiğince maksimum akışı sağlamaktır

Örnek Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) kaynak S S t t v2 v4 kaynak v2 v4 hedef

Kapasite Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) 8 3 6 S t v1 v2 v3 v4 v1 v3 S t v2 v4 12 u v c(u,v)=12 c(u,v)=6 Büyük boru u v 6 Küçük boru

Introduction - capacity Representation Example: oil pipeline Flow network: directed graph G=(V,E) 3 v1 v3 v1 v3 6 8 3 S S t t 3 6 8 v2 v4 v2 v4 6 If (u,v)  E  c(u,v) = 0 6 v2 v4 v4 v3

Akış Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) 8 3 6 S t v1 v2 v3 v4 v1 v3 S t v2 v4 6/12 u v f(u,v)=6 Kapasite altı akış 6/6 u v Tam kapasiteli akış

Akış Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) 8 3 6 S t

Introduction – flow Representation Example: oil pipeline Flow network: directed graph G=(V,E) 8 3 6 6/8 6/6 S t v1 v2 v3 v4 v1 v3 S t v2 v4

Akış Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) 8 3 6 6/8 6/6 S t v1 v2 v3 v4 v1 v3 S t v2 v4

Akış Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) 3/8 3/3 3/6 6/8 6/6 3 S t v1 v2 v3 v4 v1 v3 S t v2 v4

Akış Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) 3/8 3/3 3/6 6/8 6/6 3 S t v1 v2 v3 v4 v1 v3 S t v2 v4

Akış Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) 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

Akışı iptal etme Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) 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

Akışı iptal etme Model Örnek: petrol hattı Akış ağı: yönlü çizge G=(V,E) S t v1 v2 v3 v4 6/8 3/3 4/6 8/8 5/6 6/6 1/3 v1 v3 S t v2 v4 u u u u 10 4 8/10 4 8/10 3/4 5/10 4 v v v v

Akış özellikleri

The Ford-Fulkerson yöntemi 2 önemli kavram var:        1) kalan ağ     2) artırılan yol       

Ford Fulkerson – kalan ağ Akış ağı 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)

Ford Fulkerson – kalan ağ Akış ağı 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)

Ford Fulkersen-artırılan yol Definition: Kalan ağda s den t ye her hangi bir basit (döngüsüz) p yolu p yoluna göre kalan kapasite cf(p) = min{cf (u,v): (u,v) p üzerinde} Akış ağı 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

Ford Fulkerson – artırılan yol 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 Artırılan yol

Ford Fulkerson – artırılan yol Akış: fp: V x V  R: cf(p) eğer (u,v) p de ise fp(u,v) = - cf(p) eğer (v,u) p de ise 0 aksi durumda Akış ağı: 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

Ford Fulkerson – augmenting paths We define a flow: fp: V x V  R such as: cf(p) if (u,v) is on p fp(u,v) = - cf(p) if (v,u) is on p 0 otherwise Flow network G = (V,E) residual network 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 3 v2 v4 -4/8 v2 v4 11/14 11 Our virtual flow fp along the augmenting path p in Gf

Ford Fulkerson – augmenting paths We define a flow: fp: V x V  R such as: cf(p) if (u,v) is on p fp(u,v) = - cf(p) if (v,u) is on p 0 otherwise Flow network G = (V,E) residual network 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 3 v2 v4 -4/8 v2 v4 11/14 11 Our virtual flow fp along the augmenting path p in Gf

Ford Fulkerson – augmenting the flow We define a flow: fp: V x V  R such as: cf(p) if (u,v) is on p fp(u,v) = - cf(p) if (v,u) is on p 0 otherwise Flow network G = (V,E) residual network 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 3 v2 v4 8 v2 v4 11/14 11 New flow: f´: V x V  R : f´=f + fp Our virtual flow fp along the augmenting path p in Gf

The Ford-Fulkerson method 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 6 f(u,v) ¬ f(u,v) + cf 7 f(v,u) ¬ -f(u,v) 8 return f The algorithms based on this method differ in how they choose p in step 3. If chosen poorly the algorithm might not terminate.

Örnek (1) Left Side = Residual Graph Right Side = Augmented Flow

Örnek(2) Left Side = Residual Graph Right Side = Augmented Flow

En kötü durumda işlem zamanı En kötü durumda işlem zamanı O(E|f*|), burada f* maksimum akış değeridir Örnek: Augmenting path of 1 Resulting Residual Network Resulting Residual Network

Uygulama-Eşleştirme problemi Örnek-n erkek ve m kadın verilmiş olsun Her erkek ve her kadın evlenebileceklerini (karşılıklı olarak) söylemişler Problem: Maksimum evlilik sayısını bulmak Çok eşliliğe izin verilmemektedir

İki kümeli çizge G=(V,E) çizgesi verilmiş olsun. Eğer V kümesi, V1 ve V2 gibi 2 kümeye ayrılabiliyorsa ve (u,v)  E olmasından u  V1 ve v  V2 veya tersi çıkıyorsa bu çizgeye 2 kümeli çizge denir.

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 En iyi eşleştirme

Maksimum akışla çözüm Sanal bir başlangıç ve sanal bir hedef seç, tüm kirişlerin kapasitesi 1 olsun A A X X B B t Y s Y C C Z Z D D

Dayanıklı evlilik problemi

Dayanıklı evlilik problemi N erkek ve N kadın var, her birinin evlenmek için tercih listesi var, bunları birbiriyle evlilikleri dayanıklı olacak biçimde evlendirmek gerekir

Dayanıklı mı? Evlilikler dayanıksızdır, eğer Öyle 2 çift varsa ki çiftlerden birinin eşi diğerinin eşini kendi eşinden daha çok tercih ediyor ve o da onu kendi eşinden daha çok tercih ediyor Örnek A1 B3 C2 D4 E5. Bu evlilik dayanıksızdır A 2 yi 1 den çok, 2 de A yı C den daha çok A B C D E 2 5 1 3 4

Akla gelen ilk çözüm (2) Çalışmaz! Örnek A1 B3 C2 D4 E5 A2 B3 C1 D4 E5

Çözüm X ilk erkek olsun. X in listesindeki en çok tercih ettiği kadına bak( Başlangıçta, listedeki ilk kadın!) Eğer listedeki ilk kadın α başka biri ile nişanlı değilse (X, α) nişanını yap ve sonra X=bir sonraki erkek (tüm erkekler bittiyse dur) ve adım 2 ye git, aksi durumda adım 4 e git Eğer α X i kendi nişanlısı olan Y den daha çok tercih ediyorsa, (X, α) nişanını yap, X=Y olsun ve adım 2 ye git

Örnek A B C D E 2 1 2 1 5 5 2 3 3 3 1 3 5 2 A B C D E 2 5 1 3 4 4

Zaman analizi N erkek ve N kadın varsa, O(N2) işlem zamanı olur