İçerik: Graflar. Tanım. Gösterim. Dolaşma Algoritmaları. Yönlü ve yönsüz graflar Ağırlıklı graflar. Komşuluk Matrisi Komşuluk Listesi

Benzer belgeler
Graflar bilgi parçaları arasındaki ilişkileri gösterirler.

YZM 2116 Veri Yapıları

VERİ YAPILARI. GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi ÖĞR.GÖR.GÜNAY TEMÜR 1

GRAPH LAR Düzce Üniversitesi Teknoloji Fakültesi VERİ YAPILARI. Bilgisayar Mühendisliği ÖĞR.GÖR.GÜNAY TEMÜR 1

Çizgeler (Graphs) Doç. Dr. Aybars UĞUR

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi

Graf Veri Modeli. Düğümler kümesi. Kenarlar kümesi

BMT 206 Ayrık Matematik. Yük. Müh. Köksal GÜNDOĞDU 1

Yapay Zekada Problem Çözme

Azalt ve Fethet Algoritmaları

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

köşe (vertex) kenar (edg d e)

BMB204. Veri Yapıları Ders 11. Çizgeler (Graph) Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

9.Hafta Veri sıkıştırma ve Aç gözlü algoritmalar

BLM-431 YAPAY ZEKA. Ders-4 Bilgisiz Arama Yöntemleri. Yrd. Doç. Dr. Ümit ATİLA

Algoritmalar. Ders 14 En Kısa Yollar II Bellman-Ford algoritması Floyd-Warshall algoritması

ÇİZGİ KÜMELERİ (GRAPHS)

11.Hafta En kısa yollar I-II-III Devam. Negatif Ağırlıklı En Kısa Yollar Doğruluk Çözümleme

Ağaç (Tree) Veri Modeli

YZM YAPAY ZEKA DERS#4: BİLGİSİZ ARAMA YÖNTEMLERİ

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

BBM Discrete Structures: Final Exam Date: , Time: 15:00-17:00

HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ

Arama Algoritmaları ile Gerçek Dünya Örnekleri

ÇİZGE KURAMI KESİKLİ MATEMATİKSEL YAPILAR GÜZ

VERİ YAPILARI DERS NOTLARI BÖLÜM 1 GİRİŞ. Yard. Doç. Dr. Deniz KILINÇ

Algoritmalar. İkili Arama Ağaçları. Bahar 2016 Doç. Dr. Suat Özdemir 1

ÇİZGİ KÜMELERİ (GRAPHS)

YZM 2116 Veri Yapıları

Sezgisel-Bilgili Arama (Heuristic-Informed Search)

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

DOSYA ORGANİZASYONU. Ağaç Yapıları ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

Anadolu Üniversitesi Endüstri Mühendisliği Bölümü İST328 Yöneylem Araştırması 2 Dersi Bahar Dönemi. Hazırlayan: Doç. Dr.

DEÜ MÜHENDİSLİK FAKÜLTESİ MÜHENDİSLİK BİLİMLERİ DERGİSİ Cilt: 13 Sayı:1 sh.1-8 Ocak 2011

(DOKTORA TEZİ) Tez Danışmanı: Prof. Dr. Urfat NURİYEV. Matematik Anabilim Dalı

Week 9: Trees 1. TREE KAVRAMI 3. İKİLİ AĞAÇ DİZİLİMİ 4. İKİLİ ARAMA AĞACI 2. İKİLİ AĞAÇ VE SUNUMU > =

YZM 3217 YAPAY ZEKA DERS#5: BİLGİLİ ARAMA YÖNTEMLERİ

Algoritmalara Giriş 6.046J/18.401J

Veri Yapıları. Yrd. Doç. Dr. Şadi Evren ŞEKER

Algoritmalar. Kırmızı Siyah Ağaçları Red Black Trees. Bahar 2017 Doç. Dr. Suat Özdemir 1

YZM 2116 Veri Yapıları

BIL222 Veri Yapıları ve Algoritmalar

Yapı Sistemlerinde Elverişsiz Yüklemeler:

