Çizge Algoritmalari 6. ders.

Slides:



Advertisements
Benzer bir sunumlar
İçerik: Graflar Tanım Gösterim Dolaşma Algoritmaları
Advertisements

Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Hat Dengeleme.
SAYISAL DEVRELER BÖLÜM-2 Sayı Sistemleri ve Kodlar
T.C. ORDU VALİLİĞİ İlköğretim Müfettişleri Başkanlığı TAM ÖĞRENME MODELİ TAM ÖĞRENME MODELİ.
Metrik koşullarını sağlıyor mu?
Graf Teorisi Pregel Nehri
Arş.Gör.İrfan DOĞAN.  Bugün otizm tedavisinde en önemli yaklaşım, özel eğitim ve davranış tedavileridir.  Tedavi planı kişiden kişiye değişmektedir,
DEPREME DAYANIKLI BETONARME YAPI TASARIMI
OLASILIK TEOREMLERİ Permütasyon
MATEMATİK PROJE ÖDEVİ Adı-Soyadı:Nihat ELÇİ Sınıfı-Numarası:7/C 1057
YÖNLENDİRME. Yönlendirme ● Statik ● Dinamik ● Kaynakta yönlendirme ● Hop by hop yönlendirme.
BİLGİSAYAR PROGRAMLAMA DERSİ
İÇİNDEKİLER NEGATİF ÜS ÜSSÜ SAYILARIN ÖZELLİKLERİ
TAM SAYILAR.
Tüm ikililer arasında en kısa yollar
1-a) Şekildeki devrede 5 Gauss yüzeyi belirleyin ve KAY yazın.
Ç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.
Yapay Sinir Ağı Modeli (öğretmenli öğrenme) Çok Katmanlı Algılayıcı
Çizge Algoritmalari 6. ders.
Çizge gösterimleri G = (V, E) çizgesinin komşuluk listesi gösterimi
BİLGİSAYAR PROGRAMLAMA Ders 5: Döngüler
- Sağlama - Kısa yoldan Çarpmalar
İleri Algoritma Analizi
BİRİNCİ DERECEDEN İKİ BİLİNMEYENLİ DENKLEMLER
En Kısa Yol Problemleri (Shortest Path Problems)
Derinlik öncelikli arama (Depth-first Search(DFS))
İleri Algoritmalar 2. ders.
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
KAY ve KGY toplu parametreli devrelerde geçerli
Çizge Teorisi ve Algoritmaları
Çizge Algoritmaları 3. ders.
NBP103 Programlama Temelleri Öğr. Gör. Mahmut Kılıçaslan
MAT – 101 Temel Matematik Mustafa Sezer PEHLİVAN *
Ağırlıksız ikili eşleştirme
GELECEK PİYASASI İŞLEMLERİ
Seminer Dersi Sunumu Sunum Adı Öğrenci Ad ve Soyadı Ay Yıl
İleri Algoritma Analizi
SİSMİK PROSPEKSİYON DERS-3
Algoritmalar II Ders 11 Çizgeler. Çizgelerin bilgisayarda gösterimi. BFS algoritması.
Çizge Teorisi ve Algoritmalari
Self Organizing Map-SOM
İleri Algoritma Analizi
Benzetim 11. Ders İmalat Yönetimde Benzetim.
B+-Ağaçları.
SAYI ÖRÜNTÜLERİ ANAHTAR KAVRAMLAR MODELLEME ÖRÜNTÜ SAYI ÖRÜNTÜSÜ ÜS
Algoritmalar II Ders 12 DFS algoritması. Kirişlerin sınıflandırılması. Topolojik Sıralama.Kuvvetli bağlantılı bileşenler.
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
Evren-Örneklem, Örnekleme Yöntemleri 2
Algoritmalar II Ders 13 Çizgelerde tüm ikililer arasında en kısa yollar.
Çizge Algoritmaları.
Çizge Algoritmalari 5. ders.
ESNEKLİK Belgin Akçay.
İleri Algoritma Analizi
Bilgisayar Bilimi Koşullu Durumlar.
LOJİK KAPILAR (GATES) ‘Değil’ veya ‘Tümleme’ Kapısı (NOT Gate)
NİŞANTAŞI ÜNİVERSİTESİ
Hande TİRYAKİ Muzaffer DOĞAN ANADOLU ÜNİVERSİTESİ
6. DÖNGÜ (TEKRARLAMA) DEYİMLERİ
BENZETİM DİLLERİNDE MODELLEME YAKLAŞIMLARI
NİŞANTAŞI ÜNİVERSİTESİ
Algoritmalar II Ders 16 Prim algoritması.
BLM-111 PROGRAMLAMA DİLLERİ I Ders-10 Diziler
MTM216 GÖRSEL PROGRAMLAMA
İleri Algoritma Analizi
Algoritmalar II Ders 15 En Küçük Örten Ağaçlar.
Ders 9: İkili arama ağaçları
8. Ders Tüm ikililer arasında en kısa yollar
Chapter 4 Divide-and-Conquer
PROBLEM ÇÖZME TEKNİKLERİ
Sunum transkripti:

