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

Benzer belgeler
YZM 2116 Veri Yapıları

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

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

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

İç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

YZM 2116 Veri Yapıları

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

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

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

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

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

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

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

YZM 2116 Veri Yapıları

Azalt ve Fethet Algoritmaları

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

Veri Yapıları. Öğr.Gör.Günay TEMÜR Düzce Üniversitesi Teknolojis Fakültesi

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

YZM 2116 Veri Yapıları

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

Ağaç (Tree) Veri Modeli

YZM 2116 Veri Yapıları

YZM 2116 Veri Yapıları

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

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

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

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

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

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

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

ÇİZGİ KÜMELERİ (GRAPHS)

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

MAT223 AYRIK MATEMATİK

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

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

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

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

MAT223 AYRIK MATEMATİK

MAT223 AYRIK MATEMATİK

Genel Graf Üzerinde Mutlak 1-merkez

Çizge Teorisi (Graph Theory)

A GRUBU Her bir yüzü düzgün beşgen olan düzgün 12-yüzlünün kaç ayrıtı vardır? A) 30 B) 24 C) 12 D) 36 E) 48

A GRUBU Noktaları adlandırılmış K 6 tam çizgesinin tam olarak 3 noktalı kaç tane alt çizgesi vardır? A) 9 B) 20 C) 24 D) 60 E) 160

YZM 2116 Veri Yapıları

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Yapay Zekada Problem Çözme

Yrd. Doç. Dr. Caner ÖZCAN

3. Herhangi bir G çizgesi için aşağıdaki önermelerden hangi(ler)si her zaman doğrudur?

YZM 2116 Veri Yapıları

SINAV YÖNERGESİ. Numarası : CEVAP. Adı Soyadı : ANAHTARI A) 512 B) 513 C) 256 D) 1024 E) 1025 A) 252 B) 256 C) 3024 D) 126 E) =?

ALGORİTMA VE PROGRAMLAMA I

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

Örnek Arasınav Soruları Güz 2017

Yrd. Doç. Dr. Ümit ATİLA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-7 Sıralama Algoritmaları

Bölüm 7: Kilitlenme (Deadlocks)

SORULAR. 2. Noktaları adlandırılmamış 6 noktalı kaç ağaç vardır? Çizerek cevaplayınız.

Veri Yapıları Laboratuvarı

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

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

ALGORİTMA VE PROGRAMLAMA I

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.

ÇİZGİ KÜMELERİ (GRAPHS)

KARAKTER DİZGİLERİ, BAĞINTILAR, FONKSİYONLAR KESİKLİ MATEMATİKSEL YAPILAR

OTOMATİK KONTROL SİSTEMLERİ BLOK DİYAGRAM İNDİRGEME KURALLARI

7. BÖLÜM İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI İÇ ÇARPIM UZAYLARI .= Genel: Vektörler bölümünde vektörel iç çarpım;

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

BLM-431 YAPAY ZEKA. Ders-3 Durum Uzayında Arama. Yrd. Doç. Dr. Ümit ATİLA

Graf, noktalar yani diğer bir değişle düğümler ve bu noktaları birleştiren çizgiler yani ayrıtlar

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

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

Android Uygulamaları için Kötü Huylu Test Yaratımı

ÇARPANLAR VE KATLAR ÖĞRENİYORUM

VERİ YAPILARI VE PROGRAMLAMA

Veri Yapıları. Ağaçlar

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

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

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

Tanım Bir X kümesi üzerinde bir karakter dizgisi (string) X kümesindeki. boş karakter dizgisi (null string) denir ve l ile gösterilir.

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

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

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

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

ALGORİTMA VE PROGRAMLAMA II

BMT207 VERİ YAPILARI DATA STRUCTURE

AĞAÇLAR. Doç. Dr. Aybars UĞUR

Lisans. Ayrık Matematik Çizgeler. Konular. Tanım çizge: G = (V, E) Tanım. c T. Uyar, A. Yayımlı, E. Harmancı

BLM 210 PROGRAMLAMA LABORATUVARI II PROJELERİ

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

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

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

Projenin Adı: Çizge Kuramıyla Ders Çalışma Planı. Projenin Amacı:

2. K 6 tam çizgesinde kaç farklı mükemmel eşleme vardır? 4. Düzlemsel kodu (planar code) olan ağacın kaç köşe noktası vardır?

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

ALGORİTMA VE PROGRAMLAMA I

1994 ÖYS. 6. x, y, z sıfırdan büyük birer tam sayı ve 2x+3y-z=94 olduğuna göre, x in en küçük değeri kaçtır?