GRAFLAR (ÇİZGELER) karşılık gelen başka bir kenar yoktur. Sonuç olarak, bir basit grafta uv, köşe

ENDÜSTRİ MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

BBM Discrete Structures: Final Exam - ANSWERS Date: , Time: 15:00-17:00

Teori/Saat Uygulama/Saat Laboratuar/Saat AKTS BLM Dersin Amacı

Genel Graf Üzerinde Mutlak 1-merkez

Graflarda Derece Bağlantılık İndeksi ve Temel İşlemlerde İncelenmesi (The Degree Connection Index of Graphs and research on basic operations)

İletişim Ağları Communication Networks

İZMİR İN GEZGİN SATICISI

YZM 2116 Veri Yapıları

ADIYAMAN ÜNĠVERSĠTESĠ MÜHENDĠSLĠK FAKÜLTESĠ ELEKTRĠK-ELEKTRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ DEVRE ANALĠZĠ LABORATUVARI-II DENEY RAPORU

Çizge teorisi. 1736, Euler, Königsberg Köprüleri problemini çözdü

Manisa Celal Bayar Üniversitesi Yazılım Mühendisliği Bölümü YZM Veri Yapıları Dersi. Proje#2

{\} /\ Suhap SAHIN Onur GÖK

Graflar - Çizgeler. Ders 9. Graflar ve Tanımlar

Max - Min Heap Tree (Max ve Min Yığıt Ağaçları) Veri Yapıları ve Algoritmalar 2 - Mustafa EGE Ders Notları

KÜTLELER DİYAGRAMI VE TOPRAK DAĞITIMI. Toprak İşleri. Toprak Dağıtımının Amaçları



ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BIP116-H14-1 BTP104-H014-1

Dilbilgisi ve Diller

3B CBS'DE AĞ ANALİZLERİNE YÖNELİK COĞRAFİ VERİTABANININ OTOMATİK OLARAK ÜRETİLMESİ

CBS Veri. CBS Veri Modelleri. Prof.Dr. Emin Zeki BAŞKENT. Karadeniz Teknik Üniversitesi Orman Fakültesi 2010, EZB

WEEK 11 CME323 NUMERIC ANALYSIS. Lect. Yasin ORTAKCI.

Algoritmalar. Çizge Algoritmaları. Bahar 2017 Doç. Dr. Suat Özdemir 1





Çizge Teorisi (Graph Theory)

ARAÇ ROTALARININ EN KISA YOL ALGORİTMALARI KULLANILARAK BELİRLENMESİ VE.NET ORTAMINDA SİMÜLASYONU

ZİP PERDE FİYAT LİSTESİ ZIP SCREEN PERFORATED FABRIC PRICE LIST

GRAFİK RENKLENDİRME ALGORİTMASI KULLANILARAK OTOMATİK DERS PROGRAMI GELİŞTİRME YAZILIMI

Veri Yapıları. Ağaçlar

CSE225 DATA STRUCTURES 2006 Student Name: MIDTERM EXAM II M.B.T. Student Number:

Week 6: Bağlı Liste (Linked List) BAĞLI LİSTE KAVRAMI TEKİL (SINGLE) BAĞLI LİSTE ÇİFT (DOUBLE) BAĞLI LİSTE DAİRESEL (CIRCULAR) BAĞLI LİSTE

ö ğ ö ö ö ş ö

Kablosuz Algılayıcı Ağlarda,Yönlendirme Algoritmalarının Performans Analizi

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN

Textbook & References. Algorithms & Analysis. Baslica Amac. Problemin Cozumu. Amaclar. Ne ogrenecegiz. Problem Tanimlama & Belirleme

SU DALGALARINDA GİRİŞİM

OTOMATİK DERS PROGRAMI ÇIKARMA

T.C. TRAKYA ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ KENDİNİ KLONLAYAN KARINCA KOLONİSİ YAKLAŞIMIYLA OPTİMAL YOLUN BULUNMASI

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 1 Temel Algoritma Kavramları. Mustafa Kemal Üniversitesi

