1algoritma analizi directed graphs (yonlu graflar) directed graph (digraph) g=(v,e) –v: vertices...
TRANSCRIPT
![Page 1: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/1.jpg)
1Algoritma Analizi
Directed Graphs (Yonlu Graflar)
Directed graph (digraph) G=(V,E)– V: vertices (nodes)– E: edges (directed edges,arcs)
1 2
43
![Page 2: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/2.jpg)
2Algoritma Analizi
path
Bir digraftaki path bir dizi vertices den olusur oyleki bir birini izleyen iki vertex arasinda bir edge var– v1->v2->v3 ……… ->vn-1->vn
– vertex v1 den vertex vn e bir path (yol) Length of path (yolun uzunlugu)
– Path uzerindeki arc larin sayisi– v den v ye (v bir vertex) olan yolun uzunlugu 0
dir Simple path:
– Eger path in uzerindeki tum vertices (ilk ve son vertex ler haric) farkli ise
![Page 3: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/3.jpg)
3Algoritma Analizi
Labeled Digraph
Bazen graph in vertices veya arc larina faydali bilgiler (label) eklemek mumkun– Label isim, maliyet veya faydali
herhangi bir bilgi olabilir.
![Page 4: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/4.jpg)
4Algoritma Analizi
Labeled Digraph
1 2
3 4
b ba
a
a
a
b b
![Page 5: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/5.jpg)
5Algoritma Analizi
Directed Graph larin Temsili
Digraph lari temsil etmek icin cesitli data structure lar kullanilabilir– Secilen data structure arc lara ve
vertices lara uygulanan operationlara baglidir
Adjacency MatrixAdjacency List
![Page 6: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/6.jpg)
6Algoritma Analizi
Adjacency Matrix
G = (V,E), V={1,2,3, ………n}G nin Adjacency Matrix A
– A nxn boyutlu bir boolean matrix– A[i,j] = true ancak ve ancak vi den vj
ye bir arc var– Bazen true 1 le false 0 ile temsil
edilirLabeled Adjacency Matrix
– A[i,j] vi den vj giden arc in label ini gosterir
![Page 7: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/7.jpg)
7Algoritma Analizi
1 2
3 4
b ba
a
a
a
b b
1 2 3 4
1 a b
2 a b
3 b a
4 b aDigraph
Adjacency Matrix
![Page 8: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/8.jpg)
8Algoritma Analizi
Adjacency List
Adjacency matrix kullaniminin dezavantaji– storage– Matrix uzerinde islem – O(n) arc a sahip digraphlar icin O(n2)
den daha iyi performansli algoritmalarin elde edilmesini imkansizlastirir
Bu dezavantajlari gidermek icin Adjacency List kullanilabilir
)( 2n)( 2n
![Page 9: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/9.jpg)
9Algoritma Analizi
Adjacency List
G = (V,E) HEAD
– HEAD[i] vertex i icin Adjacency List e bir pointer
Storage– Vertices lerin sayi artisi arc larin
sayisiyle orantilidir Dezavantaj
– Vertex i den vertex j ye bir arc olup olmadigini tespit etmek icin O(n) zaman gerekli
![Page 10: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/10.jpg)
10Algoritma Analizi
Adjacency List
2
4
2
3
3
1 2
43
1
2
34
![Page 11: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/11.jpg)
11Algoritma Analizi
Single Source Shortest Paths Problem
Yaygin path finding problem (directed graflar icin)
G = (V,E)– Her bir arc bir negative olmayan bir
label a sahip (cost fonksiyon)– Bir vertex source olarak belirlenir
Problem: Verilen source dan diger her bir vertex e olan en kisa yolun cost ini hesaplamak
![Page 12: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/12.jpg)
12Algoritma Analizi
Dijkstra nin shortest path algorithm
Procedure Dijkstra;# vertex 1 den diger vertexlere olan en kisa yolun cost ini# hesaplar
Begin(1) S:={1}(2) for i:=2 to n do(3) D[i]:=C[1,i]; # initialize D(4) for i:= 1 to n-1 do begin(5) choose a vertex w in V-S such that D[w] is
a minimum(6) add w to S;(7) for each vertex v in V-S do(8) D[v]:= min(D[v],D[w]+C[w,v])
endend
![Page 13: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/13.jpg)
13Algoritma Analizi
Dijkstra devam…
G = (V,E)– V = {1,2,3, ……,n} ve vertex 1 source– C iki boyutlu bir dizi ve C[i,j] vertex i
den vertex j ye gitmek icin maliyet (cost). Eger vertex i den vertex j ye bir arc yoksa C[i,j] = (herhangi bir maliyetten cok daha buyuk bir sayi)
– Her bir adimda D[i] vertex i ye olan en kisa yolun uzunlugunu gosterir
![Page 14: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/14.jpg)
14Algoritma Analizi
Ornek
1
2 5
43
10 100
6010
30
50
20
Iteration
S W D[2]
D[3]
D[4]
D[5]
Initial {1} - 10 30 100
1 {1,2} 2 10 60 30 100
2 {1,2,4} 4 10 50 30 90
3 {1,2,4,3} 3 10 50 30 60
4 {1,2,4,3,5}
5 10 50 30 60
![Page 15: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/15.jpg)
15Algoritma Analizi
Dijkstra’s Algorithm
Greedy Algorithm– Local olarak en iyi olan sey global
olarak da en iyi dir.– Dijkstra’s shortest path algorithm
bir greedy algoritmadir.
![Page 16: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/16.jpg)
16Algoritma Analizi
Running Time of Dijkstra’s Algorithm
Eger adjacency matrix kullanirsak– (7) ve (8) O(n) zaman alir ve n-1 kere execute
edilir. Dolaysisiyle toplam zaman O(n2) olur Eger e n2 den oldukca kucukse, digraph i
temsil icin adjacency list ve V-S kumesindeki vertices leri temsil etmek icin partially ordered tree kullanmak faydali olur.– (7) ve (8), w nin adjacency list i taranarak ve
priority queue deki mesafelerin guncellenmesiyle saglanir. Toplam olarak e tane guncelleme olur ve herbiri O(logn) zaman alir.
– Toplam zaman O(elogn) olur
![Page 17: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/17.jpg)
17Algoritma Analizi
All-Pairs Shortest Paths Problem (APSP)
Directed Graph G=(V,E)– Her bir sirali cift vertices (v,w) icin
vertex v den vertex w olan en kisa yolun mesafesini hesapla
Dijkstra’s algoritmasi her bir vertex source kabul edilerek APSP problem cozulebilir (algoritma n kere cagrilir)
Ikinci cozum– Floyd’s Algorithm
![Page 18: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/18.jpg)
18Algoritma Analizi
Floyd’s Algorithm
procedure Floyd (var A: array[1..n, 1..n] of real,C: array[1..n, 1..n] of real)# Floyd computes shortest path matrix A given cost matrix C
beginfor i:=1 to n do
for j:=1 to n doA[i,j] := C[i,j]
for i:= 1 to n doA[i,i]:=0
for k:=1 to n dofor i:=1 to n do
for j:=1 to n doif A[i,k] + A[k,j] < A[i,j] then
A[i,j]:=A[i,k] + A[k,j]end
![Page 19: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/19.jpg)
19Algoritma Analizi
Ornek (Floyd’s Algorithm)
1 2 32
8
32
5
1 2 3
1 0 8 5
2 3 0
3 2 0
1 2 3
1 0 8 5
2 3 0 8
3 2 0
1 2 3
1 0 8 5
2 3 0 8
3 5 2 0
1 2 3
1 0 7 5
2 3 0 8
3 5 2 0
A0[i,j] A1[i,j]
A2[i,j] A3[i,j]
![Page 20: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/20.jpg)
20Algoritma Analizi
Floyd’s Algorithm vs Dijkstra’s Algorithm
Her ikisi de Adjacency Matrix kullanarak– APSP problemini O(n3) zamanda
cozerEger e, graftaki edge sayisi, n2
den oldukca kucukse, Dijkstra nin algoritmasi O(nelogn) zamanda cozum getirebilir ( O(n3) den daha iyi oldugu umulur)
![Page 21: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/21.jpg)
21Algoritma Analizi
En kisa yol uzerindeki vertex lerin belirlenmesi
procedure shortest (var A: array[1..n, 1..n] of real,C: array[1..n, 1..n] of real)# C nxn boyutunda cost matrix, A nxn boyutunda en kisa yol matrix,# P nxn boyutunda shortest path lerdeki ara vertex leri tutar
beginfor i:=1 to n do
for j:=1 to n doA[i,j] := C[i,j]P[i,j]:=0
for i:= 1 to n doA[i,i]:=0
for k:=1 to n dofor i:=1 to n do
for j:=1 to n doif A[i,k] + A[k,j] < A[i,j] then {
A[i,j]:=A[i,k] + A[k,j]P[i,j]:=k }
end
![Page 22: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/22.jpg)
22Algoritma Analizi
Shortest Path Printing
procedure path(i,j: integer)begin
k:=P[i,j];if k = 0 then
returnpath(i,k)writeln(k)path(k,j)
end
![Page 23: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/23.jpg)
23Algoritma Analizi
Shortest path uzerindeki vertexler
1 2 32
8
32
5
1 2 3
1 0 3 0
2 0 0 1
3 2 0 0
Yukaridaki digraph icin P matrix i.
![Page 24: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/24.jpg)
24Algoritma Analizi
Transitive Closure
vertex i den vertex j ye bir yol var mi Cozum
– Floyd’un algoritmasini biraz degistirerek– vertex i den vertex j ye bir yol var eger
• Numarasi k-1 den buyuk olmayan vertex lerden gecen vi den vj ye bir yol var veya
• Numarasi k-1 den buyuk olmayan vertexlerden gecen vi den vk ya bir yol ve numarasi k-1 den buyuk olmayan vertexlerden gecen vk dan vj ye bir yol var
# A bir boolean matriks olmak uzereAk[i,j]=Ak-1[i,j] || Ak-1[i,k] && Ak-1[k,j]
![Page 25: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/25.jpg)
25Algoritma Analizi
Transitive Closure
Warshall Algorithmprocedure Warshall(var A: array[1..n,1..n] of boolean;
C: array[1..n,1..n] of boolean)# Warshall makes A the transitive closure of Cbegin
for i:=1 to n dofor j:=1 to n do
A[i,j]:=C[i,j]for k:=1 to n do
for i:=1 to n dofor j:=1 to n do
if A[i,j]=false thenA[i,j]:=A[i,k] and A[k,j]
end
![Page 26: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/26.jpg)
26Algoritma Analizi
Bir Digraph in Center (merkezini) bulmak
G=(V,E) Vertex v nin eccentricity si
max { w den v ye olan minimum uzunluklu yolun uzunlugu)W in V
G nin center i– Minimum eccentricity e sahip vertex
![Page 27: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/27.jpg)
27Algoritma Analizi
Ornek
a
b
c d
e
2
3
12
5
1
4
vertex eccentricity
a
b 6
c 8
d 5
e 7
Center: vertex d
![Page 28: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/28.jpg)
28Algoritma Analizi
a
b
c d
e
2
3
12
5
1
4
a b c d e
a 0 1 3 5 7
b 0 2 4 6
c 3 0 2 4
d 1 3 0 7
e 6 8 5 0
Graph G
G nin APSP cost matrix i
G nin center i vd
ve nin vc ye uzakligi
![Page 29: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/29.jpg)
29Algoritma Analizi
Digraph larin Traversal i
Digraph (directed graph) larla ilgili bir cok problemlerin cozumunde yonlu graf in vertex ve arc larini sistematik bir sekilde dolasmayi gerektirir
Graph traversal– Depth-First Search– Bread-First Search
![Page 30: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/30.jpg)
30Algoritma Analizi
E
F
G
B
D
A
C
Depth-First Search (DFS)
![Page 31: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/31.jpg)
31Algoritma Analizi
E
F
G
B
D
A
C
Depth-First Search (DFS)
![Page 32: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/32.jpg)
32Algoritma Analizi
E
F
G
B
D
A
C
Depth-First Search (DFS)
![Page 33: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/33.jpg)
33Algoritma Analizi
E
F
G
B
D
A
C
Depth-First Search (DFS)
![Page 34: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/34.jpg)
34Algoritma Analizi
E
F
G
B
D
A
C
Depth-First Search (DFS)
![Page 35: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/35.jpg)
35Algoritma Analizi
Depth First Search
procedure dfs(v:vertex)w: vertexbegin
mark[v]:=visitedfor each vertex w on L[v] do
if mark[w] = unvisited thendfs(w)
end
![Page 36: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/36.jpg)
36Algoritma Analizi
DFS nin Runnig Time
Her bir vertex in adjacency list ine bir kez bakilir
Vertex lerin adjacency list lerinin uzunluklari toplami e dir (graf in arc sayisi kadardir)
Dolayisle DFS algorithm O(e) dir.
![Page 37: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/37.jpg)
37Algoritma Analizi
Depth-First Spanning Forest
E
F
G
B
D
A
C
![Page 38: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/38.jpg)
38Algoritma Analizi
Depth-First Spanning Forest
E
F
G
B
D
A
C
![Page 39: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/39.jpg)
39Algoritma Analizi
Depth-First Spanning Forest
E
F
G
B
D
A
C
![Page 40: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/40.jpg)
40Algoritma Analizi
Depth-First Spanning Forest
E
F
G
B
D
A
C
![Page 41: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/41.jpg)
41Algoritma Analizi
Depth-First Spanning Forest
E
F
G
B
D
A
C
DFST 1DFST 2
DFSP: Depth First Spanning Tree
![Page 42: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/42.jpg)
42Algoritma Analizi
Depth-First Spanning Forest
E
F
G
B
D
A
C
Tree 1Tree 2
Edge Type
Forward Backward
Cross
CA X
DA X
DC X
FB X
GD X
GF X
Tree edge: Foresteki her bir edge denir
![Page 43: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/43.jpg)
43Algoritma Analizi
Depth-First Spanning Forest in Bulunmasi
for v:=1 to n domark[v]:=unvisited
for v:=1 to n do if mark[v]=unvisited then
dfs(v)
![Page 44: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/44.jpg)
44Algoritma Analizi
Directed Acyclic Graphs
Directed Acyclic Grapg (DAC)– Cycle a sahip olmayan directed
graphTree lerden daha genel fakat
gelisiguzel graf lardan daha az genel
![Page 45: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/45.jpg)
45Algoritma Analizi
A
B C
D E
A
B C
D E
A
B C
D E
Tree DAG Cycle sahipdigraph
![Page 46: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/46.jpg)
46Algoritma Analizi
DAG
DAG lar ortak subexpressionlara sahip aritmetik ifadelerin syntactic yapilarini gosterimde kullanilabilirler
*
+
* *
+
a b
c + +
e f
((a+b)*c+((a+b)+e)*(e+f))*((a+b)*c) nin DAG ‘i
![Page 47: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/47.jpg)
47Algoritma Analizi
Acyclic Testi
Verilen bir directed graph G nin acyclic (bir cycle icerip icermediginin) testi
DFS(depth first search) kullanilarak digrapin acyclic olup olmadigi karar verilebilir– Eger DFS sirasinda bir back edge
e rastlanilirsa graph in bir cycle a sahip oldugu anlasilir
![Page 48: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/48.jpg)
48Algoritma Analizi
v
u
Her bir cycle bir back arc icerir
![Page 49: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/49.jpg)
49Algoritma Analizi
Topological Sort
Buyuk capli proje bir dizi alt projelere bolunur
Bu alt projeler belli bir siraya gore tamamlanmali– Ornegin alt proje C baslamasi A
ve B nin tamamlanmasindan once olamaz
DAG bu tip durumlari modellemek icin kullanilabilir
![Page 50: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/50.jpg)
50Algoritma Analizi
C1
C2
C3
C4
C5
Topological Sort
Topological Sort: DAG in vertices lerine linear ordering olacak sekilde sirala oyleki eger vertex i den vertex j ye bir arc varsa, linear ordering de i, j den once gelir.Yukaridaki DAG a gore C1,C2,C3,C4,C5 bir linear ordering dir.
![Page 51: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/51.jpg)
51Algoritma Analizi
Topological Sort
procedure topsort(v:vertex)# print vertices accessible from v in reverse topological order
beginmark[v]:=visitedfor each vertex w on L[v] do
if mark[w] = unvisited thentopsort(w)
writeln(v)end
![Page 52: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/52.jpg)
52Algoritma Analizi
Strong Components
Strongly connected component (SCC):– Bir directed grafin SCC i, vertex lerden olusan
maximal bir set oyleki bu sette bulunan herhangi iki farkli vertex arasinda yonlu bir yol var
– G = (V,E) bir digraf. V equivalance class lara bolunebilir Vi, 1<=i<=r, oyleki v ve w equivalent oyleki v den w ve w den v ye yollar var
– Gi=(Vi,Ei) lere strong components (strongly connected components) denir
Strongly connected graph: Sadece bir tane strong componente sahip digraph
![Page 53: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/53.jpg)
53Algoritma Analizi
Ornek
d
a b
c
digraph
d
a b
c
Digraph in strong componetleri
![Page 54: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/54.jpg)
54Algoritma Analizi
ornek
A
F
B
C
D
G
E
A
F
B
C
D
G
E
Digrah Strong Components
ABDF
C
EG
Condensation Graph(reduced graph)
![Page 55: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/55.jpg)
55Algoritma Analizi
Strongly connected componentlerin bulunmasi
# verilen bir digraph G icin SCC lerin bulunmasi1. G ye depth-first search uygula ve vertex leri recursive call larin bitis sirasina
gore numaralandir2. G deki arc larin yonlerini ters cevirmek suretiyle yeni bir graph Gr bul.3. Gr uzerinde 1. adimda elde edilen en yuksek numarali vertex den baslamak
suretiyle depth-firstsearh uygula. Eger depth-first search butun vertex lere erisemezse , sonraki depth-first search i kalan vertex ler icerisinden en kucuk numarali vertex den baslat
4. Bulunan spanning foresteki her bir tree G nin bir strongly connected componentidir
![Page 56: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/56.jpg)
56Algoritma Analizi
ornek
d
a b
c
digraph
4
d
a b
c
a
b
c
d
3
2
1
1. adim
4
3
1 2Gr
a
c
b
b 14
2
3
![Page 57: 1Algoritma Analizi Directed Graphs (Yonlu Graflar) Directed graph (digraph) G=(V,E) –V: vertices (nodes) –E: edges (directed edges,arcs) 12 4 3](https://reader035.vdocuments.mx/reader035/viewer/2022081717/551c02c8550346a34f8b4cf0/html5/thumbnails/57.jpg)
57Algoritma Analizi
A
F
B
C
D
G
E
Digraph G
A
F
B
C
D
G
E
EGAFBDC
Birinci SC nin bulunmasi
A
F
B
C
D
G
E
A
F
B
C
D
G
E
Digraph Gr
3 tane SC nin bulunmasi
Ornek