Uploaded by Tams Sync

Veri Yapıları ve Algoritmalar 14

advertisement
Veri Yapıları ve Algoritmalar
Graf veri yapısı
(Graph data structure)
Graf veri yapısı
1
Genel Bakış

Graf veri yapısı
Graf veri yapısı

Temel kavramlar

Grafların bellekte tutulma biçimleri
2
Graf veri yapısı

Graf :Düğümlerden ve kenarlardan oluşan doğrusal
olmayan bir veri yapısıdır.
Graf veri yapısı
3
Graf veri yapısı

Kenarların birleştiği köşe(vertex), düğüm olarak isimlendirilir.

Köşeleri, birbirine birleştiren bağlantılara kenar(edge) adı
verilir.

D düğümler kümesi,

K kenarlar kümesi ise,

Graf, G=(D, K), boş olmayan sonlu D ve K elemanları
kümesidir.
Graf veri yapısı
4
Graf veri yapısı

Sonlu graf: Düğüm kümesi ve kenar kümesi sonlu olan bir graf
sonlu graf olarak adlandırılır.

Sonlu bir grafta;

D(G) = {d0,d1,d2,d3,…,dn-1} düğüm kümesi olmak üzere |D(G)|= n
değerine grafın mertebesi denir.

K(G) = {k0,k1,k2,k3,…,km-1} kenar kümesi olmak üzere |K(G)|= m
değerine grafın boyutu denir.

G grafında bir düğümü yine kendisiyle birleştiren kenara
kendine döngü yada ilmek denir.

Aynı iki düğümü birleştiren iki ya da daha fazla kenara çoklu
kenar denir.

Bir graf çoklu kenar ve aynı zamanda ilmek içermiyorsa basit
graf, aksi duruma ise çoklu graf denir.
Graf veri yapısı
5
Graf veri yapısı

Bir G grafında herhangi iki düğüm di ve dj olsun, eğer kenarlar
kümesinde bu iki düğümü birleştiren bir kenar varsa bu iki
düğüme komşu düğümler adı verilir.
Graf veri yapısı
6
Graf veri yapısı
Gdd = Gdüğümdüğüm , Gdk = Gdüğümkenar olsun,
Bir G grafı;

Komşuluk ilişkisi ile ifade ediliyorsa,

Gdd = {(di, dj)} şeklinde gösterilir.

Gdd = {(A, B),(A,C),(A,D),(C,D),(B,D),(B,B)}

Eğer bitişiklik ilişkisi ile gösteriliyorsa Gdk = {(di, kj)} şeklinde
gösterilir.

Gdk = {(A, k0),(A, k1),(A, k2), (B, k0), (B, k4),
(B, k5), (C, k2), (C, k3), (D, k1), (D, k3), (D, k4) }
Graf veri yapısı
7
Graf veri yapısı
Maliyetli graf: Bir G grafında her kenara bir maliyet veya ağırlık
değeri verilmiş ise bu graf maliyetli graf (weighted graph) olarak
adlandırılır ve gösterimde maliyet bilgisi de belirtilir.

Gdd = {(A, B:4),(A,C:2),(A,D:5),(C,D:3),(B,D:7)}
Graf veri yapısı
8
Graf veri yapısı

Bir G grafında kenarların yönü de olabilir. Eğer kenarların
yönü varsa bu tür graflara yönlü graf adı verilir.

Gdd = {<A,C>,<B,A>,<C,D>,<D,A>,<D,B>,<D,C>}
Graf veri yapısı
9
Graf veri yapısı

Tam graf: Bir G grafında eğer her bir düğümün diğer bütün
düğümlerle arasında bir kenar varsa buna tam graf adı verilir.

Çoklu graf: Bir G grafında herhangi iki düğüm arasında birden
fazla kenar veya bir düğüm döngü içeriyorsa buna çoklu graf
adı verilir.
Graf veri yapısı
10
Graf veri yapısı

Düğüm Derecesi: Bir G grafında, bir düğüme bağlı olan toplam
kenar sayısına o düğümün derecesi adı verilir. Eğer kendine
döngülü kenarlar varsa bunlar aynı düğüme hem giriş hem de
çıkış olduğu için bunlar dereceyi iki fazlalaştırırlar.

