GRÁFELMÉLET ALAPVETŐ FOGALMAK ÉS TÉTELEK 1. Alapfogalmak, fák 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 mondva: 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 Nem volt előadáson, így nem kell tudni a következő tételt: 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 1 (n 2)! (d i 1)!. i=1 Cayley-tétel: K n címkézett feszítőfáinak száma n n 2. A Cayley-tételt bebizonyíthatjuk például az előző tétel segítségével, leszummálva az ott adott értéket minden feszítőfához tartozó {d i } n i=1 fokszámsorozatra. Megjegyzés: Nem izomorf feszítőfákból jóval kevesebb van, hiszen pl. egy tetszőleges feszítőfából könnyen kaphatunk akár nagyon sok különböző címkézett fát, ha minden lehetséges módon átcímkézzük a pontjait. Ezzel együtt K n nem izomorf feszítőfáinak száma még mindig óriási! A Cayley-tételt az alábbi Prüfer-kódoló algoritmus segítségével bizonyítottuk. Prüfer-kódolás: Vegyük le a legkisebb indexű levelet, és írjuk a már meglévő kódhoz hozzá a szomszédja indexét, amíg legalább három pontja van a fának. Ha már csak két pont maradt, megállunk, kész a fa Prüfer-kódja. A Prüfer-kód egyértelműen visszafejthető. Az algoritmus elemzése alternatív bizonyítást ad a Cayley-tételre, hiszen az összes lehetséges n n 2 különböző n 2 hosszú kódsorozathoz egyértelműen rendelhetjük hozzá K n feszítőfáit. 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 a 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). Ha nincs hibás él, arról is tudnunk kell. 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. Ezekkel a tesztekkel valóban 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
GRÁFELMÉLET 3 pontú utat. Az út esetében mindegy, hogyan számozzuk meg az éleket, a bináris kódkiosztó módszerrel kapott élhalmazok java része nem lesz összefüggő, ha n > 3 azaz a módszer utakra nem segít. Van azért olyan viszonylag általános eset, amikor a bináris kódkiosztás kicsit megváltoztatva majdnem optimális megoldást ad: 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 ). 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. Fontos: a T 1 é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?). 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ő 1, 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 1 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 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 ). 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 }.
GRÁFELMÉLET 5 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 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}, B elore :=, B hátra := (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
6 ALAPVETŐ FOGALMAK ÉS TÉTELEK (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 2 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. 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. Nem az Edmonds-Karp-féle változat a leggyorsabb algoritmus a folyamprobléma megoldására. Számos hatékony módszert dolgoztak már ki, ezek némelyike teljesen más elveken alapszik, mint a Ford-Fulkerson-algoritmus (tehát nem javító utak keresésén). Jelenleg is intenzív kutatások folynak a területen, a wikipedia jó áttekintést ad a pillanatnyi helyzetről. 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. 2 Ilyenkor ugyanis nincs javító út.
GRÁFELMÉLET 7 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}. 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.
8 ALAPVETŐ FOGALMAK ÉS TÉTELEK 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. Adva vannak a P 1,..., P k projektek és a megvalósításukhoz szükséges Q 1,..., Q l eszközök. A P i projekttől r(p i ) bevételt remélhetünk, a Q j eszköz költsége c(q j ) (itt 1 i k és 1 j l). Tudjuk, mely projekteknek mely eszközökre van szüksége a megvalósításhoz. Mely projekteket érdemes megvalósítani, hogy maximális haszont érjünk el? 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 (tehát 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: ν(g) = max{ M : M párositás G ben}. Mohó párosítási algoritmus (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. Gyakorlaton láttuk, hogy páros gráfokban maximális méretű (ha lehetséges, akkor teljes) párosítást alkalmasan megkonstruált hálózaton egy folyamproblémát megoldva is találhatunk. Később látunk egy másik módszert is páros gráfok párosításaira. Az ebben a fejezetben tárgyalt véletlen algoritmus azért érdekes, mert a többivel ellentétben hatékonyanl párhuzamosítható. 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, G-nek csak olyan éle lehet, amelyik A-beli és F -beli pontot köt
GRÁFELMÉLET 9 össze). 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. Bár X G kifejtésében a nemnulla tagok száma kezelhetetlenül nagy 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 páros gráfokban (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ő: ha 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}
10 ALAPVETŐ FOGALMAK ÉS TÉTELEK halmazból. Ekkor P (p(r 1,..., r k ) = 0) deg(p) N, ahol deg(p) a p polinom foka. A mi esetünkben det(x G ) foka n, tehát elég a N = 2n választás, hogy a tévedés valószínűsége legfeljebb 1/2 legyen. Ezután k független ismétléssel levihető a hiba valószínűsége 2 k -ra, ami már viszonylag kis k-ra is nagyon kicsi. 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 = R kezdetben (2) AMÍG találunk k K pontot, melynek van s C (azaz címkézetlen) szomszédja 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. Megjegyzés: A fenti (2)-es pont alá tartozó részre mint Mohó Címkenövelésre fogunk a továbbiakban hivatkozni. É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 3 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. 3 Tehát R az összes párosítatlan alsó pont halmaza.
GRÁFELMÉLET 11 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: Bármilyen G gráfban (tehát ha G nem páros, akkor is) ezzel a módszerrel kereshetünk G-ben 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. Az újabb és újabb zsugorításokkal gráfsorozatot kapunk: G = G 0, G 1,..., G v. Itt G v az utolsó gráf, melyet az algoritmus konstruál. Definíció: Legyen R V (G) és β(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 utolsó 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.
12 ALAPVETŐ FOGALMAK ÉS TÉTELEK Berge-formula: max{β(t ) : T V (G)} = min{δ(m) : M párosítás} Petersen-tétel: 4 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, amiket idő hiányában nem tárgyaltunk: 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! Ezeknek a problémáknak a megoldására létezik polinomiális idejű algoritmus. 5. A kínai postás probléma 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. 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. Néhány szükséges feltétel: (nem elégségesek!) Ha G-nek van Hamilton-köre, akkor 2-összefüggő. Ha G-nek van Hamilton-köre, akkor a következő teljesül minden S V (G)-re: 4 Gyakorlaton bizonyítottuk. c(g S) S.
GRÁFELMÉLET 13 Figure 1. Dirac-csavar Könnyű: Ha G egyszerű gráf, akkor van benne δ(g) hosszú út és δ(g) + 1 hosszú kör. 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 is 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. Még mutatunk két elégséges feltételt Hamilton-kör létezésére. Ezek nem hangzottak el előadáson, itt csak érdekességként szerepelnek. Pósa-feltétel: Legyen d 1, d 2,..., d n a G gráf fokszámsorozata. 1 i < n/2-re, akkor G-nek van Hamilton-köre. Ha d i i + 1 minden 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, a Pósa-feltétel vagy a Chvátal-Erdős-tétel megad egyegy 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.
14 ALAPVETŐ FOGALMAK ÉS TÉTELEK Egy szorosan kapcsolódó probléma az utazó ügynök probléma. Ebben adva van egy pozitív számokkal súlyozott élű gráf. A feladat olyan Hamilton-kört találni, melynek összsúlya minimális. 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.) 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, pontjai a feladatok. 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, de az állítást magát tudni kell!) 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.
GRÁFELMÉLET 15 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). Vizing-tétel: ( (G) ) χ e (G) (G) + 1. (nem bizonyítottuk) Színezéssel kapcsolatos 5 : 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 1890-ben. Végül 1976- ban oldotta meg Appel és Haken, részben számítógep felhasználásával ez a Négyszínté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}. 5 Nem kell tudni! 6 A megcsillagozott részek BSc-s anyagba tartoznak, itt csak emlékeztetőül szerepelnek. A Négyszín-tétel története pedig érdekes.
16 ALAPVETŐ FOGALMAK ÉS TÉTELEK 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 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ípusú extremális kérdések. 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 2 r N és G egy n csúcsú egyszerű gráf, mely K r+1 -mentes. Ekkor e(g) e(t n,r ). 8.3. Ramsey-elmélet. Definíció: Legyen G egyszerű gráf. Ekkor Ramsey(G) = R(G) = max{α(g), ω(g)}. Másképpen nézve: K n -ben a Gbe tartozó éleket 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 K n -nek minden éle ugyanolyan színű vagy mind piros, vagy mind zöld. Tehát minél nagyobb homogén klikket keresünk. Ramsey-tétel: Legyen k N. Ha n 4 k, akkor akárhogyan is színezzük két színnel K n éleit, találunk k méretű homogén halmazt. Másképpen megfogalmazva: ha G egy n csúcsú egyszerű gráf, akkor R(G) 1 2 log 2 n. Felső korlát 7 (Erdős Pál): R(G) 2 log 2 n. 7 Ez nem volt órán.
GRÁFELMÉLET 17 9. Elosztott számítások A LOCAL modell: Legyen G egy n pontú összefüggő egyszerű gráf. Minden pontjához tartozik egy számítógép. Ha két pont, u és v szomszédosak G-ben, akkor a megfelelő két számítógép között létezik közvetlen kommunikációs kapcsolat. Minden pontnak van egy egyértelmű azonosítója, egy szám az {1,..., n} halmazból. Ezt más pontok a számítások elkezdése előtt nem ismerik. Modelle válogatja, sok esetben az egyes pontok nemcsak a G gráfot nem ismerik, de még a pontok számát sem tudják kezdetben. Egy elosztott számítási algoritmus végrehajtása során a pontok akármekkora üzeneteket küldhetnek a szomszédaiknak. Azt is megengedjük, hogy egy pont különböző üzenetet küldjön a különböző szomszédainak.az üzenetváltások órajelre, azaz szinkronizálva történnek. Két üzenetváltás között zajlanak a helyi számítások a számítógépeken. Ezek időigényét nem számoljuk bele az algoritmusok futási idejébe. Egy lépés vagy forduló tehát a következőképpen történik. Órajelre a pontok (azaz a számítógépek) üzeneteket küldenek egymásnak, majd elvégzik a helyi számításaikat. A következő órajelig ezekkel a számításokkal minden pont végez. Az algoritmus futási ideje a befejezésig szükséges lépések száma. 9.1. Néhány elosztott számítási algoritmus. Gyakorlaton néztük, hogyan lehet kiszámolni G maximális fokát, (G)-t, ebben a modellben. 9.1.1. Színezés, I: a színcsökkentő algoritmus. Az egyik fontos kérdés, melyet ebben a modellben sokat vizsgálnak, G minél kevesebb színnel való jó színezése, minél kevesebb lépésben. Brooks-tételéből tudjuk, hogy G-t legfeljebb (G) színnel jól lehet színezni, kivéve, ha G egy páratlan kör vagy egy teljes gráf. Utóbbi esetekben (G) + 1 szín kell. Az elosztott számítási modellben nem feltételenül optimális számú színnel fogjuk G-t színezni, legtöbbször (G) + 1 színt fogunk használni, de igyekszünk minél kevesebb lépésben végezni. Az alábbi algoritmus G-nek egy k színnel való jó színezéséből indul ki, és ha k (G)+2, akkor lecsökkenti a felhasznált színek számát (G) + 1-re. Színcsökkentő algoritmus (1) Legyen x = k. (2) Minden pont elküldi a színét az összes szomszédjának. (3) Az x színű v pontokat átszínezzük: a v pont szomszédainak színei legfeljebb (G) elemet foglalnak le az {1, 2,..., (G), (G)+1} halmazból, így v kaphat egy szomszédai által fel nem használt színt ebből a halmazból. Más x színű pontok átszínezése miatt sem keletkezhet konfliktus, hisz az x színű pontok definíció szerint független halmazt alkotnak. (4) Legyen x = x 1. Ha x (G) + 2, akkor folytatjuk a (2)-es lépéssel. (5) STOP
18 ALAPVETŐ FOGALMAK ÉS TÉTELEK Észrevétel: a színcsökkentő algoritmussal tetszőleges G gráfot színezhetünk (G) + 1 színnel, kiindulva a kezdeti k = n színnel való színezésből. Utóbbit a pontok azonosítói adják automatikusan. Könnyű látni, hogy ha kezdetben k színből indultunk ki, akkor a szükséges fordulók száma k ( (G) + 1). A fenti algoritmus ötlete felhasználható maximális (azaz tovább már nem bővíthető, de nem feltétlenül maximális méretű) független halmaz keresésére. Kiindulásként adva van G egy k színnel való színezése. Maximális független halmaz keresése (1) F =, i = 1 (2) Minden i színű pontra megnézzük, hogy van-e a pontnak szomszédja F -ben. Ha nincs, a ponttal kibővítjük F -et, és erről üzetenetet küldünk a pont minden szomszédjának. (3) Legyen i = i + 1. Ha i k, akkor folytatjuk a (2)-es lépéssel. (4) STOP Itt is felhasználtuk, hogy minden színosztály független halmaz, így a pontok egymástól függetlenül tehetők be F -be (ha ez lehetséges). Nem nehéz látni, hogy megálláskor az F halmaz már nem bővíthető tovább. 9.1.2. Színezés, II: elosztott számítások és a Gallai-Roy-Vitaver-tétel. A következő állítás kicsit több, mint a Gallai-Roy-Vitaver-tétel újrafogalmazása. Egy definícióra szükségünk lesz: ha az uv irányított él u-ból v-be mutat, akkor azt mondjuk, hogy v az u pont szülője. Egy pontnak sok szülője is lehet. Állítás: Legyen G egy egyszerű, összefüggő gráf. Az éleit úgy irányítjuk, hogy a kapott irányított D gráf körmentes legyen. Jelölje l a D leghosszabb irányított útjának hosszát. Ekkor G pontjai jól színezhetők l + 1 színnel l + 1 fordulóban. Bizonyítás: A színező algoritmus a következő: minden i {1,..., l + 1}-re az i-edik fordulóban i színre színezzük mindazokat a színezetlen pontokat, melyeknek az összes szülőit már kiszíneztük a megelőző i 1 fordulóban. Vegyük észre, hogy minden i-re lesz olyan pont, amelyik i színt kap. Az első fordulóban azokat a pontokat színezzük be az 1 színre, amiknek nincs szülőjük, tehát a 0 kifokú pontokat. Legalább egy ilyen pont van, hiszen D körmentes. Ha egy i 2-re nem volna olyan színezetlen pont, amelyiket beszínezünk, akkor G vagy nem volna összefüggő (ez nem lehet), vagy a színezetlen pontok mindegyikének volna színezetlen szülője. De emiatt D megszorítva a színezetlen pontokra nem volna körmentes, tehát ismét ellentmondásra jutottunk. A módszer azért ad jó színezést, mert D minden uv élére az u gyerek színe különbözik a v szülője színétől. Mivel G minden éle, megfelelően irányítva, bekerült D-be, így G pontjait jól színeztük.
GRÁFELMÉLET 19 Végül i szerinti indukcióval könnyen igazolhatjuk, hogy l + 1 forduló után nem marad színezetlen pont. Csak azt kell észrevenni, hogy ha egy v pontból i hosszú a leghosszabb kiinduló út, akkor v-t legkésőbb az (i + 1)-edik fordulóban kiszínezzük. Ha olyan az irányítás, hogy minden pont kifoka viszonylag kicsi, akkor még kevesebb színnel boldogulhatunk, bár a fordulók száma nem csökken. Állítás: Legyen G egy egyszerű, összefüggő gráf. Az éleit úgy irányítjuk, hogy a kapott irányított D gráf körmentes legyen. Jelölje l a D leghosszabb irányított útjának hosszát. Ha D-ben a maximális kifok K, akkor G pontjai jól színezhetők K + 1 színnel l + 1 fordulóban. Bizonyítás: A színező algoritmus nagyon hasonlít az előző módszerhez. A különbség annyi, hogy amikor az i-edik fordulóban színezzük mindazokat a színezetlen pontokat, amiknek minden szülője ki lett már színezve a megelőző fordulók valamelyikében, akkor színt az {1,..., K, K + 1} halmazból választunk. Mivel a színezendő pont szülői legfeljebb K különböző színt vehettek fel, egy szín ebből a halmazból mindig szabad. 9.1.3. Színezés, III: irányított fák színezése. 8 Jól tudjuk, hogy - bár általában optimálisan színezni egy gráfot N P -teljes probléma - a 2-színezhetőség hatékonyan eldönthető, és 2-színezhető gráfokat könnyű is 2 színnel jól színezni. Az elosztott számítási modellben minél kevesebb fordulóban akarjuk végrehajtani a számítási feladatokat. Meglepő lehet elsőre, hogy még egy fa jó 2-színezését megadni is sok lépés igényel, Ω(n)-et. Talán még meglepőbb ezután, hogy ha megelégszünk egy jó 3-színezéssel, akkor azt log 2 n + O(1) fordulóban is megtalálhatjuk. Itt log 2 n azt a számot jelöli, ahányszor iterálni kell a log 2 () függvényt, hogy egy 2-nél kisebb számot kapjunk 9. Ez a korlát közel éles, bebizonyították, hogy 1 2 log 2(n) O(1) forduló mindenképpen szükséges még akkor is, ha egy T fát 3 színnel színezünk. A következő, Cole és Vishkin által felfedezett algoritmus segítségével 6 színnel lehet jól színezni egy gyökeres irányított fát log (n) + O(1) fordulóban. A színcsökkentő algoritmus egy változatával a színek számát további 3 fordulóban le lehet csökkenteni 3-ra. Legyen T egy n pontú gyökeres fa, a gyökerét jelölje r. A T fa minden élét a gyökér felé irányítjuk. Az így kapott irányított fában r-t kivéve minden pont kifoka 1, r kifoka természetesen 0. Az algoritmus futása során s v jelöli a v pont színét. Minden színt bináris leírásában tekintünk, a szín hossza a bináris leírásához kellő bitek száma. Jelölje s v [i] a balról az i-edik bitet a bináris leírásban. A triviális jó színezésből indulunk ki, tehát minden pont színe az azonosítója lesz a legelső lépésben. A színek száma nagyon gyorsan, kb. log 2(n) fordulóban fog lecsökkenni 6-ra. Az r gyökér színét beállítjuk 0-ra, az nem fog változni a futás során. A Cole-Vishkin-algoritmus egy iterációs lépése (1) Minden v r pont összehasonlítja az s v színét a w szülőjének az s w színével. Legyen i a balról első bit, amelyik más s v -ben és s w -ben. 8 Sajnos erre már nem jutott elég idő, így ez az alfejezet nem lett része a vizsga tananyagnak. 9 Borzasztóan lassan növő függvény a log (), a gyakorlatban előforduló számokra a 10-et sem éri el.
20 ALAPVETŐ FOGALMAK ÉS TÉTELEK (2) Átszínezzük v-t: s v = i, s v [i] (utóbbival a bitfüzérek egybefűzését jelöljük). Nem nehéz látni hogy az algoritmus jó színezésből jó színezést csinál. Először is, ha l hosszú volt egy szín, akkor most a hossza log 2 l + 1, ahol log 2 l az i-edik hely leírására kell, a +1 pedig az i-edik bit értékének leírásához kell. Tegyük fel, hogy v-nek szülője w, w-nek pedig u. Tegyük fel továbbá, hogy s w -nél a j-edik bit volt az első, mely különbözött az u szülő s u színétől. Ha most i j, akkor persze i, s v [i] j, s w [j], tehát v és w színe különböznek. Ha i = j, akkor viszont s v [i] s w [i], hisz így definiáltuk i-t, tehát most is fennáll, hogy i, s v [i] j, s w [j]. Az is látszik, hogy r színét sosem fogja kapni egyetlen gyereke sem. Minden lépésben kb. logaritmusára csökken a színek hossza, így kaphatjuk meg a fordulók számára adott korlátot. Megjegyezzük, hogy a fenti formában megfogalmazott algoritmusban minden pontnak tudnia kell kezdetben n értékét. Ez a feltevés elkerülhető, de akkor az algoritmus bonyolultabb lesz. Nem írtuk le, hogyan lesz a fenti lépések ismételgetéséből 6 szín. Ez kis számolással és némi esetvizsgálattal jön. Ahogy fentebb szerepelt, a 3 színre való redukció innen már nem nehéz. 10. Röviden expander gráfokról Erről egyáltalán nem esett szó órán. Régebben, korábbi években volt az expander gráf a tananyag része, benne hagytam a jegyzetben. Ha valakit érdekel, olvassa el, ha nem, bátran hagyja ki. Rendezés: adaptív és nem adaptív módszerek. Utóbbira példa a rendező hálózat. Alekszejev tétele: Már egy felező hálózathoz is kell legalább n 2 log n 2 összehasonlító kapu. Ajtai-Komlós-Szemerédi: Létezik rendező hálózat, mely O(n log n) kapuval bármely n elemű bemenetet jól rendez. A bizonyításuk (azaz rendező algoritmusuk) fontos építőköve az expander gráf. Sok többé-kevésbé különböző definíciója ismert, attól függően, hogy mire akarjuk alkalmazni. Egy lehetőség az alábbi. Definíció: Legyen c (0, 1) és d N. Egy G(A, F ) páros gráfot, ahol A = F = N, (c, d)-expandernek hívunk, ha (G) d, és minden H A, H N/2 halmazra N(H) (1 + c) H. Hasonló igaz F részhalmazaira is. Nem különösebben nehéz belátni, hogy egy korlátos fokú véletlen gráf 10 pozitív valószínűséggel expander gráf lesz, már d = 3 esetén is. Sokkal nehezebb algoritmikusan megadni ilyen gráfokat. Az első konstrukció Marguliszé volt a 80-as évek elején. Látható: ha G expander, akkor az átmérője 11 O(log N). Ilyen kis átmérőjű gráf volt a hiperkocka is, de abban a pontok foka nem konstans, hanem a pontok számával logaritmikusan növő függvény. Ez számít egyes alkalmazásoknál. Triviális: szükséges, hogy d 3 legyen, hiszen d = 1, 2 esetén G nem lehet expander (miért is?). Könnyű azt is látni, hogy páros expander gráfban mindig van teljes párosítás. 10 Kicsit később jön egy kevés véletlen gráfokról. 11 Azaz a két egymástól legmesszebbre lévő pontjának távolsága.
GRÁFELMÉLET 21 Az Ajtai-Komlós-Szemerédi-féle rendező hálózat összehasonlításai menetekre oszthatók fel, ahol egy menet egy expander gráf egyik teljes párosításának felel meg, azaz ha pl. xy egy ilyen párosításbeli él, akkor az x-edik és az y-odik drótokat összehasonlítjuk egy kapuval. Mivel minden menetben párosításbeli élek szerepelnek, így minden drót tartalmát csak egyetlen másikéval hasonlítjuk össze, és ezek az összehasonlítások párhuzamosan is elvégezhetőek. Ha az expander D-reguláris, akkor pl. D menetben elérhetjük, hogy ε-felezve legyen a rendezendő halmaz. Tehát egy közelítő rendezéshez elég O(n) (azaz Dn/2) összehasonlítás, nem kell Ω(n log n), mint a pontos felezéshez (ld. Alekszejev tételét). Egy másik alkalmazás 12, melyet szintén Ajtai Miklós, Komlós János és Szemerédi Endre vett észre, a véletlenszám generálás. Itt a következő tulajdonságot kell kihasználni: ha O(log N) hosszú véletlen" sétát teszünk egy expander gráfban, akkor megálláskor a gráf bármely pontjában lényegében ugyanakkora valószínűséggel tartózkodhatunk. Tehát kis költséggel O(log d log N) bittel közel egyenletes eloszlást tudunk adni [N]-en. 13 11. Kisvilág gráfok Erre sem jutott idő, de talán lesz, aki érdekes olvasnivalónak találja. 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. - A véletlen támadásoknak jól ellenállnak, a célzott támadások ellen jóformán védtelenek 11.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 12 Órán erről nem esett szó. 13 Fontos, de nem jelent igazi korlátot, hogy páros gráfban páratlan hosszú séta mindig az ellenkező színosztályba visz, páros hosszú pedig a kiindulásiba. Sokszor egyébként nem páros expander gráffal dolgozunk, de ilyet nem adtunk meg órán.
22 ALAPVETŐ FOGALMAK ÉS TÉTELEK 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 14. 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. 11.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 15 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 16 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 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. 14 Ez Bollobás, Riordan, Spencer és Tusnády eredménye. 15 Sok a hasonlóság klaszterezéssel. 16 Angol neve edge betweenness, azaz él köztesség.