MAT2033 · 14. hafta · "Connectivity, Euler and Hamilton paths,

Bağlılık, Euler ve Hamilton yolları

Yol ve devre tanımları, bileşenler, kesme köşeleri ve köprüler, matris kuvvetleriyle yol sayma, Euler devresi/yolu için derece koşulu, Hamilton devresi için Dirac ve Ore teoremleri ve kısaca Dijkstra algoritması.

walkpathcircuitsimple pathconnected graphconnected componentcut vertexcut edge (bridge)vertex connectivityedge connectivitystrongly connectedweakly connectedEuler circuitEuler pathHamilton pathHamilton circuitDirac's theoremOre's theoremGray codeDijkstra's algorithmweighted graph

Bu haftanın sorusu genelde iki parça: “Does this graph have an Euler circuit / Euler path?” ve “Does it have a Hamilton circuit?”. Euler tarafı tamamen derece saymaktır, Hamilton tarafı ise deneme ve birkaç teorem. Üstüne bağlılık (connectivity) tanımları ve kısa bir en kısa yol (Dijkstra) sorusu gelebilir. Vizede yok, final konusu.

Altın kurallar:

  1. Euler = kenarlar, Hamilton = köşeler. Karıştırmak en pahalı hata.
  2. Bağlı grafta Euler devresi   ⟺  \iff her derece çift. Euler yolu (devre olmayan)   ⟺  \iff tam iki tek dereceli köşe.
  3. Hamilton için genel bir “ancak ve ancak” kriteri yok. Var demek için devreyi yaz ya da Dirac/Ore kullan; yok demek için bir engel göster.
  4. Yol sayısı sorusu ⇒\Rightarrow komşuluk matrisinin kuvveti.

Yollar ve devreler

Rosen’ın dilinde (bu dersin terimleri):

TerimAnlamı
path (yol) uzunluğu nnnn kenarlık ardışık dizi v0,v1,…,vnv_0, v_1, \dots, v_n (bazı kitaplarda walk)
circuit (devre)v0=vnv_0 = v_n olan yol
simple path / circuitaynı kenar tekrar etmiyor
lengthkenar sayısı (köşe sayısı değil)

Sezgi: köşeler sahadaki istasyonlar, kenarlar koşu çizgileri. Bir antrenman parkuru bir yoldur; başladığın istasyona dönüyorsan devredir.

Matrisle yol sayma

AA komşuluk matrisi ise viv_i‘den vjv_j‘ye uzunluğu rr olan yolların sayısı (Ar)ij(A^r)_{ij}‘dir. Neden: (A2)ij=∑kaikakj(A^2)_{ij} = \sum_k a_{ik}a_{kj}, yani “ii‘den kk‘ye ve kk‘den jj‘ye kenar olan ara köşe kk” sayısı.

Sorulardaki 4 köşeli graf için:

A2=[2121131221211213]A^2 = \begin{bmatrix} 2&1&2&1\\ 1&3&1&2\\ 2&1&2&1\\ 1&2&1&3 \end{bmatrix}

Köşegen dereceleri veriyor: viv_i‘den çıkıp geri dönen 2 uzunluklu yol = bir kenara gidip geri gelmek.

Bağlılık

Yönsüz bir graf, her iki köşesi arasında bir yol varsa bağlıdır (connected). Bağlı olmayan bir graf bileşenlere (connected components) ayrılır: maksimal bağlı alt graflar. Yalnız köşe tek başına bir bileşendir.

Kesme köşesi (cut vertex): silindiğinde (kenarlarıyla birlikte) bileşen sayısı artan köşe. Köprü (cut edge, bridge): silindiğinde bileşen sayısı artan kenar.

İPUCU · köprü testi. Bir kenar bir döngünün üzerindeyse köprü olamaz, çünkü döngünün geri kalanı iki ucu hala bağlar. Önce döngüleri işaretle, kalan kenarları kontrol et.

Ölçüler:

  • Vertex connectivity κ(G)\kappa(G): grafı koparmak (ya da tek köşeye indirmek) için silinmesi gereken en az köşe sayısı.
  • Edge connectivity λ(G)\lambda(G): koparmak için silinmesi gereken en az kenar sayısı.
  • Her zaman κ(G)≤λ(G)≤min⁡vdeg⁡(v)\kappa(G) \le \lambda(G) \le \min_v \deg(v).

