8. Ders Tüm ikililer arasında en kısa yollar

Slides:



Advertisements
Benzer bir sunumlar
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
Advertisements

Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Prof.Dr.Mehmet Tunç ÖZCAN
Greedy Algorithms.
Örnek 1 Kullanıcının girdiği bir sayının karesini hesaplayan bir program yazınız.
DEPREME DAYANIKLI BETONARME YAPI TASARIMI
KİRİŞ YÜKLERİ HESABI.
İSTATİSTİK II BAĞIMSIZLIK TESTLERİ VE İYİ UYUM TESTLERİ “ c2 Kİ- KARE TESTLERİ “
2014 ORTA ÖĞRETİME YERLEŞTİRME SİSTEMİ – 2015 E ğ itim- ö ğ retim yılında altı temel ders için 8. sınıfta ö ğ retmen tarafından dönemsel olarak.
YÖNLENDİRME. Yönlendirme ● Statik ● Dinamik ● Kaynakta yönlendirme ● Hop by hop yönlendirme.
BİLGİSAYAR PROGRAMLAMA DERSİ
KONULAR BÖLÜM: Kesirler, Ondalık Kesirler, Yüzde
0-1 Sırt Çantası Problemi
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
DÖŞEMELER.
DOĞAL SAYILAR Hikmet SIRMA.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
YAZILIM İşletim Sistemleri Uygulama Programları Programlama Dilleri
T- Testİ: ORTALAMALAR ARASI FARKLARIN TEST EDİLMESİ
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Parametrik Olmayan İstatistik
Tüm ikililer arasında en kısa yollar
DENEYSEL TERTİPLER VE PAZAR DENEMESİ
Sayı Sistemleri.
Parametrik Olmayan İstatistik
Algoritmalar II Ders 7 Açgözlü Algoritmalar.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Veri Yapıları ve Algoritmalar
Algoritmalar II Ders 14 Çizgelerde tüm ikililer arasında en kısa yollar.
Yrd. Doç. Dr. Mustafa Akkol
C Programlama Yrd.Doç.Dr. Ziynet PAMUK BMM211-H05
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
- Sağlama - Kısa yoldan Çarpmalar
İleri Algoritma Analizi
En Kısa Yol Problemleri (Shortest Path Problems)
Derinlik öncelikli arama (Depth-first Search(DFS))
İleri Algoritmalar 2. ders.
Mutlak Dağılım Ölçüleri Nispi Dağılım Ölçüleri
Çizge Teorisi ve Algoritmaları
Ağırlıksız ikili eşleştirme
9. Ders Tüm ikililer arasında en kısa yollar
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
Seminer Dersi Sunumu Sunum Adı Öğrenci Ad ve Soyadı Ay Yıl
Çizge Teorisi ve Algoritmalari
İleri Algoritma Analizi
Benzetim 11. Ders İmalat Yönetimde Benzetim.
Örnek-1 Bir milin A ve B uçlarındaki yataklara gelen radyal kuvvetler aşağıda verilmiştir. Mil üzerindeki eksenel kuvvet 3640N dur. A ve B noktalarındaki.
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
Doğrusal Mantık Yapısı İle Problem Çözme
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
İleri Algoritma Analizi
NİŞANTAŞI ÜNİVERSİTESİ
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
Algoritmalar II Ders 3 Dinamik Programlama Yöntemi.
NİŞANTAŞI ÜNİVERSİTESİ
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
MTM216 GÖRSEL PROGRAMLAMA
Bilgehan Arslan, Süreyya Gülnar
İleri Algoritma Analizi
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
Algoritmalar II Ders 2 Dinamik Programlama Yöntemi.
Chapter 4 Divide-and-Conquer
10. Ders Floyd-Warshal algoritması
Hidrograf Analizi.
Ortam-Bağımsız Gramerler (OBG)
Çizge Algoritmalari 6. ders.
EŞ YÜKSELTİ (TESVİYE) EĞRİLERİNİN
İSTATİSTİK II BAĞIMSIZLIK TESTLERİ VE İYİ UYUM TESTLERİ “ c2 Kİ- KARE TESTLERİ “
Sunum transkripti:

8. Ders Tüm ikililer arasında en kısa yollar Çizge Algoritmalari 8. Ders Tüm ikililer arasında en kısa yollar

Tüm ikililer arasında en kısa yollar Matris Çarpımı Benzeri Algoritma

Tüm ikililer arasında en kısa yollar Verilen: Yönlü çizge G = (V, E) Ağırlık fonksiyonu w : E → R Hesapla: Çizgenin herhangi 2 köşesi arasındaki en kısa yolu Sonucun ifade edilmesi: en kısa yolları gösteren δ(u, v) sayılarından oluşan bir n × n matrisi 1 2 3 5 4 -4 7 6 -5 8

Motivasyon Bilgisayar ağları Uçak ağları (e.G. Flying time, fares) Demiryolu ağları Her hangi 2 şehir arasındaki en kıs ayol uzunluklarını gösteren tablo

