Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin.

Slides:



Advertisements
Benzer bir sunumlar
Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
Advertisements

Graf.
İkili Ağaçlar İkili Arama Ağaçları
Algoritmalar En kısa yollar I En kısa yolların özellikleri
Mustafa Seçkin DURMUŞ Serdar İPLİKÇİ
İçerik Ön Tanımlar En Kısa Yol Problemi Yol, Cevrim(çember)
MIT503 Veri Yapıları ve algoritmalar En önemli graf problemleri
Yapay Zeka DR.KORHAN KAYIŞLI.
Java Programlama Koleksiyon(Collection) Sınıfları
Çizge Algoritmaları.
İçerik: Graflar Tanım Gösterim Dolaşma Algoritmaları
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgelerin bilgisayarda gösterimine ilişkin iki standart yaklaşımı inceleyeceğiz.
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Ders Notu – 3.2 Bilgisiz (Kör) Arama Yöntemleri
Atama ve eşleme (eşleştirme) problemleri (Matching and Assignment problems)
GRAF TEORİSİ Ders 1 TEMEL KAVRAMLAR.
İŞLEM TANIM: A boş olmayan bir küme olmak üzere,A×A nın bir R alt kümesinden A ya tanımlanan her fonksiyona, işlem denir.İşlemi tanımlarken,’’
ÇİZGELERİN GÖSTERİMİ Yılmaz KILIÇASLAN.
GRAPHS ÖZET.
DENKLEMLER. DENKLEMLER ÜNİTE BAŞLIĞI X kimdir neye denir,neden gereksinim duyulmuştur.Bilinmeyeni denklem kurmada kullanırız.Bilinmeyen problemlerde.
Arama ile sorun çözme Ders 3.
YMT219: Veri Yapıları Ders Saatleri: Pazartesi 9:15-12, 17:30-20:15
ÇİZGE KURAMI Yılmaz KILIÇASLAN.
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN.
BAZI VERİ YAPILARI Yılmaz KILIÇASLAN. Sunu Planı Bu derste, çizgeler gibi bazı teorik nesnelerin bellekte nasıl tutulduğunu ve algoritmalarca nasıl işlendiğini.
Çizge Algoritmaları Ders 2.
BOŞ KÜME DENK KÜME EVRENSEL KÜME EŞİT KÜME İÇİNDEKİLER.
BAĞINTI & FONKSİYONLAR.
Veri Yapıları ve Algoritmalar
While EndDo Repeat Until For Next.  Program mantığı içinde belirli bir düzene bağlı kalarak sürekli tekrar eden işlemlerin belirli bir kritere/değişkene.
KUYRUK (QUEUE).
1-a) Şekildeki devrede 5 Gauss yüzeyi belirleyin ve KAY yazın.
İleri Algoritmalar 1. ders.
Ağırlıksız ikili eşleştirme
Algoritmalar II Ders 5 Açgözlü Algoritmalar.
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Algoritmalar II Ders 4 Dinamik Programlama Yöntemi.
Çizge Algoritmalari 6. ders.
GrafTeorisine İlişkin Bazı Tanımlar
Algoritmalar II Ders 14 Çizgelerde tüm ikililer arasında en kısa yollar.
Maksimum akış.
Çizge gösterimleri G = (V, E) çizgesinin komşuluk listesi gösterimi
MAKSİMUM AKİŞ PROBLEMİ
Algoritmalar II Ders 17 İteratif İyileştirme Yöntemi.
Derinlik öncelikli arama (Depth-first Search(DFS))
İleri Algoritma Analizi
Ağırlıksız ikili eşleştirme
9. Ders Tüm ikililer arasında en kısa yollar
İleri Algoritma Analizi
Algoritmalar II Ders 11 Çizgeler. Çizgelerin bilgisayarda gösterimi. BFS algoritması.
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
Chapter 6 Dönüştür ve Yönet (Transform-and-Conquer)
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Çizge Algoritmalari 5. ders.
İleri Algoritma Analizi
Çizge Algoritmalari 4. ders.
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritmalar Ders 3.
NİŞANTAŞI ÜNİVERSİTESİ
Algoritmalar II Ders 16 Prim algoritması.
Çizge Teorisi ve Algoritmalari
NİŞANTAŞI ÜNİVERSİTESİ
İleri Algoritma Analizi
Çizge Algoritmaları 3. ders.
Algoritmalar II Ders 16 Prim algoritması.
Çizge Algoritmalari 10. Ders.
10. Ders Floyd-Warshal algoritması
Çizge Algoritmalari 6. ders.
Graf Teorisi (Graph Theory)
Sunum transkripti:

Çizgeler Çizge G=(V,E), ikilisine denir, burada V sonlu bir kümedir, E ise bu kümenin elemanları arasında ikili bir bağıntıdır. V kümesine G çizgesinin köşeler(vertex) kümesi denir. E kümesine ise G çizgesinin kirişler kümesi (edge set) denir. Çizgelerin 2 çeşidi vardır: yönlü ve yönsüz

Yönlü çizge örneği Öz-döngüler(Self-loops)-yani bir köşenin kendisinden kendisine kirişler olabilir. 1 4 3 2 5 6

Yönsüz çizgelere örnek 1 5 3 2 4

Tanımlar Yönlü ve yönsüz çizgeler için bir çok tanım aynıdır. Sadece bazı kavramlar az da olsa farklılık göstermektedir. Eğer (u,v) yönlü G=(V,E) çizgesinin bir kirişi ise, (u,v) kirişi u köşesinden çıkıyor ve v köşesine giriyor denir. Eğer (u,v) yönsüz G=(V,E) çizgesinin bir kirişi ise, (u,v) kirişi u ve v köşelerini bağlıyor denir. Eğer (u,v) G=(V,E) çizgesinin bir kirişi ise v köşesi u köşesinin komşusudur (adjacent) denir.

Tanımlar Yönsüz bir çizgede bir köşesinin derecesi bu köşeye bağlı kirişlerin sayısına eşittir. 0 dereceli köşeye tecrit olunmuş(isolated) köşe denir. Yönlü çizgelerde, bir köşenin dış-derecesi bu köşeden çıkan kirişlerin sayısına eşittir. Yönlü çizgelerde, bir köşenin iç-derecesi bu köşeye giren kirişlerin sayısına eşittir. Yönlü çizgelerde, bir köşenin derecesi bu köşenin dış-derecesi ile iç-derecesinin toplamına eşittir.

Tanımlar Bir G=(V,E) çizgesinde u köşesinden w köşesine olan k uzunluklu yol, köşelerin (v0,v1,…,vk) dizisine denir, burada u=v0,w=vk ve {(v0,v1),(v1,v2),…(vk-1),vk)} kümesi E nin bir altkümesidir. Bir yolun uzunluğu bu yoldaki kiriş sayısına eşittir. Eğer u köşesinden w köşesine bir p yolu varsa w köşesi u köşesinden p yolu ile ulaşılabilirdir(reachable) denir. Bir yoldaki tüm köşeler birbirinden farklı ise bu yola basit (simple) yol denir.

Tanımlar Eğer yönlü bir çizgenin (v0,v1,…vk) yolunda v0=vk ve yolda en az bir kiriş varsa bu yola devir(cycle) denir. Eğer bir devirde başlangıç ve son köşe dışında diğer tüm köşeler farklı ise bu devire basit devir. Yönlü çizgede basit devirde öz-döngü olamaz.A directed graph with no self-loops is simple. Yönsüz bir çizgede (v0,v1,…vk) yolunda k>=3, v0=vk ve başlangıç ve son köşeler dışında tüm köşeler farklı ise bu yola devir denir. Bir çizgede devir yoksa bu çizgeye devirsiz çizge denir.

Tanımlar Yönsüz bir çizgede her hangi 2 köşenin birinden diğerine yol varsa bu çizgeye bağlantılı (connected ) çizge denir. Bir çizgenin köşelerinin “ulaşılabilir” bağıntısının oluşturduğu denklik sınıflarına bağlantılı bileşenleri (connected components) denir. Yönlü bir çizgede eğer her hangi 2 köşe birbirinden ulaşılabilirse bu çizgeye kuvvetli bağlantılı (strongly connected) çizge denir. Yönlü bir çizgenin köşelerinin “karşılıklı ulaşılabilir” bağıntısının oluşturduğu denklik sınıflarına kuvvetli bağlantılı bileşenleri (strongly connected components) denir.

Tanımlar G1=(V1,E1) ve G=(V,E) çizgeleri için eğer V1 kümesi V nin ve E1 kümesi E nin altkümesi ise G1=(V1,E1) çizgesine G=(V,E) çizgesinin altçizgesi (subgraph) denir. Her hangi 2 köşesi bir birine komşe olan yönsüz bir çizgeye tam çizge(complete graph) denir. Yönsüz bir G=(V,E) çizgesinde V kümesi V1 ve V2 gibi 2 kümeye ayrılabiliyorsa ve bir (u,v) ikilisinin E nin elemanı olmasından ya u nun V1 de ve v nin V2 de olması ya da tam tersı u nun V2 de ve v nin V1 de oması çıkarsa bu çizgeye iki kümeli (biparite graph) çizge denir.