Transkript:

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

GRAPH (ÇİZGE - GRAF) Terminoloji Çizge Kullanım Alanları Çizge Gösterimi Komşuluk Matrisi Komşuluk Listesi Çizge Üzerinde Gezinme DFS BFS İlgili Algoritmalar Toplojik Sıralama ÖĞR.GÖR.GÜNAY TEMÜR 2

ÇİZGE (GRAPH) GİRİŞ Köşe (vertex) isimli düğümlerden ve kenar (edge) isimli köşeleri birbirine bağlayan bağlantılardan oluşan veri yapısıdır. Ağaçlar gibi çizgeler de doğrusal olmayan veri yapıları grubuna girerler. D E A C F düğüm B kenar ÖĞR.GÖR.GÜNAY TEMÜR 3

ÇİZGE (GRAPH) GİRİŞ (DEVAM ) Bir G çizgesi G(V, E) şeklinde gösterilir: a. V = V(G) Kümesi: Küme elemanları, G nin düğümleri (nodes), noktaları (points) veya köşeleri (vertices) b. E = E(G) Kümesi: Küme elemanları G nin kenarları (edges) olarak adlandırılan sırasız düğüm ikililerini içerir. ÖĞR.GÖR.GÜNAY TEMÜR 4

ÇİZGE (GRAPH) GİRİŞ (DEVAM ) Çizgeler, düzlemsel diyagramlarla gösterilir. V kümesindeki her v düğümü bir nokta (ya da küçük çember) ile temsil edilir ve her e = {v1, v2} kenarı, v1 ve v2 uç noktalarını bağlayan bir çizgi ile gösterilir. Örnek: V = {A, B, C, D} E = {e 1, e 2, e 3, e 4, e 5 } ÖĞR.GÖR.GÜNAY TEMÜR 5

YÖNLÜ VE YÖNSÜZ KENAR Yönsüz Kenar (undirected edge): Çizgi seklinde yönü belirtilmeyen kenarlar yönsüz kenarlardır. Yönsüz kenarlarda (v1,v2) olması ile (v2,v1) olması arasında fark yoktur. Yönlü Kenar (directed edge): Ok şeklinde gösterilen kenarlar yönlü kenarlardır. ÖĞR.GÖR.GÜNAY TEMÜR 6

TERMİNOLOJİ 1. Komşu Köşeler (Adjacent): Aralarında doğrudan bağlantı (kenar) bulunan i ve j köşeleri komşudur. Diğer köşe çiftleri komşu değildir. 2. Bağlantı (incident): Komşu i ve j köşeleri arasındaki kenar (i, j) bağlantıdır. 3. Bir Köşenin Derecesi (degree): Bir köşeye bağlı olan kenarların sayısıdır. Soru1: Komşu olmayan köşeler hangileridir? Soru2: 1 in derecesi kaçtır? ÖĞR.GÖR.GÜNAY TEMÜR 7

TERMİNOLOJİ (DEVAM ) 4. Yönsüz Çizge (undirected graph): Tüm kenarları yönsüz olan çizgeye yönsüz çizge denilir. Yönsüz çizgede bir köşe çifti arasında en fazla bir kenar olabilir. 5. Yönlü Çizge (directed graph, digraph): Tüm kenarları yönlü olan çizgeye yönlü çizge adı verilir. Yönlü çizgede bir köşe çifti arasında ters yönlerde olmak üzere en fazla iki kenar olabilir. 6. Döngü (Loop): (i, i) seklinde gösterilen ve bir köşeyi kendine bağlayan kenar. ÖĞR.GÖR.GÜNAY TEMÜR 8

TERMİNOLOJİ (DEVAM ) Yönlü Çizge ve Döngü (Loop) G=(V, E) V={0,1,2,3,4} E={(0,1), (1,2), (0,3), <3,0>, <2,2>, <4,3>} 0 1 4 3 2 ÖĞR.GÖR.GÜNAY TEMÜR 9

TERMİNOLOJİ (DEVAM ) 7. Ağırlıklı (Weighted) Çizge: Çizge kenarları üzerinde ağırlıkları olabilir. Eğer kenarlar üzerinde ağırlıklar varsa bu tür çizgelere ağırlıklı/maliyetli çizge (Weighted Graphs) denir. Ağırlık uygulamadan uygulamaya değişir. Şehirler arasındaki uzaklık Routerler arası bant genişliği 5 Sakarya 4 Bilecik 8 İzmit ÖĞR.GÖR.GÜNAY TEMÜR 10

