Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanZorlu Mungan Değiştirilmiş 10 yıl önce
1
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN
2
Sunu Planı Bu derste, çizgelerin bilgisayarda gösterimine ilişkin iki standart yaklaşımı inceleyeceğiz.
3
Ardışık ve Bağlı Gösterim Çizgeler bellekte iki şekilde saklanabilirler: 1. Komşuluk matrisi ile (ardışık gösterim) 2. Bağlı listeler ile (bağlı gösterim ya da komşuluk yapısı) Bellekte her ne şekilde tutulursa tutulsunlar, çizgeler bilgisayara formel tanımlarıyla, bir düğümler ve kenarlar (düğüm çiftleri) kümesi olarak verilirler.
4
Yoğun ve Seyrek Çizge Gösterimi m düğümlü ve n kenarlı bir G çizgesinin, m = O(n 2 ) olması halinde, yoğun (dense) m = O(n) veya m = O(nlogn) olması halinde, seyrek (sparse) olduğu söylenir. Genelde, yoğun çizgeler için matrisler, seyrek çizgeler içinse bağlı listeler kullanılır.
5
Çizgelerin Komşuluk Matrisleriyle Gösterimi - 1 G’nin m düğümlü bir çizge olduğunu ve düğümlerin, örneğin v 1, v 2,..., v m biçiminde sıralandığını varsayınız. G’nin, A = [a ij ] komşuluk matrisi aşağıdaki gibi tanımlanmış olan m x m boyutunda bir matristir: a ij = 1 (eğer v i, v j ’nin komşusu ise) 0 (aksi halde)
6
Çizgelerin Komşuluk Matrisleriyle Gösterimi - 2 Şekil 1(b), Şekil 1(a)’daki düğümlerinin A, B, C, D, E biçiminde sıralandığı G çizgesinin komşuluk matrisini göstermektedir. Şekil 1. G’nin her {v i, v j } kenarının matriste, bir kez a ij = 1 ve bir kez de aji = 1 olmak üzere, iki kez gösterildiğine ve bu nedenle komşuluk matrisinin simetrik olduğuna dikkat ediniz.
7
Çizgelerin Komşuluk Matrisleriyle Gösterimi - 3 Bir G çizgesinin A komşuluk matrisinin nasıl oluşturulacağı, G’nin düğümlerinin nasıl sıralandığına bağlıdır. Düğümlerin sıralanmasındaki bir değişiklik, farklı bir komşuluk matrisinin üretimine yol açar. Fakat, bu şekilde elde edilmiş iki komşuluk matrisi, basitçe satır ve sütunları değiştirmek suretiyle birbirlerinden elde edilebilirler. Diğer yandan, komşuluk matrisinin oluşumu kenarların (düğüm çiftlerinin) bilgisayara hangi sırayla verildiğine bağlı değildir. Komşuluk matrisinin gösteriminde bazı değişiklikler yapılabilir. Eğer G bir çoklu çizge ise, genellikle a ij, {v i, v j } kenar sayısını belirtir. Ayrıca, eğer G ağırlıklı bir çizge ise a ij, {v i, v j } kenarının ağırlığını kodlar.
8
Çizgelerin Bağlı Listelerle Gösterimi - 1 Bir G çizgesinin komşuluk matrisiyle gösteriminin bazı dezavantajları vardır. ―Her şeyden önce, G’ye düğüm eklemek ya da G’den düğüm çıkarmak zor olacaktır. Bunun nedeni, komşuluk matrisinin boyutunun değişebilecek ve düğümlerin yeniden sıralanabilecek olması ve bunların komşuluk matrisinde birçok değişikliğe yol açabilecek olmasıdır. ―Ayrıca, eğer G seyrek bir çizgeyse, yani kenar sayısı O(m) veya hatta O(mlogm) ise, komşuluk matrisi birçok sıfır içerecek ve dolayısıyla bellek israfı çok olacaktır. Bu nedenlerden ötürü, G seyrek olması halinde bellekte bir tür bağlı listeyle tutulur.
9
Çizgelerin Bağlı Listelerle Gösterimi - 1 Çizgelerin bellekte bağlı listeler nasıl tutulduğunu bir örnek üzerinden açıklayalım. Aşağıdaki şekle göz atınız: Şekil 2. DüğümKomşuluk Listesi Şekil 1(b)’deki tablonun, Şekil 1(a)’da görsel olarak tanımlanan çizgenin aynısını tanımlandığına dikkat ediniz. Tablo, her düğümün komşu düğümlerini içeren komşuluk listesini göstermektedir.
10
Çizgelerin Bağlı Listelerle Gösterimi - 2 Bir G çizgesinin bağlı gösterimi, G’yi bellekte komşuluk listelerini kullanarak tutar. Böyle bir gösterim, normalde iki dosya (ya da kayıt kümesi) barındırır: ― Düğüm Dosyası (Vertex File) ve ― Kenar Dosyası (Edge File).
11
Çizgelerin Bağlı Listelerle Gösterimi - 3 Düğüm dosyası, bir dizi ya da bağlı liste ile çizgenin düğümlerinin listesini tutar. Düğüm dosyasının kayıtları şu formda saklanır: VERTEX düğümün adıdır. NEXT-V, düğümler bağlı listeler ile tutulduğunda, düğüm dosyasında bulunan düğüm listesindeki bir sonraki düğüme işaret eder. PTR ise, kenar dosyasında bulunan düğümün komşuluk listesindeki ilk elemanına işaret edecektir.
12
Çizgelerin Bağlı Listelerle Gösterimi - 3 Kenar dosyası, çizgenin kenarlarını barındırır. Kenar dosyası, bütün komşuluk listelerini içerecektir. Her liste bellekte bir bağlı liste ile tutulur. Kenar dosyasının her kaydı, bir komşuluk listesindeki bir düğüme ve böylelikle dolaylı yoldan çizgenin bir kenarına karşılık gelecektir. Kenar dosyasının kayıtları şu formda saklanır: EDGE, eğer varsa, kenarın adıdır. ADJ, düğümün düğüm dosyasındaki konumuna işaret eder. NEXT, komşuluk listesindeki bir sonraki düğümün konumuna işaret eder.
13
Çizgelerin Bağlı Listelerle Gösterimi - 5 Şekil 3, şekil 2’deki çizgenin bellekte nasıl görüneceğini göstermektedir. Şekil 3.
14
Çizgelerin Bağlı Listelerle Gösterimi - 6
15
Çizgelerin Bağlı Listelerle Gösterimi - 7
16
Kaynak Lipschutz, Seymour and Marc Lars Lipson (2007). Theory and Problems of Discreete Mathematics. McGraw-Hill.
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.