Çizgelerin gösterimi Komşuluk listesi: (V+E) Seyrek(sparce) çizgeler için tercih edilir, yani |E| << |V|2 Adj[u] listesi (u, v) E koşulunu sağlayan tüm v köşelerinin listesidir. Ağırlıklı çizgelerde (weighted graphs): ağırlık w(u, v) sayısı Adj[u] listesinde v ile birlikte tutulur. Bu yöntemin eksik yönü, verilen ikilinin çizgenin köşesi olduğunu hızlı bulamıyoruz. Komşuluk matrisi: (V2) Yoğun(dense) çizgeler için tercih edilir. Yönsüz çizgelerde simetriktir Ağırlıklı çizgelerde (u,v) yerinde w(u, v) tutulur. (u,v) nin giriş olup olmadığı anında bulunur.

Yönsüz çizge gösterimi

Yönlü çizge gösterimi 1 bit per entry

Ağaçlar ve örten ağaçlar ağaç: devir içermeyen bağlantılı çizgeye denir orman: devir içermeyen (bağlantılı veya bağlantısız) çizgeye denir. Örten ağaç(spanning tree) köşeleri G çizgesinin köşeleri ile aynı olan ve ağaç olan bir altçizgedir.

G nin bazı örten ağaçları : Örten ağaç örnekleri G G nin bazı örten ağaçları : T1 T3 T2

Bir çok çizge algoritmasında çizgenin tüm köşelerinde gezinme gereksinimi bulunur. Çizgede arama için 2 yöntem vardır: a) Derinlik öncelikli arama (depth-first search (DFS)) b) Genişlik öncelikli arama ( bread-first search (BFS))

GENİŞLİK ÖNCELİKLİ ARAMA (BREADTH FIRST SEARCH (BFS)) Giriş: Yönlü veya yönsüz G=(V, E) çizgesi ve s başlangıç köşesi Amaç: G çizgesinde • s den ulaşılabilir tüm köşeleri bulmak •s den ulaşılabilir tüm köşeler olan en kısa uzaklıkları bulmak •Kökü s de olan genişlik öncelikli ağacı(BFT) üretmek −BFT ağacında s den ulaşılabilir tüm köşeler vardır −her v köşesi için s den v ye tek yol vardır ve bu yol G de en kısadır Ana Fikir: Bulunduğumuz köşenin tüm komşularını öncelikle ziyaret etmek ve bunun için FIFO kuyruğu kullanmak

Algoritmada her u∈V köşesi için aşağıdakiler kullanılır: •color[u]: u nun rengi−WHITE : yani henüz keşfedilmemiş −GRAY : kendisi keşfedildi ama keşfedilmemiş komşuları vardır −BLACK: kendisi ve tüm komşuları keşfedildi •Π[u]: u nun velisi(u=s ise veya u henüz keşfedilmemişse NIL olur) u yu hangi köşenin komşusu olarak keşfettiğimizi gösterir •d[u]: s den u ya olan uzaklık

Copyright © The McGraw-Hill Companies, Inc Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.

Breadth First Search - A B C D E F G H I front FIFO Queue

Breadth First Search A - enqueue source node FIFO Queue front A B C D G H I enqueue source node A front FIFO Queue

Breadth First Search A - dequeue next vertex FIFO Queue front A B C D G H I dequeue next vertex A front FIFO Queue

Breadth First Search - visit neighbors of A FIFO Queue front A B C D E

Breadth First Search - visit neighbors of A FIFO Queue front A B C D E

Breadth First Search B - A B discovered FIFO Queue front A B C D E F G

Breadth First Search B - A visit neighbors of A FIFO Queue front A B C

Breadth First Search B I - A A I discovered FIFO Queue front A B C D E G H I A I discovered B I front FIFO Queue

Breadth First Search B I - A A finished with A FIFO Queue front A B C G H I A finished with A B I front FIFO Queue

Breadth First Search B I - A A dequeue next vertex FIFO Queue front A G H I A dequeue next vertex B I front FIFO Queue

Breadth First Search I - A A visit neighbors of B FIFO Queue front A B

Breadth First Search I - A A visit neighbors of B FIFO Queue front A B

Breadth First Search I F - A B A F discovered FIFO Queue front A B C D G H B I A F discovered I F front FIFO Queue