Örnekler: κ(Kn)=λ(Kn)=n−1\kappa(K_n) = \lambda(K_n) = n-1; κ(Km,n)=min⁡(m,n)\kappa(K_{m,n}) = \min(m,n); bir köprü varsa λ=1\lambda = 1, kesme köşesi varsa κ=1\kappa = 1.

Yönlü graflarda: her a,ba, b için hem a→ba\to b hem b→ab\to a yönlü yol varsa strongly connected; yönleri yok sayınca bağlı oluyorsa weakly connected.

Euler devreleri ve yolları

Euler devresi (Euler circuit): her kenarı tam bir kez kullanan basit devre. Euler yolu (Euler path): her kenarı tam bir kez kullanan basit yol.

Hikaye: Königsberg’in 7 köprüsü. 4 kara parçası (köşe), 7 köprü (kenar), dereceler 5,3,3,35, 3, 3, 3. Euler, her köprüden bir kez geçen tur olmadığını gösterdi.

Teorem. Bağlı ve en az iki köşeli bir multigraph’ta:

  • Euler devresi vardır   ⟺  \iff her köşenin derecesi çifttir.
  • Euler yolu var ama devresi yok   ⟺  \iff tam iki köşenin derecesi tektir. Yol bu iki köşede başlar ve biter.

Sezgi: bir köşeden geçen her tur bir kenarla girer, bir kenarla çıkar: dereceye 2 katar. Başlangıç ve bitiş noktası dışındaki her köşe bu yüzden çift dereceli olmalı.

Tam yazılmış ispat (gerek koşul)

Claim. If a connected multigraph GG has an Euler circuit, then every vertex of GG has even degree.

Proof. Let the Euler circuit start and end at aa, and follow it. The first edge contributes 1 to deg⁡(a)\deg(a). Each time the circuit passes through a vertex vv (including returns to aa before the end), it enters vv along one edge and leaves along another, contributing 2 to deg⁡(v)\deg(v). The last edge enters aa and contributes 1 more to deg⁡(a)\deg(a). Since the circuit uses every edge exactly once, these contributions count every edge end exactly once. Hence deg⁡(a)=1+2t+1\deg(a) = 1 + 2t + 1 for some integer t≥0t \ge 0, which is even, and every other vertex has degree equal to a sum of 2’s, which is even. ■\blacksquare

Türkçesi: devreyi takip et, her “geçiş” bir köşeye 2 ekler; başlangıç köşesi ilk ve son kenarlardan 1 + 1 alır. Ters yön (her derece çiftse devre vardır) yapıcı ispattır: bir devre kur, kalan kenarlardan yeni devreler bulup birleştir (Hierholzer). Finalde genelde gerek koşul ya da sadece teoremin uygulanması istenir.

Uygulama örneği. “Kelebek” graf: ab,bc,ca,cd,de,ecab, bc, ca, cd, de, ec (ortak köşesi cc olan iki üçgen).

dereceler: a 2, b 2, c 4, d 2, e 2   -> hepsi çift, bağlı
Euler devresi: a, b, c, d, e, c, a
Hamilton devresi? c bir kesme köşesi (silince {a,b} ve {d,e} kopar)
  -> c'den iki kez geçmek gerekir -> Hamilton devresi YOK

Aynı graf Euler açısından mükemmel, Hamilton açısından imkansız. İki kavramın bağımsız olduğunu gösteren en iyi örnek.

Hamilton yolları ve devreleri

Hamilton yolu (Hamilton path): her köşeden tam bir kez geçen basit yol. Hamilton devresi (Hamilton circuit): başladığı köşeye dönen ve diğer her köşeden tam bir kez geçen devre.

Euler’in aksine, Hamilton devresi için bilinen basit bir “ancak ve ancak” koşulu yok (problem NP-complete). Elinde iki tür araç var.

Var olduğunu göstermek (yeterli koşullar):

TeoremKoşul (GG basit, n≥3n \ge 3 köşe)
Diracher köşenin derecesi ≥n/2\ge n/2
Orekomşu olmayan her u,vu, v için deg⁡(u)+deg⁡(v)≥n\deg(u) + \deg(v) \ge n

Bu koşullar yeterli ama gerekli değil: C10C_{10}‘da dereceler 2, koşullar sağlanmaz ama C10C_{10} kendisi bir Hamilton devresidir.

Olmadığını göstermek (engeller):

  1. Derecesi 1 olan köşe varsa Hamilton devresi yok (o köşeye girip çıkmak için 2 kenar lazım).
  2. Derecesi 2 olan köşenin iki kenarı da devrede zorunlu. Zorunlu kenarlar bir köşede 3 tane olursa ya da tam olmayan küçük bir devre kapatırsa çelişki.
  3. Kesme köşesi varsa Hamilton devresi yok.
  4. İki parçalı grafta taraflar eşit büyüklükte değilse Hamilton devresi yok.

