Graflarizgeler Graflar Temel Kavramlar Graflar genel ilikiler temsil

  • Slides: 76
Download presentation
Graflar/Çizgeler

Graflar/Çizgeler

Graflar Temel Kavramları Graflar genel ilişkiler temsil etmek için kullanılır – Düğümler (elemanlar) ve

Graflar Temel Kavramları Graflar genel ilişkiler temsil etmek için kullanılır – Düğümler (elemanlar) ve bağlantılar (ilişkiler) kullanır – Temsil edilecek ilişkide olan elemanlar arasında – bağlantı çizilir 0. 5 – Sayısal ilişkiler ise, – bağlantılara sayısal 0. 25 0. 33 – değerleri atanabilir 1. 0 0. 5 – Yönlü ilişkiler ise, 0. 17 – bağlantılara yön atanabilir 1. 0 0. 33 0. 77 0. 15

Graflar Temel Kavramları Graflar çok genel matematiksel araç, grafların örnekler – Bir sınıfta arkadaşlık

Graflar Temel Kavramları Graflar çok genel matematiksel araç, grafların örnekler – Bir sınıfta arkadaşlık ilişkileri – Bir grupta sosyal bağlantıları – Bir şirketin ünitlerinin tedarik-tüketim süreçleri – Bir üretim sürecinin bağımlılık ilişkileri 0. 5 – Bir bilgi işlemin işletme bağımlılıkları 0. 25 0. 33 – Ekonomi sektörün şirketlerinin işbirlikleri 1. 0 – Otoban yollar 0. 5 0. 17 – Elektrik şebekeler 1. 0 0. 33 – Bilgisayar ağları –. . . 0. 77 0. 15

Graflar Temel Kavramları • Tüm mümkün graflarda düğümler (node) ve bağlantılar/kenarlar (edge) var •

Graflar Temel Kavramları • Tüm mümkün graflarda düğümler (node) ve bağlantılar/kenarlar (edge) var • Dügüm=eleman, bağlantı/kenar=ilişki • Graflarda, çoğunlukla düğümler noktalarla ve bağlantılar çizgiler veya oklarla gösterilir

Graflar Temel Kavramları Bir graf: Düğüm veya Node Öğrencilerin arkadaşlığı grafı • Düğüm =

Graflar Temel Kavramları Bir graf: Düğüm veya Node Öğrencilerin arkadaşlığı grafı • Düğüm = Öğrenci • Bağlantı = Arkadaşlık Bağlantı veya Edge

Graflar Temel Kavramları • İlişkiler için sayısal değerler atanabilir – Böyle graflara ağırlıklı graf

Graflar Temel Kavramları • İlişkiler için sayısal değerler atanabilir – Böyle graflara ağırlıklı graf denir – İlişkilerin sayısal değerlerine ağırlığı denir

Graflar Temel Kavramları Bir graf: Düğüm veya Nesne 0. 5 0. 25 0. 77

Graflar Temel Kavramları Bir graf: Düğüm veya Nesne 0. 5 0. 25 0. 77 0. 33 1. 0 0. 5 0. 17 1. 0 0. 33 0. 15 Bağlantı veya İlişki arkadaşlığın gücü

Graflar Temel Kavramları • Genel olarak ilişkiler yönsüz ve yönlü olabilir – Arakaşlık yönsüz

Graflar Temel Kavramları • Genel olarak ilişkiler yönsüz ve yönlü olabilir – Arakaşlık yönsüz bir ilişkinin örneği, eğer A B’nin arkadaşı, B A’nın arkadaşıdır – İşbirliği diğer yönsüz ilişkinin örneği, eğer A ve B şirket arasında işbirliği varsa, B ve A arasında da işbirliği olmalıdır

Graflar Temel Kavramları • Genel olarak ilişkiler yönsüz ve yönlü olabilir – Saygı yönlü

Graflar Temel Kavramları • Genel olarak ilişkiler yönsüz ve yönlü olabilir – Saygı yönlü ilişkinin bir örneği, yani A’nın B’e saygısı olabilir ama B’nın A’ya saygısı olmayabilir – Tedarik de yönlü ilişkinin bir örneği, eğer A B’ye tedarik ederse, B A’ya tedarik etmek zorunda değildir – Bilgisayar bağlantı, şebeke ve yollar diğer yönlü ilişkilerin ögnekleri, yani bu ağlarda trafik yönlü

