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



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

YZM 2116 Veri Yapıları

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

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

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

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

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

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

Ağaçlar (Trees) Ağaçlar (Trees)

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

Ağaç (Tree) Veri Modeli

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

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

8.Konu Vektör uzayları, Alt Uzaylar

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

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

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

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

BM312 Ders Notları 2014

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

Zeki Optimizasyon Teknikleri

Azalt ve Fethet Algoritmaları

Şimdi de [ ] vektörünün ile gösterilen boyu veya büyüklüğü Pisagor. teoreminini iki kere kullanarak

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

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

BİL-142 Bilgisayar Programlama II

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

BAĞLI LİSTELER BAĞLI LİSTELER

ÇİZGİ KÜMELERİ (GRAPHS)

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

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

Sihirbaz Kullanarak Sorgu Oluştur : Sihirbaz sorguyu hazırlayan kişiye sorular sorar ve yanıtlarına göre sorgu oluşturur.

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

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

Arama metodlarında temel işlem anahtarları karşılaştırmaktır.

BIP116-H14-1 BTP104-H014-1

+,- #'. L = {a, b, c, d} a, b, c, d kümenin elemanları veya üyeleridir

Çok Yollu Ağaçlar (Multi-Way Trees)

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

VERİ YAPILARI VE PROGRAMLAMA

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

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

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

YZM 2116 Veri Yapıları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

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

Veri Yapıları. Ağaçlar

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

DESTEK DOKÜMANI. Tablolu Malzeme Sınıfları

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BIL222 Veri Yapıları ve Algoritmalar

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

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

MOODLE İLE SINAV ve ÖDEV HAZIRLAMA (Eğitmenler için)

{\} /\ Suhap SAHIN Onur GÖK

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

C PROGRAMLAMA YRD.DOÇ.DR. BUKET DOĞAN PROGRAM - ALGORİTMA AKIŞ ŞEMASI

Algoritma Hazırlama. Programlama. nereden başlamalı? ALGORİTMA VE PROGRAMLAMA Öğr.Gör.Günay TEMUR

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

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

Web Madenciliği (Web Mining)

YIĞINLAR YIĞINLAR. Yığın İşlemleri Postfix, Prefix, Infix. G. Ü. Bilgisayar Mühendisliği Bölümü

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

BİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları

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

Yapay Zekada Problem Çözme

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

Algoritmanın Hazırlanması

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

MAT223 AYRIK MATEMATİK

Veri Yapıları Laboratuvarı

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

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

Veri Modelleri. Ağaç Veri Modeli. Ağaç Veri Modeli

MATM 133 MATEMATİK LOJİK. Dr. Doç. Çarıyar Aşıralıyev

Kafes Yapıları. Hatırlatma

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#2: ALGORİTMA ANALİZİ

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

VERİ MADENCİLİĞİ. Karar Ağacı Algoritmaları: SPRINT algoritması Öğr.Gör.İnan ÜNAL

Dizi Antenler. Özdeş anten elemanlarından oluşan bir dizi antenin ışıma diyagramını belirleyen faktörler şunlardır.

BÖLÜM13 3- EXCEL DE VERİ İŞLEMLERİ

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

GENETİK ALGORİTMA ÖZNUR CENGİZ HİLAL KOCA

Algoritmalar ve Karmaşıklık

Q-Biz İş Zekası Versiyon Yenilikleri Ekim 2014

5- AKIŞ DİYAGRAMLARI (FLOW- CHART) M.İLKUÇAR - 1

MAT223 AYRIK MATEMATİK

Karar Verme ve Oyun Teorisi

GÖRSEL PROGRALAMA HAFTA 3 ALGORİTMA VE AKIŞ DİYAGRAMLARI

BİL 810 İnşaat Mühendisliğinde Bilgisayar Uygulamaları

PERMÜTASYON, KOMBİNASYON. Örnek: Örnek: Örnek:

Özel Sahalar ĠÇERĠK. Döküman Kodu : NAS004 İlk Yayın Tarihi : Mart 2017 Revizyon Tarihi : Mart 2017 Revizyon No : 1.

( ) (, ) Kombinasyon. Tanım: r n olmak üzere n elemanlı bir kümenin r elemanlı her alt kümesine bu n elemanın r li kombinasyonu denir.

MONTAJ ÇİZİMİN ÖZELLİKLERİ VE GEREKLİ BİLGİLER.

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

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

Microsoft Excel Uygulaması 2

Transkript:

Graflar (Graphs) Graf gösterimi Uygulama alanları Graf terminolojisi Depth first dolaşma Breadth first dolaşma Topolojik sıralama Yrd.Doç.Dr. M. Ali Akcayol Graflar Graflar bilgi parçaları arasındaki ilişkileri gösterirler. Bir G graf V ile gösterilen node lardan (verteks) ve E ile gösterilen kenarlardan (Edge) oluşur. Her kenar iki node u birleştirir. Her node bir bilgi parçasını gösterir. Her kenar iki bilgi arasındaki ilişkiyi gösterir ve (u, v) şeklinde ifade edilir. (u, v) iki node u gösterir. node edge

Graflar Uygulama alanları Elektronik devreler Baskı devre kartları (PCB) Entegre devreler Ulaşım ağları Otoyol ağı Havayolu ağı Bilgisayar ağları Lokal alan ağları İnternet Veritabanları Entity-relationship diyagram Graflar Örnek gösterim: Aşağıdaki şekilde herbir node üç karakter kodlanmış olarak bir havaalanını göstermektedir. Herbir kenar iki node arasındaki uçuş rotasını ifade etmekte ve iki node arasındaki uzaklığı ifade etmektedir. HNL SFO LAX ORD DFW LGA PVD MIA

Graflar Kenar türleri: Directed edge (Yönlendirilmiş kenar) Sıralı node çiftleriyle ifade edilir. (u, v) ile (v, u) aynı değildir. İlk node orijin ve ikinci node ise hedef olarak adlandırılır. Örnek: iki nokta arasındaki uçuş. Undirected edge (Yönlendirilmemiş kenar) Sırasız node çiftleriyle ifade edilir. (u, v) ile (v, u) aynı şeyi ifade ederler. Örnek: uçuş rotası Yönlendirilmiş graf Bütün kenarları yönlendirilmiş graftır. Yönlendirilmemiş graf Hiçbir kenarı yönlendirilmemiş graftır. Graflar (Terminoloji) Komşu (Adjacent) Eğer (u, v) E ise u ve v node ları komşudur. u ve v komşudur v ve w komşu değildir (u, v) u v k w

Graflar (Terminoloji - devam) Yol ve basit yol Bir yol den v k ya kadar sıralı node ları (, v ), (v, v ),, (v k-, v k ) kenarlarıyla birbirine bağlar. Bir basit yolda her bir node sadece bir kez bulunur. v v -v, v, v, v, bir yoldur. v v -v, v, v, v bir basit yoldur. Graflar (Terminoloji - devam) Cycle ve basit cycle Bir cycle bir yoldur ve başlama ve bitiş node ları aynıdır. Bir basit cycle da başlangıç ve bitiş node ları hariç tüm node lar sadece bir kez bulunur. v v -v, v, v, v, v, v bir cycle dır v v -v, v, v, v bir basit cycle dır

Graflar (Terminoloji - devam) Bağlı ve bağlı olmayan graf Eğer bir graftaki tüm node lar arasında en azından bir yol varsa bağlı graftır. Eğer bir grafta herhangi iki node arasında yol bulunmuyorsa bağlı olmayan graftır. v v v v bağlı graf Graflar (Terminoloji - devam) Bağlı ve bağlı olmayan graf (devam) v v v v v v v v bağlı olmayan graf

Graflar (Terminoloji - devam) Bağlı eleman (connected component) Eğer bir graf bağlı değilse, bağlı alt gruplara göre parçalanabilir. Bu parçaların herbirine bağlı eleman denir. v v v v v v v v Graflar (Terminoloji - devam) Komple graf Eğer bir graftaki her iki node arasında bir kenar varsa komple graftır. node ile komple graf node ile komple graf

Graflar (Terminoloji - devam) Alt graf G (V, E) şeklinde gösterilen bir grafın alt grafı H(U, F) ise U V ve F E olur. v v v v v v v v G H Graflar (Terminoloji - devam) Ağırlıklandırılmış graf Eğer G (V, E) şeklinde gösterilen bir grafta her E kenarına bir ağırlık değeri atanmış ise ağırlıklandırılmış graf olarak adlandırılır. İstanbul Ankara İzmir G

Graflar (Terminoloji - devam) Multigraf Multigraf iki node arasında birden fazla kenara sahip olan veya bir node un kendi kendisini gösteren kenara sahip olan graftır. Self edge Multiple edge Graflar (Terminoloji - devam) a,b ve d kenarları V node unun kenar bağlantılarıdır. X node unun derecesi tir. h ve i çoklu (multiple) kenarlardır. j kendi kendisine döngüdür (self loop). U a c V d W b e X g h i Z j f Y

