GRÁFELMÉLET ALAPVETŐ FOGALMAK ÉS TÉTELEK 1. Alapfogalmak Definíciók: - irányítatlan és irányított gráf, csúcshalmaz, élhalmaz, szomszédsági reláció - gráfok reprezentációi: szomszédsági mátrix, illeszkedési mátrix, pont-szomszédság lista, él lista,... - hurokél, párhuzamos él, egyszerű gráf, séta, út, kör - üres gráf, teljes gráf, páros gráf, hiperkocka, Petersen-gráf - Fokszámsorozat: d 1, d 2,..., d n a G gráf fokszámsorozata, ha G fokainak nem csökkenő sorozata. Ekkor tehát v(g) = V (G) = n és d 1 d 2... d n. Állítás: 2e(G) = n i=1 d i Kérdés: Mikor valósítható meg (másképpen: realizálható) egy fokszámsorozat valamely G gráffal? (i) {d i } n i=1 pontosan akkor valósítható meg, ha n i=1 d i páros (ii) {d i } n i=1 pontosan akkor valósítható meg hurokél nélküli gráffal, ha (a) d i páros és (b) d n d 1 +... + d n 1 (iii) {d i } n i=1 pontosan akkor valósítható meg egyszerű gráffal, ha a d 1,..., d n dn 1, d n dn 1,..., d n 1 1 (nem feltétlenül nem csökkenően felírt) sorozat is megvalósítható egyszerű gráffal Definíció: Fa: egyszerű, körmentes összefüggő gráf. Ághajtás operáció. Nagyon könnyű: Állítás: Legyen T fa n csúcson. Ekkor e(t ) = n 1. Nehezebb: Tétel: Tfh. n 2. A {d i } n i=1 természetes számokból álló sorozat pontosan akkor valósítható meg fával, ha d 1 > 0 és d i = 2n 2. 1
2 ALAPVETŐ FOGALMAK ÉS TÉTELEK Tétel: Tfh. n 2. Legyen {d i } n i=1 olyan természetes számokból álló sorozat, melyre d 1 > 0 és d i = 2n 2. Ekkor a {d i } n i=1 sorozatot megvalósító fák száma (n 2)! n i=1 1 (d i 1)!. Cayley-tétel: K n címkézett feszítőfáinak száma n n 2. Megjegyzés: Nem izomorf feszítőfákból jóval kevesebb van. Algoritmus: Prüfer-kódolás és visszafejtése. Az algoritmus elemzése alternatív bizonyítást ad a Cayley-tételre. 2. Éltesztelés Kezdetek, motiváció: Kombinatorikus csoport tesztelési módszer fertőző beteg megtalálására; N elemű csoportra 1 + log 2 N teszt elegendő (ennél kevesebb pedig nem is lehet elég, ez az úgynevezett információelméleti alsó korlát). Szorosan kapcsolódó mérnöki probléma: hibakeresés optikai hálózatokban. Feltevések: (1) összefüggő részgráfok gyorsan tesztelhetők úgynevezett monitorozó fényutakkal; (2) egyszerre legfeljebb egy meghibásodott él van. Feladat: egyértelműen azonosítani a hibás élt, ha van hiba, méghozzá minél kevesebb összefüggő részgráfhoz tartozó monitorozó fényúttal (a fényút nem feltétlenül jelent gráfelméleti értelemben vett utat, de mindenképpen séta). Könnyű látni: Ha a teszteknek nem kellene összefüggő részgráfoknak lenniük, akkor egy G gráfhoz elég lenne 1 + log 2 e(g) teszt (ennél kevesebb pedig nem is lehet elég, ld. fent). Ehhez a bináris kódkiosztó módszert használhatjuk, mely a következő: az éleket megszámozzuk 1-től e(g)-ig, majd ezeknek a számoknak a bináris alakját tekintjük. Az i- edik tesztben azok az élek szerepelnek, amiknek a bináris sorszámában az i-edik helyiértéken 1-es van. Könnyű látni, hogy ezekkel a tesztekkel egyértelműen azonosíthatjuk az éleket. A baj az, hogy általában az így megadott tesztek nem adnak összefüggő részgráfot, lásd pl. P n -et, az n pontú utat. Tétel: Tfh. G olyan gráf, mely tartalmaz két éldiszjunkt feszítőfát, legyenek ezek T 1 és T 2. Ekkor 2 + 2 log 2 e(g)/2 összefüggő teszt elég G éleinek teszteléséhez. Bizonyítás: Először vágjuk két egyforma (vagy majdnem egyforma, ha paritás miatt egyformák nem lehetnek) méretű részre az E(G) E(T 1 ) E(T 2 ) élhalmazt. Jelölje a két részt E 1 és E 2. Most legyen E 1 = E 1 E(T 1 ) és E 2 = E 2 E(T 2 ).
GRÁFELMÉLET 3 Ezekután E 1 -re és E 2 -re külön adjuk meg az összefüggő teszteket. Azzal kezdjük, hogy E 1 élei között tetszőlegesen kiosztjuk a bináris kódokat (a már korábban említett megszámozást használjuk). Majd ugyanezt végrehajtjuk E 2 -re is, binárisan megszámozzuk az éleit. 1 Az E 1 éleire a tesztek a következők: az i-edik teszt E 1 azon éleit tartalmazza, melyek kódjának az i-edik helyiértékén 1-es található, és emellett a T 2 fa minden élét. Mivel T 2 feszítőfa, így minden teszt összefüggő lesz, mivel mind tartalmazza T 2 -t. Hasonlóan teszünk E 2 -vel, csak itt az egyes helyiértékek által kijelölt élhalmazokhoz mindig T 1 -et vesszük hozzá. Külön-külön mindkét élhalmazt tudjuk így tesztelni (miért?), mindkét teszthalmaz 1 + log 2 e(g)/2 összefüggő tesztet tartalmaz, ahonnan már jön a tétel. Megjegyzés: Ha G 4-szeresen összefüggő 2, akkor biztosan van benne két éldiszjunkt feszítőfa. Ez elégséges, de nem szükséges feltétel. 3. Folyamok Definíció: Legyen G = G(V, E) irányított gráf, s és t két kitüntetett csúcsa, s t, és legyen c : E R + egy függvény. A H(G, s, t, c) hálózat ezek összessége, melyben s a forrás, t a nyelő, c pedig az élek kapacitását adja meg. Legyen f : E R egy függvény. Az f függvény folyam, ha teljesülnek a következők: Megengedettségi feltételek: minden e E(G)-re 0 f(e) c(e). Megmaradási törvények: minden v V {s, t}-re f(e) = f(e) e:vbe e:vke Az f folyam értéke é(f) = e:ske f(e) e:sbe f(e). {S, T }-vágás: S V, s S és T V, t T úgy, hogy S T = V és S T =. A vágás élhalmaza az E({S, T }) halmaz, mely azokat az éleket tartalmazza, amiknek egyik végpontja S-be, a másik pedig T -be tartozik. E({S, T }) éleit két részre bontjuk: E = ST azokat az éleket tartalmazza, amik S-ből T -be mutatnak, míg E = T S azokat, amik T -ből S-be irányulnak. Lemma: é(s, T ) = e:e ST f(e) e:e T S f(e) = é(f). Definíció: Az {S, T } vágás kapacitása az S-ből T -be menő élek (tehát ST élei) kapacitásainak összege. Jele: c(s, T ). 1 Fontos: a T1 és T 2 éleinek egyike se kapja a csupa 1-es kódot, különben a fák meghibásodásánál nem sikerül az egyértelmű azonosítás (miért is?). Köszönöm Rudas Ádámnak az észrevételt. 2 A folyamok tárgyalásánál megtalálható a többszörös összefüggőség definíciója.
4 ALAPVETŐ FOGALMAK ÉS TÉTELEK Könnyen látható: max é(f) min c(s, T ). f folyam {S,T } vágás Ennél több is igaz, ahogy az alább is látható. (biz. később) Maximális folyam - minimális vágás tétel (MFMV): Legyen H(G, s, t, c) egy hálózat. Ekkor max é(f) = min c(s, T ) f folyam {S,T } vágás (erre a fontos tételre angolul MFMC (max flow - min cut) néven hivatkoznak). Megjegyzés: Egyenlőségnél az S-ből T -be menő élek teljesen ki vannak használva, és T -ből S-be egyetlen élen át sem megy pozitív folyam. Definíció: Legyen P egy irányítatlan s t út (azaz olyan út, mely az irányítások törlésével kapott G-ben s-ből t-be vezet), és legyen f egy folyam a H( G, s, t, c) hálózatban. Az e E( G) E(P ) él az E elore (P ) halmazba tartozik, ha e-t P az irányításának megfelelően járja be. Ha az e élt az irányításával ellenkező irányban járja be P, akkor e E hátra (P ). A P út javító út az f folyamra nézve, ha - minden e E elore (P )-re f(e) < c(e) és - minden e E hátra (P )-re f(e) > 0. Legyen végül δ elore := min{c(e) f(e) : e E elore (P )}, δ hátra := min{f(e) : e E hátra (P )}, δ := min{δ elore, δ hátra }. Lemma: Legyen f egy folyam a H(G, s, t, c) hálózatban. Ha van P javító út f-re nézve, akkor az f folyam nem maximális értékű, van olyan f folyam a hálózatban, melyre é(f) + δ = é(f ). Megjegyzés: Elsőre elképzelhetőnek tűnhet, hogy egy f folyam nem maximális értékű egy H(G, s, t, c) hálózatban, de a hálózatban mégsincs rá nézve javító út. Ahogy a következő tétel mutatja, ez szerencsére nincs így. Tétel: Legyen f folyam a H(G, s, t, c) hálózatban. A következők ekvivalensek: (1) f maximális folyam (2) létezik olyan {S, T }-vágás, melyre é(f) = c(s, T ) (3) nincs javító út H(G, s, t, c)-ben f-re nézve
GRÁFELMÉLET 5 A fenti tétel bizonyításánál használjuk a következő fogalmat és az utána következő lemmát: Definíció: Az irányítások törlésével kapott P út javító út kezdemény H(G, s, t, c)-ben f-re nézve, ha P (i) s-ből indul és (ii) minden e E elore (P )-re f(e) < c(e) és (iii) minden e E hátra (P )-re f(e) > 0. Lemma: Legyen f maximális folyam H(G, s, t, c)-ben. Legyen S azon csúcsok halmaza, melyek elérhetők s-ből valamely javító út kezdeménnyel, és legyen T = V S. Ekkor {S, T } egy s-et és t-t elválasztó vágás (tehát t T ), és kapacitása, c(s, T ) = é(f). A fentiek már kiadják az MFMV tételt, a folyamok alaptételét. 3.1. Maximális folyam keresése algoritmussal. A Ford-Fulkerson-algoritmus a maximális folyamot keresi egy H(G, s, t, c) hálózatban. Leírása: Ford-Fulkerson-algoritmus (1) legyen f 0 (ez biztosan megengedett folyam; ha van más megengedett folyamunk, indulhatunk abból is) (2) S := {s} (3) Legyen és B elore = {x V S : y S úgy, hogy yx E és f( yx) < c( yx)} B hátra = {x V S : y S úgy, hogy xy E és f( xy) > 0} (4) Ha t (B elore B hátra ), akkor t-ből visszafelé menve találhatunk egy s t javító utat. Ennek mentén növeljük meg f-et, majd folytassuk a (2)-es lépéssel. (5) Ha t (B elore B hátra ), de B elore B hátra (a) Legyen x B elore B hátra tetszőleges (b) S := S + x, és folytassuk a (3)-as lépéssel (6) Ha B elore B hátra =, akkor megállunk f maximális folyam 3 Megjegyzés: Ha minden kapacitás egész szám (vagy azzá tehető felszorzással), akkor a fenti algoritmus biztosan véges sok lépésben megáll, hiszen minden javítás legalább egységnyivel növeli a folyam értékét. Ha valós aritmetikát feltételezünk, akkor lehetséges olyan hálózatot megadni, melyen a Ford-Fulkerson algoritmus nem áll meg véges időben, sőt, még az is lehetséges, hogy a kiszámolt folyamértékek nem konvergálnak az optimális megoldáshoz. 3 Ilyenkor ugyanis nincs javító út.
6 ALAPVETŐ FOGALMAK ÉS TÉTELEK Edmonds-Karp változat: használjunk mindig minimális hosszúságú javító utat (azaz olyat, ami a legkevesebb élt tartalmazza); ezt szélességi kereséssel meg lehet valósítani. Ekkor az így módosított algoritmus O(v(G) 4 ) lépésben biztosan megáll. (ha megáll, már nincsen javító út, tehát gyorsan megtalálhatjuk az optimális megoldást) Definíció: A H( G, s, t, c) hálózat uniform hálózat, ha minden G-beli él kapacitása egységnyi, azaz c 1. Legyen F E( G). Ekkor d ki F (x) = {e F : xke} és dbe F (x) = {e F : xbe}. Az az f függvény, mely F élein 1, másutt 0, pontosan akkor teljesíti a megmaradási törvényt, ha minden x V {s, t}-re d ki F (x) = dbe F (x). Állítás: Legyen F egy élhalmaz G-ben. Ekkor a következők ekvivalensek: (1) F folyamot határoz meg (2) ha x s, t, akkor d ki F (x) = dbe F (x) (3) F felírható a következő alakban: F = i P i j Q j k C k, ahol a P i, Q j és C k élhalmazok mind diszjunktak (tehát F tetszőleges éle pontosan egyben bukkan fel), és minden P i egy irányított s t út élhalmaza, minden Q j egy irányított t s út élhalmaza, végezetül minden C k egy irányított kör élhalmaza. Egy élhalmaz egyszerű, ha nincs benne irányított kör. Könnyű látni, hogy minden irányított kör kiiktatható F -ből úgy, hogy a megmaradt élhalmaz folyamot határoz meg, ha F is folyamot határozott meg. Ráadásul a két folyam értéke megegyezik. F -et egyszerűnek hívjuk, ha nincs benne irányított kör. Állítás: Legyen H(G, s, t, c) egy uniform hálózat. Ekkor van benne olyan f optimális folyam, melyet egy F egyszerű élhalmaz határoz meg, és a maximális folyamérték éppen az s t utak száma a fenti egyszerű dekompozícióban, Definíció: Egy L élhalmaz elvágó élhalmaz G-ben, ha elhagyása után nincs G-ben irányított s t út. Állítás: Minden {S, T }-vágás élhalmaza (S-ből T -be mutató élek) egyben elvágó halmaz. Megfordítva, minden L elvágó élhalmaznak van olyan részhalmaza, mely egy {S, T }-vágás élhalmaza. Menger-tétel: Legyen G egy irányított gráf, és s, t V ( G), s t. Ekkor max{k : P 1,..., P k éldiszjunkt s t utak} = min{ L : L E( G), G L ben nincs s t út}.
GRÁFELMÉLET 7 1. Következmény: (Menger-tétel irányítatlan gráfokban éldiszjunkt utakra) Legyen G egy irányítatlan gráf, és s, t két pontja. Ekkor max{k : P 1,..., P k éldiszjunkt s t utak} = min{ L : L E(G), G L ben nincs s t út}. 2. Következmény: (Menger-tétel irányított gráfokban pontdiszjunkt utakra) Legyen G egy irányított gráf, és s, t két pontja. Tfh. nincs st irányított él a gráfban. Ekkor max{k : P 1,..., P k pontdiszjunkt s t utak} = min{ U : U V (G) {s, t}, G U ban nincs s t út}. 3. Következmény: (Menger-tétel irányítatlan gráfokban pontdiszjunkt utakra) Legyen G egy irányítatlan gráf, és s, t két pontja, melyek nem szomszédosak. Ekkor max{k : P 1,..., P k pontdiszjunkt s t utak} = min{ U : U V (G) {s, t}, G U ban nincs s t út}. Definíció: Legyen k N. A G gráf k-szorosan élösszefüggő, ha tetszőlegesen elhagyva belőle legfeljebb k 1 élt, az így kapott gráf még összefüggő. Úgy is mondjuk, hogy G k-élösszefüggő. Hasonlóan, a G gráf k-szorosan pontösszefüggő, ha tetszőlegesen elhagyva belőle legfeljebb k 1 csúcsot az így kapott gráf még összefüggő. Ilyenkor G-t k-összefüggőnek is hívjuk. Tétel: Legyen G egy gráf és k N. 1. G pontosan akkor k-élösszefüggő, ha bármely x, y V (G)-re létezik k darab páronként éldiszjunkt xy út G-ben. 2. G pontosan akkor k-összefüggő, ha v(g) > k +1 és bármely x, y V (G)-re létezik k darab páronként pontdiszjunkt xy út G-ben (itt természetesen az utak belső pontjai nem lehetnek közösek) Jelölés: Legyen G egy gráf. Ha G összefüggő, akkor κ e (G) = a legnagyobb k, amire G k-élösszefüggő és κ(g) = a legnagyobb k, amire G k-összefüggő. Ha G nem összefüggő, akkor κ e (G) = κ(g) = 0. Trivi: κ e (G) κ(g) minden G gráfra. Egy fontos alkalmazás: Projektkiválasztás folyamok segítségével.
8 ALAPVETŐ FOGALMAK ÉS TÉTELEK 4. Párosítások Definíciók: Legyen G egy gráf. M E(G) párosítás, ha az M-beli éleknek nincs közös végpontja ( v(m) = 2 M, úgy is mondjuk, hogy M élei függetlenek - emiatt hurokél nem lehet benne egy párosításban sem). Teljes párosítás: M = v(g)/2, tehát ekkor G páros sok csúcsú gráf. Maximális párosítás: Mohó párosítási algoritmus ν(g) = max{ M : M párositás G ben}. (1) E = {e 1, e 2,..., e m }, M :=, i := 1 (2) Ha M e i párosítás, akkor M := M e i (3) Ha i < m akkor i := i + 1 és folytassuk a 2-es lépéssel (4) Megállunk, a megtalált M élhalmaz a párosításunk Legyen π egy permutáció [m]-en. Ha a fenti 1-es lépésben π szerinti sorrendben vesszük az éleket, a megtalált párosítás méretét ν π (G)-vel jelöljük. Állítás: ν(g)/2 ν π (G) ν(g). 4.1. Véletlen algoritmus teljes párosítás létezésére páros gráfokban. 4 Definíció: Legyen G egy A és F csúcsosztályokkal rendelkező páros gráf (A az alsó, F a felső csúcsok halmaza). A B G páros szomszédsági mátrix a következőképpen épül fel: a sorai A elemeivel, az oszlopai F elemeivel vannak megcímkézve. A a-adik sor f-edik eleme pontosan akkor 1-es, ha a és f szomszédosak, különben 0. Észrevétel: Ha det(b G ) 0, akkor van legalább egy nemnulla kifejtési tagja a determinánsnak, annak elemei mind 1-esek, ez tehát azt jelenti, hogy ekkor G-ben van teljes párosítás. Ez megfordítva már nem igaz: lehet úgy nulla a determináns, hogy legyen nemnulla kifejtési tagja B G -nek. Azaz ha det(b G ) = 0, attól még lehet teljes párosítás G-ben. Definíció: Legyen B egy n n-es mátrix. Ekkor B permanense a következő képlettel van meghatározva: n per(b) = B i,π(i). π permutáció i=1 Látható, hogy per(b G ) értéke éppen G teljes párosításainak száma. Sajnos a permanens jelenlegi tudásunk szerint nagyon időigényesen számolható csak ki, így visszatérünk a determináns felhasználására. Definíció: Az X G egy e(g) változós polinom, melyet úgy kapunk, hogy B G -ben az 1-eseket kicseréljük különböző változókra, majd a kapott mátrixnak vesszük a formális kifejtését. Tétel: Az X G polinom pontosan akkor azonosan nulla, ha G-ben nincs teljes párosítás. 4 Ezt az alfejezetet nem kell tudni!
GRÁFELMÉLET 9 Bár X G kifejtésében a nemnulla tagok száma kezelhetetlen lehet már kis v(g)-re is, de ha det(x G )-ben konkrét értékeket adunk a változóknak, az így kapott determináns már gyorsan kiszámolható. Most megadunk egy véletlen módszert: Véletlen algoritmus teljes párosítás létezésének eldöntésére (1) Minden e E(G)-re véletlenül, egyenletes eloszlással kiveszünk egy r e számot az {1, 2,..., N} halmazból, a választások függetlenek egymástól (itt N egy nagy egész szám). (2) Számoljuk ki a det(x G ) xe=r e értéket, azaz az x e változó helyébe helyettesítsük be az r e számot minden e E(G)-re, majd vegyük a determinánst. (3) Ha a kapott determináns nem nulla, akkor a kimenet: biztosan van teljes párosítás G-ben. Ha nullát kaptunk, akkor a kimenet: valószínűleg nincs teljes párosítás G-ben. Miért működik a fenti módszer? Hasznos intuíció a következő: hogyha veszünk egy k- adfokú egyváltozós valós polinomot, akkor annak legfeljebb k különböző gyöke lehet, így ha pl. egy 1 és N közti véletlen egész számot helyettesítenénk be a változó helyébe, kicsi eséllyel, k/n valószínűséggel kapnánk nullát - hacsak nem volna a polinom azonosan nulla. A mi esetünkben det(x G ) egy e(g) változós polinom, tehát jóval bonyolultabb viselkedést is elvárhatnánk, de szerencsére a fenti gondolatmenet általánosítható. Schwartz-lemma: Legyen p(x 1,..., x k ) R[x 1,..., x k ] egy nem azonosan nulla polinom, és legyenek az r i számok egyenletes eloszlású független véletlen változók az {1,..., N} halmazból. Ekkor P (p(r 1,..., r k ) = 0) deg(p) N, ahol deg(p) a p polinom foka. 4.2. Javító utas módszerek. Definíció: Legyen G egy gráf, M egy párosítása, P pedig egy P = v 0 e 1 v 1 e 2... v k 1 e k v k út G-ben. P javító út M-re, ha v 0 és v k párosítatlan csúcsok és P minden páros indexű éle M-be tartozik. (ekkor persze k páratlan) Triviális: Ha létezik P javító út M-re, akkor G-ben van M-nél több élű párosítás. Ennél több is igaz: Berge-tétel: Pontosan akkor nincs nincs javító út M-re, ha M optimális. néhány gyakorlaton tárgyalt feladatból következik) Észrevétel: A mohó algoritmus egy triviális javító utat keres minden lépésében. (a bizonyítás Definíció: Adva van a G gráf és egy M párosítása. P = v 0 e 1 v 1 e 2... v k 1 e k v k javító út kezdemény M-re, ha v 0 párosítatlan, és minden páros indexű él M-beli. Javító út kezdeményes párosítási algoritmus Adva van G és benne egy M párosítás. (1) Legyen R V V (M), K := R; B :=, C := K B (2) AMÍG találunk k K pontot, melynek van s C (azaz címkézetlen) szomszédja
10 ALAPVETŐ FOGALMAK ÉS TÉTELEK 2.1 Ha s V (M), akkor találtunk egy javító utat s-be, a k-ba vezető javító út kezdeményt meghosszabbítva. Ebben az esetben Sikeres a keresés. 2.2 Ha létezik t V úgy, hogy st M, akkor mohó címkenövelés: K := K t, B := B s és C := C {s, t}. (3) Ha az AMÍG ciklusból nem Sikeres kereséssel jöttünk ki, akkor Sikertelen a keresés. Észrevétel: az algoritmus folyamán végig K B = R. Magyar módszer (Harold Kuhn 1955-ben, König Dénes és Egerváry Jenő eredményeit felhasználva): Legyen G(A, F ) egy páros gráf, M pedig egy párosítása. M pontosan akkor maximális, ha a Javító út kezdeményes párosítási algoritmus az R = A (V V (M)) indulással 5 nem talál javító utat, azaz Sikertelen kereséssel ér véget. Definíció: Legyen G(A, F ) páros gráf. A H A halmaz König-akadály az A halmazban, ha N(H) < H. 1. Következmény: A G(A, F ) páros gráfban pontosan akkor van A-t lefedő párosítás, ha A-ban nincs König-akadály. 2. Következmény: A G(A, F ) páros gráfban pontosan akkor van teljes párosítás, ha A = F és A-ban nincs König-akadály. Definíció: L V lefogó ponthalmaz, ha minden e E élnek van L-beli végpontja. Könnyű, de fontos: Ha L lefogó ponthalmaz és M párosítás, akkor L M. Ennek következménye: ha L = M, akkor L minimális míg M maximális méretű. Edmonds-algoritmus: Ha G nem páros, ezzel kereshetünk benne maximális párosítást. Kiindulás: adva van G és benne egy M párosítás. Javító utat keresünk M-re. (1) Legyen R = V V (M), K := R; B :=, C := K B (2) Mohó címkenövelés elakadásig (ezzel felépítünk egy F keresőerdőt). (3) AMÍG találunk k, k K pontot, melyek szomszédosak - legyenek r és r azok az R-beli csúcsok, melyekből indulva címkéztük meg k-t illetve k -t 3.1 Ha r r, akkor találtunk egy javító utat: az r-ből induló, k-ba vezető javító út kezdeményből a kk élen át eljuthatunk r -be. Ebben az esetben Sikeres a keresés. 3.2 Ha r = r, akkor Edmonds-eset. (Ezt külön írjuk le.) (4) Ha az AMÍG ciklusból nem Sikeres kereséssel jöttünk ki, akkor Sikertelen a keresés. Edmonds-eset: Az e = kk él a kereső erdő r-ben gyökerező részfájában meghatároz egy C e kört. A C e kört összezsugorítjuk, az így kapott gráfot G-vel jelöljük. Ezzel egyben kaptunk egy F keresőerdőt és egy M párosítást. Ezután folytassuk a 2-es (Mohó címkenövelés) lépéssel. 5 Tehát R az összes párosítatlan alsó pont halmaza.
Definíció: Legyen R V (G) és GRÁFELMÉLET 11 β(r) = c 1 (G R) R, ahol c 1 (G R) a G R páratlan csúcsszámú komponenseinek száma. R Tutte-akadály, ha β(r) > 0. Könnyű: Ha M párosítás, akkor β(r) n 2 M =: δ(m); δ(m) a párosítatlan csúcsok száma. Megjegyzés: Ha az Edmonds-algoritmus Sikertelen kereséssel áll meg, akkor a K halmaz az aktuális G v gráfban független halmaz, és ekkor β(b) = c 1 (G v B) B = K B, ami éppen a fák száma a kereső erdőben. Pontosan ennyi csúcs marad párosítatlan G-ben. Tutte-tétel: G-ben pontosan akkor van teljes párosítás, ha nincs benne Tutte-akadály. Berge-formula: max{β(t ) : T V (G)} = min{δ(m) : M párosítás} Petersen-tétel: Minden kétszeresen élösszefüggő 3-reguláris gráfban van teljes párosítás. Egyéb párosítással kapcsolatos optimalizálási kérdések: G éleit súlyozzuk keressünk maximális súlyú párosítást, keressünk minimális súlyú teljes párosítást! 5. A kínai postás problémája Definíció: Legyen G összefüggő, legyen l : E(G) R + élsúly függvény. Egy S = x 0 e 1 x 1 e 2 x 2... x s 1 e s x s sétára l(s) = e S l(e). A célunk megoldani az alábbi minimalizálási feladatot, és megtalálni az optimális S sétát: min{l(s) : S zárt séta, melyre E(S) = E(G)}. A probléma Mei-ko Kwan kínai matematikus után kapta a nevét. Ha van Euler-kör G-ben, a megoldás trivin az Euler-kör maga. Általában a következő algoritmust használhatjuk (Edmonds): Kínai postás probléma megoldása (1) G-ben meghatározzuk a páratlan fokú pontok Q halmazát. (2) Q összes u, v pontpárjára meghatározzuk a P (u, v) legrövidebb utat (pl. a Dijkstraalgoritmussal). (3) Készítünk egy F segédgráfot Q-n: ebben minden lehetséges él szerepel, az uv él súlya l(uv) = l(p (u, v)). (4) Vesszük F legkisebb súlyú teljes párosítását, legyen ez M. (5) M éleit hozzáadjuk G-hez, majd az így kapott gráfban Euler-kört keresünk. Ez lesz a probléma optimális megoldása. Állítás: Az optimális körséta minden élen legfeljebb kétszer halad át.
12 ALAPVETŐ FOGALMAK ÉS TÉTELEK Figure 1. Dirac-csavar 6. Hamilton-kör, Hamilton-út Definíció: Egy G gráf Hamilton-köre olyan kör, mely G minden csúcsán pontosan egyszer halad át. A Hamilton-út olyan út, mely G minden csúcsát tartalmazza. Könnyű: Ha G egyszerű gráf, akkor van benne δ(g) + 1 hosszú út. Ha δ(g) elég nagy, sokkal többet állíthatunk. Dirac-tétel: Legyen G egyszerű, legalább 3 pontú gráf. Ha G minimális foka, δ(g) n/2, akkor G-ben van Hamilton-kör. Ore-tétel: Legyen G egyszerű gráf legalább három ponton. Tegyük fel, hogy ha x és y különböző csúcsok G-ben, melyek nem szomszédosak, akkor d(x) + d(y) v(g). Ekkor G-ben van Hamilton-kör. (ezt bizonyítottuk, jön belőle a Dirac-tétel) Fontos fogalom a bizonyításban: Dirac-csavar (vagy Dirac-transzformáció). Az ábrán látható a kilenc csúcsú, fekete élekből álló P út. Ha léteznek a kékkel jelölt x 1 x 6 és x 5 x 9 élek E(G)- ben, akkor találhatunk egy kilenc hosszú kört (pirossal jelölve), mely P minden csúcsát tartalmazza. Definíció: Legyen α(g) = max{ I : I V (G), e(g[i]) = 0} a legnagyobb független halmaz mérete G-ben. Chvátal-Erdős-tétel: Legyen G egyszerű gráf legalább 3 csúcson. Ha κ(g) α(g), akkor G-ben van Hamilton-kör. Megjegyzés: Bár a Dirac-tétel vagy a Chvátal-Erdős-tétel megad egy-egy elégséges feltételt Hamilton-kör létezésére, nem ismert egyszerű (polinom időben ellenőrizhető) szükséges és elégséges feltétel Hamilton-körökre. Ráadásul a Hamilton-kör probléma NP-teljes. 7. Gráfok színezése Definíció: Legyen G egy gráf. Az s : V (G) N függvény jó csúcsszínezése G-nek, ha minden xy E(G)-re s(x) s(y). (Ha G-nek van hurokéle, nem lehet jó csúcsszínezése.)
GRÁFELMÉLET 13 Jelölés: χ(g) = min{k : s : V (G) [k] jó csúcsszinezés}, tehát a legkisebb szín szám, ami szükséges. χ(g)-t G kromatikus számának is mondjuk. Egy lehetséges alkalmazás: Legyen V feladatok halmaza. Bizonyos feladatokat végre tudunk hajtani egyszerre, más feladatok kizárják a párhuzamos végrehajtást. Készítünk egy G gráfot. Ha két feladatot nem tudunk egy időben végrehajtani, akkor a megfelelő két pontot összekötjük éllel G-ben. Ekkor a feladatok végrehajtásához szükséges lépések száma éppen χ(g). Észrevétel: χ(g) = 1 akkor és csak akkor, ha e(g) = 0. Ha T fa, akkor 2 szín elég, így χ(t ) = 2. Ha G-ben van páratlan kör, akkor χ(g) 3. Állítás: χ(g) = 2 pontosan akkor, ha G páros gráf. Mohó színezési algoritmus: Egy π permutáció szerinti sorrendben vesszük G csúcsait. Az i-edik csúcsot azzal a legkisebb színnel színezzük, melyet a már színezett szomszédai nem foglaltak még le. Állítás: Bármely hurokél mentes G gráfot tudunk a mohó algoritmussal legfeljebb (G)+1 színt felhasználva színezni (itt (G) a G maximális foka). Brooks-tétel: Legyen G összefüggő, hurokél mentes gráf. Ha G nem teljes gráf vagy páratlan kör, akkor χ(g) (G). (nem bizonyítottuk) Megjegyzés: Az optimális számú színnel való színezés nagyon nehéz algoritmikus probléma, nem ismert rá hatékony módszer (éppúgy NP-teljes, mint a Hamilton-kör probléma). Brooks tétele általában nem éles, sokszor a maximális foknál jóval kevesebb szín elég. Gyengített Brooks-tétel: Legyen G egy összefüggő, hurokél mentes gráf, mely nem reguláris. Ekkor χ(g) (G). A gyengített Brooks-tétel bizonyítása sugall egy színezési heurisztikát: a fokszámok szerint rendezzük a csúcsokat, és kezdjük a mohó színezést a nagy fokúakkal, egyre kisebb fokúak felé haladva. Gallai-Roy-Vitaver-tétel: Legyen G egy hurokél mentes gráf, és legyen D a G éleinek valamely irányításával kapott gráf. Ekkor χ(g) l(d) + 1, ahol l(d) jelöli D leghosszabb irányított útjának hosszát. Megfordítva, bármely G-hez tartozik olyan irányítás, melyre χ(g) = l(g) + 1. Állítás: Minden háromszögmentes, n pontú gráf kromatikus száma legfeljebb 2 n. Definíció: Legyen G egy gráf. Az s : E(G) N függvény jó élszínezése G-nek, ha minden xy, xz E(G)-re s(xy) s(xz) (azaz közös végponttal rendelkező élek színe különböző; mivel akár párhuzamos élek is lehetnek G-ben, a közös pontok száma 2 is lehet). Jelölés: χ e (G) = min{k : s : E(G) [k] jó élszinezés}, tehát a legkisebb szín szám, ami szükséges. χ e (G)-t G élkromatikus számának is mondjuk. Könnyű: (G) χ e (G). Tétel (König): Legyen G páros gráf. Ekkor χ e (G) = (G).
14 ALAPVETŐ FOGALMAK ÉS TÉTELEK Vizing-tétel: ( (G) ) χ e (G) (G) + 1. (nem bizonyítottuk) Színezéssel kapcsolatos: Hadwiger-sejtés, Kuratowski-tétel, Wagner-tétel. 7.1. Röviden síkgráfokról. 6 Definíció: Síkbarajzolás, síkgráf. Tartomány. Síkgráf duálisa. Euler-formula: Minden G síkgráfra t + c = e + 2, ahol t jelöli G tartományainak számát, c a pontjainak száma és e az éleinek száma. 1. Következmény: (1) Ha G egyszerű síkgráf legalább 3 ponton, akkor e(g) 3 v(g) 6. (2) Ha G egyszerű páros síkgráf legalább 3 ponton, akkor e(g) 2 v(g) 4. 2. Következmény: (1) miatt K 5 nem síkgráf, míg (2)-ből következik, hogy K 3,3 (a három ház - három kút gráf) sem síkgráf. 3. Következmény: Minden G egyszerű síkgráfnak van olyan pontja, melynek foka legfeljebb 5. Emiatt minden egyszerű síkgráfot lehet 6 színnel színezni. Híres kérdés volt: Lehet-e minden síkgráf pontjait 4 színnel jól színezni? Eredetileg a tartományokra vonatkozott a kérdés (térkép országainak színezése 4 színnel), de a duálisra áttérve már pontszínezési kérdés lesz belőle. Az 1850-es években vetette fel Francis Guthrie. Az évek során egy hasznos hibás megoldás is született: Kempe hibás bizonyítása, de jó módszere vezetett el az Ötszín-tételhez, amit Heawood bizonyított. Végül 1976-ban oldotta meg Appel és Haken, részben számítógep felhasználásával ez a Négyszín-tétel. Robertson, Sanders, Seymour és Thomas nagyban egyszerűsítette a bizonyítást, de a még így is sok megvizsgálandó eset miatt nekik sem sikerült elkerülni a számítógépek használatát. 8. Extremális gráfelmélet 8.1. Független halmazok, klikkek. Definíció: Legyen G egyszerű gráf. H V (G) független halmaz, ha e(g[h]) = 0, azaz H-beli csúcsok között nem megy él G-ben. Jelölés: α(g) = max{ H : e(g[h]) = 0}. H V (G) klikk, ha e(g[h]) = ( ) H 2, azaz bármely két H-beli csúcs között megy él G-ben. Jelölés: { ( )} H ω(g) = max H : e(g[h]) =. 2 Könnyű látni: α(g) = ω(g). Mohó algoritmus α(g) becslésére (1) F :=, T := V (G) (2) AMÍG T (a) Legyen x T tetszőleges. (b) Legyen F = F + x és T = T x N(x) (3) Kimenet: az F független halmaz 6 A megcsillagozott részek BSc-s anyagba tartoznak, itt csak emlékeztetőül szerepelnek.
GRÁFELMÉLET 15 Könnyű látni az algoritmusból: α(g) v(g)/( (G) + 1). Ennél több is igaz általában: Caro-Wei-tétel: α(g) v V (G) 1 d(v) + 1. 8.2. Turán-tétel. Definíció: Legyen k, n N úgy, hogy 2 k n. A T n,k Turán-gráf csúcshalmaza k diszjunkt osztályból áll: A 1,..., A k, ahol A i A j 1 (ha k n, akkor minden osztály ugyanakkora). T n,k élei: ha 1 i j k, akkor minden x A i szomszédos minden y A j -vel, más élek nincsenek. Definíció: Legyen G és F két gráf. Azt mondjuk, hogy F részgráfja G-nek, ha megkaphatjuk F -et G-ből csúcsok és élek elhagyásával. Jele: F G. A G gráf F -mentes, ha F G. Trivi: T n,r nem tartalmaz K r+1 -et, azaz K r+1 -mentes. Turán-tétel: Legyen 3 r N és G egy n csúcsú egyszerű gráf, mely K r -mentes. Ekkor 8.3. Ramsey-elmélet. 7 Definíció: Legyen G egyszerű gráf. Ekkor e(g) e(t n,r 1 ). Ramsey(G) = R(G) = max{α(g), ω(g)}. Másképpen nézve: G éleit színezzük zöldre, és amik nincsenek benne G-ben, azokat pirosra. Így beszíneztük az n = v(g) csúcsú K n éleit. Homogén halmaznak hívjuk azt a H V (G) csúcshalmazt, melyen belül minden él ugyanolyan színű vagy mind piros, vagy mind zöld. Ramsey-tétel: Legyen k N. Ha n 4 k, akkor akárhogy színezzük két színnel K n éleit, találunk k méretű homogén halmazt. Tehát ha G egy n csúcsú egyszerű gráf, akkor R(G) 1 2 log 2 n. 9. Kisvilág gráfok Előzmények, példák: Karinthy Frigyes egy novellája és Stanley Milgram híres csomagküldési kísérlete. A Hollywood-gráf. Ismeretségi hálózatok, akár irodalmi művekben is (pl. Homérosz: Íliász, Hugo: Nyomorultak). Telefonhívások gráfja. Anyagcsere gráfja. Az agy neuronhálózata. Idegrendszer. Táplálékláncok. Általános tulajdonságok: - Kicsi átmérő ( Milyen kicsi a világ?! ), de legalábbis kicsi átlagos átmérő (azaz a legtöbb pontpár közel van egymáshoz). - A fokszámeloszlás hatványtörvényt követ: a k fokúak aránya C/k s, ahol C és s állandók (ezek a skálafüggetlen gráfok) - Viszonylag kevés él, és mégis sok háromszög, amin a következő értendő: ha x-nek y és z is szomszédja, akkor nagyobb arányban lesz y és z szomszédos, mint ami az élek számából egyenletes élelosztás esetén következne. 7 Nem kell tudni, de érdemes tudni.
16 ALAPVETŐ FOGALMAK ÉS TÉTELEK - A véletlen támadásoknak jól ellenállnak, a célzott támadások ellen jóformán védtelenek 9.1. Az Albert-Barabási-modell egy skálafüggetlen gráftípus generálására. A kisvilág gráfok megértéséhez fontos ilyen gráfokat generálni. A most tárgyalandó módszert Albert Réka és Barabási Albert-László dolgozta ki. Induljunk ki egy élből, majd lépésenként egy új pontot és egy rá illeszkedő új élt adunk a gráfhoz. A következő szabály szerint építkezünk: ha már van n csúcsom, x 1,..., x n, és x n+1 az új csúcs, akkor x n+1 -et d(x i ) n j=1 d(x j) valószínűséggel kössük össze az x j csúccsal. A valószínűségek összege 1, tehát mindig lesz x n+1 -nek szomszédja az első n csúcs közül. Az eredmény minden lépésben egy fa lesz, melynek fokszámeloszlása hatványtörvényt követ s = 3 kitevővel 8. Kiválóan ír le egyes fizikai vagy kémiai folyamatokat, pl. a polimerizációt. Ha az új pontot több már meglévő ponttal is összeköthetem a fenti szabállyal analóg módon, akkor persze már nem fát kapunk, pl. háromszögek is lehetnek a keletkező gráfban. 9.2. A Girvan-Newman-algoritmus közösségek megkeresésére. Az adatbányászati alkalmazásoknál az egyik fő cél a közösségek 9 kimutatása. A közösség fogalmára többféle definíció is ismert, mi a következőt használjuk: egy gráfban közösségnek tekintjük a csúcsoknak egy K részhalmazát, ha igaz, hogy K-n belül nagyobb az élsűrűség, mint K és a komplementere között. Ha egy gráf nem összefüggő, akkor komponensei nyilvánvalóan közösségeknek tarthatók. De persze a komponenseket belülről is tagolhatják további közösségek. A közösségek kimutatására szolgáló sok módszerből egyet ismertetünk, melyet Michelle Girvan és Mark Newman adott meg. Legyen G egy gráf és tfh. e = uv E(G). Definiáljuk a p(x, y) függvényt minden x, y V (G), x y pontpárra: P (x, y) = az x-et y-nal összekötő minimális hosszú utak halmaza, és legyen p(x, y) = P (x, y). Most legyen p(e; x, y) = {P : P P (x, y) és e P}, tehát azon minimális hosszú, x-et y-nal összekötő utak száma, amik tartalmazzák az e élt. Végül a fogalom, amiért az előző jelöléseket bevezettük: b(e) = (x,y) ( V (G) 2 ) p(e; x, y) p(x, y). A b(e) függvény 10 annál nagyobb, minél többször szerepel e minimális hosszú utakban. Bevezetését a következő megfontolás indokolja: ha e az egyetlen él, mely két részgráfot összeköt G-ben, akkor a két részgráf pontjai között menő minimális hosszú utak mindegyike tartalmazni fogja e-t, tehát b(e) szükségképpen nagy lesz. Ha viszonylag kevés él köt össze két részt, az összekötő élek között még mindig lesz olyan, ami sok minimális hosszú útban 8 Ez Bollobás, Riordan, Spencer és Tusnády eredménye. 9 Sok a hasonlóság klaszterezéssel. 10 Angol neve edge betweenness, azaz él köztesség.
GRÁFELMÉLET 17 szerepel, hisz az átlag még mindig nagy szám lesz. Tehát ha a gráf jól szétválasztható pontdiszjunkt közösségekre, akkor néhány nagy b(.) értékű él elhagyása után szét fog esni komponensekre. Az algoritmus itt sem áll meg: rögzítjük a pillanatnyi állást, majd tovább dobáljuk el az éleket a b(.) szerint, hogy a komponensek/közösségek belső szerkezetét is megismerjük. Pontos leírás: Girvan-Newman-algoritmus (1) Minden e E(G)-re kiszámoljuk b(e) értékét. (2) Legyen e a legnagyobb b(.) értékű él. Az e élt töröljük a gráfból: G := G e. (3) Ha E(G), akkor folytassuk az (1)-es lépéssel. Nyomon követve az éltörlésekkel kapott gráfsorozatot, képet kapunk a közösségekről. 9.3. Kevés szó véletlen gráfokról. 11 Az Albert-Barabási-modell egy véletlenül felépülő gráfot ad. Az első véletlen gráfokat Gilbert illetve Erdős Pál és Rényi Alfréd definiálta nagyjából 50 évvel ezelőtt. Az ún. Erdős- Rényi-modellben a G(n, p) véletlen gráf tulajdonságait vizsgáljuk. Egy G(n, p) gráf a következőképpen épül fel: minden különböző pontokból álló pontpárra a többi választástól függetlenül p valószínűséggel behúzzuk a pontpárt összekötő élt, míg (1 p)-vel a pontok nem lesznek szomszédosak. Néhány érdekes p érték (a felsorolt tulajdonságok mind nagy, n-ben 1-hez tartó valószínűséggel teljesülnek) - p = 0-nál nincs egyetlen élünk sem - p = 1/n-nél lesz kb. log n méretű komponens a gráfban - ha p = K/n, ahol K egy nagy rögzített szám, akkor bár a gráf nem lesz összefüggő, de lesz egy nagy komponense, ami a pontok túlnyomó részét tartalmazza (érdekes, hogy pl. már K = 2 ad egy viszonylag nagy komponenst!) - ha p = log n log log n n, akkor a gráf összefüggő lesz, sőt, egész kicsivel, log n -nel megnövelve ezt a p-t, már Hamilton-kör is lesz - ha p = 1/ n, akkor sok háromszög lesz - p = 1/2-nél α(g), ω(g) log n (Erdős Pál ezt használta ki, hogy a Ramseyszámokra megadja híressé vált korlátját) - p = 1-nél a gráf éppen K n Alkalmazásuk: A matematikának szinte minden területén előfordulnak, algoritmusok kidolgozásánál, elemzésénél is fontosak. A kisvilág gráfok közösségei sokszor ilyen véletlen 11 Érdekesség, nem része a tananyagnak.
18 ALAPVETŐ FOGALMAK ÉS TÉTELEK gráfok tulajdonságaival rendelkeznek, így az egyes közösségekre sokszor akár Erdős-Rényiféle véletlen gráfként is érdemes lehet tekinteni.