Graflar Temel Kavramları • Yönlü ilişkileri içeren graflara yönlü graf denir, ve yönlü ilişkiler

Graflar Temel Kavramları • Yönlü ilişkileri içeren graflara yönlü graf denir, ve yönlü ilişkiler yönlü oklarla grafta gösterilir

Graflar Temel Kavramları Bir graf: Düğüm yada Node 0. 5 0. 25 0. 77

Graflar Temel Kavramları Bir graf: Düğüm yada Node 0. 5 0. 25 0. 77 0. 33 1. 0 0. 5 0. 17 1. 0 0. 33 0. 15 Bağlantı yada Edge Bir grupta aşk grafı • Düğüm = kişi • Bağlantı = aşk • Ağırlık = aşkın güçü

Graflar Temel Kavramları Graflar çok genel bir kavram ve kavramsal araç, çok genel durumlarda

Graflar Temel Kavramları Graflar çok genel bir kavram ve kavramsal araç, çok genel durumlarda ilişkiler bir graf kullanarak temsil edilebilir • Graflar, – Elemanları düğümler ile temsil eder – İlişkileri bağlantılar ile temsil eder – Bağlantılara sayısal değerleri atanabilir – Bağlantılar yönlü ve yönsüz olabilir

Temel graflar kavramları Patikalar ve Döngüler: Okları takip eden bir zincire, “patika/yol” denir Patika

Temel graflar kavramları Patikalar ve Döngüler: Okları takip eden bir zincire, “patika/yol” denir Patika Aynı düğümde başlayan ve duran patikalara “döngü” denir (cycle) Döngü düğüm bağlantı

Graflar Temel Kavramları • Ağaçlar, grafların özel durumu, yani hiç bir döngü içermeyen graflardır

Graflar Temel Kavramları • Ağaçlar, grafların özel durumu, yani hiç bir döngü içermeyen graflardır

Graflar Temel Kavramları Graf: Döngü var döngü

Graflar Temel Kavramları Graf: Döngü var döngü

Graflar Temel Kavramları Ağaç: Döngü yok

Graflar Temel Kavramları Ağaç: Döngü yok

Graflar Temel Kavramları Graflar görsel olarak farklı şekilde gösterilebilir, ama gerçekten sadece temel yapısı

Graflar Temel Kavramları Graflar görsel olarak farklı şekilde gösterilebilir, ama gerçekten sadece temel yapısı önemlidir =

Graflar Temel Kavramları Ağaçların temel kavramları (hatırlatma) Ağaç kökü Ana/çocuk düğümü Ağaç yaprakları Ağaç

Graflar Temel Kavramları Ağaçların temel kavramları (hatırlatma) Ağaç kökü Ana/çocuk düğümü Ağaç yaprakları Ağaç seviyeleri Ağaç yüksekliği

Graflar Temel Kavramları • Ağaçta sadece en çok iki çocuklu düğümler varsa, öyle ağaç

Graflar Temel Kavramları • Ağaçta sadece en çok iki çocuklu düğümler varsa, öyle ağaç ikili ağaçtır Üç çocuk ikili ağaç değil ikili ağaç

