algoritma geliştirme ve veri yapıları – 10 graf veri...

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

Upload: trinhbao

Post on 07-Mar-2018

273 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları – 10

Graf Veri Modeli

Page 2: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

• Graf, matematiksel anlamda, düğümler ve bu düğümler arasındaki ilişkiyi gösteren kenarlardan oluşan bir kümedir; mantıksal ilişki düğüm ile düğüm veya düğüm ile kenar arasında kurulur. Bir graf üzerinde n tane düğüm ve m tane kenar varsa, matematiksel gösterilimi, düğümler ve kenarlar kümesinden elamanların ilişkilendirilmesiyle yapılır:

• G={D,K} - Graf

• D={d0, d1, d2, d3 … dn-1, dn} - Düğüm Kümesi

• K ={k0, k1, k2, k3 … kn-1, kn} - Kenar Kümesi

Page 3: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Page 4: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

• Komşuluk Matrisi (Adjacency Matrice): Düğümlerden düğümlere olan bağlantıyı gösteren bir kare matrisdir; komşuluk matrisinin elemanları ki değerlerinden oluşur. Komşuluk matrisi Gdd'nin matrisel şekilde gösterilmesinden oluşur. Eğer komşuluk matrisi Gdd=[aij] ise, yönlü-maliyetsiz graflar için

olur; basit (yönsüz-maliyetsiz) graflar için ise, • Bitişiklik Matrisi (Incedence Matrice):

Düğümlerle kenarlar arasındaki bağlantı/bitişiklik ilişkisini gösteren bir matrisdir; matrisin satır sayısı düğüm, sütun sayısı kenar sayısına kadar olur. Bitişiklik matrisi Gdk'nin matrisel şekilde gösterilmesinden oluşur. Eğer bitişiklik matrisi Gdk=[mij] ise, maliyetsiz graflar için,

• Düğüm Derecesi (Node Degree): Düğüme bağlı toplam uç sayısıdır; çevrimli kenarlar aynı düğüme hem çıkış hem

de giriş yaptığı için dereceyi iki arttırır. Yönlü graflarda, düğüm derecesi giriş derecesi (input degree) ve çıkış derecesi (output degree) olarak ayrı ayrı belirtilir.

Page 5: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Page 6: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

• Tamamlanmış Graf: Herbir düğümü arasında doğrudan birebir bağlantı olan graflardır. Düğüm sayısı n için; düğüm derecesi (n-1), kenar sayısı n(n-1)/2 tanedir.

• Düzenli Graf: Tüm düğümlerinin derecesi aynı olan graftır. Tamamlanmış graf aynı zamanda düzenli bir graftır.

• Düzlemsel Graf: Hiçbir kenarı birbirini kesmeyen graf türüdür.

Page 7: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

• Yol ve Yol Ağacı: Belirtilen iki düğüm arasında doğrudan yada dolaylı olarak kurulan bağlantıdır. Yol ağacı ise, bir graf üzerinde tüm düğümlere herhangi bir çevrim oluşturmadan gidilen yoldur; graf üzerinde birden fazla yol ağacı olabilir.

• Çevrim: Başlangıç ile bitiş düğümü aynı olan kapalı yol; çevrim uzunluğu kapalı yol üzerindeki kenar sayısıdır.

• Dolaşı: Birbirine bitişik olan düğüm-ayrıt-düğüm sıralanımıdır, diğer bir deyişle düğümler arasında kendilerine bağlı bulunan ayrıtlar üzerinden gidilebilmesidir.

Page 8: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

• Hamilton Grafı: Herbir düğümden yalnızca bir kez geçilmesi koşuluyla kapalı bir dolaşı gerçeklenebilen graftır. Hamiltonsal çevrim ise, graf üzerinde her düğümü kapsayan kapalı bir yolun olmasıdır.

• Euler Grafı: Üzerinde kenarların tekrarlanmadığı bir dolaşı, yani kapalı bir gezi yapılabilen graftır. Euler grafında bütün düğümlerin dereceleri çifttir. Eulersel çevrim, graf üzerindeki herbir kenarı kapsayan kapalı bir gezi yapılabilecek yolun olmasıdır.

Page 9: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Graf Renklendirme

• Graf üzerinde birbirine komşu olan düğümlere farklı renk atama işlemidir, en az sayıda renk kullanılarak tüm düğümlere komşularından farklı birer renk verilir.

• Graf renklendirme işleminde kullanılan algoritmalardan birisi Welch ve Powel’in önerdiği yöntemdir. Bu yöntem genel olarak düğümlerin derecelerine dayanmaktadır.

Page 10: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Welch ve Powel Algoritması

• Düğümler derecelerine göre büyükten küçüğe doğru sıralanır.

• İlk renk birinci sıradaki düğüme uygulanır ve daha sonra aynı renk birbirine bitişik olmayacak biçimde diğer düğümlere verilir.

