Graflarizgeler Graflar Temel Kavramlar Graflar genel ilikiler temsil
- Slides: 76
Graflar/Çizgeler
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 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 • 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 = Öğ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 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 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 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ü 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 yönlü oklarla grafta gösterilir
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 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 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ı Graf: Döngü var döngü
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ı ö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ç seviyeleri Ağaç yüksekliği
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, 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 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, 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, 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 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 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 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 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 • 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 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} - 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, 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 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 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 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 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) 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 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 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, 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 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. 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 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 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 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 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 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 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 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 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 d e g f h
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 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ı 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, sonra en sola, sonra sağa)
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 sola, sonra en sağa, sonra kök)
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 h
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 • 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 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 derinlikte arama geçişi
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 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 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 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 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 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 h
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ü 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 e c Sıra h h d g f
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 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ü
- Temel kavramlar özel öğrenci
- Pdr temel kavramlar
- Programlama temel kavramları
- Beslenme ile ilgili temel kavramlar
- Program geliştirmede temel kavramlar
- Mukavemet temel kavramlar
- Beslenme ile ilgili temel kavramlar
- Gelişimle ilgili temel kavramlar
- Termodinamiğin temel kavramları
- Graflar ve algoritmalar
- Medenyet
- Evren ve örneklem nedir
- Formel temsil anlayışı nedir
- Eşit olasılık yanlılığı
- Temsil yöntemi nedir
- Temsil heyeti nerede kuruldu
- Temsil yeteneğine sahip bir örneklem
- Kalite ile ilgili kavramlar
- Dts modelinin içerdiği kavramlar
- Kaderle ilişkilendirilen kavramlar
- Mimarlıkta soyutlama
- Hac ve umre ile ilgili kavramlar
- Bilgisayar parçalarını tanıyalım
- Aksiyom ne demek
- Wordde sunum hazırlama
- Yüzey aktif maddeler ile ilgili kavramlar
- Devlet malını koruma ve tasarruf tedbirleri
- Anahtar kavramlar nedir
- Tanrı tasavvurları nelerdir
- Hristiyanlığa ait kavramlar
- Mantık tümel tikel kavramlar
- Topraksu genel müdürlüğü
- Alkan adlandırma örnekleri
- Yeteneğini bulma testi
- Adaptasyon uyum yaklaşımları
- Biyoloji
- Darphane ve damga matbaası genel müdürlüğü
- Okuryazarlığın 5 genel evresi
- Kan gruplar
- Yanıtı sınırlandırılmış kompozisyon
- Banka muhasebesi ve genel muhasebe arasındaki farklar
- Land
- Muhasebenin özetleme fonksiyonu
- Korunabilirlik hızı
- Genel hedef uzak hedef
- Ilişkisel tarama modeli
- Rickettsia vitamin d
- 327 sayılı milli emlak genel tebliği
- Genel iskontolu fatura örneği
- Tapu kadastro genel m?d?rl?g?
- Makine ve tezgahlarda alınacak genel tedbirler
- Kavram ağı örneği
- Lcw genel yetenek testi
- Aldehit yükseltgenmesi
- Fıkıh ilmi hangi ilimlerle ilişkilidir
- Genel izlenimle puanlama
- V
- Atilla sandıklı
- What parasite
- Prof. dr. bektaş tepe
- Thomas genel yetenek testi
- Cumhuriyet dönemi halk şairleri
- Varlığın oluşu problemi
- Genel muhasebe borç alacak kavramı
- Karagöz ve mehtapta yazılı bir metin yoktur
- Kareler ortalaması
- Taşlama tezgahlarında güvenlik ile ilgili değildir
- 1960 sonrası türk hikayeciliğinin genel özellikleri
- Benzaldehit yükseltgenmesi
- Tımarlı sipahilerin genel özellikleri
- Mekansal planlama genel müdürlüğü
- Harcırah kanunu genel tebliği (seri no 42)
- Karboksilik asit genel formülü
- Y ye göre çözülebilen diferansiyel denklemler
- Monografi örneği
- Genel denge modeli nedir
- Genel mikoloji