mit503 veri yapıları ve algoritmalar - yuriy...
TRANSCRIPT
![Page 1: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/1.jpg)
MIT503 Veri Yapıları ve algoritmalar
GraflarY. Doç. Dr. Yuriy Mishchenko
![Page 2: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/2.jpg)
Graflar
Ders planı• Graflara giriş• Baze önemli graf işlemleri
![Page 3: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/3.jpg)
Graflar
Graflar ilişkiler göstermek için çizilgelerdir– Düğümler (node'lar, elemanlar) ve bağlantılar
(edge'ler, kenarlar, ilişkiler) vardır– Düğimler arasındaki ilişki bağlantı ile gösterilir– Sayısal ilişkiler için,
bağlantılar üzerinde sayısal bir değer yazılır
– Yönlü ilişkiler için, bağlantılara yön atanır
0.5
0.25 0.33 0.77
0.5
0.150.33
0.17
1.0
1.0
![Page 4: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/4.jpg)
GraflarGraflar kavramsal bir araç: – Arkadaşlık ilişkileri– Sosyal bağlantıları– Şirketin ürünlerinin tedarik-tüketim bağlantıları– Üretim sürecinin çıktı-girdi bağımlılıkları– Bilgi işlem sistemi/veritabanında bağımlılıkları– Ekonomik işbirlikleri– Otoban yolları– Elektrik şebekesi– İnternet ağı– VB
0.5
0.25 0.33 0.77
0.5
0.150.33
0.17
1.0
1.0
![Page 5: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/5.jpg)
Temel Kavramlar
• Graflar, düğümler (ing. “node”) ve bağlantılar/kenarlar (ing. “edge”) dan oluşturulan bir çizilge
• Dügüm=eleman/nesne, bağlantı/kenar=ilişki• Graflarda düğümler genellikle noktalar ve
bağlantılar oklar kullanarak gösterilir
![Page 6: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/6.jpg)
Temel Kavramlar
Düğüm veya Node
Bağlantı veya Edge
Arkadaşlık grafı:• Düğüm = Öğrenci• Bağlantı = Arkadaşlık
![Page 7: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/7.jpg)
Temel Kavramlar
• İlişkilerde sayısal değerler olabilir– Örneğin – ticari ilişkilerde alişveriş ürün miktarları– Sayısal ilişkilere sahip olan graflara ağırlıklı graf
denir, ilişkinin sayısal değerine ağırlık denir
![Page 8: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/8.jpg)
Temel Kavramlar
0.5M
0.25M0.33M 0.77M
0.5
0.15M0.33M
0.17M
1.0M
1.0M
:: alişveriş hacimleri, miliyon ürün
Düğüm veya Nesne
Bağlantı veya İlişki
![Page 9: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/9.jpg)
Temel Kavramlar
• İlişkiler yönsüz ve yönlü olabilir– Örneğin, arakaşlık yönsüz ilişkidır: eğer A B’nin
arkadaşı ise, B A’nın arkadaşı dır– İşbirliği yönsüz ilişkinin başka bir ögneği: eğer A ve
B şirket işbirliğinde ise, B ve A arasında da aynı işbirlik olması gerekir
![Page 10: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/10.jpg)
Temel Kavramlar
– Fakat saygı yönlü ilişkidir: eğer A kişi B kişiye saygısı gösteriyorsa, B A’ya saygı göstermiyor olabilir
– Tedarik yönlü ilişkinin başka bir ögneği: eğer şirket A şirket B’ye tedarik ederse, B A’ya tedarik ediyor taktirde olmak değildir
– Bilgisayar bağlantılar, elektrik şebeke ve otoyolları başka yönlü ilişkilerin ögnekleri, bunlarda bağlantının yönü – ağdaki trafik yönünün anlamındadır
![Page 11: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/11.jpg)
Temel Kavramlar
• Yönlü ilişkileri içeren graflara yönlü graf denir, ve ilgili ilişkiler yönlü oklarla grafta gösterilir
![Page 12: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/12.jpg)
Temel Kavramlar
0.5
0.250.33 0.77
0.5
0.150.33
0.17
1.0
1.0
Aşk ilişkileri:• Düğüm = kişi• Bağlantı = aşk• Ağırlık = aşkın "güçü"
![Page 13: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/13.jpg)
Temel Kavramlar
Graflar genel kavramsal araç, genel durumlarda ilişkiler graf kullanarak gösterilir ve modellenebilir
• Graflar, – Elemanlar - düğüm– İlişkiler - bağlantı– İlişkinin sayısal ölçeği - ağırlık– İlişkinin yönü – ok yönü
![Page 14: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/14.jpg)
Temel Kavramlar
Patikalar ve Döngüler:
düğüm bağlantı
Patika
Döngü
Okları takip eden bir zincire, “patika” denir (ing. path)
Aynı düğümde başlayan ve biten patikalara “döngü” denir (ing. cycle)
![Page 15: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/15.jpg)
Temel Kavramlar
• Ağaçlar, grafların özel bir durumu, döngü içermeyen graflar dır
![Page 16: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/16.jpg)
Temel Kavramlar
Graf:
Döngü var
döngü
![Page 17: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/17.jpg)
Temel Kavramlar
Ağaç:
Döngü yok
![Page 18: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/18.jpg)
Temel Kavramlar
Graflar görsel olarak farklı şekilde gösterilebilir, fakat gerçekten grafın yapısı önemlidir
=
![Page 19: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/19.jpg)
Temel Kavramlar
Graflar görsel olarak farklı şekilde gösterilebilir, fakat gerçekten grafın yapısı önemlidir
=
![Page 20: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/20.jpg)
Temel Kavramlar
Yani grafın şekli önemli değil, eğer bir birine düğümler taşıyarak değiştirilebilir ise
=
![Page 21: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/21.jpg)
Temel Kavramlar
Ağaçların temel kavramları (hatırlatma)Ağaç kökü
Ağaç yaprakları
Ana/çocuk düğümü
Ağaç seviyeleri
Ağaç yüksekliği
![Page 22: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/22.jpg)
Temel Kavramlar
• Ağaçta en çok iki çocuklu düğümler varsa, öyle agaçlara ikili ağaç denir
ikili ağaç değil ikili ağaç
![Page 23: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/23.jpg)
Temel Kavramlar
• Grafın temel temsili:– Grafın temel temsili: • düğüm listesi V={n1,n2,n3,…} ve • bağlantı listesi E={n1n2,n1n3,n2n3,…}, • yani graf G = (V,E)
![Page 24: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/24.jpg)
Temel Kavramlar
• Grafın temel temsili:– Alternatif temsili - bitişiklik matrisi • Düğümler, bir matrisin kenarlarında yazılır• Bağlantılar, ilgili düğümlerin sütün ve satır kesişiminde
yazılıyor
![Page 25: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/25.jpg)
Temel Kavramlar
Bitişiklik matrisi
23
64
1
5
78
1 2 3 4 5 6 7 8
1 0 1 0 0 0 0 0 0
2 0 0 1 0 0 0 0 0
3 0 0 0 1 0 1 0 0
4 0 0 0 0 1 0 0 0
5 1 0 0 0 0 0 0 1
6 0 0 0 0 0 0 1 0
7 0 0 1 0 0 0 0 0
8 0 0 1 0 0 0 0 0
![Page 26: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/26.jpg)
Temel Kavramlar
• Ağırlıklı graflar için, bitişiklik matrisinde ilişkililerin ağırlıkları yazılır
![Page 27: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/27.jpg)
Temel Kavramlar
• Yönsüz graflar için, bitişiklik matrisi simetrik olması gerekmektedir: eğer ij bağlantı gösteriliyorsa ji bağlantı da olması lazım
![Page 28: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/28.jpg)
Yönsüz grafın bitişiklik matrisi:
23
6
4
1
5
78
1 2 3 4 5 6 7 8
1 0 1 0 0 1 0 0 0
2 1 0 1 0 0 0 0 0
3 0 1 0 1 0 1 1 0
4 0 0 1 0 1 0 0 0
5 1 0 0 1 0 0 0 1
6 0 0 1 0 0 0 1 0
7 0 0 1 0 0 1 0 0
8 0 0 1 0 1 0 0 0
![Page 29: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/29.jpg)
Temel Kavramlar
Örnek yönlü graf:
bc
g
d
a
e
fh
![Page 30: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/30.jpg)
Temel Kavramlar
Temel temsili:
bc
g
d
a
e
fh
V={a,b,c,d,e,g,f,h} - elemanlar
E={ab,bc,cd,de,ea,cg,gf,fc,hc,eh} - bağlantılar
![Page 31: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/31.jpg)
Baze grafların uygulamaları
• Graflar kavramsal olarak çok genel olduğu nedeniyle, graf birçok durumda kullanılabilir ve birçok problemlerde karşılanır
![Page 32: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/32.jpg)
Baze grafların uygulamaları
• Endüstriel üretim süreci, üretim adımları – düğümler ve o adımlar arasındaki bagımlılık – bağlantılar olarak temsil edilebilir
• Endüstriel üretim tasarımı ve optimizasyonu, graf problem olarak tanımlanabilir
![Page 33: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/33.jpg)
Baze grafların uygulamaları
• Elektrik devreler, elektrik üreticiler ve tüketiciler – düğümler ve elektrik bağlantılar – graf bağlantıları olarak temsil edilebilir
• Elektrik devrelerinin tasarımı ve optimizasyonu da graf problemi olarak tanımlanabilir
![Page 34: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/34.jpg)
Baze grafların uygulamaları
• Bir ticaret ağlarında, şubeler – düğümler ve tedarik zincirleri – bağlantılar kullanarak temsil edilebilir
• Ticaret-tedarik tasarımı graf problemi olarak tanımlanabilir
![Page 35: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/35.jpg)
Baze grafların uygulamaları
• Elektrik şebekede, üreticiler ve tüketicileri – düğümler ve bağlantılar – graf bağlantıları olarak temsil edilebilir
• Ülkenin şebeke optimizasyonu ve çalışması graf problemi olarak tanımlanabilir
![Page 36: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/36.jpg)
Baze grafların uygulamaları
• Ülkenin otoyol sisteminde, şehirler – düğümler ve otobanlar –bağlantıları olarak temsil edilebilir
• Otoyolların optimizasyonu, durumu ve patika bulma graf problemi olarak tanımlanabilir
![Page 37: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/37.jpg)
Baze graf işlemleri
• Graf arama problemleri– Graf bağlantılarını takip ederek graftaki belirli bir
düğüm aranması– Graf bağlantılarını takip ederek, bir hedef
düğümünün başlangıçtan uzaklığı hesaplanması– Graf bağlantılarını takip ederek, grafın genel
topoloji veya yapısı incelenmesi
![Page 38: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/38.jpg)
Baze graf işlemleri
• Graf arama için derinlikte ve enine arama yaklaşımları kullanılmaktadır
![Page 39: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/39.jpg)
Baze graf işlemleri
• Derinlikte arama (deapth-first search)1. Belirli bir düğüm ile (ona kök denir) başlatılır2. Bu düğümle başlayınca, grafın bir dalı mümkün
iken takip edilir3. Dalın sonu ulaşıltıktan sonra, aynı daldan geri
dönülür ve ilk uygun önceki bir düğümden yeni dalın incelenmesi aynı şekilde başlatılır
4. VB
![Page 40: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/40.jpg)
Derinlikte arama
Derinlikte arama:
bc
g
d
a
e
fh
a ile başlıoruz
Bir dalı takip ediyoruz
Geçiş düğümleri:a→b→c→d→e→a
![Page 41: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/41.jpg)
Derinlikte arama
Derinlikte arama:
bc
g
d
a
e
fh
a ile başlıoruzSon düğüme ulaştıktan sonra (a) geri dönüyoruz, uygun önceki bir elemandan yeni dalı incelemeye başlıyoruz
Geçiş düğümleri:a→b→c→d→e→aa←ee→h→c
![Page 42: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/42.jpg)
Derinlikte arama
Derinlikte arama:
bc
g
d
a
e
fh
a ile başlıoruzSon düğüme ulaştıktan sonra (a) geri dönüyoruz, uygun önceki bir elemandan yeni dalı incelemeye başlıyoruz
Geçiş düğümleri:a→b→c→d→e→aa←ee→h→c
![Page 43: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/43.jpg)
Derinlikte arama
Derinlikte arama:
bc
g
d
a
e
fh
a ile başlıoruza’ya ulaştıktan sonra, geri dönüyoruz
Geçiş düğümleri:a→b→c→d→e→aa←ee→h→cc←h←e←d←cc→g→f→c
sona ulaştıktan sonra geri dönüyoruz; buradaki geri geçişi c’ye kadar oluyor!
![Page 44: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/44.jpg)
Derinlikte arama
Derinlikte arama:
bc
g
d
a
e
fh
A ile başlıoruzA’ya ulaştıktan sonra, geri dönüyoruz
Geçiş düğümleri:a→b→c→d→e→aa←ee→h→cc←h←e←d←cc→g→f→c
c’ye ulaştıktan sonra geri dönüyoruz
![Page 45: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/45.jpg)
Derinlikte arama
Derinlikte arama:
bc
g
d
a
e
fh
Geçiş düğümleri:a→b→c→d→e→aa←ee→h→cc←h←e←d←cc→g→f→c -- Bitti
a ile başlıoruza’ya ulaştıktan sonra, geri dönüyoruzc’ye ulaştıktan sonra geri dönüyoruz ...
![Page 46: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/46.jpg)
Derinlikte arama
Derinlikte arama:
bc
g
d
a
e
fh
Evde:Derinlikte arama için sözde kod ve akış şemasını yazmayı deneyin
Not: derinlikte arama algoritması LIFO stack kullanarak en kolaydır
![Page 47: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/47.jpg)
Derinlikte arama
• Derinlikte arama ile yayılan ağacın oluşturulması– Grafın tüm düğümleri içeren ağaç olan altgrafa
(yani bağlantıların altkümesine) yayılan ağaç denir– Derinlikte aramada bir yayılan ağacı oluşturulur
![Page 48: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/48.jpg)
Derinlikte arama
Derinlikte arama yayılan ağacı:
bc
g
d
a
e
fh
![Page 49: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/49.jpg)
Derinlikte arama
• Bağlı parçalar– Bir elemana devamlı patikalarla bağlanan tüm
düğümlere grafın bağlı parçası denir
– Grafın bağlı parçaları arasında devamlı patika bulunamaz
![Page 50: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/50.jpg)
Derinlikte arama
Bağlı parçalar
Bağlı parça I Bağlı parça II
![Page 51: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/51.jpg)
Derinlikte arama
• Bağlı parçalar önemli pratik bir kavram, gruplar topluluklar anlamına gelebilir (mesela sosyal topluluklar), sistemin bağımsız bileşenlerinin anlamına gelebilir (üretim sureçlerinin bileşenleri, makine tasarımının modülleri, sistemin bileşenleri), vb
![Page 52: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/52.jpg)
Derinlikte arama
• Derinlikte arama kullanarak bağlı parçalar bulunabilir– Herhangi bir düğüm başlanır, derinlikte arama
kullanarak bu düğüme bağlı tüm diğer düğümler bulunur
– Bundan sonra, dışarıda kalan her hangi bir düğüm ile önceki tekrar yapılır
– VB
![Page 53: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/53.jpg)
Derinlikte arama
• Grafların bağlı parçaları
K
K
Birinci derinlikte arama süresi İkinci derinlikte arama süresi
![Page 54: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/54.jpg)
Derinlikte arama
• Derinlikte arama gereken zamanı olarak O(N) algoritma dır
![Page 55: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/55.jpg)
Enine arama
• Enine arama (breadth-first search)1. Bir düğüm ile (kök denir) başlatılır 2. Bu düğüm için önce tüm çocuklar incelenir3. Sonra bu çocukların çocukları incelenir4. Sonra bu çocukların çocukları incelenir5. VB
![Page 56: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/56.jpg)
Enine arama
Enine arama
bc
g
d
a
e
fh
a ile başlıoruz ve
tüm çocukları inceliyoruz
Arama sırası a→{b,e}
![Page 57: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/57.jpg)
Enine arama
Enine arama
bc
g
d
a
e
fh
Bu elemanların çocukları inceliyoruz
Arama sırası a→{b,e} →{c,d,h}
![Page 58: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/58.jpg)
Enine arama
Enine arama
bc
g
d
a
e
fh
Arama sırasıa→{b,e} →{c,d,h} →{c,f}
Bu elemanların çocukları inceliyoruz
![Page 59: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/59.jpg)
Enine arama
Enine arama
bc
g
d
a
e
fh
Evde:Bu algoritma için sözde kod ve akış şemasını yazın
Sıra:a→{b,e} →{c,d,h} →{c,f}
![Page 60: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/60.jpg)
Enine arama
• Enine arama da grafın bir yayılan ağacını oluşturur
• Ayrıca enine arama grafın düğümlerinin kökten uzaklıklarını hesaplıyor
![Page 61: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/61.jpg)
Enine arama
Enine arama yayılan ağacı:
bc
g
d
a
e
fh
![Page 62: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/62.jpg)
Enine arama
Enine arama kökten uzaklıkları:
bc
g
d
a
e
fh
01
1
2
22
3
3
![Page 63: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/63.jpg)
Enine arama
• Enine arama O(N) algoritmadır
![Page 64: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/64.jpg)
Graf sıralamaları
• Derinlikte ve enine graf arama işlemleri graf düğümlerini bir sıraya koyar
![Page 65: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/65.jpg)
Graf sıralamaları
• Çok önemli olan ve çok yayğın kullanılan derinlikte aramanın grafın düğüm sıraları veya düzenleri vardır
• Derinlikte arama ile ilgili “preorder”, “postorder” ve “reverse postorder” sıralar vardır
![Page 66: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/66.jpg)
Graf sıralamaları
bc
g
d
a
e
fh
Derinlikte aramada düğümlerin sırası:
"abcdehedcgfgcba"
![Page 67: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/67.jpg)
Graf sıralamaları
bc
g
d
a
e
fh
Derinlikte arama sırası: abcdehedcgfgcba
preorder (ilk karşılandığı sırası)a-b-c-d-e-h-g-f
![Page 68: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/68.jpg)
Graf sıralamaları
bc
g
d
a
e
fh
Derinlikte arama sırası: abcdehedcgfgcba
postorder (son karşılandığı sırası) h-e-d-f-g-c-b-a
reverse (ters) postorder: a-b-c-g-f-d-e-h
![Page 69: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/69.jpg)
Graf sıralamaları
• Önemli: ağaçlar için benzer sıralar tanımlanır: pre-order, in-order ve post-order
![Page 70: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/70.jpg)
Graf sıralamaları
– Pre-order: kök, sonra sol altağaç sonra sağ altağaç
– İn-order: sol altağaç, sonra kök, sonra sağ altağaç
– Post-order: sol altağaç, sonra sağ altağaç, son kök
![Page 71: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/71.jpg)
Graf sıralamaları
Pre-order: F, B, A, D, C, E, G, I, H(kök,sonra en sola, sonra sağa)
![Page 72: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/72.jpg)
Graf sıralamaları
In-order: A, B, C, D, E, F, G, H, I(en sola, sonra kök, sonra sağa)
![Page 73: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/73.jpg)
Graf sıralamaları
Post-order: A, C, E, D, B, H, I, G, F(en sola, sonra en sağa, sonra kök)
![Page 74: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/74.jpg)
Graf sıralamaları
• Topolojik sıralama:– Topolojik sıralama, grafın düğümlerin şöyle bir
sırası ki,• "a" düğümden "b" düğüme graf bağlantısı varsa, sırada
"a" eleman "b" elemandan önce gelmeli
![Page 75: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/75.jpg)
Graf sıralamaları
• Topoljik sıralama sadece döngüsüz graflar için tanımlanabilir
• Yani, bu da ağaçların bir sırası dır
![Page 76: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/76.jpg)
Graf sıralamaları
Topolojik sıralama:
bc
gd
a
e
fh
a b e c dh g f
![Page 77: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/77.jpg)
Graf sıralamaları
• Topolojik sıralama enine arama kullanarak bulunur
bc
g
d
a
e
fh
![Page 78: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/78.jpg)
Graf sıralamaları
1. Önce enine arama yapılır
2. Sonra düğümler, enine aramanın sırasına göre sıralanır
bc
g
d
a
e
fh
01
12
2
3
23
![Page 79: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda](https://reader036.vdocuments.pub/reader036/viewer/2022070607/5a9fd8c27f8b9a62178d421d/html5/thumbnails/79.jpg)
Graf sıralamaları
a b e c dh g f
bc
gd
a
e
fh
01
1
2
22
3
3
0 1 2 2 2 2 3 4