Özel graflar: KnK_n (n≥3n\ge 3) her zaman Hamilton devreli, farklı devre sayısı (n−1)!2\frac{(n-1)!}{2}. QnQ_n (n≥2n \ge 2) Hamilton devreli: Gray kodu (ardışık kodlar tek bit farklı) tam olarak QnQ_n‘de bir Hamilton devresidir.

TUZAK · Euler koşulunu Hamilton için kullanmak. “Bütün dereceler çift, o halde Hamilton devresi var” yanlış. Kelebek grafında bütün dereceler çift ama Hamilton devresi yok. Tersine K4K_4‘te dereceler 3 (tek) ama Hamilton devresi var.

En kısa yol: Dijkstra (kısaca)

Ağırlıklı (weighted) grafta iki köşe arası en kısa yol uzunluğu. Dijkstra algoritması (negatif ağırlık yokken):

  1. Başlangıca 0, diğerlerine ∞\infty etiketi ver.
  2. Kesinleşmemiş köşelerden etiketi en küçük olanı seç, kesinleştir.
  3. Onun komşularının etiketini güncelle: L(v)=min⁡(L(v), L(u)+w(u,v))L(v) = \min\big(L(v),\ L(u) + w(u,v)\big).
  4. Hedef kesinleşene kadar tekrarla.

Sorudaki graf için kesinleşme sırası:

a:0  ->  c:2  ->  b:3  ->  d:8  ->  e:10  ->  z:13
yol (geri izle): z <- e <- d <- b <- c <- a   uzunluk 13

Dikkat: bb‘nin ilk etiketi 4 (abab kenarı), ama cc üzerinden 3. Bir köşe kesinleşmeden önce etiketi düşebilir; kesinleştikten sonra değişmez. Karmaşıklık O(n2)O(n^2).

Sık yapılan hatalar

YanlışDoğrusu
Euler ile Hamilton’ı karıştırmakEuler: her kenar bir kez. Hamilton: her köşe bir kez
Euler yolunu herhangi bir köşeden başlatmakİki tek dereceli köşenin birinden başla, ötekinde bitir
Euler koşulunda bağlılığı kontrol etmemekBağlı değilse (yalnız köşeler hariç) Euler devresi yok
“Dirac sağlanmıyor, o halde Hamilton devresi yok”Dirac yeterli koşul; sağlanmaması bir şey söylemez
KnK_n‘de Hamilton devresi sayısı n!n!Başlangıç ve yön aynı sayılır: (n−1)!2\frac{(n-1)!}{2}
Yol uzunluğunu köşe sayısıyla ölçmekUzunluk = kenar sayısı
Döngü üzerindeki bir kenarı köprü saymakDöngüdeki kenar köprü olamaz
Yalnız köşeyi bileşen saymamakDerecesi 0 olan köşe kendi başına bir bileşen

Kendini test et

Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.

Soru 1orta

Which of K5K_5, K6K_6, K2,4K_{2,4}, K3,4K_{3,4}, K2,3K_{2,3} have an Euler circuit? Which have an Euler path but no Euler circuit?

Cevabı göster
Circuit: K5, K2,4. Path only: K2,3

Bağlı grafta Euler devresi   ⟺  \iff her derece çift. Euler yolu (devre değil)   ⟺  \iff tam iki tek dereceli köşe.K5K_5: hepsi 4, devre var. K6K_6: hepsi 5, altı tek köşe, hiçbiri yok.K2,4K_{2,4}: dereceler 4 ve 2, devre var. K3,4K_{3,4}: 3 köşe derece 4, 4 köşe derece 3; dört tek köşe, hiçbiri yok.K2,3K_{2,3}: 2 köşe derece 3, 3 köşe derece 2; tam iki tek köşe, yol var devre yok.

Soru 2orta

Graph GG has vertices a,b,c,d,e,fa,b,c,d,e,f and edges ab,ac,bc,bd,cd,ce,de,dfab, ac, bc, bd, cd, ce, de, df. Does GG have an Euler circuit or an Euler path? If a path exists, give one.

Cevabı göster
Euler path only, from b to f: b, a, c, b, d, c, e, d, f