Bilinen algoritmaların yardımıyla çözümler BELLMAN-FORD algoritmasını her köşeyi başlangıç köşe alarak çalıştır: İşlem süresi O(V2E) olur ve eğer çizge yoğun çizge ise E = (V2) olduğundan işlem süresi O(V4) olur Negatif ağırlık yoksa her köşe için Dijkstra algoritması çalıştır: İşlem süresi O(VElgV) olur (ikili yığın veri yapısı ile) ve çizge yoğun ise bunun anlamı O(V3lgV) demek olur Biz bu derste işlem süresi O(V3) olan ve veri yapısından bağımsız algoritma göreceğiz.

Tüm ikililer arasında en kısa yollar 1 2 3 5 4 -4 7 6 -5 8 G çizgesi ağırlıkların komşuluk matrisi ile verilmiş olsun W = (wij), n x n matris, |V| = n Köşeler 1 den n e numaralı olsun if i = j wij = if i  j , (i, j)  E if i  j , (i, j)  E Çıkış bir n x n matrisi olacak D = (dij), burada dij = δ(i, j) Dinamik programlama kullanılacak Ağırlık (i, j) ∞

En kısa yolun optimal altyapısı  11 j En fazla m kiriş En kısa yolun her alt yolu en kısadır p: i ile j arasında en fazla m kiriş kullanan en kısa yol olsun If i = j w(p) = 0 ve p yolunda kiriş yok k En fazla m - 1 kiriş If i  j: p = i k  j p’ yolunda en fazla m-1kiriş var p’ en kıs ayoldur δ(i, j) = p’ δ(i, k) + wkj

Özyinelemeli çözüm  min { , } lij(m-1) min {lik(m-1) + wkj} lij(m) = i ile j arasında en fazla m kirişi olan en kısa yolun ağırlığı m = 0: lij(0) = if i = j if i  j m  1: lij(m) = i ile j arasında en fazla m kirişi olan en kısa yolun ağırlığı: ya en fazla m – 1 kirişi olan en kısa yolun ağırlığına eşit olur ya da j den önce gelen tüm k lara bakılarak k dan j ye geçen m kirişli en kısa yolun ağırlığına eşit olur i  11 j En fazla m kiriş  k min { , } lij(m-1) min {lik(m-1) + wkj} 1  k  n = min {lik(m-1) + wkj} 1  k  n

En kısa yolun hesaplanması m = 1: lij(1) = İ den j ye en fazla 1 kiriş kullanarak giden en kısa yolun ağırlığı W = (wij) veriliyor, hesapla: L(1), L(2), …, L(n-1), burada L(m) = (lij(m)) L(n-1) matrisinde tüm kısa yolların ağırlıkları olur L(m-1) ve W verildiğinde hesapla L(m) En kısa yolu bir kiriş daha kullanarak genişlet Eğer çizgede negatif döngü yoksa en kısa yolda en fazla n - 1 kiriş olur δ(i, j) = lij(n-1) and lij(n), lij(n+1). . . wij L(1) = W = lij(n-1)

EN KISA YOLUN GENİŞLETİLMESİ lij(m) = min {lik(m-1) + wkj} 1  k  n k j k j i * i = L(m-1) n x n W L(m) Değiştir: min  + +   L(m) matrisinin hesaplanması Matris çarpımı hesaplanmasına benzer

EXTEND(L, W, n) create L’, an n × n matrix for i ← 1 to n do for j ← 1 to n do lij’ ←∞ for k ← 1 to n do lij’ ← min(lij’, lik + wkj) return L’ Running time: (n3)

SLOW-ALL-PAIRS-SHORTEST-PATHS(W, n) L(1) ← W for m ← 2 to n - 1 do L(m) ←EXTEND (L(m - 1), W, n) return L(n - 1) Running time: (n4)

Örnek … en son L(4) 3 8  -4 1 7 4 2 -5 6 3 8  -4 1 7 4 2 -5 6 3 8 2 L(m-1) = L(1) W 3 8  -4 1 7 4 2 -5 6 3 8  -4 1 7 4 2 -5 6 3 8 2 -4 3 -4 1 7 L(m) = L(2) … en son L(4) 4 5 11  2 -1 -5 -2 8 1 6 

Örnek  1 6 l14(2) = (0 3 8  -4)  = min (, 4, , , 2) = 2

Matris çarpımı ile benzerliği C = a  b cij = Σk=1n ( aik bkj ) Karşılaştır: L(m) = L(m-1)  C  lij(m) = min1≤k≤n {lik(m-1) + ckj}

İŞLEM ZAMANINI İYİLEŞTİRME Tüm L(m) matrislerini hesaplama gereksinimi yoktur Eğer negatif döngü yoksa: L(m) = L(n - 1) tüm m  n – 1 için L(n-1) matrisini aşağıdaki gibi hesaplayabiliriz: L(1) = W L(2) = W2 = W  W L(4) = W4 = W2  W2 L(8) = W8 = W4  W4 …

FASTER-APSP(W, n) L(1) ← W m ← 1 while m < n - 1 do L(2m) ← EXTEND(L(m), L(m), n) m ← 2m return L(m) : L(n - 1) matrsisinden sonra matrisler değişmez İşlem zamanı: (n3lg n)