Çizge Algoritmalari 6. ders

Derinlik öncelikli arama (Depth-First Search (DFS)) Giriş: G = (V, E) (Kaynak köşe verilmez!) Amaç: En son ziyaret edilen köşeden başlamak koşuluyla G'deki kirişleri üzerinde gezinerek V'deki her köşeyi "keşfetmek” Gezinme sırasında bir çok kaynak köşe kullanılabilir Çıkış: 2 zaman değişkeni: d[v] = keşfetme zamanı f[v] = bitiş zamanı( v’nin komşuluk listesi bitmiştir) Derinlik öncelikli orman (Depth-First Forest(DFF)) 1 2 5 4 3

Derinlik öncelikli arama (Depth-First Search (DFS)) Gizgede olabildiğince “derine” giderek arama yap Her adımda en son keşedilen köşeden üzerinde gezinme yapılmamış giriş üzerinden keşfedilmemiş bir köşeye gidilir (eğer mümkünse) 1 2 5 4 3 Arama bir v köşesi seçilerek başlanır ve v den ulaşılabilir tüm köşeler bitene kadar süreç devam eder. Eğer süreç bitiğinde çizgede halen keşfedilmemiş köşe kalmışsa bu defa keşfedilmemiş köşelerden birinden başlanır ve yine süreç seçilen başlangıç köşeden ulaşılabilir tüm köşeler keşfedilene kadar devam eder. DFS algoritması derinlik öncelikli orman (DFF) üretir

DFS için veri yapilari Global değişken: zaman-adım Yeni bir köşe keşfedildiğinde veya keşfi bittiğinde bir artırılır color[u] – BFS’de olduğu gibidir [u] –u köşesinin velisi d[u], f[u] – keşif ve bitiş zamanı GRİ BEYAZ SİYAH 2V d[u] f[u] 1 ≤ d[u] < f [u] ≤ 2 |V|

DFS(G) for each u  V[G] do color[u] ← WHITE [u] ← NIL time ← 0 x y z for each u  V[G] do color[u] ← WHITE [u] ← NIL time ← 0 do if color[u] = WHITE then DFS-VISIT(u) DFS-VISIT(u) nun çağrıldığı her u köşesi DFS ormanında yeni bir ağacın kökü olur

DFS-VISIT(u) color[u] ← GRAY time ← time+1 d[u] ← time for each v  Adj[u] do if color[v] = WHITE then [v] ← u DFS-VISIT(v) color[u] ← BLACK time ← time + 1 f[u] ← time u v w x y z time = 1 1/ u v w x y z 1/ 2/ u v w x y z

Örnek u v w x y z u v w x y z u v w x y z u v w x y z u v w x y z u v 1/ u v w x y z 1/ 2/ u v w x y z 1/ 2/ 3/ u v w x y z 1/ 2/ 4/ 3/ u v w x y z 1/ 2/ 4/ 3/ u v w x y z B 1/ 2/ 4/5 3/ u v w x y z B 1/ 2/ 4/5 3/6 u v w x y z B 1/ 2/7 4/5 3/6 u v w x y z B 1/ 2/7 4/5 3/6 u v w x y z B F

Örnek (Devam) DFS sonucu aşağıdakilere bağlıdır: 1/8 2/7 4/5 3/6 u v w x y z B F 1/8 2/7 9/ 4/5 3/6 u v w x y z B F 1/8 2/7 9/ 4/5 3/6 u v w x y z B F C 1/8 2/7 9/ 4/5 3/6 10/ u v w x y z B F C 1/8 2/7 9/ 4/5 3/6 10/ u v w x y z B F C 1/8 2/7 9/ 4/5 3/6 10/11 u v w x y z B F C 1/8 2/7 9/12 4/5 3/6 10/11 u v w x y z B F C DFS sonucu aşağıdakilere bağlıdır: DFS algoritmasının aramaya hangi köşeden başlaması ve kaynak köşelere hangi sırada devam etmesine DFS-VISIT algoritmasının komşuları ziyaret sırasına

KİRİŞ SİNİFLANDİRMA Ağaç kirişi (Rengi BEYAZ iken keşfedilen köşelere bağlanan girişler): (u, v) ağaç kirişidir eğer v köşesine ilk defa (u, v) kirişi ile gidilmişse Geri kiriş (Back edge) (Rengi GRİ iken tekrar ziyaret edilen köşelere bağlanan girişler): (u, v), geri kiriştir eğer u dan v köşesine gidildiğinde v köşesi artık DFS ormanında bulunan bir ağaçta varsa Yönlü çizgelerde öz-döngü kirişleri de geri kirişlerdir 1/ u v w x y z 1/ 2/ 4/ 3/ u v w x y z B