Dereceler: aa 2, bb 3, cc 4, dd 4, ee 2, ff 1. Tek dereceliler bb ve ff: devre yok, yol var ve uçları bb ile ff olmak zorunda.
Bir yol: b→a→c→b→d→c→e→d→fb\to a\to c\to b\to d\to c\to e\to d\to f. 8 kenarın hepsi bir kez kullanıldı.

Soru 3kolay

A multigraph has four vertices with degrees 5,3,3,35, 3, 3, 3. Does it have an Euler path?

Cevabı göster
No

Dört köşenin dördü de tek dereceli. Euler yolu en fazla 2 tek dereceli köşeye izin verir (uçlar). Ne devre ne yol var. (Königsberg köprüleri problemi tam olarak bu dereceler.)

Soru 4orta

GG has vertices v1,v2,v3,v4v_1,v_2,v_3,v_4 and edges v1v2,v1v4,v2v3,v2v4,v3v4v_1v_2, v_1v_4, v_2v_3, v_2v_4, v_3v_4. How many paths (walks) of length 2 are there from v1v_1 to v3v_3? Of length 3?

Cevabı göster
Length 2: 2. Length 3: 2

viv_i'den vjv_j'ye uzunluğu rr olan yol (walk) sayısı ArA^r'nin (i,j)(i,j) girdisi.
Uzunluk 2: ortadaki köşe hem v1v_1'e hem v3v_3'e komşu olmalı: v2v_2 ve v4v_4. A132=2A^2_{13} = 2 (v1v2v3v_1v_2v_3, v1v4v3v_1v_4v_3).
Uzunluk 3: A133=∑kA1k2Ak3=A122+A142=1+1=2A^3_{13} = \sum_k A^2_{1k}A_{k3} = A^2_{12} + A^2_{14} = 1 + 1 = 2 (v1v2v4v3v_1v_2v_4v_3, v1v4v2v3v_1v_4v_2v_3).

Soru 5orta

GG has vertices 1,…,71,\dots,7 and edges 12,13,23,34,45,46,56,6712, 13, 23, 34, 45, 46, 56, 67. Find all cut vertices and all cut edges (bridges).

Cevabı göster
Cut vertices 3, 4, 6; bridges 34 and 67

Yapı: üçgen {1,2,3}\{1,2,3\}, köprü 3434, üçgen {4,5,6}\{4,5,6\}, köprü 6767.
Kesme köşesi: silinince bileşen sayısı artan köşe. 3 silinirse {1,2}\{1,2\} kopar; 4 silinirse {1,2,3}\{1,2,3\} ile {5,6,7}\{5,6,7\} ayrılır; 6 silinirse 7 yalnız kalır. 1, 2, 5, 7 silinince graf bağlı kalır.
Köprü: üçgenin kenarları bir döngüde, köprü olamaz. Döngüde olmayan kenarlar 3434 ve 6767.

Soru 6orta

How many different Hamilton circuits does K5K_5 have? (Circuits that differ only in starting point or direction are the same.)

Cevabı göster
12

Başlangıç köşesini sabitle, kalan 4 köşeyi sırala: 4!=244! = 24. Her devre iki yönde sayıldı: 24/2=1224/2 = 12. Genel formül (n−1)!2\frac{(n-1)!}{2}.

Soru 7kolay

A simple graph has 8 vertices and every vertex has degree at least 4. Must it have a Hamilton circuit? Which theorem do you use?

Cevabı göster
Yes, by Dirac's theorem

Dirac: n≥3n \ge 3 ve her köşenin derecesi ≥n/2\ge n/2 ise Hamilton devresi vardır. Burada n/2=4n/2 = 4 ve her derece ≥4\ge 4. Koşul sağlanıyor, devre kesin var (örneğin K4,4K_{4,4} bu sınıfta).

Soru 8orta

Does K2,3K_{2,3} have a Hamilton circuit? A Hamilton path?

Cevabı göster
No circuit; yes, a path

İki parçalı grafta her kenar taraf değiştirir, devre A,B,A,B,…A,B,A,B,\dots diye gider ve iki tarafta eşit sayıda köşe gerektirir. 2≠32 \neq 3, Hamilton devresi yok.
Yol için tarafların farkı en fazla 1 olabilir: b1,a1,b2,a2,b3b_1, a_1, b_2, a_2, b_3 bir Hamilton yoludur.

Soru 9orta

Show that Q3Q_3 has a Hamilton circuit.

Cevabı göster
000, 001, 011, 010, 110, 111, 101, 100, back to 000