Yrd. Doç. Dr. Caner ÖZCAN

Digital Görüntü Temelleri Görüntü Oluşumu

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş

EBEKE MODELLERİ. ebeke Yapısına Giriş. Konu 3

Yerleşim Tasarımı Algoritmaları

Königsberg köprüleri. Königsberg köprüleri Problemi

ELEKTRONİK-2 DERSİ LABORATUVARI DENEY 1: Doğrultucu Deneyleri

DENEY-4 WHEATSTONE KÖPRÜSÜ VE DÜĞÜM GERİLİMLERİ YÖNTEMİ

Transkript:

Tanım Yönlü ve yönsüz graflar ğırlıklı graflar İçerik: Graflar Gösterim Komşuluk Matrisi Komşuluk Listesi olaşma lgoritmaları BS (Breath irst Search) S (epth-irst Search) 1

Graflar Graf, matematiksel anlamda, tepelerden ve bu düğümler arasındaki ilişkiyi gösteren ayrıtlardan oluşan bir kümedir. Bağlantılı listeler ve ağaçlar grafların özel örneklerindendir. Bir G grafı V ile gösterilen tepelerden (node veya vertex) ve ile gösterilen ayrıtlardan (dge) oluşur. Her ayrıt iki tepeyi birleştirir. Her ayrıt, iki bilgi (tepe) arasındaki ilişkiyi gösterir ve (u,v) şeklinde ifade edilir. (u,v) iki tepeyle gösterilen bir ayrıttır. 2

Graflar - Örnek G = (V, ) grafı aşağıda verilmiştir. V = {, B, C,,, } = {(, B), (, ), (B, C), (C, ), (C, ), (, )} B C 3

lektronik devreler Uygulama lanları Baskı devre kartları (PCB) ntegre devreler Ulaşım ğları Otoyol ğı Havayolu ğı Bilgisayar ğları Lokal alan ağları İnternet Veritabanları ntity-relationship diyagram 4

Graflar yrıt Türleri Yönlü yrıt (irected dge) Sıralı tepe çiftleri ile ifade edilir. (u, v) ile (v, u) aynı değildir. İlk tepe orijin ikinci tepe ise hedef olarak adlandırılır. Yönsüz yrıt (Undirected dge) Sırasız tepe çiftleri ile ifade edilir. (u, v) ile (v, u) aynı şeyi ifade ederler. Yönlü Graf (irected Graphs) Bütün ayrıtları yönlü olan graftır. igraph şeklinde de ifade edilirler. Yönsüz Graf (Undirected Graphs) Tüm ayrıtları yönsüz olan bir graftır. 5

Graflar - Tanımlar Komşu(djacent): ğer (u, v) ise u ve v tepeleri komşudur. (, B) komşudur. (B, ) komşu değildir. (C, ) komşu değildir. B C 6

Graflar - Tanımlar Grafın ayrıtları üzerinde ağırlıkları olabilir. ğer ayrıtlar üzerinde ağırlıklar varsa bu tür graflara ağırlıklı/maliyetli graf (Weighted Graphs) denir. ğırlık uygulamadan uygulamaya değişir. Şehirler arasındaki uzaklık. Routerler ararı bant genişliği. İstasyonlar(petrol, elektirik vs.) arasındaki kurulum maliyeti 7

Graf Gösterimi Zaman ve yer karmaşıklığı aşağıdaki her iki ifade ile de ölçülür. üğüm sayısı = V = n yrıt sayısı = = m Graf gösterimi için iki farklı yol vardır. Komşuluk matrisi Komşuluk listesi 8

Komşuluk Matrisi Gösterimi Komşuluk Matrisi Gösterimi: M(u, v) = 1 (u,v) nin içindeyse 0 diğer B C B C 0 1 0 1 0 0 B 0 0 1 0 0 0 C 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Bellek? O(n 2 ) 9

