İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember)

Slides:



Advertisements
Benzer bir sunumlar
8. SINIF 3. ÜNİTE BİLGİ YARIŞMASI
Advertisements

Bölüm 4 Seçme Komutları Koşul İfadesi if Komutu Bileşik Komut
Yrd. Doç. Dr. Mustafa Akkol
FONKSİYONLAR Hazırlayan:Ogün İçel.
1 . ÜNİTE : GEOMETRİK ŞEKİLLER
NOKTA, DOĞRU, DOĞRU PARÇASI, IŞIN, DÜZLEMDEKİ DOĞRULAR
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
4 Kare Problemi 4 Kare Problemi Hazır mısın? B A Bu şekle iyi bak
YAPAY ZEKA ÖDEV - 1 Kenan KILIÇASLAN Trakya Üniversitesi Fen Bilimleri Enstitüsü Makina Mühendisliği Doktora Programı.
JEODEZİ I Doç.Dr. Ersoy ARSLAN.
Silme Anahtar hedefi silmek için, x yaprağında buluruz ve sonra sileriz. Dikkat edilmesi gereken iki durum vardır. (1) Hedef bazı iç düğümlerde bir anahtar.
1/27 GEOMETRİ (Kare) Aşağıdaki şekillerden hangisi karedir? AB C D.
VEKTÖRLER.
Algoritmalar En kısa yollar I En kısa yolların özellikleri
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
4 Kare Problemi 4 Kare Problemi Hazır mısın? B A Bu şekle iyi bak
Bellek Tabanlı Sınıflandırma
MIT503 Veri Yapıları ve algoritmalar En önemli graf problemleri
MATEMATİKSEL PROGRAMLAMA
BPR151 ALGORİTMA VE PROGRAMLAMA - I
FONKSİYONLAR ve GRAFİKLER
İkili Arama Ağaçları (Binary Search Trees) BST
Yarbaşı İlköğretim Yarbaşı İlköğretim.
Algoritmalar Ders 14 En Kısa Yollar II Bellman-Ford algoritması
4 KARE.
En Küçük Yol Ağacı (Minimum Spanning Tree)
Çizge Algoritmaları.
ARALARINDA ASAL SAYILAR
ZAMBAK 1 SORU BANKASI UĞUR CESUR 1 ZAMBAK 1 SORU BANKASI ÖZEL SORULARI Hazırlayan: UĞUR CESUR.
Proje ve girişim zamanlarının hesaplanması
Algoritmalar DERS 4 Çabuk sıralama Böl ve fethet Bölüntüler
Çizge Teorisi, Dağıtık Algoritmalar ve Telsiz Duyarga Ağları
İçerik: Graflar Tanım Gösterim Dolaşma Algoritmaları
Problem Çözme Ve Problem Çözme Stratejileri Ödevi Cihan GÖÇ
PARAMETRİK VE HEDEF PROGRAMLAMA
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Tam sayılarda bölme ve çarpma işlemi
DERS 2 MATRİSLERDE İŞLEMLER VE TERS MATRİS YÖNTEMİ
TEST – 1.
TOPLAMA İŞLEMİNDE VERİLMEYEN TOPLANANI BULMA.
2 ve 1’in toplamı 3 eder..
HABTEKUS' HABTEKUS'08 3.
Matematik Bütün Konular Slayt.
Ek-2 Örnekler.
İKİNCİ DERECEDEN FONKSİYONLAR ve GRAFİKLER
M.Fatih AMASYALI Yapay Zeka Ders Notları
BİL551 – YAPAY ZEKA BİLGİSİZ ARAMA YÖNTEMLERİ
EŞİTSİZLİK GRAFİKLERİ
FONKSİYONLAR f : A B.
DOĞAL SAYILAR VE TAM SAYILAR
VERİ İŞLEME VERİ İŞLEME-4.
İSMİN HALLERİ.
KAREKÖKLÜ SAYILAR KAREKÖKLÜ SAYILAR √.
Toplama Yapalım Hikmet Sırma 1-A sınıfı.
RASYONEL SAYILARLA TOPLAMA ve ÇIKARMA İŞLEMLERİ
TAM SAYILAR Pınar AKGÖZ.
CEBİRSEL İFADELERİ ÇARPANLARINA AYIRMA
Yard. Doç. Dr. Mustafa Akkol
Çizge Algoritmaları Ders 2.
Graf notasyonu z x u y w v Graf: G = (N,E)
En Yakın k-komşu Algoritması Bellek Tabanlı Sınıflandırma
Floyd Algoritması Floyd Algoritması Dijkstra algoritmasının daha genel halidir. Çünkü şebekedeki herhangi iki düğüm arasındaki en kısa yolu belirler. Algoritma,
En kısa yol yön.alg. (shortes path routing alg.)
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Algoritmalar II Ders 14 Çizgelerde tüm ikililer arasında en kısa yollar.
En Kısa Yol Algoritmaları Dijkstra
9. Ders Tüm ikililer arasında en kısa yollar
10. Ders Floyd-Warshal algoritması
Sunum transkripti:

İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember) Dijktra’nın Algoritması Bellman ve Ford Algoritması

Yol   B A E D C

Çevrim (Çember) Çevrim başlangıç ve bitişi aynı olan yoldur. y = {A, E, B, C, D, A} y = {B, A, E, B} y = {D, E, B, A, E, C, D} Basit çevrim başlangıç düğümü hariç diğer düğümlerin tekrar etmediği yoldur. B A E D C

Yol Uzunluğu ve Yol Maliyeti Yol Uzunluğu: Yoldaki kenar sayısı Yol Maliyeti: Her kenardaki ağırlıkların/maliyetin toplamı. Not: ağırlıksız graflarda yol uzunluğu yol maliyetine eşittir. 2 A B y = {B, A, E, C, D} Uzunluk(y) = 4 Maliyet(y) = 2+3+1+5=11 3 6 E 8 4 7 1 D C 5

En Kısa Yol Problemi G = (D, K) grafı verilsin ve s başlangıç düğümünden V düğümüne giden en az maliyetli yol bulma. Farklı varyasyonlar mevcut Ağırlıklı ve ağırlıksız graflar Sadece pozitif ağırlık veya negatif ağırlığın da olması.

Ağırlıksız En Kısa Yol Problemi Problem: G = (D, K) ağırlıksız grafında s başlangıç düğümü veriliyor ve s’den diğer düğümlere giden en kısa yol nasıl bulunur. C’den diğer düğümlere giden en kısa yolu bulun? A B F H C Başlangıç G D E

BFS Tabanlı Çözüm S’den başla BFS algoritmasını uygula (çevrim graflarda da çalışır.) C A B F H A D E C Source G G B D E F H 7

Ağırlıklı Graflarda En Kısa Yol Problemi BFS algoritması bu graf içinde çalışır mı? Hayır! 2 C den A’ya en kısa yol: C->A (uzunluk: 1, maliyet: 9) BFS ile hesaplandı C den A’ya en az maliyetli yol: C->E->D->A (uzunluk: 3, maliyet: 8) Peki nasıl hesaplayacağız? A B 1 1 9 3 C 8 2 D E 3

Algoritmalar İki düğüm arasında en az maliyetle gidilebilen bir yolun belirlenmesi için birçok algoritma geliştirilmiştir. Bunlardan en ünlüleri Dijkstra Ağırlıklı ve yönlü graflar için geliştirilmiştir. Graf üzerindeki kenarların ağırlıkları 0 veya sıfırdan büyük sayılar olmalıdır. Negatif ağırlıklar için çalışmaz. Bellman ve Ford Negatif ağırlıklı graflar için geliştirilmiştir. Floyd

Dijkstra’nın Algoritması Başlangıç olarak sadece başlangıç düğümünün en kısa yolu bilinir. (0 dir.) Tüm düğümlerin maliyeti bilinene kadar devam et. O anki bilinen düğümler içerisinden en iyi düğümü şeç. (en az maliyetli düğümü seç, daha sonra bu düğümü bilinen düğümler kümesine ekle) Seçilen düğümün komşularının maliyetlerini güncelle.

Güncelleme Adım-1 de seçilen düğüm u olsun. u düğümünün komşularının maliyetini güncelleme işlemi aşağıdaki şekilde yapılır. s’den v’ye gitmek için iki yol vardır. Kırmızı yol izlenebilir. Maliyet 11. Veya mavi yol izlenebilir. Önce s’den u’ya 3 maliyeti ile gidilir. Daha sonra (u, v) kenarı üzerinden 8 maliyetle v’ye ulaşılır. s 3 u 8 v 5 u 5 v 3 Güncelle(u, v) s 11 11