YOL (PATH) Basit Yol (Simple Path): Tüm düğümlerin farklı olduğu yoldur. Daire (Cycle): Başlangıç ve bitiş düğümleri aynı olan basit yol. (Tamamlanmış Graf) Uzunluk: Bir yol üzerindeki kenarların sayısının toplamıdır. Basit Yol: Sakarya, İzmit veya Sakarya, Bilecik Daire: Sakarya, İzmit, Bilecik, Sakarya 5 Sakarya 4 Bilecik 8 İzmit ÖĞR.GÖR.GÜNAY TEMÜR 11

ÇİZGE KULLANIM ALANLARI Bilgisayar ağlarında, elektriksel ve diğer ağların analizinde, Kimyasal bileşiklerin moleküler yapılarının araştırılmasında, Ulaşım ağlarında (kara, deniz ve havayolları), Planlama projelerinde, Sosyal alanlarda ve diğer pek çok alanda kullanılmaktadır. Not: Eğer bir problemin çözümü GRAF veri modeline benzetilebiliyorsa, o problem için algoritmik bir durum elde edilmiş olur. ÖĞR.GÖR.GÜNAY TEMÜR 12

ÇİZGE KULLANIM ALANLARI (DEVAM ) Örnek (Generic) V = 6 kişi: sırasıyla yaşları: Ahmet, Hilal, Cem, Deniz, Derya ve Yunus, 12, 15, 12, 15, 13 ve 13. E ={(x, y) Eğer x, y den daha genç ise} Hilal Deniz Ahmet Cem Derya Yunus ÖĞR.GÖR.GÜNAY TEMÜR 13

ÇİZGE KULLANIM ALANLARI (DEVAM ) Örnek (Uçuş sistemi) Her bir düğüm bir şehri gösterir Her bir kenar iki şehir arasındaki doğrudan uçuşu gösterir Doğrudan uçuşların sorgulanmasında cevap bir kenardır. Bir yere ulaşmak için A dan B ye yol varmı sorusu sorulur. Maliyetleri kenarlara bile ekleyebiliriz. (ağırlıklı), daha sonra A dan B ye en ucuz yol hangisidir? diye sorabiliriz. ÖĞR.GÖR.GÜNAY TEMÜR 14

ÇİZGE GÖSTERİMİ İki popüler gösterim bulunmaktadır. Her ikisi de farklı yönlerden düğüm ve kenar kümelerini gösterir. 1. Komşuluk Matrisi: Çizgeyi göstermek için D matrisi kullanılır. 2. Komşuluk Listesi: Bağlantılı listelerin bir boyutlu dizisi kullanılır. ÖĞR.GÖR.GÜNAY TEMÜR 15

KOMŞULUK MATRİSİ ÖĞR.GÖR.GÜNAY TEMÜR 16

KOMŞULUK MATRİSİ (DEVAM ) 0 8 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 2 1 9 2 0 1 0 0 1 0 0 0 1 0 3 0 1 0 0 1 1 0 0 0 0 4 0 0 1 1 0 0 0 0 0 0 4 3 5 7 6 5 0 0 0 1 0 0 1 0 0 0 6 0 0 0 0 0 1 0 1 0 0 7 0 1 0 0 0 0 1 0 0 0 8 1 0 1 0 0 0 0 0 0 1 9 0 1 0 0 0 0 0 0 1 0 ÖĞR.GÖR.GÜNAY TEMÜR 17

KOMŞULUK MATRİSİ (DEVAM ) İki boyutlu dizi ile gerçekleştirilebilir. Uygulaması basittir. Kenar Oluşturmak ve kaldırmak kolaydır. Hafızada fazla yer kaplar. ÖĞR.GÖR.GÜNAY TEMÜR 18

KOMŞULUK LİSTESİ ÖĞR.GÖR.GÜNAY TEMÜR 19

KOMŞULUK LİSTESİ (DEVAM ) 0 8 0 1 2 8 2 3 7 9 1 4 8 4 2 3 5 1 7 9 6 3 4 5 6 7 8 1 4 5 2 3 3 6 5 7 1 6 0 2 9 9 1 8 ÖĞR.GÖR.GÜNAY TEMÜR 20

KOMŞULUK LİSTESİ (DEVAM ) Bağlı liste içeren dizi ile gerçekleştirimi yapılır. Uygulaması daha karmaşıktır. Hafıza kullanımı komşuluk matrisine göre daha optimaldir. ÖĞR.GÖR.GÜNAY TEMÜR 21