Eğer G grafı yönlü bir graf ise, düğüm derecesi giriş derecesi
ve çıkış derecesi olarak ayrı ayrı ifade edilir.
Graf veri yapısı
11
Graf veri yapısı

Komşuluk matrisi: Düğümler arası ilişkiyi gösteren bir kare
matristir; komşuluk matrisinin elemanları kenar
değerlerinden oluşur. Komşuluk matrisi Gdd‘ nin matris olarak
gösterilmesi ile oluşur.
Komşuluk matrisi Gdd = [aij] ise,
1, eğer (di, dj) Є K ise
Yönlü-maliyetsiz graflar için; aij =
0, diğer durumlarda
1, eğer (di, dj) Є K veya (dj, di) Є K ise
Basit graflar için; aij =
0 , diğer durumlarda
Graf veri yapısı
12
Graf veri yapısı

Komşuluk matrisleri :
Graf veri yapısı
13
Graf veri yapısı

Bitişiklik matrisi: Düğümler ile kenarlar arasındaki bitişiklik
ilişkisini gösteren bir matristir; matrisin satır sayısı düğüm, sütun
sayısı kenar sayısıdır. Yani matris satır x kenar boyutundadır.
Bitişiklik matrisi Gdk = [mij] ise,
1, eğer (di, kj) ilişkili ise
Maliyetsiz graflar için;
mij =
0, diğer durumlarda
Graf veri yapısı
14
Graf veri yapısı

Bitişiklik matrisleri :
Graf veri yapısı
15
Graf veri yapısı

Grafların bellekte saklanma biçimleri:

Matris üzerinde

İki dizi üzerinde

Bağlantılı liste ile

Dizi üzerinden bağlantılı liste ile
Graf veri yapısı
16
Graf veri yapısı

Grafların bellekte saklanma biçimleri:
Bir grafın komşuluk matrisi üzerinden bellekte matris olarak tutulması
int G[n][n];
int G[4][4]={{0,1,1,1}, {1,0,0,1}, {1,0,0,1}, {1,1,1,0}};
Graf veri yapısı
17
Graf veri yapısı

Grafların bellekte saklanma biçimleri:
Bir grafın komşuluk matrisi üzerinden bellekte matris olarak tutulması
int G[n][n];
int G[4][4]={{-32768,4,2,5}, {4,-32768,-32768,7}, {2,-32768,-32768,3}, {5,7,3,-32768}};
Graf veri yapısı
18
Graf veri yapısı

Grafların bellekte saklanma biçimleri:
Bir grafın bitişiklik matrisi üzerinden bellekte matris olarak tutulması
int G[n][m];
int G[4][5]={{4,5,2,-32768,-32768}, {4 ,-32768,-32768,-32768,7}, {-32768 ,-32768,2,3 ,-32768},
{-32768,5,-32768,3,7}};
Bellekmaliyeti = veri tipi uzunluğu * (n * n)
(komşuluk matrisi üzerinden)
Bellekmaliyeti = veri tipi uzunluğu * (n * m)
(bitişiklik matrisi üzerinden)
Graf veri yapısı
19
Graf veri yapısı

Grafların bellekte saklanma biçimleri:
G grafınının bitişiklik matrisi üzerinden bellekte matris olarak tutulması için basit C dili programı
Graf veri yapısı
20
Graf veri yapısı

Grafların bellekte saklanma biçimleri:
Bir grafın iki dizi üzerinde bellekte tutulması
Graf veri yapısı
21
Graf veri yapısı

Grafların bellekte saklanma biçimleri:
Bir grafın bağlı liste üzerinde bellekte tutulması
Graf veri yapısı
22
Graf veri yapısı

Grafların bellekte saklanma biçimleri:
Bir grafın dizili bağlı liste üzerinde bellekte tutulması
Bellekmaliyeti = dugum veri tipi uzunluğu * (n+2 * m)
Graf veri yapısı
23
Veri Yapıları ve Algoritmalar
Kaynakça

Dr. Rifat ÇÖLKESEN, Veri Yapıları ve Algoritmalar, Papatya
yayıncılık, 2014, 10. basım.(Ders kitabı)
Graf veri yapısı
Dr. Öğr. Üyesi Aydın CARUS - 2020
24
Download