Komşuluk Matrisi Gösterimi Komşuluk Matrisi Gösterimi (ğırlıklı Graf): M(u, v) = ağırlık(u, v) (u, v) nin içindeyse diğer B C 10 B 20 C 10 5 B 20 5 30 15 50 C 30 50 15 10

Komşuluk Listesi Gösterimi Komşuluk Listesi: (Yönsüz Graflar) B C B B C C B C C Yer? n + 2*m = O(n+m) 11

Komşuluk Listesi Gösterimi Komşuluk Listesi (Yönlü Graflar) B C B B C C Yer? n + m = O(n+m) 12

Graf Üzerinde olaşma Graf üzerinde dolaşma grafın düğümleri ve kenarları üzerinde istenen bir işi yapacak veya bir problemi çözecek biçimde hareket etmektir. Graf üzerinde dolaşma yapan birçok yaklaşım yöntemi vardır. n önemli iki tanesi aşağıda listelenmiştir. BS (Breadth irst Search) Yöntemi S (epth irst Search ) Yöntemi 13

Graf Üzerinde olaşma Breath-irst Search (BS): Başlangıç düğümünden başla ve tüm komşuları ziyaret et. aha sonra komşunun komşularını ziyaret et. Başlangıç düğümünden başlayıp dışa doğru dalga gibi. epth-irst Search (S) Bir düğümden başla düğümün bir kenarında o kenar üzerinde gidilebilecek en uzak düğüme kadar sürdür. Geri gel ve düğer kenarı dene Tüm düğümler gezilene kadar devam et. 14

Breadth-irst Search lgorithm Maintains the following fields for each u V color[u]: color of u WHIT : not discovered yet GRY : discovered and to be or being processed BLCK: discovered and processed pred[u]: parent of u (NIL of u = s or u is not discovered yet) d[u]: distance of u from s Processing a vertex = scanning its adjacency list 15

Breadth-irst Search lgorithm BS(G, s) for each u V {s} do color[u] WHIT pred[u] NIL; d [u] color[s] GRY pred[s] NIL; d [s] 0 Q {s} while Q do u head[q] for each v in dj[u] do if color[v] = WHIT then color[v] GRY pred[v] u d [v] d [u] + 1 NQUU(Q, v) QUU(Q) color[u] BLCK 16

Breadth-irst Search Sample Graph: s a 0 d IO queue Q just after processing vertex c a - b e f i g h 17

Breadth-irst Search s a 0 1 d IO queue Q just after processing vertex b 1 c e a - a,b,c a f i g h 18

Breadth-irst Search s a 0 1 d IO queue Q just after processing vertex b 1 c f 2 e i a - a,b,c a a,b,c,f b g h 19

Breadth-irst Search s a 0 1 d IO queue Q just after processing vertex b 1 c f 2 e 2 i a - a,b,c a a,b,c,f b a,b,c,f,e c g h 20

Breadth-irst Search s a 0 1 d IO queue Q just after processing vertex b g 1 c f 2 3 3 e h 2 i a - a,b,c a a,b,c,f b a,b,c,f,e c a,b,c,f,e,g,h f 21

Breadth-irst Search s a 0 1 d 3 IO queue Q just after processing vertex b g 1 c f 2 3 3 e h 2 i 3 a - a,b,c a a,b,c,f b a,b,c,f,e c a,b,c,f,e,g,h f a,b,c,f,e,g,h,d,i e all distances are filled in after processing e 22

Breadth-irst Search s a 0 1 d 3 IO queue Q just after processing vertex b g 1 c f 2 3 3 e h 2 i 3 a - a,b,c a a,b,c,f b a,b,c,f,e c a,b,c,f,e,g,h f a,b,c,f,e,g,h,d,i g 23

Breadth-irst Search s a 0 1 d 3 IO queue Q just after processing vertex b g 1 c f 2 3 3 e h 2 i 3 a - a,b,c a a,b,c,f b a,b,c,f,e c a,b,c,f,e,g,h f a,b,c,f,e,g,h,d,i h 24