Breadth First Search I F - A B A visit neighbors of B FIFO Queue front

Breadth First Search I F - A B A A already discovered FIFO Queue front G H B I A A already discovered I F front FIFO Queue

Breadth First Search I F - A B A finished with B FIFO Queue front A B G H B I A finished with B I F front FIFO Queue

Breadth First Search I F - A B A dequeue next vertex FIFO Queue front G H B I A dequeue next vertex I F front FIFO Queue

Breadth First Search F - A B A visit neighbors of I FIFO Queue front A

Breadth First Search F - A B A visit neighbors of I FIFO Queue front A

Breadth First Search F - A B A A already discovered FIFO Queue front A G H B I A A already discovered F front FIFO Queue

Breadth First Search F - A B A visit neighbors of I FIFO Queue front A

Breadth First Search F E - A I B A E discovered FIFO Queue front A B C G H I B I A E discovered F E front FIFO Queue

Breadth First Search F E - A I B A visit neighbors of I FIFO Queue front FIFO Queue

Breadth First Search F E - A I B A F already discovered FIFO Queue G H I B I A F already discovered F E front FIFO Queue

Breadth First Search F E - A I B A I finished FIFO Queue front A B C D G H I B I A I finished F E front FIFO Queue

Breadth First Search F E - A I B A dequeue next vertex FIFO Queue G H I B I A dequeue next vertex F E front FIFO Queue

Breadth First Search E - A I B A visit neighbors of F FIFO Queue front

Breadth First Search E - A I B F A G discovered FIFO Queue front A B C

Breadth First Search E G - A I B F A F finished FIFO Queue front A B C

Breadth First Search E G - A I B F A dequeue next vertex FIFO Queue front FIFO Queue

Breadth First Search G - A I B F A visit neighbors of E FIFO Queue front FIFO Queue

Breadth First Search G - A I B F A E finished FIFO Queue front A B C D

Breadth First Search G - A I B A dequeue next vertex FIFO Queue front

Breadth First Search - A I B F A visit neighbors of G FIFO Queue front

Breadth First Search C - A G I B F A C discovered FIFO Queue front A B

Breadth First Search C - A G I B F A visit neighbors of G FIFO Queue front FIFO Queue

Breadth First Search C H - A G I B F G A H discovered FIFO Queue front

Breadth First Search C H - A G I B F G A G finished FIFO Queue front A

Breadth First Search C H - A G I B F G A dequeue next vertex front FIFO Queue

Breadth First Search H - A G I B F G A visit neighbors of C FIFO Queue front FIFO Queue

Breadth First Search H - A G C I B F G A D discovered FIFO Queue front

Breadth First Search H D - A G C I B F G A C finished FIFO Queue front

Breadth First Search H D - A G C I B F G A Get next vertex FIFO Queue front FIFO Queue

Breadth First Search D - A G C I B F G A visit neighbors of H front FIFO Queue

Breadth First Search D - A G C I B F G A H finished FIFO Queue front A

Breadth First Search D - A G C I B F G A dequeue next vertex front FIFO Queue

Breadth First Search - A G C I B F G A visit neighbors of D FIFO Queue front FIFO Queue

Breadth First Search - A G C I B F G A D finished FIFO Queue front A B

Breadth First Search - A G C I B F G A dequeue next vertex FIFO Queue front FIFO Queue

Breadth First Search - A G C I B F G A STOP FIFO Queue front A B C D E

Genişlik öncelikli ağaç (Breadth-first Tree(BFT)) Başlangıç köşesi s olan G = (V, E) çizgesi için G = (V , E) alt çizgesi elde edildi V ={vV : [v]  NIL}{s} E ={([v],v)E : v  V - {s}} G çizgesi aşağıdaki koşulları sağlıyorsa bu çizgeye genişlik öncelikli ağaç (BFT) denir: V kümesi s den ulaşılabilir tüm köşelerin kümesidir ve tüm vV için G de s den v ye basit ve tek yol vardır ve bu yol G de s den v ye en kısa yoldur. E kümesindeki kirişlere ağaç kirişleri denir. |E | = |V | - 1.

BFT Aşağıdaki algoritma s den v ye olan en kısa yolu yazıyor. (Bu algoritma BFS algoritması bittikten sonra çalıştırılmalıdır)

Print-Path(G,s,v) 1 if v=s 2 then print s 3 else if π[v]=NIL 4 then print “no path from” s “to” v “exists” 5 else Print-Path(G,s,π[v]) 6 print v