Graflar Temel Kavramları • Grafların temel temsili – Temel temsili: düğüm listesi V={n 1,

Graflar Temel Kavramları • Grafların temel temsili – Temel temsili: düğüm listesi V={n 1, n 2, n 3, …} ve bağlantı listesi E={n 1 n 2, n 1 n 3, n 2 n 3, …} direkt olarak kullanıyoruz, yani graf G=(V, E) çifti – Bitişiklik matrisi: tüm elemanlar bir matrisin bir ve diğer tarafına çizip hep bağlı iki eleman için ilişkili matrisin hücresine 1 yazıyoruz

Graflar (Çizgeler) Tanım: Yönlü graf (digraf) G = (V, E), • V tepeler kümesi

Graflar (Çizgeler) Tanım: Yönlü graf (digraf) G = (V, E), • V tepeler kümesi ve • E ⊆ V × Vayrıtlar kümelerinden oluşur. Yönsüz graf G = (V, E)'de, E ayrıt kümesi, sıralı olmayan tepe çiftlerinden oluşur. Her durumda, elimizde | E | = O(V 2) vardır. Ayrıca, eğer G bağlantılıysa, | E | ≥ | V | – 1 dir. November 9, 2005 Copyright © 2001 -5 by Erik D. Demaine and Charles E. Leiserson L 16. 21

Komşuluk matrisi gösterimi Bir G = (V, E) grafının komşuluk matrisi V = {1,

Komşuluk matrisi gösterimi Bir G = (V, E) grafının komşuluk matrisi V = {1, 2, …, n}olduğunda, 1 eğer (i, j) ∈ E ise, A[i, j] = 0 eğer(i, j) ∉ E ise, A[1. . n, 1. . n] matrisidir. November 9, 2005 Copyright © 2001 -5 by Erik D. Demaine and Charles E. Leiserson L 16. 22

Komşuluk matrisi gösterimi Bir G = (V, E) grafının komşuluk matrisi V = {1,

Komşuluk matrisi gösterimi Bir G = (V, E) grafının komşuluk matrisi V = {1, 2, …, n}iken, A[i, j] = A[1. . n, 1. . n] matrisidir. 2 1 3 4 November 9, 2005 1 eğer (i, j) ∈ E ise 0 eğer (i, j) ∉ E ise, A 1 2 3 4 2) depolama: Θ(V 1 0 1 1 0 ⇒ yoğun gösterimi. 2 0 0 1 0 3 0 0 4 by 0 Erik D. 0 Demaine 1 and 0 Charles E. Leiserson L 16. 23 Copyright © 2001 -5

Komşuluk listesi gösterimi Bir v ∈ V tepesinin komşuluk listesi, v' ye komşu olan

Komşuluk listesi gösterimi Bir v ∈ V tepesinin komşuluk listesi, v' ye komşu olan tepelerin Adj[v] listesidir. November 9, 2005 2 1 3 4 Adj[1] = {2, 3} Adj[2] = {3} Adj[3] = {} Adj[4] = {3} Copyright © 2001 -5 by Erik D. Demaine and Charles E. Leiserson L 16. 24

Komşuluk listesi gösterimi Bir v ∈ V tepesinin komşuluk listesi, v' ye komşu olan

Komşuluk listesi gösterimi Bir v ∈ V tepesinin komşuluk listesi, v' ye komşu olan tepelerin Adj[v] listesidir. November 9, 2005 2 1 3 4 Adj[1] = {2, 3} Adj[2] = {3} Adj[3] = {} Adj[4] = {3} Copyright © 2001 -5 by Erik D. Demaine and Charles E. Leiserson L 16. 25

Komşuluk listesi gösterimi Bir v ∈ V tepesinin komşuluk listesi, v' ye komşu olan

Komşuluk listesi gösterimi Bir v ∈ V tepesinin komşuluk listesi, v' ye komşu olan tepelerin Adj[v] listesidir. 2 1 3 4 Adj[1] = {2, 3} Adj[2] = {3} Adj[3] = {} Adj[4] = {3} Yönsüz graflar için, | Adj[v] | = degree (derece)(v). Yönlü graflar için, | Adj[v] | = out-degree (dış-derece)(v). Tokalaşma leması: Yönsüz graflar için ∑v∈V d e r e c e ( v ) = 2 | E | ⇒ komşuluk listeleri, Θ(V + E) depolama alanını kullanır. Bu seyrek gösterimdir. November 9, 2005 Copyright © 2001 -5 by Erik D. Demaine and Charles E. Leiserson L 16. 26

Graflar Temel Kavramları Bitişiklik matrisi 1 2 3 4 5 6 7 8 1

Graflar Temel Kavramları Bitişiklik matrisi 1 2 3 4 5 6 7 8 1 0 0 0 0 2 0 0 1 0 0 0 3 0 0 0 1 0 0 4 0 0 1 0 0 0 5 1 0 0 0 1 6 0 0 0 1 0 7 0 0 1 0 0 0 8 0 0 1 0 0 0

Graflar Temel Kavramları • Ağırlıklı bağlantılar için, bitişiklik matrisine ilişkili hücrelerine bağlantılarının ağırlıkları yazılır

Graflar Temel Kavramları • Ağırlıklı bağlantılar için, bitişiklik matrisine ilişkili hücrelerine bağlantılarının ağırlıkları yazılır • Yönsüz graflar için, bitişiklik matrisi simetrik şekilde olmalıdır, yani hem i j hem de j i bağlantı olması gerekir

Graflar Temel Kavramları Yönsüz graf bitişiklik matrisi 1 2 3 4 5 6 7

Graflar Temel Kavramları Yönsüz graf bitişiklik matrisi 1 2 3 4 5 6 7 8 1 0 0 0 2 1 0 0 0 3 0 1 0 1 1 0 4 0 0 1 0 0 0 5 1 0 0 0 1 6 0 0 1 0 7 0 0 1 0 0 8 0 0 1 0 0 0

Graflar Temel Kavramları Yönlü graf: V={a, b, c, d, e, g, f, h} -

Graflar Temel Kavramları Yönlü graf: V={a, b, c, d, e, g, f, h} - elemanlar a b E={ab, bc, cd, de, ea, cg, gf, fc, hc, eh} - bağlantılar c d e g f h

Graflar Temel Kavramları Temel temsili: V={a, b, c, d, e, g, f, h} E={ab,

Graflar Temel Kavramları Temel temsili: V={a, b, c, d, e, g, f, h} E={ab, bc, cd, de, ea, cg, gf, fc, hc, eh} a b c d e g f h

Graf Algoritmaları Sorunları • Grafların kavramsal olarak çok genel olduğu nedeniyle graf algoritmaları birçok

Graf Algoritmaları Sorunları • Grafların kavramsal olarak çok genel olduğu nedeniyle graf algoritmaları birçok durumda kullanılır ve birçok gerçek problem çözümü için son derecede önemlidir

Graflar Algoritma Sorunları • Herhangi endüstriyel üretme süreci, süreç halleri (düğümler) ve o haller

Graflar Algoritma Sorunları • Herhangi endüstriyel üretme süreci, süreç halleri (düğümler) ve o haller arasında bağlantıları (bağlantılar) kullanarak bir graf olarak temsil edilebilir • Endüstriyel üretme süreçlerinin tasarımı ve optimizasyonu graf problemi olarak çözülür

Graflar Algoritma Sorunları • Elektrik devreler, elektrik elemanlar (düğümler) ve bağlantılar (bağlantılar) kullanarak graflar

Graflar Algoritma Sorunları • Elektrik devreler, elektrik elemanlar (düğümler) ve bağlantılar (bağlantılar) kullanarak graflar olarak temsil edilebilir • Karmaşık elektrik devrelerinin tasarımı ve optimizasyonu graf problemi dir

Graflar Algoritma Sorunları • Bir ticaret süreci, şubeler (düğümler) ve tedarik zinciri (bağlantılar) kullanarak

Graflar Algoritma Sorunları • Bir ticaret süreci, şubeler (düğümler) ve tedarik zinciri (bağlantılar) kullanarak graf olarak temsil edilebilir • Ticaret şirketin süreçlerinin optimizasyonu ve çalıştırması graf problemi olarak çözülebilir

Graflar Algoritma Sorunları • Ülkenin elektrik tedarik ağı (şebeke), elektrik santralları ve tüketicileri (düğümler)

Graflar Algoritma Sorunları • Ülkenin elektrik tedarik ağı (şebeke), elektrik santralları ve tüketicileri (düğümler) ve elektrik bağlantılar (bağlantılar) kullanarak bir graf olarak temsil edilebilir • Elektrik ağı optimizasyonu ve çalıştırması graf problemi olarak temsil edilebilir

Graflar Algoritma Sorunları • Graf arama – Graf bağlantılarını takip ederek graftaki belirli hedefi

Graflar Algoritma Sorunları • Graf arama – Graf bağlantılarını takip ederek graftaki belirli hedefi bulmak lazım – Graf bağlantılarını takip ederek bir kökten bir hedefin uzaklığı hesaplamak lazım – Grafların yapısını incelemek lazım

Graflar Algoritma Sorunları • En kısa patika – Bir grafın bağlantı ağırlıklarına göre, iki

Graflar Algoritma Sorunları • En kısa patika – Bir grafın bağlantı ağırlıklarına göre, iki eleman arasında en kısa patikayı bulmak lazım (süreç optimizasyon) • Minimal yayılan ağaç – Bir grafın bağlantı ağırlıklarına göre, tüm graf elemanı içeren ama minimum ağırlıkta olan altgraf ağacını (yani döngüsüz altgrafı) bulmak lazım (elektrik şebeke)

Graflar Algoritma Sorunları • Maximal akış problemi – Bir yönlü grafın bağlantı ağırlıklarına göre,

Graflar Algoritma Sorunları • Maximal akış problemi – Bir yönlü grafın bağlantı ağırlıklarına göre, graf bağlantıları geçen maximum akışı bulmak lazım (şehirin yol sistemi) • Maximal kesim problemi – Bir grafın bağlantı ağırlıklarına göre, grafın iki parçaya optimum bölünmesini bulmak lazım (birçok altgrubu bulma tipten soru)

Graf İnceleme Sorunu • Graf aramanın amaçları: – Bağlantıları takip ederek belirli elemanı bulmak

Graf İnceleme Sorunu • Graf aramanın amaçları: – Bağlantıları takip ederek belirli elemanı bulmak gerekiyor – Graftaki belirli elemandan tüm diğer elemanların uzaklıklarını bulmak lazım – Grafın yapısını incelenmesi • Derinlikte arama ve enine arama algoritmaları

Graf İnceleme Sorunu • Derinlikte arama 1. Belirli bir eleman ile (kök) başlanır 2.

Graf İnceleme Sorunu • Derinlikte arama 1. Belirli bir eleman ile (kök) başlanır 2. Bu elemanla başlayınca bir grafın dalı oldukça takip edilir 3. Dalın sonuna ulaşınca, aynı dal ile geri dönüp uygun bir önceki elemandan yeni dalın incelenmesi yapılır (2. basamak) 4. VB

Graf İnceleme Sorunu Derinlikte arama: a ile başlıoruz Bir dalı takip ediyoruz a b

Graf İnceleme Sorunu Derinlikte arama: a ile başlıoruz Bir dalı takip ediyoruz a b Geçiş düğümleri: a→b→c→d→e→a c d e g f h

Graf İnceleme Sorunu Derinlikte arama: a b c d e g f h a

Graf İnceleme Sorunu Derinlikte arama: a b c d e g f h a ile başlıoruz Son 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→a a←e e→h→c

Graf İnceleme Sorunu Derinlikte arama: a b c d e g f h a

Graf İnceleme Sorunu Derinlikte arama: a b c d e g f h a ile başlıoruz Son 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→a a←e e→h→c

Graf İnceleme Sorunu Derinlikte arama: a ile başlıoruz a’ya ulaştıktan sonra, geri dönüyoruz a

Graf İnceleme Sorunu Derinlikte arama: a ile başlıoruz a’ya ulaştıktan sonra, geri dönüyoruz a b c d e g f h sona ulaştıktan sonra geri dönüyoruz; buradaki geri geçişi c’ye kadar oluyor! Geçiş düğümleri: a→b→c→d→e→a a←e e→h→c c←h←e←d←c c→g→f→c

Graf İnceleme Sorunu Derinlikte arama: A ile başlıoruz A’ya ulaştıktan sonra, geri dönüyoruz a

Graf İnceleme Sorunu Derinlikte arama: A ile başlıoruz A’ya ulaştıktan sonra, geri dönüyoruz a b c’ye ulaştıktan sonra geri dönüyoruz c d e g f h Geçiş düğümleri: a→b→c→d→e→a a←e e→h→c c←h←e←d←c c→g→f→c

Graf İnceleme Sorunu Derinlikte arama: a ile başlıoruz a’ya ulaştıktan sonra, geri dönüyoruz c’ye

Graf İnceleme Sorunu Derinlikte arama: a ile başlıoruz a’ya ulaştıktan sonra, geri dönüyoruz c’ye ulaştıktan sonra geri dönüyoruz. . . a b c d e g f h Geçiş düğümleri: a→b→c→d→e→a a←e e→h→c c←h←e←d←c c→g→f→c -- Bitti

Graf İnceleme Sorunu Evde: Derinlikte arama: Bu sürecine tekrar bakın a b c d

Graf İnceleme Sorunu Evde: Derinlikte arama: Bu sürecine tekrar bakın a b c d e g f h Derinlikte arama için sözde kod ve akış şemasını yazın Derinlikte arama algoritmayı LIFO stack veri yapısı kullanarak yazın

Graf İnceleme Sorunu • Derinlikte arama O(N) algoritmadır •

Graf İnceleme Sorunu • Derinlikte arama O(N) algoritmadır •

Graf İnceleme Sorunu • Derinlikte aramanın bir önemi, grafın düğümlerini bir sıraya koyabilmesi •

Graf İnceleme Sorunu • Derinlikte aramanın bir önemi, grafın düğümlerini bir sıraya koyabilmesi • Derinlikte aramanın grafın düğümlerini ilk geçme sırasına grafın “preorder” denir • Derinlikte aramanın grafın düğümlerini son geçme sırasına grafın “postorder” denir, ve onun tersine – “reverse postorder” denir

Graf İnceleme Sorunu Derinlikte arama: Derinlikte arama düğüm geçme sırası: abcdehedcgfgcba a b c

Graf İnceleme Sorunu Derinlikte arama: Derinlikte arama düğüm geçme sırası: abcdehedcgfgcba a b c d e g f h

Graf İnceleme Sorunu Derinlikte arama düğüm geçme sırası: abcdehedcgfgcba Derinlikte arama: a b c

Graf İnceleme Sorunu Derinlikte arama düğüm geçme sırası: abcdehedcgfgcba Derinlikte arama: a b c preorder (ilk karşılama) a-b-c-d-e-h-g-f d e g f h

Graf İnceleme Sorunu Derinlikte arama düğüm geçme sırası: abcdehedcgfgcba Derinlikte arama: a b c

Graf İnceleme Sorunu Derinlikte arama düğüm geçme sırası: abcdehedcgfgcba Derinlikte arama: a b c postorder (son karşılama) h-e-d-f-g-c-b-a d e g reverse postorder: a-b-c-g-f-d-e-h f h

Graf İnceleme Sorunu • Benzer şekilde ağaçlar için pre-order, in-order ve post-order incelenme sıraları

Graf İnceleme Sorunu • Benzer şekilde ağaçlar için pre-order, in-order ve post-order incelenme sıraları tanımlanır • Pre-order: kök ile başlayınca önce sol sonra sağ altağaçları incelenir • İn-order: sol altağacı incelenince kök ve sonra sağ altağacı incelenir • Post-order: önce sol sonra sag altağaçları ve en son kök geçilir

Graf İnceleme Sorunu Pre-order: F, B, A, D, C, E, G, I, H (kök,

Graf İnceleme Sorunu Pre-order: F, B, A, D, C, E, G, I, H (kök, sonra en sola, sonra sağa)

Graf İnceleme Sorunu In-order: A, B, C, D, E, F, G, H, I (en

Graf İnceleme Sorunu In-order: A, B, C, D, E, F, G, H, I (en sola, sonra kök, sonra sağa)

Graf İnceleme Sorunu Post-order: A, C, E, D, B, H, I, G, F (en

Graf İnceleme Sorunu Post-order: A, C, E, D, B, H, I, G, F (en sola, sonra en sağa, sonra kök)

Graf İnceleme Sorunu • Derinlikte arama O(N) algoritmadır • Derinlikte arama bir yayılan ağaç

Graf İnceleme Sorunu • Derinlikte arama O(N) algoritmadır • Derinlikte arama bir yayılan ağaç oluşturur – Grafın tüm elemanlarını içeren grafın altağacına yayılan ağaç denir – Derinlikte arama süreci grafda öyle bir yayılan ağacı bulur

Graf İnceleme Sorunu Derinlikte arama yayılan ağacı: a b c d e g f

Graf İnceleme Sorunu Derinlikte arama yayılan ağacı: a b c d e g f h

Graf İnceleme Sorunu • Bağlı parçaları – Bir elemana her hangi sürekli bir patika

Graf İnceleme Sorunu • Bağlı parçaları – Bir elemana her hangi sürekli bir patika ile bağlanan tüm diğer elemanlara grafın bir bağlı parçası denir – Grafın farklı bağlı parçaları için onların elemanları arasında hiç bir patika olamaz

Graf İnceleme Sorunu Grafın bağlı parçaları: Bağlı parça II

Graf İnceleme Sorunu Grafın bağlı parçaları: Bağlı parça II

Graf İnceleme Sorunu • Bağlı parçalar, bir grupta topluluklar belirlebilir (mesela facebookta arkadaşlık), sistemin

Graf İnceleme Sorunu • Bağlı parçalar, bir grupta topluluklar belirlebilir (mesela facebookta arkadaşlık), sistemin bağımsız bileşenleri belirlebilir (üretme surecinin altsüreçleri, makine tasarımın modülleri, sistemin doğal altsismtemleri), vb

Graf İnceleme Sorunu • Derinlikte aramayı kullanarak bağlı parçaların aranması – Bir eleman ile

Graf İnceleme Sorunu • Derinlikte aramayı kullanarak bağlı parçaların aranması – Bir eleman ile başlayınca derinlikte arama kullanarak bu elemana bağlı tüm diğer elemanlaru bulun – Bundan sonra dışarıda kalan her hangi bir elemanı kullanarak derinlikte aramayı tekrar yapın – Vb

Graf İnceleme Sorunu • Grafların bağlı parçaları B B Birinci derinlikte arama geçişi İkinci

Graf İnceleme Sorunu • Grafların bağlı parçaları B B Birinci derinlikte arama geçişi İkinci derinlikte arama geçişi

Graf İnceleme Sorunu • Enine arama 1. 2. 3. 4. 5. Bir eleman ile

Graf İnceleme Sorunu • Enine arama 1. 2. 3. 4. 5. Bir eleman ile (kök) başlar Bu eleman için tüm çocukları elde edilir Bu çocukların tüm çocukları incelenir Vb

Graf İnceleme Sorunu Enine arama a ile başlıoruz ve a b tüm çocuklarını inceliyoruz

Graf İnceleme Sorunu Enine arama a ile başlıoruz ve a b tüm çocuklarını inceliyoruz c d e g f h Geçiş düğümleri: a→{b, e}

Graf İnceleme Sorunu Enine arama Bu elemanların çocuklarını inceliyoruz a b c d e

Graf İnceleme Sorunu Enine arama Bu elemanların çocuklarını inceliyoruz a b c d e g f h Geçiş düğümleri: a→{b, e} →{c, d, h}

Graf İnceleme Sorunu Enine arama Bu elemanların çocuklarını inceliyoruz a b c d e

Graf İnceleme Sorunu Enine arama Bu elemanların çocuklarını inceliyoruz a b c d e g f Geçiş sırası a→{b, e} →{c, d, h} →{c, f} h Geçiş sırası a→{b, e} →{c, d, h} →{c, f}

Graf İnceleme Sorunu Enine arama Evde: Bu sürecine tekrar bakın a b c d

Graf İnceleme Sorunu Enine arama Evde: Bu sürecine tekrar bakın a b c d e g f h Bu algoritma için sözde kod ve akış şemasını yazın

Graf İnceleme Sorunu • Enine arama graf için bir yayılan ağaç oluşturur • Enine

Graf İnceleme Sorunu • Enine arama graf için bir yayılan ağaç oluşturur • Enine arama, grafın elemanların kökten uzaklığını da hesaplıyor • Enine arama O(N) algoritmadır

Graf İnceleme Sorunu Enine aramanın yayılan ağacı: a b c d e g f

Graf İnceleme Sorunu Enine aramanın yayılan ağacı: a b c d e g f h

Graf İnceleme Sorunu Enine aramanın kökten uzaklığı: 1 a b c 3 2 2

Graf İnceleme Sorunu Enine aramanın kökten uzaklığı: 1 a b c 3 2 2 d e g f 3 0 h 2 1

Graf İnceleme Sorunu • Enine arama ve topolojik sıralaması (ordering) – Topolojik sıralama: yönlü

Graf İnceleme Sorunu • Enine arama ve topolojik sıralaması (ordering) – Topolojik sıralama: yönlü grafta a elemandan b elemana bağlantı varsa, a eleman b elemandan sırada önce olmasını diyoruz – Sadece döngüsüz graflar için

Graf İnceleme Sorunu Topolojik sıralama: a b c d e g f a b

Graf İnceleme Sorunu Topolojik sıralama: a b c d e g f a b e c Sıra h h d g f

Graf İnceleme Sorunu Topolojik sıralama: 1 a b c 3 2 2 d e

Graf İnceleme Sorunu Topolojik sıralama: 1 a b c 3 2 2 d e g f Enine arama yapılır 0 3 h 2 1 Elemanlar enine aramanın uzaklığına göre yerleştirilir

Graf İnceleme Sorunu Topolojik sıralama: 1 a b c a e g f 1

Graf İnceleme Sorunu Topolojik sıralama: 1 a b c a e g f 1 2 b e 3 2 2 c Elemanlar enine aramanın uzaklığına göre yerleştirilir 2 d 3 0 2 Enine arama yapılır 0 h h 1 2 2 d 3 g 4 f Sıra yönü