Breadth-irst Search s a 0 1 d 3 IO queue Q just after processing vertex b g 1 c f 2 3 3 e h 2 i 3 a - a,b,c a a,b,c,f b a,b,c,f,e c a,b,c,f,e,g,h f a,b,c,f,e,g,h,d,i d 25

Breadth-irst Search s a 0 1 d 3 IO queue Q just after processing vertex b g 1 c f 2 3 3 e h 2 i 3 a - a,b,c a a,b,c,f b a,b,c,f,e c a,b,c,f,e,g,h f a,b,c,f,e,g,h,d,i i algorithm terminates: all vertices are processed 26

Breadth-irst Search lgorithm Running time: O(V+) = considered linear time in graphs initialization: Θ(V) queue operations: O(V) each vertex enqueued and dequeued at most once both enqueue and dequeue operations take O(1) time processing gray vertices: O() each vertex is processed at most once and u V dj [ u] = Θ( ) 27

Breath-irst Search (BS) Sonuçların gösterilmesi Her bir v düğümü için, d[v] yi (s ve v arasındaki uzaklığı) kaydetmemiz gerekiyor. v ve s düğümleri arasındaki uzaklık, s den v ye giden yol üzerindeki minimum düğüm sayısıdır. olayısıyla d[s] = 0 yrıca aile (parent) düğümünü de tutmamız gerekiyor. v den s ye giderken yoldaki ilk düğüm pred[s] = 0 (pred! predecessor! önceki) 28

epth-irst Search (S) Bir v düğümüne gidildikten sonra v düğümünün bir komşusu seçilir ve ziyaret edilir. rdından onun bir komşusu seçilir ve ard arda komşu seçimi yapılarak devam edilir. Komşu kalmadığında geri dönülür. 29

epth-irst Search S(G) for each u V do color[u] white pred[u] NIL time 0 for each u V do if color[u] = white then S-VISIT(G, u) S-VISIT(G, u) color[u] gray d[u] time time +1 for each v dj[u] do if color[v] = white then pred[v] u S-VISIT(G, v) color[u] black f[u] time time +1 CS 473 Lecture 14 30

epth-irst Search B H C G I djacency Lists : G B: H C: : C : C G : : G: : H: B: I: H: 31

epth-irst Search B H C G I unction call stack: dfs() - -G 32

epth-irst Search B H C G I visit() - dfs() unction call stack: - -G 33

epth-irst Search B H C G I dfs() -C - -G dfs() - dfs() unction call stack: - -G 34

epth-irst Search B H C G I dfs(c) C- C- dfs() -C - -G dfs() - dfs() unction call stack: - -G 35

epth-irst Search B H C G I dfs(c) C- C- dfs() -C - -G dfs() - dfs() unction call stack: - -G 36

epth-irst Search dfs() B H C G I -C - dfs(c) C- C- dfs() -C - -G dfs() - dfs() unction call stack: - -G 37

epth-irst Search dfs() B H C G I -C - dfs(c) C- C- dfs() -C - -G dfs() - dfs() unction call stack: - -G 38

epth-irst Search dfs() B H C G I -C - dfs(c) C- C- dfs() -C - -G dfs() - dfs() unction call stack: - -G 39

epth-irst Search B H C G I dfs(c) C- C- dfs() -C - -G dfs() - dfs() unction call stack: - -G 40

epth-irst Search B H C G I dfs() -C - -G dfs() - dfs() unction call stack: - -G 41

epth-irst Search B H C G I dfs() -C - -G dfs() - dfs() unction call stack: - -G 42

epth-irst Search B H C G I dfs(g) dfs() -C - -G dfs() - dfs() unction call stack: - -G 43

epth-irst Search B H C G I dfs() -C - -G dfs() - dfs() unction call stack: - -G 44

epth-irst Search B H C G I dfs() - dfs() unction call stack: - -G 45

epth-irst Search B H C G I unction call stack: dfs() - -G 46

epth-irst Search B H C G I unction call stack: dfs() - -G 47

epth-irst Search B H C G I Nodes reachable from :, C,,,, G 48