Download - Graf
![Page 1: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/1.jpg)
Graf
![Page 2: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/2.jpg)
Graph / Slide 2
Graflar Problemlerin modellenmesinde çok kullanışlıdır İçeriği:
Düğümler - Vertices Kenarlar - Edges
DE
AC
FB
düğüm
kenar
Kenarlar bağlantıları gösterir.
![Page 3: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/3.jpg)
Graph / Slide 3
UygulamalarUçuş sistemi
• Herbir düğüm bir şehri gösterir• Herbir kenar iki şehir arasındaki doğrudan uçuşu gösterir• Doğrudan uçuşların sorgulanmasında cevap bir kenardır. • Bir yere ulaşmak için “A’ dan B’ ye yol varmı” sorusu sorulur.• Maaliyetleri kenarlara bile ekleyebiliriz. (ağırlıklı - weighted graflar), daha sonra “A’dan B’ ye en ucuz yol hangisidir” diye sorabiliriz.
![Page 4: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/4.jpg)
Graph / Slide 4
Another application Wireless communication
• Can be represented by a weighted complete graph (every two vertices are connected by an edge).
• Each edge represents the Euclidean distance dij between two stations.
• Each station uses a certain power i to transmit messages. Given this power i, only a few nodes can be reached (bold edges). A station reachable by i then use its own power to relay the message to other stations not reachable by i.
• A typical wireless communication problem is: how to broadcast between all stations such that they are all connected and the power consumption is minimized.
![Page 5: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/5.jpg)
Graph / Slide 5
Tanım Yönlendirilmemiş Graf
Bir yönlendirilmemiş graf sıralı bir ikili ile gösterilir (V,E), V düğümler kümesidir ve E kenarlar kümesidir.
{c,f}
{a,c}{a,b}
{b,d} {c,d}
{e,f}
{b,e}
![Page 6: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/6.jpg)
Graph / Slide 6
Terminoloji
1. Eğer v1 ve v2 bağlantılı iseler, bitişik düğümler olarak isimlendirilirler.
v1 ve v2 , {v1, v2} kenarının son noktalarıdır.
• Eğer bir kenar e is v’ ye bağlı ise , v, e’ ye gelen (incident) olarak isimlendirilir. Ayrıca, kenar e, v’ye gelen olarak isimlendirilir.
• {v1, v2} = {v2, v1}*
![Page 7: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/7.jpg)
Graph / Slide 7
Graf Gösterimi İki popüler gösterim vardır. Her ikisi de farklı
yönlerden düğüm ve kenar kümelerini gösterir.
1. Komşuluk Matrisi
Grafı göstermek için ‘D matris kullanılır.
2. Komşuluk Listesi
Bağlantılı listelerin bir boyutlu dizisi kullanılır.
![Page 8: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/8.jpg)
Graph / Slide 8
Komşuluk Matrisi
•Alan karmaşıklığı Θ(n2). Eğer graf az kenara sahipse etkili değil .•O(1) zamanda iki düğümün bağlı olup olmadığını bulur.
![Page 9: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/9.jpg)
Graph / Slide 9
Komşuluk Listesi
![Page 10: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/10.jpg)
Graph / Slide 10
Örnek
2
4
3
5
1
76
9
8
0 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 0 0 0 0 1 0
1 0 0 1 1 0 0 0 1 0 1
2 0 1 0 0 1 0 0 0 1 0
3 0 1 0 0 1 1 0 0 0 0
4 0 0 1 1 0 0 0 0 0 0
5 0 0 0 1 0 0 1 0 0 0
6 0 0 0 0 0 1 0 1 0 0
7 0 1 0 0 0 0 1 0 0 0
8 1 0 1 0 0 0 0 0 0 1
9 0 1 0 0 0 0 0 0 1 0
![Page 11: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/11.jpg)
Graph / Slide 11
Örnek
2
4
3
5
1
76
9
8
0 0
1
2
3
4
5
6
7
8
9
2 3 7 9
8
1 4 8
1 4 5
2 3
3 6
5 7
1 6
0 2 9
1 8
![Page 12: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/12.jpg)
Graph / Slide 12
Komşuluk matrisinin depolanması Dizi Θ(n) kadar alan tutar.
v derecesini tanımla, deg(v), v’ye gelen (giriş) kenarların sayısını tutar. Öyleyse, grafı depolamak için gereken alan aşağıdaki ile orantılıdır.
Grafın bir kenarı e={u,v}, deg(u) değerini bir attırır ve deg(v) değerini 1 arttırır.
Böylece , Σvertex vdeg(v) = 2m, m kenarların toplamıdır.
Sonuç olarak, komşuluk listesi Θ(n+m) kadar yer tutar. Eğer m = O(n2), komşuluk matrisinin ve listesinin herikiside Θ(n2) kadar alan
kullanır. Eğer m = O(n), komşuluk listesi, komşuluk matrisinden daha avantajlıdır.
Buna karşılık, hiçkimse O(1) zaman biriminde iki düğümün bağlı olup olmadığını söyleyemez.
v
vvertex
)deg(
![Page 13: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/13.jpg)
Graph / Slide 13
Komşulık Listesinin ve Matrisinin Karşılaştırılması
Komşuluk Listeleri Komşuluk matrislerinden daha az yer kaplar eğer graf az kenara
sahipse Eğer bir kenar varsa, kenarın bulunması için daha fazla zaman
harcanır.
Komşuluk Matrisi Her zaman n2 alan gerektirir
Eğer kenarlar seyrekse, alan israfına yol açar Eğer bir kenar varsa kolaylıkla bulunabilir
![Page 14: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/14.jpg)
Graph / Slide 14
Düğümler arası yol Bir yol (path ) düğümlerin bir sırasıdır (v0, v1, v2,
… vk) öyleki:
0 ≤ i < k için , {vi, vi+1} bir kenardır
0 ≤ i < k-1 için, vi ≠ vi+2 Yani, kenarlar {vi, vi+1} ≠ {vi+1, vi+2}
Not: bir yolun aynı düğüm veya aynı kenar üzerinden herhangi bir sayıda geçmesine izin verilmiştir.
Bir yolun uzunluğu (length ) yol üzerindeki kenar sayısının toplamıdır.
![Page 15: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/15.jpg)
Graph / Slide 15
Yol Tipleri
Bir yol basittir (simple ) ancak ve ancak bir düğüm bir yolda birden fazla kullanılmamışsa.
Bir yol döngüdür (cycle ) ancak ve ancak v0= vk
Başlangıç ve bitiş aynı düğüm!
Bir yol birden fazla döngü içerebilir eğer bazı düğümler iki veya daha fazla görünürse
![Page 16: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/16.jpg)
Graph / Slide 16
Örnekler
1. {a,c,f,e}
2. {a,b,d,c,f,e}
3. {a, c, d, b, d, c, f, e}
4. {a,c,d,b,a}
5. {a,c,f,e,b,d,c,a}
Bunlar bir yol mu?
Döngü var mı?
Yolun uzunluğu nedir?
![Page 17: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/17.jpg)
Graph / Slide 17
Graf Gezme Örnek
Verilen bir graf gösterimi ve bir s düğümü için grafta s ‘ ten diğer düğümlere olan bütün yolları bul.
En çok bililen iki bilinen graf gezme algoritması Genişlik Öncelikli Arama - (Breadth-First Search (BFS))
Ağırlıklandırılmamış grafta en kısa yolu bul Derinlik Öncelikli Arama (Depth-First Search (DFS))
Topolojik Sıralama Sıkı bağlanmış elemanları bul (strongly connected
components)
![Page 18: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/18.jpg)
Graph / Slide 18
BFS ve En kısa Yol Problemi Verilen herhangi bir düğüm s için,, BFS s’ ten artan
(uzaklaşan) bir şekilde diğer düğümleri ziyaret eder. Bunu yaparken, BFS s’ten diğer düğümlere olan yolları bulur.
Uzaklık ile kastedilen şey nedir? S’ten başlayan yol üzerindeki kenar sayısıdır.
2
4
3
5
1
76
9
8
0s=vertex 1 için
1 uzaklığında bulunan düğümler 2, 3, 7, 91
1
1
12
22
2
s
Örnek
2 uzaklığında bulunan düğümler? 8, 6, 5, 4
3 uzaklığında bulunan düğümler? 0
![Page 19: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/19.jpg)
Graph / Slide 19
BSF algoritması
Neden Kuyruk Kullanıyoruz?
FIFO ya ihtiyaç var
![Page 20: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/20.jpg)
Graph / Slide 20
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
kaynak
0
1
2
3
4
5
6
7
8
9
Ziyaret tablosu (T/F)
F
F
F
F
F
F
F
F
F
F
Q = { }
Ziyaret tablosunu ilklendir (hepsi False)
Q ‘ yu boş olarak ilklendir
![Page 21: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/21.jpg)
Graph / Slide 21
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk listesi
kaynak
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
F
F
T
F
F
F
F
F
F
F
Q = { 2 }
2 ziyaret edildiği için bayrak koy
Kuyruğa 2 yi ekle.
![Page 22: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/22.jpg)
Graph / Slide 22
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
F
T
T
F
T
F
F
F
T
F
Q = {2} → { 8, 1, 4 }
Komşuları ziyaret edildi diye işaretle
Çıkar 2. 2’ nin ziyaret edilmemiş komşularını kuyruğa ekle
Neighbors
kaynak
![Page 23: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/23.jpg)
Graph / Slide 23
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
F
T
F
F
F
T
T
Q = { 8, 1, 4 } → { 1, 4, 0, 9 }
Yeni ziyaret edilen komşuları işaretle
Çıkar 8. -- 8’in ziyaret edilmemiş komşularını kuyruğa ekle. -- 2’ nın eklenmediğine dikkat edin. Daha ince ziyaret edilmişti!
komşular
kaynak
![Page 24: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/24.jpg)
Graph / Slide 24
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
T
T
F
F
T
T
T
Q = { 1, 4, 0, 9 } → { 4, 0, 9, 3, 7 }
Çıkar 1. -- 1’in ziyaret edilmemiş komşularını kuyruğa ekle. -- Sadece 3 ve 7 henüz ziyaret edilmedi.
Komşular
kaynak
Yeni ziyaret edilen komşuları işaretle
![Page 25: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/25.jpg)
Graph / Slide 25
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
T
T
F
F
T
T
T
Q = { 4, 0, 9, 3, 7 } → { 0, 9, 3, 7 } Çıkar 4. -- 4’ ün ziyatet edilmemiş komşusu yok!
Komşularkaynak
![Page 26: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/26.jpg)
Graph / Slide 26
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
T
T
F
F
T
T
T
Q = { 0, 9, 3, 7 } → { 9, 3, 7 } Çıkar 0. -- 0’ ın ziyaret edilmemiş komşusu yok!
Komşular
kaynak
![Page 27: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/27.jpg)
Graph / Slide 27
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
T
T
F
F
T
T
T
Q = { 9, 3, 7 } → { 3, 7 } Çıkar 9. -- 9’un ziyaret edilmiş komşusu yok!
Komşular
kaynak
![Page 28: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/28.jpg)
Graph / Slide 28
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
T
T
T
F
T
T
T
Q = { 3, 7 } → { 7, 5 } Çıkar 3. -- 5’i kuyruğa ekle.
Komşular
kaynak
Yeni ziyaret düğüm5’ i işaretle
![Page 29: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/29.jpg)
Graph / Slide 29
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
T
T
T
T
T
T
T
Q = { 7, 5 } → { 5, 6 } Çıkar 7. -- 6’ yı kuyruğa ekle.
Komşular
kaynak
Yeni ziyaret düğüm6’ yı işaretle
![Page 30: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/30.jpg)
Graph / Slide 30
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
T
T
T
T
T
T
T
Q = { 5, 6} → { 6 } Çıkar 5. -- 5’in ziyaret edilmemiş komşusu yok.
Komşularkaynak
![Page 31: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/31.jpg)
Graph / Slide 31
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
T
T
T
T
T
T
T
Q = { 6 } → { } Çıkar 6. -- 6’nın ziyaret edilmemiş komşusu yok.
Komşular
kaynak
![Page 32: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/32.jpg)
Graph / Slide 32
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
T
T
T
T
T
T
T
T
T
T
Q = { }
Dur!!! Q boş!!!
Neyi keşfettik?
Ziyaret tablosuna bak.
Grafta kaynak düğüm 2’den bütün düğümlere bir yol vardır.
kaynak
![Page 33: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/33.jpg)
Graph / Slide 33
BFS’ nin Zaman Karmaşılığı(Komşuluk Listesi kullanarak)
Komşuluk listesi olduğunu varsayalım n = düğüm sayısı m = kenar sayısı
Herbir düğümen fazla bir kere Q’ ya girecek
Herbir iterasyon deg(v) + 1 ifadesine orantılı olarak zaman alacaktır (1 sayısı deg(v) = 0 olduğu durumu içerir).
O(n + m)
![Page 34: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/34.jpg)
Graph / Slide 34
Çalışma Zamanı m kenarlı verilen bir graf için, toplam derece nedir?
While döngüsünun toplam çalışma zamanı
Bu toplam while döngü içerisindeki bütün iterasyonları kapsar.
O( Σvertex v (deg(v) + 1) ) = O(n+m)
Σvertex v deg(v) = 2m
![Page 35: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/35.jpg)
Graph / Slide 35
BFS’ nin Zaman Karmaşıklığı(Komşuluk Matrisi kullanarak)
Komşuluk matrisi olduğunu varsayalım n = düğüm sayısı m = kenar sayısı
V’nin komşu düğümlerini bulmak satırdaki bütün elemanları kontrol etmeyi gerektirir. Bu lineer zaman alır O(n).
n iterasyonun toplamı ile birlikte toplam çalışma zamanı O(n2).
O(n2)
Böylece, komşuluk matrisi ile, BFS O(n2) m kenar sayısına bağlı değildir. Bağlantılı liste ile, BFS O(n+m); Eğer m=O(n2) ise yoğun graf gibi çalışır, O(n+m)=O(n2).
![Page 36: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/36.jpg)
Graph / Slide 36
En Kısa Yolun Kaydedilmesi BFS, kaynak s’ ten diğer v düğümlerine bir yolun olup
olmadığını bize söyler. Yolu söylemez! Yolu kaydetmek için algoritmayı modifiye etmemiz gerekir. -
Nasıl yapabiliriz? Not: v’ ye ulaşana kadar yolda olan düğümleri bilmiyoruz. Etkili çözüm:
Ek bir dizi kullan onceki[0..n-1] onceki[w] = v düğüm w’ye v ‘den ulaşıldığı manasına gelir.
![Page 37: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/37.jpg)
Graph / Slide 37
BFS + Yol Bulma
ilklendir pred[v] to -1
Nerden geldiğini kaydet
![Page 38: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/38.jpg)
Graph / Slide 38
Örnek
2
4
3
5
1
76
9
8
0
Komşuluk Listesi
0
1
2
3
4
5
6
7
8
9
Ziyaret Tablosu (T/F)
F
F
F
F
F
F
F
F
F
F
Q = { }
Ziyaret tablosunu ilklendir (hepsiFalse)
onceki’ ni -1 yap
Q ilk başta boş
-
-
-
-
-
-
-
-
-
-
onceki
kaynak
![Page 39: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/39.jpg)
Graph / Slide 39
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
F
F
T
F
F
F
F
F
F
F
Q = { 2 }
Flag that 2 has been visited.
Ekle 2.
-
-
-
-
-
-
-
-
-
-
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
onceki
![Page 40: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/40.jpg)
Graph / Slide 40
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
F
T
T
F
T
F
F
F
T
F
Q = {2} → { 8, 1, 4 }
Komşular ziyaret edildi olarak işaretle.
Oncekine 2’den gelindiğini kaydet.
çıkar 2. 2’nin ziyaret edilmemiş bütün komşularını kuyruğa ekle
Komşular
-
2
-
-
2
-
-
-
2
-
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
onceki
![Page 41: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/41.jpg)
Graph / Slide 41
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
F
T
F
F
F
T
T
Q = { 8, 1, 4 } → { 1, 4, 0, 9 }
Çıkar 8. -- 8’in ziyaret edilmemiş komşularını ekle.
Komşular
8
2
-
-
2
-
-
-
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
oncekiKomşular ziyaret edildi olarak işaretle.
Oncekine 8’den gelindiğini kaydet.
![Page 42: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/42.jpg)
Graph / Slide 42
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
T
T
F
F
T
T
T
Q = { 1, 4, 0, 9 } → { 4, 0, 9, 3, 7 }
Çıkar 1. -- Ziyaret edilmemiş komşuları ekle . -- 3,7
Komşular
8
2
-
1
2
-
-
1
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
oncekiKomşular ziyaret edildi olarak işaretle.
Oncekine 1’den gelindiğini kaydet.
![Page 43: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/43.jpg)
Graph / Slide 43
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
T
T
F
F
T
T
T
Q = { 4, 0, 9, 3, 7 } → { 0, 9, 3, 7 } Çıkar 4. -- 4’ün ziyaret edilmemiş komşusu yok!
Komşular
8
2
-
1
2
-
-
1
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
onceki
![Page 44: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/44.jpg)
Graph / Slide 44
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
T
T
F
F
T
T
T
Q = { 0, 9, 3, 7 } → { 9, 3, 7 } Çıkar 0. -- 0’ın ziyaret edilmemiş komşusu yok!
Komşular8
2
-
1
2
-
-
1
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
onceki
![Page 45: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/45.jpg)
Graph / Slide 45
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
T
T
F
F
T
T
T
Q = { 9, 3, 7 } → { 3, 7 } Çıkar 9. -- 9’un ziyaret edilmemiş komşusu yok!
Komşular
8
2
-
1
2
-
-
1
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
onceki
![Page 46: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/46.jpg)
Graph / Slide 46
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
T
T
T
F
T
T
T
Q = { 3, 7 } → { 7, 5 } Çıkar 3. -- Komşu 5’i kuyruğa ekle.
Komşular
8
2
-
1
2
3
-
1
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
oncekiKomşular ziyaret edildi olarak işaretle.
Oncekine 3’den gelindiğini kaydet.
![Page 47: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/47.jpg)
Graph / Slide 47
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
T
T
T
T
T
T
T
Q = { 7, 5 } → { 5, 6 } Çıkar 7. -- Komşu 6’yı kuyruğa ekle.
Komşular
8
2
-
1
2
3
7
1
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
oncekiKomşular ziyaret edildi olarak işaretle.
Oncekine 7’den gelindiğini kaydet.
![Page 48: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/48.jpg)
Graph / Slide 48
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
T
T
T
T
T
T
T
Q = { 5, 6} → { 6 } Çıkar 5. -- 5’in ziyaret edilmemiş komşusu yok.
Komşular
8
2
-
1
2
3
7
1
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
onceki
![Page 49: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/49.jpg)
Graph / Slide 49
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
T
T
T
T
T
T
T
Q = { 6 } → { } Çıkar 6. -- 6’nın ziyaret edilmemiş komşusu yok.
Komşular
8
2
-
1
2
3
7
1
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
onceki
![Page 50: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/50.jpg)
Graph / Slide 50
Örnek
2
4
3
5
1
76
9
8
0
0
1
2
3
4
5
6
7
8
9
T
T
T
T
T
T
T
T
T
T
Q = { }
Dur!!! Q boş!!!
Şimdi yolu rapor etmek için onceki geriye doğru izlenebilir!
8
2
-
1
2
3
7
1
2
8
Komşuluk Listesi Ziyaret Tablosu (T/F)
kaynak
onceki
![Page 51: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/51.jpg)
Graph / Slide 51
Yolun Gösterilmesi
8
2
-
1
2
3
7
1
2
8
0
1
2
3
4
5
6
7
8
9
nodes visited from
Örnekler deneyelim, s’ ten v’ ye yolları bulalım:Yol(0) ->Yol(6) ->Yol(1) ->
Bulunan yollar en kısa yollardır.
![Page 52: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/52.jpg)
Graph / Slide 52
BFS ağacı
BFS ile bulan yollar genellikle köklü bir ağaç olarak çizilebilir. (BFS ağaç olarak isimlendirilir), Kökte başlangıç düğümü tutulur.
BFS düğüm s=2 için.
![Page 53: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/53.jpg)
Graph / Slide 53
En kısa mesafeleri nasıl kaydederiz
d(v) = ;
d(w)=d(v)+1;
d(s) = 0;
![Page 54: Graf](https://reader035.vdocuments.pub/reader035/viewer/2022081514/568134c4550346895d9be852/html5/thumbnails/54.jpg)
Graph / Slide 54
BFS’nin Uygulamaları
Bir graftaki bağlantılı elemanları nasıl bulmak için kullanılır.
Eğer bir grafta birden fazla bağlantılı eleman varsa, BFS, bir BFS-orman (sadece BFS-ağaç değil) kurar! Ormandaki herbir ağaç bağlantılı elemandır.