mit503 veri yapıları ve algoritmalar - yuriy...

79
MIT503 Veri Yapıları ve algoritmalar Graflar Y. Doç. Dr. Yuriy Mishchenko

Upload: phamnga

Post on 07-Mar-2018

230 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

MIT503 Veri Yapıları ve algoritmalar

GraflarY. Doç. Dr. Yuriy Mishchenko

Page 2: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graflar

Ders planı• Graflara giriş• Baze önemli graf işlemleri

Page 3: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graflar

Graflar ilişkiler göstermek için çizilgelerdir– Düğümler (node'lar, elemanlar) ve bağlantılar

(edge'ler, kenarlar, ilişkiler) vardır– Düğimler arasındaki ilişki bağlantı ile gösterilir– Sayısal ilişkiler için,

bağlantılar üzerinde sayısal bir değer yazılır

– Yönlü ilişkiler için, bağlantılara yön atanır

0.5

0.25 0.33 0.77

0.5

0.150.33

0.17

1.0

1.0

Page 4: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

GraflarGraflar kavramsal bir araç: – Arkadaşlık ilişkileri– Sosyal bağlantıları– Şirketin ürünlerinin tedarik-tüketim bağlantıları– Üretim sürecinin çıktı-girdi bağımlılıkları– Bilgi işlem sistemi/veritabanında bağımlılıkları– Ekonomik işbirlikleri– Otoban yolları– Elektrik şebekesi– İnternet ağı– VB

0.5

0.25 0.33 0.77

0.5

0.150.33

0.17

1.0

1.0

Page 5: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• Graflar, düğümler (ing. “node”) ve bağlantılar/kenarlar (ing. “edge”) dan oluşturulan bir çizilge

• Dügüm=eleman/nesne, bağlantı/kenar=ilişki• Graflarda düğümler genellikle noktalar ve

bağlantılar oklar kullanarak gösterilir

Page 6: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Düğüm veya Node

Bağlantı veya Edge

Arkadaşlık grafı:• Düğüm = Öğrenci• Bağlantı = Arkadaşlık

Page 7: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• İlişkilerde sayısal değerler olabilir– Örneğin – ticari ilişkilerde alişveriş ürün miktarları– Sayısal ilişkilere sahip olan graflara ağırlıklı graf

denir, ilişkinin sayısal değerine ağırlık denir

Page 8: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

0.5M

0.25M0.33M 0.77M

0.5

0.15M0.33M

0.17M

1.0M

1.0M

:: alişveriş hacimleri, miliyon ürün

Düğüm veya Nesne

Bağlantı veya İlişki

Page 9: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• İlişkiler yönsüz ve yönlü olabilir– Örneğin, arakaşlık yönsüz ilişkidır: eğer A B’nin

arkadaşı ise, B A’nın arkadaşı dır– İşbirliği yönsüz ilişkinin başka bir ögneği: eğer A ve

B şirket işbirliğinde ise, B ve A arasında da aynı işbirlik olması gerekir

Page 10: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

– Fakat saygı yönlü ilişkidir: eğer A kişi B kişiye saygısı gösteriyorsa, B A’ya saygı göstermiyor olabilir

– Tedarik yönlü ilişkinin başka bir ögneği: eğer şirket A şirket B’ye tedarik ederse, B A’ya tedarik ediyor taktirde olmak değildir

– Bilgisayar bağlantılar, elektrik şebeke ve otoyolları başka yönlü ilişkilerin ögnekleri, bunlarda bağlantının yönü – ağdaki trafik yönünün anlamındadır

Page 11: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• Yönlü ilişkileri içeren graflara yönlü graf denir, ve ilgili ilişkiler yönlü oklarla grafta gösterilir

Page 12: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

0.5

0.250.33 0.77

0.5

0.150.33

0.17

1.0

1.0

Aşk ilişkileri:• Düğüm = kişi• Bağlantı = aşk• Ağırlık = aşkın "güçü"

Page 13: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Graflar genel kavramsal araç, genel durumlarda ilişkiler graf kullanarak gösterilir ve modellenebilir

• Graflar, – Elemanlar - düğüm– İlişkiler - bağlantı– İlişkinin sayısal ölçeği - ağırlık– İlişkinin yönü – ok yönü

Page 14: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Patikalar ve Döngüler:

düğüm bağlantı

Patika

Döngü

Okları takip eden bir zincire, “patika” denir (ing. path)

Aynı düğümde başlayan ve biten patikalara “döngü” denir (ing. cycle)

Page 15: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• Ağaçlar, grafların özel bir durumu, döngü içermeyen graflar dır

Page 16: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Graf:

Döngü var

döngü

Page 17: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Ağaç:

Döngü yok

Page 18: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Graflar görsel olarak farklı şekilde gösterilebilir, fakat gerçekten grafın yapısı önemlidir

=

Page 19: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Graflar görsel olarak farklı şekilde gösterilebilir, fakat gerçekten grafın yapısı önemlidir

=

Page 20: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Yani grafın şekli önemli değil, eğer bir birine düğümler taşıyarak değiştirilebilir ise

=

Page 21: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Ağaçların temel kavramları (hatırlatma)Ağaç kökü

Ağaç yaprakları

Ana/çocuk düğümü

Ağaç seviyeleri

Ağaç yüksekliği

Page 22: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• Ağaçta en çok iki çocuklu düğümler varsa, öyle agaçlara ikili ağaç denir

ikili ağaç değil ikili ağaç

Page 23: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• Grafın temel temsili:– Grafın temel temsili: • düğüm listesi V={n1,n2,n3,…} ve • bağlantı listesi E={n1n2,n1n3,n2n3,…}, • yani graf G = (V,E)

Page 24: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• Grafın temel temsili:– Alternatif temsili - bitişiklik matrisi • Düğümler, bir matrisin kenarlarında yazılır• Bağlantılar, ilgili düğümlerin sütün ve satır kesişiminde

yazılıyor

Page 25: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Bitişiklik matrisi

23

64

1

5

78

1 2 3 4 5 6 7 8

1 0 1 0 0 0 0 0 0

2 0 0 1 0 0 0 0 0

3 0 0 0 1 0 1 0 0

4 0 0 0 0 1 0 0 0

5 1 0 0 0 0 0 0 1

6 0 0 0 0 0 0 1 0

7 0 0 1 0 0 0 0 0

8 0 0 1 0 0 0 0 0

Page 26: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• Ağırlıklı graflar için, bitişiklik matrisinde ilişkililerin ağırlıkları yazılır

Page 27: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

• Yönsüz graflar için, bitişiklik matrisi simetrik olması gerekmektedir: eğer ij bağlantı gösteriliyorsa ji bağlantı da olması lazım

Page 28: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Yönsüz grafın bitişiklik matrisi:

23

6

4

1

5

78

1 2 3 4 5 6 7 8

1 0 1 0 0 1 0 0 0

2 1 0 1 0 0 0 0 0

3 0 1 0 1 0 1 1 0

4 0 0 1 0 1 0 0 0

5 1 0 0 1 0 0 0 1

6 0 0 1 0 0 0 1 0

7 0 0 1 0 0 1 0 0

8 0 0 1 0 1 0 0 0

Page 29: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Örnek yönlü graf:

bc

g

d

a

e

fh

Page 30: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Temel Kavramlar

Temel temsili:

bc

g

d

a

e

fh

V={a,b,c,d,e,g,f,h} - elemanlar

E={ab,bc,cd,de,ea,cg,gf,fc,hc,eh} - bağlantılar

Page 31: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Baze grafların uygulamaları

• Graflar kavramsal olarak çok genel olduğu nedeniyle, graf birçok durumda kullanılabilir ve birçok problemlerde karşılanır

Page 32: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Baze grafların uygulamaları

• Endüstriel üretim süreci, üretim adımları – düğümler ve o adımlar arasındaki bagımlılık – bağlantılar olarak temsil edilebilir

• Endüstriel üretim tasarımı ve optimizasyonu, graf problem olarak tanımlanabilir

Page 33: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Baze grafların uygulamaları

• Elektrik devreler, elektrik üreticiler ve tüketiciler – düğümler ve elektrik bağlantılar – graf bağlantıları olarak temsil edilebilir

• Elektrik devrelerinin tasarımı ve optimizasyonu da graf problemi olarak tanımlanabilir

Page 34: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Baze grafların uygulamaları

• Bir ticaret ağlarında, şubeler – düğümler ve tedarik zincirleri – bağlantılar kullanarak temsil edilebilir

• Ticaret-tedarik tasarımı graf problemi olarak tanımlanabilir

Page 35: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Baze grafların uygulamaları

• Elektrik şebekede, üreticiler ve tüketicileri – düğümler ve bağlantılar – graf bağlantıları olarak temsil edilebilir

• Ülkenin şebeke optimizasyonu ve çalışması graf problemi olarak tanımlanabilir

Page 36: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Baze grafların uygulamaları

• Ülkenin otoyol sisteminde, şehirler – düğümler ve otobanlar –bağlantıları olarak temsil edilebilir

• Otoyolların optimizasyonu, durumu ve patika bulma graf problemi olarak tanımlanabilir

Page 37: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Baze graf işlemleri

• Graf arama problemleri– Graf bağlantılarını takip ederek graftaki belirli bir

düğüm aranması– Graf bağlantılarını takip ederek, bir hedef

düğümünün başlangıçtan uzaklığı hesaplanması– Graf bağlantılarını takip ederek, grafın genel

topoloji veya yapısı incelenmesi

Page 38: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Baze graf işlemleri

• Graf arama için derinlikte ve enine arama yaklaşımları kullanılmaktadır

Page 39: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Baze graf işlemleri

• Derinlikte arama (deapth-first search)1. Belirli bir düğüm ile (ona kök denir) başlatılır2. Bu düğümle başlayınca, grafın bir dalı mümkün

iken takip edilir3. Dalın sonu ulaşıltıktan sonra, aynı daldan geri

dönülür ve ilk uygun önceki bir düğümden yeni dalın incelenmesi aynı şekilde başlatılır

4. VB

Page 40: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

Derinlikte arama:

bc

g

d

a

e

fh

a ile başlıoruz

Bir dalı takip ediyoruz

Geçiş düğümleri:a→b→c→d→e→a

Page 41: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

Derinlikte arama:

bc

g

d

a

e

fh

a ile başlıoruzSon 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→aa←ee→h→c

Page 42: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

Derinlikte arama:

bc

g

d

a

e

fh

a ile başlıoruzSon 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→aa←ee→h→c

Page 43: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

Derinlikte arama:

bc

g

d

a

e

fh

a ile başlıoruza’ya ulaştıktan sonra, geri dönüyoruz

Geçiş düğümleri:a→b→c→d→e→aa←ee→h→cc←h←e←d←cc→g→f→c

sona ulaştıktan sonra geri dönüyoruz; buradaki geri geçişi c’ye kadar oluyor!

Page 44: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

Derinlikte arama:

bc

g

d

a

e

fh

A ile başlıoruzA’ya ulaştıktan sonra, geri dönüyoruz

Geçiş düğümleri:a→b→c→d→e→aa←ee→h→cc←h←e←d←cc→g→f→c

c’ye ulaştıktan sonra geri dönüyoruz

Page 45: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

Derinlikte arama:

bc

g

d

a

e

fh

Geçiş düğümleri:a→b→c→d→e→aa←ee→h→cc←h←e←d←cc→g→f→c -- Bitti

a ile başlıoruza’ya ulaştıktan sonra, geri dönüyoruzc’ye ulaştıktan sonra geri dönüyoruz ...

Page 46: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

Derinlikte arama:

bc

g

d

a

e

fh

Evde:Derinlikte arama için sözde kod ve akış şemasını yazmayı deneyin

Not: derinlikte arama algoritması LIFO stack kullanarak en kolaydır

Page 47: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

• Derinlikte arama ile yayılan ağacın oluşturulması– Grafın tüm düğümleri içeren ağaç olan altgrafa

(yani bağlantıların altkümesine) yayılan ağaç denir– Derinlikte aramada bir yayılan ağacı oluşturulur

Page 48: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

Derinlikte arama yayılan ağacı:

bc

g

d

a

e

fh

Page 49: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

• Bağlı parçalar– Bir elemana devamlı patikalarla bağlanan tüm

düğümlere grafın bağlı parçası denir

– Grafın bağlı parçaları arasında devamlı patika bulunamaz

Page 50: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

Bağlı parçalar

Bağlı parça I Bağlı parça II

Page 51: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

• Bağlı parçalar önemli pratik bir kavram, gruplar topluluklar anlamına gelebilir (mesela sosyal topluluklar), sistemin bağımsız bileşenlerinin anlamına gelebilir (üretim sureçlerinin bileşenleri, makine tasarımının modülleri, sistemin bileşenleri), vb

Page 52: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

• Derinlikte arama kullanarak bağlı parçalar bulunabilir– Herhangi bir düğüm başlanır, derinlikte arama

kullanarak bu düğüme bağlı tüm diğer düğümler bulunur

– Bundan sonra, dışarıda kalan her hangi bir düğüm ile önceki tekrar yapılır

– VB

Page 53: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

• Grafların bağlı parçaları

K

K

Birinci derinlikte arama süresi İkinci derinlikte arama süresi

Page 54: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Derinlikte arama

• Derinlikte arama gereken zamanı olarak O(N) algoritma dır

Page 55: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Enine arama

• Enine arama (breadth-first search)1. Bir düğüm ile (kök denir) başlatılır 2. Bu düğüm için önce tüm çocuklar incelenir3. Sonra bu çocukların çocukları incelenir4. Sonra bu çocukların çocukları incelenir5. VB

Page 56: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Enine arama

Enine arama

bc

g

d

a

e

fh

a ile başlıoruz ve

tüm çocukları inceliyoruz

Arama sırası a→{b,e}

Page 57: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Enine arama

Enine arama

bc

g

d

a

e

fh

Bu elemanların çocukları inceliyoruz

Arama sırası a→{b,e} →{c,d,h}

Page 58: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Enine arama

Enine arama

bc

g

d

a

e

fh

Arama sırasıa→{b,e} →{c,d,h} →{c,f}

Bu elemanların çocukları inceliyoruz

Page 59: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Enine arama

Enine arama

bc

g

d

a

e

fh

Evde:Bu algoritma için sözde kod ve akış şemasını yazın

Sıra:a→{b,e} →{c,d,h} →{c,f}

Page 60: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Enine arama

• Enine arama da grafın bir yayılan ağacını oluşturur

• Ayrıca enine arama grafın düğümlerinin kökten uzaklıklarını hesaplıyor

Page 61: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Enine arama

Enine arama yayılan ağacı:

bc

g

d

a

e

fh

Page 62: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Enine arama

Enine arama kökten uzaklıkları:

bc

g

d

a

e

fh

01

1

2

22

3

3

Page 63: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Enine arama

• Enine arama O(N) algoritmadır

Page 64: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

• Derinlikte ve enine graf arama işlemleri graf düğümlerini bir sıraya koyar

Page 65: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

• Çok önemli olan ve çok yayğın kullanılan derinlikte aramanın grafın düğüm sıraları veya düzenleri vardır

• Derinlikte arama ile ilgili “preorder”, “postorder” ve “reverse postorder” sıralar vardır

Page 66: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

bc

g

d

a

e

fh

Derinlikte aramada düğümlerin sırası:

"abcdehedcgfgcba"

Page 67: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

bc

g

d

a

e

fh

Derinlikte arama sırası: abcdehedcgfgcba

preorder (ilk karşılandığı sırası)a-b-c-d-e-h-g-f

Page 68: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

bc

g

d

a

e

fh

Derinlikte arama sırası: abcdehedcgfgcba

postorder (son karşılandığı sırası) h-e-d-f-g-c-b-a

reverse (ters) postorder: a-b-c-g-f-d-e-h

Page 69: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

• Önemli: ağaçlar için benzer sıralar tanımlanır: pre-order, in-order ve post-order

Page 70: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

– Pre-order: kök, sonra sol altağaç sonra sağ altağaç

– İn-order: sol altağaç, sonra kök, sonra sağ altağaç

– Post-order: sol altağaç, sonra sağ altağaç, son kök

Page 71: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

Pre-order: F, B, A, D, C, E, G, I, H(kök,sonra en sola, sonra sağa)

Page 72: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

In-order: A, B, C, D, E, F, G, H, I(en sola, sonra kök, sonra sağa)

Page 73: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

Post-order: A, C, E, D, B, H, I, G, F(en sola, sonra en sağa, sonra kök)

Page 74: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

• Topolojik sıralama:– Topolojik sıralama, grafın düğümlerin şöyle bir

sırası ki,• "a" düğümden "b" düğüme graf bağlantısı varsa, sırada

"a" eleman "b" elemandan önce gelmeli

Page 75: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

• Topoljik sıralama sadece döngüsüz graflar için tanımlanabilir

• Yani, bu da ağaçların bir sırası dır

Page 76: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

Topolojik sıralama:

bc

gd

a

e

fh

a b e c dh g f

Page 77: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

• Topolojik sıralama enine arama kullanarak bulunur

bc

g

d

a

e

fh

Page 78: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

1. Önce enine arama yapılır

2. Sonra düğümler, enine aramanın sırasına göre sıralanır

bc

g

d

a

e

fh

01

12

2

3

23

Page 79: MIT503 Veri Yapıları ve algoritmalar - Yuriy Mishchenkoyumishch.me/courses/xmit503-lecture-7.gr… · PPT file · Web view · 2015-08-06Graflar genel kavramsal araç, genel durumlarda

Graf sıralamaları

a b e c dh g f

bc

gd

a

e

fh

01

1

2

22

3

3

0 1 2 2 2 2 3 4