Güncelleme - Kaba Kod s u v 5 u 5 v Güncelle(u, v) s 3 3 8 11 s 3 u 8 v 5 u 5 v 3 Güncelle(u, v) s 11 Guncelle(u, v){ if (maliyet[u] + w(u, v) < maliyet[v]){ // U üzerinden yol daha kısa ise maliyet[v] = maliyet[u] + w(u, v); // Evet! Güncelle pred[v] = u; // u’dan geldiğimizi kaydet. } 12

Dijkstra’nın Algoritması 2 ∞ A 9 ∞ B O anki en iyi düğümü seç – C Bilinen düğümler kümesine ekle Seçilen düğümün tüm komşularının maliyetini güncelle. 1 1 9 C 3 8 2 8 ∞ D ∞ 2 E 3 Komşu A: 0 + 9 < ∞  maliyet(A) = 9 Komşu D: 0 + 8 < ∞  maliyet(D) = 8 Komşu E: 0 + 2 < ∞  maliyet(E) = 2

Dijkstra’nın Algoritması 2 9 ∞ A B O anki en iyi düğümü seç – E Bilinen düğümler kümesine ekle Seçilen düğümün tüm komşularının maliyetini güncelle. 1 1 9 C 3 8 2 8 5 D 2 2 E 3 Komşu D: 2 + 3 = 5 < 8  maliyet(D) = 5

Dijkstra’nın Algoritması 2 ∞ A 9 8 B O anki en iyi düğümü seç – D Bilinen düğümler kümesine ekle Seçilen düğümün tüm komşularının maliyetini güncelle. 1 1 9 C 3 8 2 5 5 D 2 2 E 3 Komşu A: 5 + 3 = 8 < 9  maliyet(A) = 8

Dijkstra’nın Algoritması 2 8 8 10 ∞ O anki en iyi düğümü seç – A Bilinen düğümler kümesine ekle Seçilen düğümün tüm komşularının maliyetini güncelle. A B 1 1 9 C 3 8 2 D 5 2 E 3 Komşu B: 8 + 2 = 10 < ∞  maliyet(B) = 10

Dijkstra’nın Algoritması 2 O anki en iyi düğümü seç – B Bilinen düğümler kümesine ekle Seçilen düğümün tüm komşularının maliyetini güncelle. 8 10 10 A B 1 1 9 C 3 8 2 5 D 2 E 3

Negatif Ağırlıklı Dijkstra Eğer kenarların ağırlıkları negatif ise Dijkstra algoritması en az maliyetli yolu bulmada başarısız oluyor. 3 A B A’dan C’ye en az maliyetli yol Dijkstra : A->C, maliyet: 2 Gerçek yol A->B->C, maliyet: 1 Her kenara pozitif sabit eklersek ne olur? 2 -2 C

Negatif Ağırlıklı Dijkstra Her kenara pozitif sabit eklersek ne olur? A 2 B C 3 -2 A 4 B C 5 Her kenara 2 ekle A’dan C’ye en az maliyetli yol Dijkstra: A->C Gerçek Yol: A->B->C

Negatif Maliyetli Çember Eğer graf negatif maliyetli çember içeriyorsa, en az maliyetli yol tanımlanamaz. 1 A B 2 -8 4 C D A’dan D’ye en az maliyetli yol nedir? Veya B’den C’ye?

Bellman-Ford Algoritması Ana mantık: Her düğüm için bir uzaklık tahmini oluşturulur. Başlangıç olarak maliyet(s)=0 diğer düğümler için maliyet(u)= ∞ olarak atanır. En az maliyetli yol hesaplanana kadar tüm kenarlar üzerinden güncelleme yapılır. Algoritma ayrıca grafın negatif maliyetli kenarının olup olmadığını da bulur. Dijkstra’nın algoritmasına göre daha yavaş çalışır.

Bellman-Ford Alg: Örnek Düğüm Ma. Pred B 4 A ∞ 4 -3 A - B 4 ∞ - A -2 ∞ 1 2 E 3 C 3 ∞ 2 B A - 1 -1 3 ∞ 2 6 ∞ C D 6 ∞ B - D E 1 ∞ B - (C, D) (C, D) (A, B) (A, B) (A, C) (A, C) (B, C) (B, C) (B, D) (B, D) (B, E) (B, E) (D, E) (D, E) İlk Yineleme

Bellman-Ford Alg: Örnek Düğüm Ma Pred B 4 A 4 -3 A - B 4 A -2 1 2 E 3 C 2 B 1 -1 2 6 3 C D 6 3 C B D E 1 B (C, D) (C, D) (A, B) (A, B) (A, C) (A, C) (B, C) (B, C) (B, D) (B, D) (B, E) (B, E) (D, E) (D, E) İkinci Yineleme

Bellman-Ford Alg: Örnek Düğüm Ma Pred B 4 A 4 -3 A - B 4 A -2 1 2 E 3 C 2 B 1 -1 2 3 C D 3 C D E 1 B (C, D) (C, D) (A, B) (A, B) (A, C) (A, C) (B, C) (B, C) (B, D) (B, D) (B, E) (B, E) (D, E) (D, E) Üçüncü & Dördüncü Yineleme

Bellman-Ford Alg: Sonuç 4 A 4 A -3 4 -2 1 2 E 3 B 4 1 -1 2 3 C -3 D -2 2 1 E C Düğüm Ma Pred 1 A - D 3 B 4 A C 2 B D 3 C E 1 B