• Bir sonraki renge geçilir; bu renk sıradaki derecesi en yüksek olan düğüme atanır. Bu renk daha önce renklendirilmemiş düğümlere birbirine bitişik olmayacak şekilde verilerek tekrarlanır.

Page 11: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

• Kırmızı: Ankara

• Mavi: Adana, İzmir ve Trabzon

• Turuncu: Antalya, İstanbul ve Diyarbakır

Adana-Ankara bağlantısı kesilirse;

• Kırmızı :Ankara ve Adana

• Mavi: Antalya, Diyarbakır, İstanbul ve Trabzon

• Turuncu: İzmir

Page 12: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Soru: d0, .., dn ders olmak üzere

Öğrenci-1:d0, d1, d3 Öğrenci-2:d0, d2, d4

Öğrenci-3:d2, d3, d5 Öğrenci-4:d3, d4, d5

• Kaç sınav oturumu gerekir?

• Hangi derslerin sınavı aynı anda yapılabilir?

• Öğrenci-4, d4 dersini bırakırsa sınav yerleşimi nasıl etkilenir?

Page 13: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Graf Üzerinde Dolaşma: • DFS (Depth First Search), graf üzerinde dolaşma

yöntemlerinden birisidir; önce derinlik araması olarak adlandırılabilir; başlangıç düğümünün bir kenarından başlayıp o kenar üzerinden gidilebilecek en uzak (derin) düğüme kadar sürdürülür.

Page 14: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Graf Üzerinde Dolaşma: • BFS (Breadth First Search), önce genişlik araması olarak

adlandırılabilir. Bu yöntemin DFS'den farkı, dolaşmaya, başlangıç düğümünün bir kenarı ayrıtı üzerinden en uzağa gidilmesiyle değil de, başlangıç düğümünden gidilebilecek tüm komşu düğümlere gidilmesiyle başlanır(en kısa yol algoritmasıdır).

Page 15: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Çeşitli Graf Algoritmaları: • Greedy Yaklaşımı/Yöntemi: Greedy yaklaşımı, graf

üzerinde belirli bir konuda optimum sonucu veya en iyi sonucu bulabilmek amacıyla dolaşma yapılırken bir sonraki düğümü belirlemek için kullanılan bir karar verme/seçme yöntemidir. Greedy yaklaşımında o andaki seçenekler içerisinden en iyi olarak görüneni seçer; kriteri bölgesel/yerel değerlendirmelere göre yapılmakta olup seçilenin global olarak tüm sistem için en iyi seçim olacağı öngörülür. Bu algoritma daha çok en kısa yol ağacı ve en kısa yolu bulan algoritmalarda kullanılır.

Page 16: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

• Dijkstra'nın Algoritması: Belirli bir başlangıç noktasına göre en kısa yolu belirleyen bir algoritmadır; bir düğümden, yani başlangıç düğümünden, diğer tüm düğümlere olan en kısa yolu belirler. Ağırlıklı ve yönlü graflar için geliştirilmiş olup graf üzerindeki herbir kenarın ağırlığı sıfır veya sıfırdan büyük sayıdır. Dijkstra'nın algoritması en kısa yolu belirlerken Greedy yaklaşımını kullanır.

Page 17: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

• Dijkstra'nın Algoritması: A başlangıç noktası

Page 18: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

• Dijkstra'nın Algoritması: A başlangıç noktası

• Sonraki adımlar benzer şekilde gerçekleştirilir

Page 19: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Örnek1: a başlangıç noktası

Page 20: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Page 21: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Page 22: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Page 23: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Page 24: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Harf Rota Maliyet

a - 0

b f 7

c a 4

d b 9

e c 8

f c 5

Page 25: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Örnek2: a başlangıç noktası

Page 26: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Page 27: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Harf Rota Maliyet

a - 0

b c 7

c a 3

d b 9

e c 5

Page 28: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Yol Ağaçları

• Kruskal'ın Algoritması: En küçük yol ağacını belirlemek için kullanılır; algoritmik ifadesi davranışsal olarak oldukça basittir; ancak gerçeklenmesi için bazı yardımcı fonksiyonlara gerek duyulur. Başlangıçta düğümler arasında herhangi bir bağlantı yok gibi düşünülür ve ardından düğümler tek tek ve çevrim oluşturmayacak biçimde bağlanır; eğer bir düğüm çevrim oluşturuyorsa o düğüm atlanır.

Page 29: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Page 30: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli

Page 31: Algoritma Geliştirme ve Veri Yapıları – 10 Graf Veri Modelimyo.bartin.edu.tr/akgul/dersler/ybs207/veriyapilari10.pdf ·  · 2017-03-02kısa yolu belirler. Ağırlıklı ve yönlü

Mustafa Kemal Üniversitesi

Graf Veri Modeli