Q3Q_3'te iki köşe tam bir bit farklıysa komşu. Gray kodu bunu sağlar: 000→001→011→010→110→111→101→100→000000\to001\to011\to010\to110\to111\to101\to100\to000.
Ardışık her ikili tek bit farklı, son köşe 100100 ile 000000 da tek bit farklı. 8 köşenin hepsi bir kez geçiliyor.

Soru 10zor

Use Dijkstra's algorithm to find the length of a shortest path from aa to zz in the weighted graph with edgesab:4, ac:2, bc:1, bd:5, cd:8, ce:10, de:2, dz:6, ez:3ab{:}4,\ ac{:}2,\ bc{:}1,\ bd{:}5,\ cd{:}8,\ ce{:}10,\ de{:}2,\ dz{:}6,\ ez{:}3.

Cevabı göster
13 (a, c, b, d, e, z)

Kesinleşme sırası: aa (0). Komşular: b=4b = 4, c=2c = 2. En küçük cc (2): b=min⁡(4,2+1)=3b = \min(4, 2+1) = 3, d=10d = 10, e=12e = 12.bb (3): d=min⁡(10,3+5)=8d = \min(10, 3+5) = 8. dd (8): e=min⁡(12,8+2)=10e = \min(12, 8+2) = 10, z=14z = 14.ee (10): z=min⁡(14,10+3)=13z = \min(14, 10 + 3) = 13. zz (13) kesinleşir. Yol a,c,b,d,e,za, c, b, d, e, z.

Soru 11kolay

How many connected components does the graph with vertices 1,…,91,\dots,9 and edges 12,23,31,45,67,7812, 23, 31, 45, 67, 78 have?

Cevabı göster
4

Bileşenler: {1,2,3}\{1,2,3\} (üçgen), {4,5}\{4,5\}, {6,7,8}\{6,7,8\} (yol), {9}\{9\} (yalnız köşe). Yalnız köşe de bir bileşendir: toplam 4.

Soru 12zor

Find the vertex connectivity κ(K3,4)\kappa(K_{3,4}) and the edge connectivity λ(K5)\lambda(K_5).

Cevabı göster
kappa(K3,4) = 3, lambda(K5) = 4

K3,4K_{3,4}: 3 köşelik tarafı silersen geriye birbirine bağlı olmayan 4 köşe kalır, graf kopar. Daha azı yetmez: 2 köşe silsen bile her iki tarafta köşe kalır ve bir taraftaki her köşe karşı taraftakilerin hepsine bağlı. κ=3=min⁡(m,n)\kappa = 3 = \min(m,n).K5K_5: bir köşeyi ayırmak için onun 4 kenarını kesmek gerekir; daha az kenar silmek grafı koparmaz. λ(Kn)=n−1=4\lambda(K_n) = n - 1 = 4.

Doğrulama: Euler devre/yol varlığı node ile tüm kenar sıralamaları geri izlemeyle (backtracking) aranarak, Hamilton devreleri tüm köşe sıralamaları sayılarak, kesme köşeleri ve köprüler tek tek silinip bileşen sayılarak, yol sayıları komşuluk matrisinin kuvvetleriyle, bağlılık sayıları tüm alt kümeler denenerek, Dijkstra sonucu kodla hesaplanarak doğrulandı (verify/MAT2033/14.mjs).

Deftere not kartı

Walk: tekrar serbest. Path (simple): kenar tekrar etmez. Circuit: başladığı yere döner Connected: her iki köşe arasında yol var. Bileşen: maksimal bağlı parça (yalnız köşe dahil) Cut vertex / bridge: silinince bileşen sayısı artar. Döngüdeki kenar köprü OLAMAZ kappa <= lambda <= min derece; kappa(K_n) = lambda(K_n) = n - 1 v_i -> v_j uzunluk r yol sayısı = (A^r)_{ij} EULER (her KENAR bir kez), bağlı graf: devre <=> tüm dereceler çift; yol (devre değil) <=> TAM 2 tek köşe, uçlar onlar K_n devre: n tek; K_{m,n} devre: m ve n çift HAMILTON (her KÖŞE bir kez): genel kriter yok Dirac: n>=3, her deg >= n/2 -> devre var Ore: komşu olmayan her u,v için deg u + deg v >= n -> devre var Engeller: derece 1 köşe, kesme köşesi, bipartite ve taraflar eşit değil K_n'de Hamilton devresi sayısı (n-1)!/2; Q_n: Gray kodu Dijkstra: en küçük etiketi kesinleştir, komşuları güncelle (negatif ağırlık yok)