KİRİŞ SİNİFLANDİRMA İleri kiriş(Forward edge) (u köşesinden ziyaret edildiğinde rengi SİYAH olan ve d[u] < d[v] koşulunu sağlayan v köşeleri) (u, v) kirişi ileri kiriştir eğer 1)ağaç kirişi değilse ve 2)DFS ormanındaki bir ağaçta v köşesi u köşesinin soyundan geliyorsa, yani v köşesi u köşesinin torunu, torunun çocuğu ve b. ise Çapraz kiriş (Cross edge) (u köşesinden ziyaret edildiğinde rengi SİYAH olan ve d[u] > d[v] koşulunu sağlayan v köşeleri) DFS ormanında bulunan aynı bir ağacın iki köşesi arasında ( bu durumda bu köşelerin hiçbiri diğerinin soyundan gelmez) veya farklı iki ağacın köşeleri arasında olabilir 1/ 2/7 4/5 3/6 u v w x y z B F 1/8 2/7 9/ 4/5 3/6 u v w x y z B F C

DFS(G) Zaman analizi for each u  V[G] do color[u] ← WHITE (V) [u] ← NIL time ← 0 do if color[u] = WHITE then DFS-VISIT(u) (V) – defa DFS-VISIT çağrılacaktır

DFS-VISIT(u) zaman analizi color[u] ← GRAY time ← time+1 d[u] ← time for each v  Adj[u] do if color[v] = WHITE then [v] ← u DFS-VISIT(v) color[u] ← BLACK time ← time + 1 f[u] ← time DFS-VISIT her köşe için bir defa çağrılır Her döngü |Adj[v]| defa döner Toplam:ΣvV |Adj[v]| + (V) = (V + E) (E)

Topolojik siralama Yönlü ve döngüsüz bir G = (V, E) çizgesinin köşelerini bir doğru üzerinde öyle yerleştirebiliriz ki eğer çizgede (u, v) kirişi varsa doğru üzerinde u köşesi v den önce gelir. Bu tür bir sıralamaya topolojik sıralama denir.

Topolojik siralama TOPOLOGICAL-SORT(V, E) Running time: (V + E) Her v köşesi için f[v] yi hesaplamak için DFS(V, E) cağır Köşeleri bitiş zamanlarının azalan sırası ile sırala ve bir bağlı listeye yerleştir Çizgedeki kirişleri bu listede göster H 11/ 16 17/ 18 İ 12/ 15 G F 13/ 14 D 1/ 8 6/ 7 C E 9/ 10 B 2/ 5 A 3/ 4 İ H G F E D C B A Running time: (V + E)

Topological Sort H 11/ 16 17/ 18 İ 12/ 15 G F 13/ 14 C 1/ 8 6/ 7 D E 9/ 10 B 2/ 5 A 3/ 4 İ H G F E D C B A

Özellik Yönlü bir çizge döngüsüzdür  Bu çizgeye uygulanan DFS algoritması geri kiriş üretmez. İspat: “”: çizge döngüsüz olsun  geri giriş yok Geri kiriş olduğunu varsayalım  döngü olduğunu gösterelim Bir geri kiriş olsun (u, v) u köşesi v nin soyundan geliyor  Yani v den u ya yol var: G de (v  u) yolu  v  u + (u, v) döngüdür v u (u, v)

İspat devam “”: geri giriş yoktur  döngüsüzdür Döngü olduğunu varsayalım  geri kiriş olduğunu gösterelim G de c döngü olsun v köşesi c de ilk keşfedilen köşe ve (u, v) kirişi c de son kiriş olsun d[v] zamanında c de v  u beyaz yolu vardır Yani u köşesi v nin soyundandır  (u, v) geri kirişdir. v (u, v) u

Kuvvetli Bağlantili Bileşenler Yönlü bir çizge verilmiş olsun:G = (V, E): C  V olan ve her u, v  C için u  v ve v  u yollarının var olduğu maksimum elemanlı <C> alt çizgesine G nin kuvvetli bağlantılı bir bileşeni (strongly connected component (SCC) ) denir.

Çizgenin transpozu GT = G nin transposu GT çizgesinin kirişlerinin tümü G nin kirişlerinin yönünün ters yöne değiştirilmesi ile oluşmuştur GT = (V, ET), ET = {(u, v) : (v, u)  E} GT yi (V + E) işlem zamanında oluşturabiliriz. 1 2 5 4 3 1 2 5 4 3

Kuvvetli bağlantılı bileşenleri bulma Gözlem: G ve GT kuvvetli bağlantılı bileşenleri aynıdır. u ve v köşeleri G de birbirinden ulaşılabilirdir bu köşeler GT de de birbirinden ulaşılabilirdir. Yönlü döngüsüz G = (V, E) de kuvvetli bağlantılı bileşenleri bulmak için : G ve GT de DFS uygulamak yeterlidir 1 2 5 4 3 1 2 5 4 3

Örnek a b c d e f g h DFS G de ve bitiş zamanlarına göre sırala 13/ 14 11/ 16 1/ 10 8/ 9 b 16 e 15 a 14 c 10 d 9 g 7 h 6 f 4 12/ 15 3/ 4 2/ 7 5/ 6 a b c d e f g h DFS GT: b de başla: a, e keşfet c de başla: d yi keşfet g de başla: f yi keşfet h de başla Kuvvetli bağlantılı bileşenler: C1 = {a, b, e}, C2 = {c, d}, C3 = {f, g}, C4 = {h}