Graflar (Terminoloji - devam) Yönlendirilmiş graf (Directed graph - Digraph) Eğer G (V, E) şeklinde gösterilen bir grafta her E kenarı bir yöne (directed edge) sahipse G yönlendirilmiş graftır. İstanbul Ankara Directed edge İzmir G Graflar (Oluşturulması) Komşu matrisi (Adjacency matrix) Graf iki boyutlu matrisle gösterilir. Komşu listesi (Adjacency list) Graph n elemanlı m tane bağlı listeyle gösterilir. n ilgili node a komşu olan node sayısını, m ise toplam node sayısını ifade eder.

Graflar (Oluşturulması-Komşu Matrisi) Yönlendirilmiş graf için komşu matrisi Matris[i][j] = if (v i, v j ) E if (v i, v j ) E v v v v v v v G v v v v v Graflar (Oluşturulması-Komşu Matrisi) Ağırlıklandırılmış ancak yönlendirilmemiş graf için komşu matrisi Matris[i][j] = w(v i, v j ) if (v i, v j ) E or (v j, v i ) E otherwise v v G v v v v v v v v v v

Graflar (Oluşturulması-Komşu Matrisi) Örnek Graflar (Oluşturulması-Komşu Listesi) Yönlendirilmiş graf için komşu listesi v v v v v v v v v v v v v v G

Graflar (Oluşturulması-Komşu Listesi) Yönlendirilmiş ve ağırlıklandırılmış graf için komşu listesi v v G v v v v v v v () () v () v () v () v () v () v () v () v () v () v () Graflar (Oluşturulması-Komşu Listesi) Örnek

Graflar (Komşu Matrisi-Komşu Listesi) Avantajları dezavantajları Komşu matrisi Çok fazla alana ihtiyaç duyar. Daha az hafızaya ihtiyaç duyulması için sparse matris tekniklerinin kullanılması gerekir. Herhangi iki node un komşu olup olmadığına çok kısa sürede karar verilebilir. Komşu listesi Bir node un tüm komşularına hızlı bir şekilde ulaşılır. Daha az alana ihtiyaç duyar. Oluşturulması matrise göre daha zor olabilir. Depth first dolaşma Bir v node una gidildikten sonra v node unun bir komşusu seçilir ve ziyaret edilir. Ardı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. Breadth first dolaşma Bir v node una gidildikten sonra v node unun sırasıyla tüm komşu node larına gidilir ardından tüm komşu node ların komşu node larına gidilir.

Depth first arama işlem adımları. Önce bir başlangıç node u seçilir ve ziyaret edilir.. Seçilen node un bir komşusu seçilir ve ziyaret edilir...adım ziyaret edecek komşu kalmayıncaya kadar tekrar edilir.. Komşu kalmadığında tekrar geri dönülür ve önceki ziyaret edilmiş node lar için adım ve tekrar edilir. Depth first arama. s node unu seç. visit s // örn. ekrana yaz. for each edge <s, U> // U komşu node. if U is not visit. DFS(G, U)

Depth first arama Depth first arama

Depth first arama Depth first arama

Depth first arama Depth first arama

Depth first arama Depth first arama

Depth first arama Depth first arama

Depth first arama Depth first arama

Depth first arama Depth first arama

Depth first arama Breadth first arama işlem adımları. Breadth first arama ağaçlardaki level order aramaya benzer.. Seçilen node un tüm komşuları sırayla seçilir ve ziyaret edilir.. Her komşu queue içerisine atılır.. Komşu kalmadığında Queue içerisindeki ilk node alınır ve.adıma gidilir.

Breadth first arama Breadth first arama

Breadth first arama Breadth first arama

Breadth first arama Breadth first arama

Breadth first arama Breadth first arama

Breadth first arama Breadth first arama

Breadth first arama Breadth first arama

Graflar (Toplojik sıralama) Topolojik sıralama Toplojik sıralama bir graftaki tüm node ların doğrusal sıralamasıdır. Node lar arasında öncelik sırası gözönüne alınır. a b d c e Örnekteki grafta topolojik sıralama aşağıdaki gibi yapılabilir. - a, c, b, e, d - c, a, b, e, d a b c e d Graflar Haftalık Ödev: tane şehir için bir graf yapısı oluşturunuz. Her şehirden komşu şehirlere olan uzaklık kenar ağırlıkları olarak kullanılacaktır. Herhangi bir şehirden başlayarak tüm şehirleri dolaşmak için gerekli olan algoritmayı depth first dolaşmayla yapınız.