ÖRNEK YÖNLÜ ÇİZGE Komşuluk Listesi Komşuluk Matrisi ÖĞR.GÖR.GÜNAY TEMÜR 22

ÇİZGE ÜZERİNDE GEZİNME (TRAVERSE) Çizge üzerinde dolaşma; çizge düğümleri ve kenarları üzerinde istenen bir işi yapacak veya bir problemi çözecek biçimde hareket etmektir. Çizge üzerinde dolaşma yapan birçok yaklaşım ve yöntem bulunmaktadır. En önemli iki tanesi aşağıdaki gibidir: BFS (Breadth First Search) (Sığ Öncelikli Arama) Yöntemi DFS (Depth First Search) (Derin Öncelikli Arama) Yöntemi ÖĞR.GÖR.GÜNAY TEMÜR 23

ÇİZGE ÜZERİNDE GEZİNME (DEVAM ) Depth-First Search (DFS) 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 (backtracking) ve diğer kenarı dene. Tüm düğümler gezilene kadar devam et. Breadth-First Search (BFS) Başlangıç düğümünden başla ve tüm komşuları ziyaret et. Daha sonra komşunun komşularını ziyaret et. Başlangıç düğümünden başlayıp dışa doğru dalga gibi ilerle. ÖĞR.GÖR.GÜNAY TEMÜR 24

DFS GÖSTERİM a e Çizge c f d g b h ÇIKTI : a c f e b g h d STACK ÖĞR.GÖR.GÜNAY TEMÜR 25

BFS GÖSTERİM a e Çizge c f d g b h ÇIKTI : a c d f h e b g YIĞIN ÖĞR.GÖR.GÜNAY TEMÜR 26

GRAFLARIN BELLEK ÜZERİNDE TUTULMASI Bellek Gereksinimi Bağlantı Sorugulama Bağlantı Ekleme Matris Üzerinde N 2 *b O(1) O(1) İki Dizi Üzerinde ((2*m-c)+(N+1)*b O(d) O(m) Bağlantılı Liste İle N*(b+(d*a)) O(N 2 ) O(N 2 ) Dizi-Bağlantılı Liste (N+2*m)*(b+a) O(d) O(d) N= Düğüm Sayısı m= Kenar sayısı d= Düğüm derecesi c= Çevrimli kenar sayısı b= Veri türü boyutu a= Bellek adres boyutu ÖĞR.GÖR.GÜNAY TEMÜR 27

TOPLOJİK SIRALAMA Bu algoritma yönlü döngüsüz graflar üzerinde tanımlanan bir algoritmadır. Hatırlayalım: Döngüsüz Döngülü a f a f e e d b d b ÖĞR.GÖR.GÜNAY TEMÜR 28

ÖRNEK: C1,C2,C3,C4,C5 alınması gereken 5 adet ders olsun. Buna bağlı olarak; C1 ve C2 nin ön şartı yok, C3, C1 ve C2 yi ön şart alıyor, C4, C3 ü ön şart alıyor, C5, C3 ve C4 ü ön şart alıyor, Bu şartlara bağlı olarak öğrencilerin dersleri alma sırasını oluşturalım. ÖĞR.GÖR.GÜNAY TEMÜR 29

ÖRNEK: (DEVAM...) Dersleri grafların köşeleri, ön şartları da yönlü kenarlar kabul ederek, bir graf oluşturalım; c1 c4 c3 c2 c5 ÖĞR.GÖR.GÜNAY TEMÜR 30

ÖRNEK: (DEVAM...) NASIL SIRALANACAK: İndirge ve Çöz yöntemiyle kendisine gelen ve kenar bulunmayan bir düğümü kaynak olarak seçip graftan çıkarıp işlemler (n-1) düğümlü graf ile devam ettirilir. Graf ta hiç düğüm kalmayınca çözüm tamamlanmış olur. c1 c4 c1 c3 c3 c4 c5 c2 c5 c2 Eşit Olduğu İçin ÖĞR.GÖR.GÜNAY TEMÜR 31

İYİ ÇALIŞMALAR ÖĞR.GÖR.GÜNAY TEMÜR 32

YARARLANILAN KAYNAKLAR Ders Kitabı: Data Structures through JAVA, V.V.Muniswamy Yardımcı Okumalar: Data Structures and Algorithms in Java, Narashima Karumanchi Data Structures, Algorithms and Applications in Java, Sartaj Sahni Algorithms, Robert Sedgewick Yrd. Doç. Dr. Deniz KILINÇ, Celal Bayar Üniversitesi ÖĞR.GÖR.GÜNAY TEMÜR 33